Outils pour utilisateurs

Outils du site


admin:procedures:restaurer_machine

Ceci est une ancienne révision du document !


Restauration d'une machine depuis un backup

On est ici dans une documentation a l'aveugle d'un truc un peu touchy, donc il est possible que des erreurs subsistent.
  • La logique de sauvegarde est en mode push. Par réciprocité on va envisager la restauration en mode pull.
  • Il n'y a pas qu'une manière de faire.

On propose depuis n'importe qu'elle machine du cluster :

  1. d'établir la connectivité ssh
  2. de voir comment téléchager les fichiers de la machine
  3. de lister les taches à faire pour restaurer l'archive

Connectivité SSH

Le pool de backup est sur la VM icinga2 (nommée ainsi car elle sert également de relais d'exécution Icinga pour tester les services avec une regard extérieur), qui est un KVM porté par galanga.april.org. Elle est accessible à l'adresse backup.chapril.org.

Vous devez être capable d'exécuter avec succès

# ssh -p 2242 -A backup@backup.chapril.org true

Si ce n'est pas le cas, vous pouvez suivre la section « Accès SSH » de la page acces_ssh, en prenant soin de ne pas vous restreindre à une commande forcée qui risque de vous handicaper.

Télécharger un tarball de la VM

Pour lister les backups d'une VM :

BORG_RSH="ssh -p 2242 -A" borg list backup@backup.chapril.org:/srv/backups/$(hostname --fqdn)

en adaptant le hostname, par exemple :

BORG_RSH="ssh -p 2242 -A" borg list backup@backup.chapril.org:/srv/backups/admin.cluster.chapril.org

En supposant que 2018-09-02 soit le nom d'un backup, pour voir les infos d'un backup particulier :

BORG_RSH="ssh -p 2242 -A" borg info backup@backup.chapril.org:/srv/backups/$(hostname --fqdn)::2018-09-02

Pour extraire /etc/issue de l'archive précédente dans le dossier courant, on liste le fichier de façon relative, comme un tar :

BORG_RSH="ssh -p 2242 -A" borg extract backup@backup.chapril.org:/srv/backups/$(hostname --fqdn)::2018-09-02 etc/issue

Pour extraire l'archive entière dans le dossier courant, il faudrait faire :

BORG_RSH="ssh -p 2242 -A" borg extract backup@backup.chapril.org:/srv/backups/$(hostname --fqdn)::2018-09-02

Options utiles de borg extract :

          --list                           output verbose list of items (files, dirs, ...)
          -n, --dry-run                    do not actually change any files
          -e PATTERN, --exclude PATTERN    exclude paths matching PATTERN
 
          # Extract entire archive
          $ borg extract /path/to/repo::my-files
 
          # Extract entire archive and list files while processing
          $ borg extract -v --list /path/to/repo::my-files
 
          # Extract the "src" directory
          $ borg extract /path/to/repo::my-files home/USERNAME/src
 
          # Extract the "src" directory but exclude object files
          $ borg extract /path/to/repo::my-files home/USERNAME/src --exclude '*.o'

Restauration de l'archive

Ajouter un hook dans le paquet backup-chapril qui dump la sortie de lsblk serait un plus.

Il faut avoir un fs près à recevoir les fichiers. Pour reconstruire le lvm à l'identique, le dossier /etc/lvm/backup/ est probablement utile, le /etc/fstab aussi. Si vous avez un volume vierge sous la patte vous pouvez restaurer la structure LVM à l'aire de

vgcfgrestore -f le_fichier_backup VolumeGroupName

À défaut de tout autre chose, on peut imaginer cloner la « VM modèle », adapter les tailles de LVM et surtout des LVs, et monter les FS de l'image QCOW via les libguestfs-tools depuis n'importe quelle hôte.

On se met à l'emplacement de la future racine :

BORG_RSH="ssh -p 2242 -A" borg extract backup@backup.chapril.org:/srv/backups/$(hostname --fqdn)::2018-09-02

Ensuite il reste à

  • installer un bootloader
  • restaurer les dumps engendrés par /etc/borg/scripts/*hooks (restauration SQL et dpkg –set-selections)
  • vérifier la configuration réseau / bail dhcp, surtout si la mac a changé
  • penser à tout ce qu'on a oublié

Et ça devrait rouler.

L'expérience montre que couper le cron est une bonne pratique. Il ne suffit pas de regarder /etc/cron.d : la configuration totale de cron peut être bien plus sioux.
admin/procedures/restaurer_machine.1543230417.txt.gz · Dernière modification : 2018/11/26 11:06 de fpoulain