Bacula
It comes by night and sucks the vital essence from your computers.
http://yom.retiaire.org
Plan
• Présentation
• Architecture
• Description
• Fonctionnalités
• Mise en oeuvre
Présentation
• Bacula est un logiciel de sauvegarde centralisée
distribué sous licence GPL.
– Backup + Dracula
• Prend en charge l’automatisation des sauvegardes
totales, incrémentales et différentielles.
• Prend également en charge les opérations de
restauration de fichiers et,dans certains cas, de
restauration à zéro (bare metal recovery).
• S’appuie sur une architecture modulaire et distribuée.
• Utilise un SGBD (MySQL, PostgreSQL) pour gérer le
catalogue des sauvegardes.
• Supporte un grand nombre de lecteurs et de robots.
Architecture
Description
• Director
– Serveur de sauvegarde.
– Gère le déclenchement des tâches de sauvegarde et de restauration
– Gère le catalogue
• File Server
– Programme client pour les sauvegardes et les restaurations
– S’exécute sur chaque machine sauvegardée
– Prend en charge les transferts de fichiers vers (sauvegarde) et depuis
(restauration) le Storage Server.
• Storage Server
– Serveur de stockage auquel sont rattachés les unités de stockage (lecteurs,
librairies, espace disque).
• Catalog
– Stocke les informations relatives aux objets sauvegardés dans un SGBD.
• Tous ces composants peuvent être installés sur des machines dédiées.
Sauvegarde
Fonctionnalités
• Sauvegarde et restauration Réseau
– Utilisation de ports déclarés
• Ordonnancement des tâches de sauvegarde et parallèlisation
– Gestion des priorités pour chaque tâche
• Sauvegarde multi-volumes
– Gestion de pools de cartouches
• Mécanismes d’authentification des modules
– Utilisation de mots de passe (CRAM-MD5)
• Sécurité des transferts (SSL/TLS)
• Contrôle d’intégrité des fichiers sauvegardés
• Le catalogue peut être recréé à partir des fichiers sauvegardés en
cas de perte de la base de données.
Mise en oeuvre
• Plate-formes supportées
– Tous composants :
• Linux, Solaris, FreBSD, Mac OS X, Tru64
– Client (File Server)
• MS Windows 98/ME/NT/2000/XP
• IRIX
• Lecteurs
– ADIC, ExaByte, Overland, Tandberg, Quantum, HP, Seagate
• Librairies
– Adic Scalar, Dell PowerVault, , Overland, Tandberg.
– Utilisation du script mtx
Installation
• Les composants sont disponibles packagés pour Red
hat / Fedora et Debian.
• Director
– Installation d’un SGBD en local si nécessaire
– Installation des quelques dépendances
– Trilogie configure/make/make install
– Déclaration des ports dans /etc/services
• File Server / Storage Server
– Trilogie configure/make/make install
– Déclaration des ports dans /etc/services
Configuration
• Bacula-dir.conf • Bacula-sd.conf
– Director – Storage
– Client – Director
– Job – Messages
– Schedule – Devices
– Storage • Bconsole.conf
– Catalogue – Director
– Pool
– FileSet
– Messages
• Bacula-fd.conf
– Client
– Director
– Messages
Configuration Client
• Fichier bacula-fd.conf
• Section Director
– Identification du director
– Mot de passe associé
• Section FileDaemon
– Attributs du client
• Section Messages
– Journalisation
– Qui avertir (par mail) en cas de problème
Configuration Director
• Bacula-dir.conf
– Section Director
• Paramètres Serveur
– Section Client
• Identification des clients, un « pavé » par client
– Section FileSet
• Définition et attributs des fichiers à sauvegarder
– Critères de sélection, compressio, checksum
– Section Schedule
• Ordonancement des tâches
– Section Storage
• Identification du serveur de stockage
Configuration des tâches
• Bacula gère 4 types de tâches :
– Backup
• Full, Incremential, Differential
– Restore
• Non programmées
– Verifiy
• Permettent de programmer les contrôles d’intégrité des
sauvegardes
– Checksum, lecture des cartouches, etc.
– Admin
• Planification des tâches d’administration non liées aux sauvegardes
Définition d’une tâche
• Section JobDefs
JobDefs {
Name = "TacheGenerique"
Type = Backup
Level = Incremental
FileSet = "Full Set"
Schedule = "Hebdomadaire"
Storage = File
Messages = Standard
Pool = Default
Priority = 10
}
• Section Job
Job {
Name = "Hebdomadaire Olympe"
JobDefs = "TacheGenerique"
Client = olympe
}
Gestion du stockage
• Format propriétaire (bsr)
– Utilitaires fournis pour gérer manuellement les volumes.
• Configuration du Server Storage
• Chaque unité de stockage est déclarée dans une section Device
– Sauvegarde sur disque
• Media Type = File
• Archive Device = /path/to/backup
– Lecteur seul (exemple)
• Media Type = « 8mm »
• Archive Device = /dev/nst0
– Autochargeur
• Media Type = DDS-4
• Archive Device = /dev/nst0
• Changer Device = /dev/sq0
• Changer Command = /path/to/bacula/mtx-changer arg arg
• AutoChanger = yes
Gestion des sauvegardes
• Depuis la console à l’aide du programme bconsole
• Exécuté sur le serveur (Director) ou toute autre machine
du réseau
• Ouverture d’un pseudo-shell
• Commandes courantes :
– status dir
– status client
– status storage
– show filesets
Lancement d’une sauvegarde
*run
A job name must be specified.
The defined Job resources are:
1: Client1
2: BackupCatalog
3: RestoreFiles
Select Job resource (1-3): 1
Run Backup job
JobName: Client1
FileSet: Full Set
Level: Incremental
Client: olympe
Storage: File
Pool: Default
When: 2004-07-01 19:08:19
Priority: 10
OK to run? (yes/mod/no): yes
Run
Suivi
*messages
01-Jul-2004 19:20 zeus: Start Backup
JobId 4,
Job=BackupCatalog.2004-07-
01_19.20.04
01-Jul-2004 19:20 chronos-sd: Job
BackupCatalog.2004-07-
01_19.20.04 waiting.
Cannot find any appendable volumes.
Please use the "label" command to create
a new Volume for:
Storage: FileStorage
Media type: File
Pool: Default
Restauration
• Recherche des fichiers à restaurer
– Navigation dans la base de données SQL
• Sélection du client
• Sélection du type de tâche
• Sélection des fichies (marquage)
– Lancement de la restauration
• Le client demande le transfert des fichiers sélectionnés
depuis le serveur de stockage
Maintenance du catalogue
• Le catalogue est un composant important mais
pas indispensable.
• Il peut être reconstruit en cas de perte :
– À partir des fichiers sauvegardés
• Interrogation du serveur de stockage
– Tâche potentiellement longue car effectuée par relecture des
médias
– A partir d’une sauvegarde de la base de données
Catalogue
• Exemple: mysqldump bacula-catalog > bacula-catalog.sql
En guise de conclusion
• Projet très novateur
– Certaines fonctionnalités manquent à des solutions
commerciales dites « de premier plan »
– Travail de qualité
• 100.000 lignes de code
• Documentation très fournie : plus de 600 pages !
• Ports déclarés auprès de l’IANA
– Arrivée prochaine d’une interface graphique stable
• Bémol : tarde un peu.
• Bacula-web : interface PHP pour le suivi des sauvegardes
Lien
• Bacula : http://www.bacula.org