Bacula
Il surgit de la nuit et absorbe l’essence vitale de vos ordinateurs.
Introduction
Qu'est ce que Bacula ?
Bacula est un programme Client/serveur permettant de faire des sauvegardes, restaurations, et vérifications des données d'un ordinateur sur un réseau. Il a la possibilité de sauvegarder sur un grand nombre de support.
Bacula est à la fois facile d'utilisation et efficace, offrant de nombreuses fonctions avancées facilitant la recherche et la restauration de fichiers perdus ou endommagés. Grâce à sa conception modulaire, Bacula est utilisable depuis un simple système constitué d'un ordinateur, jusqu'à un système de plusieurs centaines d'ordinateurs sur un vaste réseau.
Qui a besoin de Bacula ?
Par rapport aux différents outils de sauvegarde de données tel que tar, dump ou bru, Bacula est destiné aux utilisateurs souhaitant un programme avec une solution réseau, plus de flexibilités et le confort d’un catalogue. Cependant des connaissances des systèmes Unix ou d’un système de sauvegarde sont nécessaires pour son installation et utilisation.
Bacula est donc conçu pour protéger des données en suivant des règles, comme la réutilisation d’une cartouche ou la sauvegarde sur plusieurs volumes par exemple.

Composants
- Le service Bacula Director est le programme qui supervise toutes les opérations de sauvegarde, restauration, vérification et archivage et est exécuté en tant que daemon ou service (c'est à dire en tâche de fond).
- Le service Bacula Console est le programme qui permet à l'administrateur ou à l'utilisateur de communiquer avec le Bacula Director.
- Le service Bacula File est le programme installé sur la machine à sauvegarder. Il est spécifique au système sur lequel il est exécuté et a pour objectif de fournir les attributs des fichiers et les données requis par le Director.
- Le service Bacula Storage est le programme qui transfère les données et les attributs de fichiers aux média physiques ou aux volumes et les restitue lors de restaurations c'est-à-dire qu’il gère les opérations de lecture et d'écriture.
- Les services Catalogue ont pour tâche de maintenir à jour la base de données des index de fichiers et volumes pour tous les fichiers sauvegardés. Ils permettent à l'administrateur système ou à l'utilisateur de localiser rapidement et restaurer n'importe quel fichier, de plus un enregistrement de chaque volume utilisé, chaque job exécuté et chaque fichier sauvegardé ce qui permet des restaurations et une gestion de volumes efficaces. Bacula supporte actuellement trois bases de données différentes, MySQL, PostgreSQL, et SQLite.
Ces bases de données fournissent de nombreuses fonctions telles l'indexation rapide, requêtes arbitraires, et sécurité. Bien que nous prévoyions de supporter d'autres bases de données SQL majeures, l'implémentation actuelle s'interface seulement avec MySQL, PostgreSQL, et SQLite.
- Le service Bacula Monitor est le programme qui permet à l'administrateur ou à l'utilisateur de contrôler le statut des daemons Bacula (Bacula Directors, Bacula File Daemons et Bacula Storage Daemons). Actuellement, la seule version disponible est une version GTK+, qui fonctionne avec Gnome et KDE.
Pour réaliser avec succès une sauvegarde et restauration, le Director Daemon, le File Daemon, le Storage Daemon et MySQL, PostgreSQL ou SQLite doivent être configurés et lancés.
Installation
Pré requis
Bacula nécessite de certains paquetages externes (tels SQLite, MySQL ou PostgreSQL) pour compiler correctement en accord avec les options choisies. Pour simplifier l’utilisation, plusieurs de ces programmes sont inclus dans deux paquetages depkgs (paquetages de dépendances). Ceci fournit tous les paquets nécessaires plutôt que de contraindre l’utilisateur à les trouver sur la Toile, les charger et installer.
Distribution des fichiers source
A partir de la version 1.38.0, le code source est éclaté en quatre fichiers tar correspondant à quatre modules différents dans le CVS Bacula. Ces fichiers sont :
- bacula-1.38.0.tar.gz - Il s'agit de la distribution primaire de Bacula.
- bacula-docs-1.38.0.tar.gz - Contient une copie du répertoire docs, avec les documents préconstruits : Répertoire html anglais, fichier html unique et fichier PDF.
- bacula-gui-1.38.0.tar.gz - Contient les programmes graphiques en dehors du cœur de l'application. Actuellement, il contient bacula-web, un programme PHP pour produire une vue d'ensemble des statuts de vos jobs Bacula consultable dans un navigateur, et bimagemgr, un programme qui permet de graver des images de CDROMS depuis un navigateur avec les volumes Bacula.
- bacula-rescue-1.8.1.tar.gz - Contient le code du CDROM de secours Bacula. En utilisant ce code, il est possible de graver un CDROM contenant la configuration du système et une version statiquement liée du File Daemon. Ceci peut permet de repartitionner et reformater aisément les disques durs et de recharger le système avec Bacula en cas de défaillance du disque dur.
- winbacula-1.38.0.exe - Ce fichier est l'installeur 32 bits Windows pour l'installation du client Windows (File Daemon) sur une machine Windows.
Paquetage et dépendances
- Créer un répertoire bacula, dans lequel placer les sources de Bacula et le paquetage de dépendances.
- Désarchiver le depkg dans le répertoire bacula.
- Déplacer dans le répertoire obtenu: cd bacula/depkgs
- Exécuter make
Construire Bacula à partir des sources
L'installation basique est plutôt simple.
- Installer et construire chaque depkgs.
- Configurer et installer MySQL ou PostgreSQL. S’il est installé depuis des rpms, veiller à installer mysql-devel, afin que les fichiers d'en-têtes de MySQL soient disponibles pour la compilation de Bacula.
- En alternative à MySQL et PostgreSQL, configurer et installer SQLite, qui fait partie du paquetage depkgs.
- Désarchiver les sources de Bacula, de préférence dans le répertoire bacula.
- Déplacez-vous dans ce répertoire.
- Exécutez ./configure.
- Examiner très attentivement la sortie de ./configure, particulièrement les répertoires d'installation des binaires et des fichiers de configuration.
- Il est possible de relancer ./configure avec des options différentes après une première exécution, cela ne pose aucun problème, mais il serait préférable d'abord exécuter: make distclean
- afin d'être certain de repartir de zéro et d'éviter d'avoir un mélange avec vos premières options.
- make
- Si des erreurs apparaissent durant le linking dans le répertoire du Storage Daemon (/etc/stored), c'est probablement en raison du chargement de la librairie statique du système.
- Si cette étape (make) est ignorée et poursuivit immédiatement avec make install, deux erreurs sérieuses sont commises : d'abord, l’installation va échouer car Bacula a besoin d'un make avant un make install ; ensuite, l’utilisateur se privera de la possibilité de s’assurer qu'il n'y a aucune erreur avant de commencer à écrire les fichiers dans les répertoires système.
- Avant de lancer la commande make install, vérifier consciencieusement que la commande make a bien été exécuté et que tout a été compilé proprement et lié sans erreur.
- Créer la base de données Bacula et ses tables (si vous utilisez MySQL ou PostgreSQL) ou installer et configurer SQLite Phase II (si vous utilisez SQLite).
- Démarrer Bacula (./bacula start)
- Lancer la Console pour communiquer avec Bacula.
Configuration
Il est constitué de 3 daemons :
- bacula-dir –c bacula-dir.conf : Le service directeur supervise et dirige toutes les opérations, tous les jobs.
- bacula-sd –c bacula-sd.conf : Le service qui gère la sauvegarde
- bacula-fd –c bacula-fd.conf : Le service qui gère le serveur de fichier.
bacula-dir.conf
Les accès : consoles, catalogue, serveurs de fichiers et serveurs de stockage les jobs :
- Quels fichiers ? le Fileset => Calcul de signatures MD5 ou SHA1 des fichiers sauvegardés
- Quel niveau de sauvegarde ? full, Incrémental, différentiel
- Sur quelle machine ? le client
- Quand ? le scheduleur
- Sur quel support ? fichier, dvd, bande
- Où ? le pool
Jobs particuliers : BackupCatalog, RestoreFiles
bacula-fd.conf
Ce service est installé sur toutes les machines (= tous les clients) dont on a à sauvegarder des systèmes de fichiers
bacula-sd.conf
- Définition des différents devices (=supports)
bconsole.conf ou bwx-console.conf
Permet de se connecter au directeur
- Console anonyme => tout privilèges
- Console ”nommée” => détient absolument aucun privilège, exceptés ceux explicitement spécifiés dans la ressource Console du fichier de configuration du Director
- Une autre => permet aux portables et autres machines utilisant DHCP de ”notifier” le Director de leur adresse IP courante.
Relations entre les services

Fonctionnement
Commandes courantes
- Monitorer :
status dir

Commandes indispensables
- Labelliser une bande :
label
- Jobs :
run : Lancer un job
cancel : Arrêter un job
- Jobs programmés :
disable job : Desactive un job
enable job : Active un job
Commandes utiles
- list media : détaille tous les pool
Pool: Default
No results to list.
Pool: Error
No results to list.
Pool: Catalogue
| mediaid | volumename | volstatus | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype | lastwritten | | 1 | Catalogue | Append | 3,491,531,045 | 6 | 31,536,000 | 1 | 16 | 1 | LTO-2 | 2006-10-04 02:50:00 |
Pool: FullCommun
| mediaid | volumename | volstatus | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype | lastwritten | | 2 | FullCommun-1 | Append | 94,380,331,899 | 95 | 31,536,000 | 0 | 1 | 0 | LTO-2 | 2006-09-26 22:27:15 |
Pool: IncCommun
| mediaid | volumename | volstatus | volbytes | volfiles | volretention | recycle | slot | inchanger | mediatype | lastwritten | | 3 | IncCommun-1 | Append | 375,616,181 | 5 | 31,536,000 | 1 | 6 | 1 | LTO-2 | 2006-10-03 23:18:19 |
- list media pool=IncCommun : détaille un pool
Commandes qui servent
- Restaurer un /plusieurs fichiers :
restore all
puis choisissez le choix 5
(help, cd, mark, estimate, done)
- Effacer les enregistrements dans le catalogue :
purge files jobid= | job = | client =
purge jobs client= (all jobs)
purge volumes | volume= (all jobs)
- Supprimer un volume/ pool dans le catalogue :
Delete [volume= nom_volume pool=pool-name jpb jobid=id
Avantages / Inconvénients
Implémentation
- Job Control
o Sauvegarde/restauration par le réseau avec un Director centralisé.
o Scheduler interne pour le lancement automatique des Jobs.
o Programmation de plusieurs Jobs à la même heure.
o Console d'interfaçage avec le Director permettant un contrôle total.
- Sécurité
o Vérification des fichiers précédemment référencés offrant des possibilités á la Tripwire (Vérification de l'intégrité du système).
o Authentification par échange de mots de passe CRAM-MD5 entre chaque composant.
o Chiffrement TLS (ssl) entre chaque composant.
o Restauration d'un ou plusieurs fichiers sélectionnés interactivement parmi les fichiers d'une sauvegarde antérieure.
o Restauration d'un système complet "depuis le métal brut". Cette opération est largement automatisée pour les systèmes Linux et partiellement pour les Solaris.
o Listage et restauration des fichiers avec les outils autonomes bextract. Permet l'extraction de fichiers quand Bacula et/ou le catalogue ne sont pas disponibles.
o Possibilité de régénérer le catalogue par balayage des volumes de sauvegarde grâce au programme bscan.
- Catalogue SQL
o Fonctions de base de données concernant les informations sur les volumes, pools, jobs et fichiers sauvegardés.
- Gestion avancée des pools et volume
o Marquage des Volumes pour prévenir tout écrasement accidentel.
o Sauvegardes multi-volumes.
o Format d'écriture de données sur les volumes indépendant des machines. Des clients différents (Windows, Linux) peuvent tous être sauvegardés sur le même volume si désiré.
- Support pour de nombreux systèmes d'exploitation
o Sauvegarde et restaure les POSIX ACLs.
o Possibilité de restriction de l’accès des utilisateurs à leurs données seulement.
o Support des étiquettes de cartouches ANSI et IBM.
- Divers
o Implémentation multithread.
o Un fichier de configuration compréhensible et extensible pour chaque daemon.
Avantages
- Du fait qu'il y a un client pour chaque machine, vous pouvez sauvegarder et restaurer des clients de tous types avec l'assurance que tous les attributs de fichiers sont convenablement sauvegardés et restaurés.
- Possibilité de sauvegarder des clients sans aucun logiciel client en utilisant NFS ou Samba.
- Une base de données complète aux standards SQL de tous les fichiers sauvegardés.
- Élagage automatique du catalogue, ce qui simplifie l'administration de la base de données.
- N'importe quel moteur de base de données SQL peut être utilisé.
- Puisque Bacula utilise des daemons fichier clients, toute base de données, toute application peut être arrêtée proprement, puis redémarrée par Bacula avec les outils natifs du système sauvegardé.
- Bacula intègre un Job Scheduler.
- Bacula utilise des ports TCP/IP bien définis, pas de rpcs, pas de mémoire partagée.
- Bacula possède une interface shell qui permet á l'administrateur d'utiliser des outils tels que ssh pour administrer n'importe quelle partie de Bacula depuis n'importe où.
- Bacula dispose d'un CD de secours pour les systèmes Linux dotés des fonctionnalités suivantes :
o Génère sur votre propre système d'un simple make suivi de make burn.
o Utilise le noyau.
o Capture les paramètres de disques et génère les scripts qui permettront de repartitionner automatiquement les disques et de les formater pour y remettre ce qui s'y trouvait avant le désastre.
o Comporte un script qui redémarrera le réseau (avec l'adresse IP correcte).
o Comporte un script qui monte automatiquement les disques durs.
o Comporte un Bacula FD complet statiquement lié.
Restrictions et inconvénients
- Les chemins et noms de fichiers de longueur supérieure á 260 caractères sur les systèmes Win32 ne sont pas supportés.
- La limite du nombres de fichiers dans le catalogue est limité à 4 billions. Le champ File Id passera alors de 32 à 64 bits.
- Les fichiers supprimés après une sauvegarde full sont inclus dans les restaurations.
- Les Modules Système de Fichiers (configuration pour les fichiers spéciaux) ne sont pas encore implémentés.
- Le chiffrement des données sur les volumes n’est pas encore implanté.
- Bacula ne peut restaurer automatiquement les fichiers d'un job depuis deux ou plusieurs périphériques de stockage différents.
- Bacula ne supporte pas les volumes disque amovibles pour l'instant.
|