prez-backup/README.md
2023-11-07 14:49:00 +01:00

7.0 KiB

intro

quote "There are only two types of persons, those who backup and those who ever have data loss"

Pourquoi faire des backups ?

  • Tout matériel finit par mourir

  • Perte / Vol

  • Panne système

  • Bitrot ( data rot, disc rot, scrubing )

  • Retrouver un état antérieur ( bourde, upgrade, etc... )

Matériel et coût

  • clé usb 10€

  • disque dur (ssd ou à plateau) 50€+

  • serveur dédié avec 2 disque  75€ ??

  • Caractéristiques matérielles différentes ( disque dûr, SSD, carte mémoire, etc... ).

Logiciel et coût

  • Abonnement cloud 5To  30€

  • RAID (Redundant Array of Independent Disks): découpage en fragments de données répartis sur différents supports de stockage (hdd ou ssd)

  • RAID is not backup

Réflexion coût / service

  • Réflexion sur la stratégie à adopter ( coût vs criticité des données )

  • Le moins cher en ressources humaine, coûts de mise en place est probablement le cloud (beurk)

  • Sinon les clé usb bien rangées ( Archivage )

Méthodes

Règle 3-2-1 (théorie old-school)

  • 3 copies de la donnée (pour pouvoir perdre un peer sans danger perdre la redondance)

  • 2 différents types de stockage

  • 1 copie hors site (limiter les soucis en cas d'inaccessibilité d'un site, redondance géo)

  • Backups par jwz: https://www.jwz.org/doc/backups.html

la rache

  • Copie sur plusieurs disque / clé usb

  • On lance les copies manuellement

Debrouille

  • automatique (tous les jours, avec cron ou timer systemd)

  • léger (on évite les downtime à chaque backup)

  • rapide (au minimum plus rapide que la fréquence souhaitée)

  • rsync ou rclone vers plusieurs machines quotidiennement (c'est mieux que rien donc go)

Sympa

  • compression

  • déduplication

  • chiffrement

  • conservation roulante chaque heure (24J / 7 semaine / 4 mois / 12 année)

  • Utilisation de borgbackup, burp ou autre appli

  • On lance les copies automatiquement (cron ou timer systemd)

  • Plus simple pour comparer les résultats

La version pro® (zfs / btrfs)

  • snapshot immutable niveau FS

  • Transfert des snapshots niveau FS (zfs-send | zfs-receive, pareil en btrfs)

  • Possibilité de transferts incrémentaux (seulement le diff par rapport au parent)

  • rapide et léger (On privilégie le code kernel plus rapide)

  • déduplication au niveau des blocks (Peux être couteux mais économie d'espace dans le temps)

  • Résistance au client qui se fait pwner (append only+ro, "do not trust the client")

  • Résistance au serveur qui se fait pwner (scrub coté client ? "do not trust the server")

  • Utilisation de btrbk par exemple

  • On lance les copies automatiquement (cron ou timer systemd)

Outils

synchronisation

  • rsync
  • un grand classique, présent presque partout, dépends de SSH

  • permet de ne pas retransférer des fichier déjà existant

  • synchronisation : on perds les éditions précédentes

  • rclone
  • rsync évolué

  • transfert vers "cloud" : dropbox, google drive, webDAV etc...

roulement

  • borgbackup
  • beaucoup de features

  • revenir à un état précédent tout en évitant de prendre trop d'espace disque

  • fonctionnement par "dépôts"

    Creating archive at "/data/backup/grolem::grolem-2023-10-30"
    ------------------------------------------------------------------------------
    Repository: /data/backup/grolem
    Archive name: grolem-2023-10-30
    Time (start): Mon, 2023-10-30 03:00:03
    Time (end):   Mon, 2023-10-30 03:00:22
    ------------------------------------------------------------------------------
                           Original size      Compressed size    Deduplicated size
    This archive:                3.60 GB              1.93 GB            184.49 kB
    All archives:               20.18 GB             10.79 GB              1.24 GB

                           Unique chunks         Total chunks
    Chunk index:                   62784               741059
    ------------------------------------------------------------------------------
    Keeping archive (rule: weekly #1):       grolem-2023-10-30                    Mon, 2023-10-30 03:00:03 [66ff9009686bdb24e2b602f67ecd59f4463b7518aac8f9d62f387ca70f43726e]
    Keeping archive (rule: weekly #2):       grolem-2023-10-29                    Sun, 2023-10-29 03:00:02 [f309d84b1d127fee5e6a05ef65df2458d72ef874a4a93756a9819231ed9ad8a2]
    Pruning archive (1/1):                   grolem-2023-10-22                    Sun, 2023-10-22 03:00:04 [fd4923bc1eaaae348870219d7d232138e5065adaaa66dd6fe9b84d87f01b05fa]
    Keeping archive (rule: monthly #1):      grolem-2023-09-30                    Sat, 2023-09-30 03:00:03 [c09faa0dc065283492cd7d29afbd61096c04c11641afc601afd512ba35b99403]
    Keeping archive (rule: monthly #2):      grolem-2023-08-31                    Thu, 2023-08-31 03:00:03 [29e872676ffb3befc569912aedbde0aff95aee4611276195a67e64e6c57564da]
    Keeping archive (rule: monthly #3):      grolem-2023-07-31                    Mon, 2023-07-31 03:00:03 [639ff1e8d401b0c81be6487053cc4c150fcee802210084f3f3560bf0f85e2a15]
    Keeping archive (rule: monthly #4):      grolem-2023-06-30                    Fri, 2023-06-30 03:00:02 [bb17a1108891315838443b05388775cdf127204276e27751e33a00e1e378c27d]
  • burp
  • proche borgbackup mais utilise un serveur de backup central, ne passe pas par ssh

  • "timer" + heure à laquelle le serveur opère : le serveur décide de si c'est le môment de faire un backup

    --------------------------------------------------------------------------------
    Start time: 2023-02-27 18:05:01
      End time: 2023-02-27 23:53:14
    Time taken: 05:48:13
                             New   Changed Duplicate   Deleted     Total |  Scanned
                       ------------------------------------------------------------
                 Files:        0         6        12         0        18 |       18
             Meta data:        6         0         0         6         6 |        6
           Directories:        0         0         1         0         1 |        1
           Grand total:        6         6        13         6        25 |       25
                       ------------------------------------------------------------

                 Messages:             0
                 Warnings:             0

          Bytes estimated:   209214636032 (194.85 GB)
          Bytes in backup:   209214637062 (194.85 GB)
           Bytes received:    1873139099 (1.74 GB)
               Bytes sent:      19359725 (18.46 MB)
    --------------------------------------------------------------------------------
    2023-02-27 23:53:14 +0100: burp[335114] Backup completed.

Conclusion

  • Beaucoup de solutions, des approches différentes

  • rsync, rclone : synchronisation

  • borgbackup, burp : roulement

  • ZFS, btrfs : optimal, mais demande de l'infra

  • Quelles données sont importantes ? Quel moyens pour assurer leur cycle ?