Rsnapshot

De Cliss XXI
Révision datée du 5 avril 2007 à 13:37 par imported>SylvainBeucler
Sauter à la navigation Sauter à la recherche

http://www.rsnapshot.org/

rsnapshot gère des sauvegarde basée sur rsync, et gère les techniques des liens durs (décrite dans sauvegarde incrémentielle) pour économiser l'espace disque.

Astuces utile

rsnapshot gère les code d'erreur de rsync et ignore certaines erreurs qui surviennent lors d'une sauvegarde d'un système en fonctionnement (fichiers temporaire qui disparaissent entre les phases 'liste de fichiers' et 'copie' notamment).

rsnapshot 'touch' les répertoires contenant les sauvegarde, ce qui permet de déterminer facilement la date de la sauvegarde.


Problèmes

Centralisation

rsnapshot met l'ensemble des sauvegarde référencées par un fichier de configuration dans un seul répertoire (daily.0, daily.1, etc). Plus généralement une sauvegarde indépendante implique un fichier de configuration séparé. Pas moyen de centraliser l'ensemble des sauvegardes réalisées par une machine dans un seul fichier - si une sauvegarde échoue, l'ensemble de des autres sauvegardes est concerné.

Sécurité en cas d'interruption

Par défaut rsnapshot commence par supprimer la sauvegarde la plus ancienne, faire la rotation, puis enfin synchronise. Si la synchronisation échoue plusieurs fois, ce sera autant de sauvegarde perdues. Dans le pire des cas, la dernière sauvegarde valide est essentiellement répliquée sur l'ensemble des emplacements de sauvegarde (via le "rollback" qui consiste en un cp -al de la dernière sauvegarde, qui vient de subir une rotation, d'où la réplication progressive sur les autres emplacements).

Lorsque 'use_lazy_deletes' est utilisé, il serait possible de faire une restauration sans perte en cas de mauvaise synchronisation. Ce n'est pas le cas pour le moment.

'sync_first' est prévu pour parer à ce cas: d'abord la sauvegarde est synchronisée dans un répertoire temporaire, ensuit seulement la rotation se déroule. Malheureusement l'option 'link_dest', qui fait toute la force de rsnapshot, est ignorée dans ce cas.

Mes modifs

# Erreur si le répertoire cible n'existe pas:
no_create_root	1
# Ajout de --hard-links --sparse, suppression de --delete (superflu si --delete-excluded):
rsync_long_args	--numeric-ids --relative --delete-excluded --sparse --hard-links
# Exclusions génériques:
exclude	/dev/pts/*
exclude	/proc/*
exclude	/sys/*
exclude	/mnt/*/*
exclude	/var/cache/apt/archives/*
# Optimisation de l'espace disque par liens durs:
link_dest	1
# La sauvegarde, méthode "démon par connexion shell distante":
backup	root@mercure::root	mercure/	+rsync_long_args=-e 'ssh'