Sauvegardes, test, comparaison et restauration

En supposant que le compte root est accessible et a un mot de passe (sudo passwd sur Ubuntu).

Sauvegarde

Ici la sauvegarde est initiée d'un autre système. On suppose de plus que seul le filesystem / doit être sauvegardé (représenté par le . final) à l'exclusion de tout filesystem monté sur /.

   ssh root@serveur 'tar --directory=/ --one-file-system -czf - .' > /tmp/backup-serveur-$(date --iso).tar.gz

ALERT! soyez attentif à la syntaxe exacte.

ALERT! s'il y a d'autres filesystems à sauvegarder, il faut les mentionner explicitement à la fin de la ligne de commande ci-dessus (dans les apostrophes, exécuté du côté serveur). Par exemple, si /boot, /data et /usr sont des fs séparés, ajouter après le point, mais avant l'apostrophe terminant la commande exécutée sur le serveur: espace puis boot data usr, par exemple.

ALERT! tar sauvegardera tout, il faut s'assurer que les données sauvegardés sont dans un état stable avant la sauvegarde (p.ex. en sauvegardant un dump plutôt que les fichiers de bases de données, et/ou en passant par une fonction de snapshot)

stop la commande ci-dessus ne sauvegarde pas les ACLs (elles sont en général désactivées: l'usage principal des ACLs POSIX étant les serveurs de fichiers Samba pour clients Microsoft).

Test

  1. on peut tester que l'archive n'a pas été corrompue
    gzip -t /tmp/backup-serveur-$(date --iso).tar.gz
    
  2. on peut lister l'archive pour vérifier que les données importantes s'y trouvent
    tar tvzf /tmp/backup-serveur-$(date --iso).tar.gz
    

Comparaison

   ssh -e none root@serveur 'tar --directory=/ --compare -zf - ' < /tmp/backup-serveur-$(date --iso).tar.gz

Restauration

cas 1: (le plus courant)
  • restauration de parties de l'archive, ailleurs sur le même serveur
    ssh -e none root@serveur 'cd /tmp && mkdir tt && cd tt && tar -xpzf - data/home/utilisateur' < /tmp/backup-serveur-$(date --iso).tar.gz
    

cas 2: disaster recovery
  • après démarrage avec le CD d'installation, recréation des partitions et filesystems, montage de ces derniers sur /target
    ssh -e none root@serveur 'cd / && tar --numeric-owner -xpzf -' < /tmp/backup-serveur-$(date --iso).tar.gz
    
  • on peut ensuite lancer grub-install puis redémarrer le système restauré
  • il se peut qu'il y ait du fine-tuning à faire (création de /dev, /proc, éventuellement montage temporaire, etc), le mieux est de tester cette procédure à l'avance
  • il existe aussi des systèmes d'images (sysimager) ou de sauvegarde orientée bare-metal recovery (mondo).

-- MarcSCHAEFER - 07 Nov 2011
Topic revision: r1 - 07 Nov 2011, MarcSCHAEFER
 

Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback