Sauvegarde incrémentielle

De Cliss XXI
Révision datée du 11 juin 2007 à 09:17 par imported>SylvainBeucler (→‎[http://backuppc.sourceforge.net/ BackupPC])
Sauter à la navigation Sauter à la recherche

Méthode 1 - Archives

Nous utilisons rsync pour faire une copie directe, puis dar pour réaliser des sauvegardes incrémentielles, pilotées par SaraB, avec des checksums par2.

L'inconvénient de la méthode 'dar' est qu'il est fastidieux de récupérer des fichiers dans de grosses archives, et plus encore s'il y a un grand nombre de sauvegardes incrémentielles entre chaque sauvegardes complètes. Du coup il est tentant de faire plus souvent de sauvegardes complètes, et qui impacte l'espace disque.

Méthode 2 - Copies en liens durs

Utiliser cp -al pour faire une sauvegarde complète à base de liens durs. La solution combine les avantages d'une sauvegarde incrémentielle (espace disque réduit) et d'une sauvegarde complète (accès à tous les fichiers sans devoir fusionner les sauvegardes incrémentielles intermédiaires). On ne fait que des sauvegardes "incrémentielles", ce qui est très appréciable du point de vue de la simplicité et de l'espace disque occupé.

Variante: l'option --link-dest=DIR de rsync (avec cp -al les changements de permissions ou de propriétaire d'un fichier s'appliquent sur toutes les sauvegardes, et non sur _la_ sauvegarde impactée).

Les inconvénients sont:

  • Beaucoup plus d'espace utilisé en inodes (prévoir mkfs.ext3 -T news si possible).
  • De nombreux fichiers à la place d'une seule archive.
  • Pas de combinaison avec parchive, par2 ou autre outil de parité; et ce, couplé avec une réutilisation des fichiers: si un fichier est stocké sur un secteur défectueux, et qu'il n'a pas changé au cours du temps, ce fichier est donc définitivement perdu. Combiner peut-être avec l'option --checksum de rsync afin d'avoir des vérifications régulières?
  • Un espace incompressible utilisé à chaque sauvegarde, mais relativement léger (compter 50M pour 60Go, d'après cp -al backup/ backup.copy/ && du -sch backup/ backup.copy/).
  • Occupation de l'espace disque moins intuitif, car partagé entre les sauvegardes.

Il existe plusieurs outils qui utilisent ce principe:

Liens

rdiff-backup

Copie miroir + copies incrémentielles via un format spécifique (dossier spécial rdiff-backup-data/). Suppression des anciennes sauvegarde uniquement par date (--remove-older-than). L'avantage par rapport à rsync est qu'il s'agit d'une solution tout-en-1, une seule commande suffit pour la sauvegarde et les incréments. Il peut aussi stocker un système complet sans avoir besoin d'être root, les méta-données étant alors utilisées pour la restoration.

BackupPC

Copies par liens en dur sur l'ensemble des sauvegardes, même provenant de systèmes différents (indexation par checksum, à la git). Stockage à part des meta-données, telles que les permissions (le serveur ne tourne pas sous root). Par conséquent, le format des sauvegarde spécifique à backuppc, pas utilisable directement. Il y a également un panneau de contrôle web.

La sauvegarde peut se faire via smb, rsyncd, ssh+rsync ou ssh+tar.

Pour ssh+rsync, je recommande la restriction d'accès simple suivante (lecture seule):

  • ~/.ssh/authorized_keys
# Bob - backup
command="/root/remote_backup.sh" ssh-dss AAAAB...== root@backupmaster
  • ~/remote_backup.sh
#!/bin/bash
exec nice -n 19 rsync --server --sender ${SSH_ORIGINAL_COMMAND#*rsync }

Note: cela désactive évidemment les possibilités de restauration directe (nécessite des droits en écriture).

La FAQ propose une méthode similaire avec un utilisateur dédié + sudo.

Bacula

"Backup Dracula"

À creuser...