Ceci est une ancienne révision du document !
Table des matières
Restauration d'une machine depuis un backup
- 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 :
- d'établir la connectivité ssh
- de voir comment téléchager les fichiers de la machine
- de lister les taches à faire pour restaurer l'archive
Connectivité SSH
Le pool de backup est sur la VM felicette, 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.
Infos sur le dépôt
Pour lister les backups (archives) d'une VM :
borgmatic -l
Pour avoir la synthèse du dépot d'archive :
borgmatic -l
Télécharger un tarball de la VM
En supposant que 2021-01-02T01:43:34
soit le nom d'une archive, pour voir les infos d'une archive en particulier :
BORG_RSH="ssh -p 2242 -A" borg info backup@backup.chapril.org:/srv/backups/$(hostname --fqdn)::2021-01-02T01:43:34
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'
Monter le dépôt de la VM
Avant de restaurer il est parfois utile d'inspecter en détails une archive ou un dépot entier à l'aide d'un point de montage. On peut le monter localement :
BORG_RSH="ssh -p 2242 -A" borg mount backup@backup.chapril.org:/srv/backups/$(hostname --fqdn) /mnt
Restauration de l'archive
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.
cron
est une bonne pratique. Il ne suffit pas de regarder /etc/cron.d
: la configuration totale de cron
peut être bien plus sioux.