Product SiteDocumentation Site

9.10. Sauvegarde

L'une des responsabilités principales de tout administrateur, la sauvegarde reste un sujet complexe dont les outils puissants sont en général difficiles à maîtriser.
De nombreux logiciels existent : citons amanda, bacula et BackupPC. Il s'agit de systèmes client/serveur dotés de nombreuses options, dont la configuration peut être difficile. Certains disposent d'une interface de configuration web. Des dizaines d'autres paquets Debian sont dédiés à des solutions de sauvegarde, comme vous le montrera la commande apt-cache search backup.
Plutôt que de détailler le fonctionnement de certains d'entre eux, nous prenons le parti d'exposer la réflexion menée par les administrateurs de Falcot SA pour définir leur stratégie de sauvegarde.
Chez Falcot SA, les sauvegardes répondent à deux besoins : récupérer des fichiers supprimés par erreur et remettre en route rapidement tout ordinateur (serveur ou bureautique) dont le disque dur subit une panne.

9.10.1. Sauvegarde avec rsync

Les sauvegardes sur bandes ayant été jugées trop lentes et trop coûteuses, les données seront sauvegardées sur les disques durs d'un serveur dédié, où l'emploi du RAID logiciel (détaillé dans la Section 12.1.1, « RAID logiciel ») les protégera d'une défaillance du disque. Les ordinateurs bureautiques ne sont pas sauvegardés individuellement, mais les utilisateurs sont informés que leur compte personnel, situé sur le serveur de fichiers de leur département, sera sauvegardé. La commande rsync (du paquet éponyme) sauvegarde quotidiennement ces différents serveurs.
L'espace disque disponible interdit la mise en place d'une sauvegarde complète quotidienne. C'est pourquoi la synchronisation par rsync est précédée d'une duplication du contenu de la dernière sauvegarde par des liens durs (hard links), qui évitent de consommer trop d'espace disque. Le processus rsync ne remplacera ensuite que les fichiers modifiés depuis la dernière sauvegarde. Ce mécanisme permet de conserver un grand nombre de sauvegardes sur un volume réduit. Toutes les sauvegardes étant accessibles en même temps (par exemple dans des répertoires différents d'un même volume accessible à travers le réseau), on pourra effectuer rapidement des comparaisons entre deux dates données.
Ce mécanisme de sauvegarde se met facilement en place à l'aide du programme dirvish. Il emploie un espace de stockage des sauvegardes (bank, dans son vocabulaire) dans lequel il place les différentes copies horodatées des ensembles de fichiers sauvegardés (ces ensembles sont nommés vaults, donc « chambre forte », dans la documentation de dirvish).
La configuration principale se trouve dans le fichier /etc/dirvish/master.conf. Elle indique l'emplacement de l'espace de stockage des sauvegardes, la liste des ensembles à sauvegarder ainsi que des valeurs par défaut pour l'expiration des sauvegardes. Le reste de la configuration se trouve dans les fichiers bank/vault/dirvish/default.conf et contient à chaque fois la configuration spécifique à l'ensemble de fichiers en question.

Exemple 9.3. Fichier /etc/dirvish/master.conf

bank:
    /backup
exclude:
    lost+found/
    core
    *~
Runall:
    root    22:00
expire-default: +15 days
expire-rule:
#   MIN HR    DOM MON       DOW  STRFTIME_FMT
    *   *     *   *         1    +3 months
    *   *     1-7 *         1    +1 year
    *   *     1-7 1,4,7,10  1
Le paramètre bank indique le répertoire dans lequel les sauvegardes sont stockées. Le paramètre exclude permet d'indiquer des fichiers (ou des formes de noms de fichiers) à exclure de la sauvegarde. Le paramètre Runall est la liste des ensembles de fichiers à sauvegarder avec un horodatage pour chaque ensemble, ce dernier permet simplement d'attribuer la bonne date à la copie au cas où la sauvegarde ne se déclencherait pas exactement à l'heure prévue. Il faut indiquer un horaire légèrement inférieur à l'horaire réel d'exécution (qui est 22h04 par défaut sur un système Debian, selon /etc/cron.d/dirvish). Enfin, les paramètres expire-default et expire-rule définissent la politique d'expiration (donc de conservation) des sauvegardes. L'exemple précédent conserve pour toujours les sauvegardes générées le premier dimanche de chaque trimestre, détruit après un an celles du premier dimanche de chaque mois et après 3 mois celles des autres dimanches. Les autres sauvegardes quotidiennes sont conservées 15 jours. L'ordre des règles compte : dirvish emploie la dernière règle qui correspond, ou celle mentionnée dans expire-default si aucune des règles de expire-rule ne correspond.

Exemple 9.4. Fichier /backup/root/dirvish/default.conf

client: rivendell.falcot.com
tree: /
xdev: 1
index: gzip
image-default: %Y%m%d
exclude:
    /var/cache/apt/archives/*.deb
    /var/cache/man/**
    /tmp/**
    /var/tmp/**
    *.bak
L'exemple ci-dessus précise l'ensemble de fichiers à sauvegarder : il s'agit de fichiers sur la machine rivendell.falcot.com (pour une sauvegarde de données locales, il faut simplement préciser le nom de la machine locale tel que hostname le rapporte), en particulier ceux qui sont dans l'arborescence racine (tree: /) à l'exclusion de ceux listés dans exclude. La sauvegarde restera limitée au contenu d'un seul système de fichiers (xdev: 1), elle n'inclura pas les fichiers d'autres montages. Un index des fichiers sauvegardés sera généré (index: gzip) et l'image sera nommée selon la date du jour (image-default: %Y%m%d).
De nombreuses options existent, toutes documentées dans la page de manuel dirvish.conf(5). Une fois ces fichiers de configuration mis en place, il faut initialiser chaque ensemble de fichiers avec la commande dirvish --vault vault --init. Puis l'invocation quotidienne de dirvish-runall créera automatiquement une nouvelle copie de sauvegarde juste après avoir supprimé celles qui devaient l'être.

9.10.2. Restauration des machines non sauvegardées

Les ordinateurs bureautiques, qui ne sont pas sauvegardés, pourront être réinstallés à partir des DVD-Rom personnalisés préparés avec Simple-CDD (voir Section 12.3.3, « Simple-CDD : la solution tout en un »). Comme il s'agit d'une installation à partir de zéro, cela perdra toute configuration qui aura été faite après l'installation initiale ; cela ne pose pas de problème, puisque tous les systèmes sont connectés à un annuaire LDAP qui centralise les comptes utilisateurs et la plupart des applications bureautiques sont préconfigurées par le biais de dconf (voir Section 13.3.1, « GNOME » à ce propos).
Les administrateurs de Falcot SA sont conscients des limites de leur politique de sauvegarde. Ne pouvant pas protéger le serveur de sauvegarde aussi bien qu'une bande dans un coffre ignifugé, ils l'ont installé dans une pièce séparée de sorte qu'un sinistre tel qu'un incendie se déclarant dans la salle des serveurs ne détruise pas aussi les sauvegardes. Par ailleurs, ils réalisent une sauvegarde incrémentale sur DVD-Rom une fois par semaine — seuls les fichiers modifiés depuis la dernière sauvegarde sont concernés.