R5B08 - Séance 9
Sauvegardes et Restauration
Introduction
L'objectif de ce TP est à la fois de manipuler les outils de sauvegarde et restauration de données standards sous Unix mais aussi de vous faire prendre conscience de l'importance de la documentation de ce que vous faites.
Vous allez pour cela faire des sauvegardes et des restaurations de vos machines vers une machine dédiée aux sauvegardes et comparer les méthodes.
Environnement de travail
Contexte et contraintes
Le TP devra être effectué sur une infrastructure neuve préparée en début de TP et qui reprend celle des TP précédent.
Vous devrez mettre dans un document texte au format Markdown ce qui vous a permis de répondre aux questions de l'énoncé et ce qui est nécessaire à faire pour atteindre les objectifs demandés.
Pour le TP courant ce fichier devra être nommé README.md. Il devra
être déposé dans le dépôt git de référence pour le module sous le
dossier tp-04/LOGIN/ (avec LOGIN remplacé par votre
identifiant). Un accès web à ce dépôt est disponible à l'URL
suivante : https://gitlab.univ-lille.fr/etu/2025-2026/r5b08.
Infrastructure du TP
Vous allez devoir préparer votre infrastructure avec la commande
vmiut (notre wrapper autour de virtualbox).
Pour mémoire :
vmiut creer MACHINEpermet de créer une machine virtuelle nomméMACHINEvmiut run MACHINEpermet de démarrer la machine virtuelle nomméMACHINEvmiut executer MACHINE -s SCRIPTpermet d'exécuterSCRIPTsurMACHINEen tant querootles commandes suivantes permettent d'attacher un clone du disque
DISQUEen second disque dur virtuel deMACHINEvboxmanage clonemedium --format VMDK disk DISQUE $VBOXES/MACHINE/disque2.vmdk vboxmanage storageattach MACHINE --storagectl controleur1 --port 1 --device 0 --type hdd --medium $VBOXES/MACHINE/disque2.vmdk
- le dossier
/home/public/vmcontient des images de disque virtuel vierge de différentes tailles.
Cette infrastructure va devoir regrouper les 4 machines suivantes :
moniteuraccessible via une adresse IP dont le dernier octet est10poste1accessible via une adresse IP dont le dernier octet est21poste2accessible via une adresse IP dont le dernier octet est22backupaccessible via une adresse IP dont le dernier octet est30et qui doit avoir 2 disques- un pour le système
- un autre accessible via le dossier
/srvet qui doit avoir une taille au moins 2 fois plus grosse que la taille du disque principal des autres postes.
Vos 4 machines doivent :
- être accessibles via ssh en tant que
rootdepuis votre machine physique avec un appel à ssh suivi uniquement de leur nom (par exemplessh moniteurdoit vous connecter directement sur le moniteur en tant queroot) avec une authentification faite par clés - être reconnues par leur nom depuis chacun des autres postes
virtuels (par exemple depuis
backupun appel àping moniteurdoit répondre correctement).
Par ailleurs :
- les paquets suivants doivent être installé sur tous les postes :
filelessnetcatnetstatnmapscreenxauthdumpqui permet d'accéder aux commandesdumpetrestorersyncbzip2
- depuis
backupvous devez être capable de vous connecter en tant querootviasshsur les 3 autres postes - un serveur
apache2doit être installé surmoniteur
Sauvegarde incrémentale avec dump et restore
Lisez les pages dump(8) et restore(8).
Sauvegarde complète
Depuis backup, à l'aide de ssh, dump et bzip2 faites une
sauvegarde complète (niveau 0) de la racine du disque (/) de
moniteur dans le fichier /srv/dump/moniteur.0.bz2
Remise en place de SNMP
Remettez en place Net-SNMP sur votre infrastructure dans l'état atteint en fin de TP 03. Pour mémoire :
- sur
moniteurles outils clientssnmpet les MIBS doivent être installés et accessibles ; - sur
poste1etposte2l'agentsnmpddoit être installé et correctement configuré.
Pour vérifier que votre installation fonctionne correctement, depuis
moniteur vérifiez que la commande suivante vous affiche bien le nom
du poste1 : snmpget -v 2c -c lecture poste1 sysName.0
Première sauvegarde incrémentale
Depuis backup, à l'aide de ssh, dump et bzip2 faites une
sauvegarde incrémentale de niveau 1 de la racine du disque de
moniteur dans le fichier /srv/dump/moniteur.1.bz2.
Comparez la taille des fichiers que vous avez créé dans /srv/dump.
Simuler une perte de données
Pour simuler une perte de données sur moniteur supprimez y le
contenu complet de /usr/share/snmp.
Vérifiez que la commande snmpget précédente ne fonctionne plus.
Restauration
Depuis backup, à l'aide de ssh, bzip2 et restore faites une
restauration des fichiers perdus sur moniteur.
Vérifiez sur moniteur que tout est rentré dans l'ordre et que la
commande snmpget refonctionne correctement.
Restauration complète avec dump et restore
Installation d'un service
En suivant la procédure de votre binôme du TP précédent installez le service dont l'installation y est décrite.
Seconde sauvegarde incrémentale
Depuis backup, à l'aide de ssh, dump et bzip2 faites une
sauvegarde incrémentale de niveau 2 de la racine du disque de
moniteur dans le fichier /srv/dump/moniteur.1.bz2.
Comparez la taille des fichiers que vous avez crée dans /srv/dump.
Restauration complète
Ajoutez temporairement un second disque sur moniteur de la même
taille que le disque principal et rendez son contenu accessible via le
dossier /mnt.
Depuis backup, à l'aide de ssh, bzip2 et restore faites une
restauration totale sur moniteur dans /mnt. Cette restauration
doit inclure le système, votre configuration de snmp et du service que
vous avez installé (Cacti ou Icinga).
Comment avez-vous fait ?
Vérifiez que la restauration est bien complète en utilisant chroot
pour utiliser le contenu de /mnt comme racine pour vos commandes et
en testant la commande snmpget.
Restauration sur une machine neuve
Vous avez réussi à restaurer intégralement l'état de votre moniteur sur un disque. Vous devriez donc être capable de reconstruire complètement une nouvelle machine en cas de perte complète de la machine. Nous allons simuler cette perte.
Après avoir détruit votre machine moniteur reconstruisez en une
nouvelle vierge.
Depuis backup, à l'aide de ssh, bzip2 et restore faites une
restauration des fichiers des sauvegardes de niveau 1 puis 2 sur
moniteur.
Est-ce que la machine moniteur est dans le même état qu'avant sa
destruction ?
Sauvegarde/Restauration de fichiers avec rsync
Lisez la page rsync(1).
Sauvegarde de configuration
Assurez-vous que vous avez bien un serveur apache2 et un agent
snmpd fonctionnels sur poste1.
Depuis poste1, à l'aide de rsync faites une copie de l'intégralité
des fichiers de /etc/ sur backup dans le dossier
/srv/rsync/poste1.1/
Notez l'espace disque utilisé par /srv/rsync sur backup.
Modification de configuration
Sur poste1 modifiez la configuration de l'agent snmp de façon à ce
qu'il utilise le mot modifié pour une communauté autorisée à
utiliser les requêtes GET et GETNEXT.
Normalement vous n'avez modifié que le fichier /etc/snmp/snmpd.conf.
Vérifiez sur moniteur que la commande snmpget fonctionne
bien avec la nouvelle communauté.
Restauration de la configuration initiale
De façon à annuler votre dernière modification et en utilisant la
copie des fichiers que vous avez placé sur backup dans
/srv/rsync/poste1.1 récupérez le fichier de configuration de l'agent
snmp de poste1 pour retrouver sa configuration avant votre
dernière modification.
Comment avez-vous fait ?
Suppression d'un service sur poste1
Supprimez complètement le service apache2 et sa configuration de
poste1.
Sauvegarde du nouvel état
Après avoir bien étudié les options --delete et --link-dest de
rsync, refaites une copie de l'intégralité des fichiers de /etc/
sur backup dans le dossier /srv/rsync/poste1.2/ en vous assurant
que :
- les fichiers supprimés (la configuration d'apache2) ne soient pas copiés ;
- que les autres fichiers ne soient copiés que s'ils ne sont pas déjà
présents dans
/srv/rsync/poste1.1; - que les fichiers déjà présents dans
/srv/rsync/poste1.1soient placés dans/src/rsync/poste1.2comme liens physiques.
Comparez l'espace disque utilisé par /srv/rsync sur backup et
celui que vous aviez noté précédemment.