Backup du serveur

Pour le moment, les sauvegardes à bande représentent le moyen le plus économique d'archiver de grosses quantités de données.
Plusieurs standards d'interface se côtoient : le SCSI, l'IDE et le contrôleur de disquette.
Personnellement je préfère la première solution, l'interface SCSI. Il est vrai que cela nécessite parfois l'achat d'un contrôleur, mais pour une sauvegarde, une vieille carte SCSI sur bus ISA suffit amplement.
L'IDE est surtout moins universel que le standard SCSI. Le contrôleur disquette est limité question débit et commence un peu à "vieillir".

Pour simplifier la sauvegarde/restauration de données,  plusieurs programmes sont utilisables sous Linux / E-Smith. En voici 3 : Flexbackup, Taper et Kbackup, cette liste bien sûr n'est pas exhaustive.

Voici donc la description de la mise en pratique sur du standard SCSI2 avec Flexbackup, qui constitue un "front end" écrit en Perl aux divers programmes de gestion des sauvegardes à bande sous Linux. Pour plus de renseignements reportez vous à la documentation incluse dans le rpm.
 
 
 
Côté matériel

Sauvegarde SCSI-2 HP SureStore Tape 6000i-C1533A d'occasion : il s'agit d'une sauvegarde à bande *DDS2 de 4 Go (8 Go en moyenne par une compression hardware des données). Les cartouches DAT représentent une solution pérenne dans le temps, elles sont très répandues et peu onéreuses à l'achat. Par contre ce type de lecteur dispose d'une mécanique assez sophistiquée,  il est par conséquent plutôt cher en neuf, vous pouvez trouver de bonnes affaires en occasion.
La carte contrôleur SCSI 2 est une Adaptec AHA1520A sur bus ISA. Paramètrage des cavaliers de cette carte de façon à ne pas créer de conflits. (i/o et irq)

Test du fonctionnement de la carte et détection de la sauvegarde à bande, si tout va bien les modules doivent répondre quelque chose comme cela :

modprobe aha152x

aha152x: BIOS test: passed, auto configuration: ok, detected 1 controller(s)
aha152x0: vital data: PORTBASE=0x340, IRQ=10, SCSI ID=7, reconnect=disabled, parity=enabled, synchronous=disabled, delay=100, extended translation=disabled
aha152x: trying software interrupt, ok.
scsi0 : Adaptec 152x SCSI driver; $Revision: 1.7 $
scsi : 1 host.
  Vendor: HP        Model: C1533A            Rev: 9608
  Type:   Sequential-Access                  ANSI SCSI revision: 02

modprobe st

st: bufsize 32768, wrt 30720, max buffers 5, s/g segs 16.
Detected scsi tape st0 at scsi0, channel 0, id 3, lun 0

Pour automatiser le chargement de ces 2 modules insérer par exmple ces commandes dans /etc/rc.d/rc.local
 
 
La partie "soft" avec Flexbackup

Installez ces RPM par la commande habituelle : rpm -ivh nom.rpm
afio-2.4.5-2.i386.rpm
buffer-1.19-1.i386.rpm
dump-0.4b20-1.i386.rpm
rsh-0.10-25.i386.rpm
flexbackup-0.9.8-1.noarch.rpm

Vous n'êtes pas obligé d'installer remote shell, nécessaire pour sauvegarder les disques de machines distantes. Il suffira de rajouter nodep à la commande rpm. (rpm -ivh --nodeps flexbackup-0.9.8-1.noarch.rpm)
Ne pas oublier que les diverses documentations seront consultables à /usr/doc/nom du rpm.


Paramètrage
Tout ce passe dans /etc/flexbackup.conf
 

Effectuer une sauvegarde de test
Remarques : Toutes les commandes mt se référent au périphérique à bande (/dev/nxxxx), pensez à utiliser le bon nom en fonction de votre matériel.

Tout d'abord si vous disposez de bandes usagées, il est préférable de les effacer au préalable par les commandes : 
mt -f /dev/nst0 rewind (pour rembobiner)
mt -f /dev/nst0 erase
Cette opération est très longue, parfois plusieurs heures (2h10mn pour le SureStore Tape 6000i et une bande de 120 mètres)

Sinon pour une bande neuve ou fraichement effacée, la première opération à réaliser sera d'effectuer :
flexbackup -newtape
Cette commande aura pour effet de créer l'index nécessaire pour la gestion des différentes sauvegardes sur cette bande. Aucune erreur ne doit être reportée.

Tester le bon fonctionnement du système de sauvegarde avec les commandes suivantes et une bande fraichement indexée :

  • flexbackup -fs /home/e-smith/files/users/new_user pour sauvegarder le répertoire de l'utilisateur new_user par exemple.
  • mt -f /dev/nst0 fsf 1 pour positionner la bande sur la première sauvegarde (à la fin de l'index).
  • placez vous dans un répertoire de test (à effacer par la suite) exécutez : flexbackup -extract
  • vérifiez la concordance des 2 répertoires avec la commande : diff -r /quelquechose/test /home/e-smith/files/users/new_user
Tout doit fonctionner parfaitement, n'oubliez pas que les sauvegardes à bande sont très lentes ... donc patience.

Lors de certaines opérations, notamment lorsque vous effacez une bande, le serveur peut devenir complètement indisponible.
 

Effacer une bande
Notez le "tape index" que revoie la commande flexbackup -toc et faites ensuite :
flexbackup -toc <tape index> -delete
Vous voilà reparti avec une bande vide possédant un index.
 

Sauvegarder le contenu du serveur, c'est à dire les diverses données utilisateur seulement.
flexbackup -fs /home/e-smith/files

Vous sauvegardez ainsi :

  • la totalité des fichiers utilisateurs (/home/e-smith/files/users)
  • les i-bays (/home/e-smith/files/ibays) susceptibles de contenir un répertoire partagé samba et divers sites web.
  • primary (/home/e-smith/files/primary)
Le type de l'archive sera plutôt afio.
Il faut penser également à sauvegarder à part, sur un autre support, tous les rpm installés qui ne font pas partie de la distribution originale, les customisations, flexbackup.conf, éventuellement /etc/auto.misc et surtout le fichier /etc/passwd

Exemple de sortie console sous afio
 

Plusieurs sauvegardes par bande
Chaque fois que vous effectuez une commande flexbackup -fs /chemin du répertoire à sauvegarder les "backups" sont stockés à la suite.
Pour restaurer il faudra effectuer :
mt -f /dev/nst0 rewind (pour rembobiner)
mt -f /dev/nst0 fsf n (pour positionner avant restauration avec n = 1 pour la première sauvegarde, n = 2 pour la deuxième, etc ...)
flexbackup -extract (restaure la sauvegarde n dans le répertoire par défaut)
 

Une seule sauvegarde par bande
flexbackup -fs /chemin du répertoire à sauvegarder -erase (chaque nouvelle sauvegarde écrase la précédente)
Pour restaurer il faudra effectuer :
mt -f /dev/nst0 rewind (pour rembobiner si besoin est)
mt -f /dev/nst0 fsf 1 (pour positionner la bande sur la première sauvegarde)
flexbackup -extract (restaure la sauvegarde dans le répertoire par défaut)
 

Restauration les données utilisateurs lors d'un scratch total du serveur :
Il faut ré-installer le serveur, à l'identique. C'est à dire non seulement installer la distribution E-Smith mais aussi les add-on et les "customisations" s'il y a lieu, les paramètres SMB, les groupes et les comptes utilisateurs, les ibays ... tout cela en respectant un certain ordre. La chronologie est primordiale pour les créations de comptes utilisateurs, des groupes et des ibays. Le contenu du fichier /etc/passwd d'avant le scratch est d'une aide inestimable, puisqu'il retrace chronologiquement les créations de tout ces comptes (par les numéros). Sans cela, vous risquez d'avoir de désagréables surprises !!!

Quand le serveur est à nouveau opérationnel et que, Flexbackup est installé et paramètré, placez vous dans l'arborescence (/home/e-smith/files) puis lancez la restauration. Soyez patient, c'est exactement aussi long que pour la sauvegarde.
 

Pour sauvegarder la totalité du serveur :
Dans ce domaine il vaut mieux utiliser "dump" que "afio", pour cela tapez la commande :
flexbackup -fs all -type dump
avec $filesystems[0] = '/ /boot'; dans le fichier flexbackup.conf

Il serait souhaitable d'avoir noté quelque part les diverses partitions du ou des disques, pour pouvoir effectivement les restaurer plus tard.
Faites cat /proc/partitions pour visualiser ces informations.
 

Restauration de la totalité du serveur ... non testé.
Idée : créer une disquette amorçable spéciale genre "mini distro" avec Flexbackup + modules nécessaires, recréer les diverses partitions, restaurer ... voir documentation d'afio à ce sujet ...
 
 
 

Remarques en vrac
  • Suivant l'archiveur employé afio, cpio, dump ... le taux de transfert varie.
  • L'auteur de Flexbackup recommande l'utilisation d'afio (voir documentations de Flexbackup)
  • Avec mon matériel, j'ai rencontré des problèmes de restauration en utilisant cpio ("blocs de junk" puis arrêt en cours de restauration).
  • J'ai testé seulement afio, cpio et dump.
  • J'ai réellement  : ré-installé à la distribution E-Smith sur mon serveur perso (6 utilisateurs, 3 ibays 1.8Go de données), lancé la sauvegarde dans /home/e-smith/files et j'ai retrouvé celui-ci à l'identique (j'avais 2 jeux de sauvegardes, la sauvegarde cpio a foiré, celle avec afio a fonctionné)
  • Suivant la fréquence des sauvegardes, prévoyez de temps à autre de nettoyer le lecteur avec une cartouche spécialement prévue à cet effet.

 

* DDS = Digital Data Storage, directement dérivé du format audio-numérique DAT 4mm. Il existe plusieurs densités de bandes avec une compatibilité descendante entre DDS3, DDS2 et  DDS1 ou DDS.

Retour page principale