Sauvegardes et Restauration

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.

Mise en place

Notez la date et l'heure courante.

Tout casser !

Après vous être assuré que vous avez bien conservé les notes et procédures vous permettant de refaire le travail de tous les TPs précédents supprimez votre environnement de TP complètement (vos 3 machines moniteur, poste1 et poste2).

Tout repréparer !

Avec l'outil de votre choix (vagrant ou vmiut=/=virtualbox), créez maintenant une infrastructure avec les 4 machines suivantes :

  • moniteur accessible via une adresse IP dont le dernier octet est 10
  • poste1 accessible via une adresse IP dont le dernier octet est 21
  • poste2 accessible via une adresse IP dont le dernier octet est 22
  • backup accessible via une adresse IP dont le dernier octet est 30 et qui doit avoir 2 disques

    • un pour le système
    • un autre accessible via le dossier /srv et qui doit avoir une taille au moins 2 fois plus grosse que la taille du disque principal des autres postes.

    Si vous utilisez Vagrant une box Vagrant contenant une machine avec un disque principale de 20 Go et un disque secondaire de 50 Go est disponible dans /home/public/vm/r5b08-tp04.box. Pour pouvoir l'ajouter à la liste des box Vagrant disponibles vous devez utiliser la commande suivante :

    vagrant box add --name r5b08/tp04 /home/public/vm/r5b08-tp04.box
    

    La box sera alors utilisable dans votre Vagrantfile sous le nom r5b08/tp04.

    Si vous utilisez vmiut (donc VirtualBox) vous pourrez créer et attacher un tel disque après avoir créer votre machine soit via l'interface graphique de virtualbox soit via la commande vboxmanage. Dans ce cas assurez-vous juste de placer ce disque dans le dossier de votre machine virtuelle (quelque part sous /usr/local/virtual_machine/infoetu/LOGIN).

Dans tous les cas vos 4 machines doivent :

  1. être accessibles via ssh en tant que root depuis votre machine physique avec un appel à ssh suivi uniquement de leur nom (par exemple ssh moniteur doit vous connecter directement sur le moniteur en tant que root)
  2. être reconnues par leur nom depuis chacun des autres postes virtuels (par exemple depuis backup un appel à ping moniteur doit répondre correctement).

Par ailleurs

  • assurez-vous que les paquets suivants soient bien installés sur tous les postes :
    • dump qui permet d'accéder aux commandes dump et restore
    • rsync
    • bzip2
  • assurez que depuis backup vous soyez capable de vous connecter en tant que root via ssh sur les 3 autres postes

Notez l'heure courante et déterminer le temps que vous avez pris pour mettre en place cet infrastructure.

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 moniteur les outils clients snmp et les MIBS doivent être installés et accessibles ;
  • sur poste1 et poste2 l'agent snmpd doit ê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 les procédures qui vous sont attribuées dans le fichier /home/infoens/bruno.beaufils/r5b08/tp-04/tp-04-attribution installez les services dont l'installation 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 :

  1. les fichiers supprimés (la configuration d'apache2) ne soient pas copiés ;
  2. que les autres fichiers ne soient copiés que s'ils ne sont pas déjà présents dans /srv/rsync/poste1.1 ;
  3. que les fichiers déjà présents dans /srv/rsync/poste1.1 soient placés dans /src/rsync/poste1.2 comme liens physiques.

Comparez l'espace disque utilisé par /srv/rsync sur backup et celui que vous aviez noté précédemment.