Bacula : Mise en place d'un serveur de Backup Performant

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

1 Introduction

Bacula est un serveur de Backup qui permet l'achat d'autres solution commerciale à base de plugins pour tel ou tel chose en plus. Il a l'avantage également de posséder une jolie interface web graphique qui fait des beaux graphs etc...

Bref, son concurent BackupPC que j'ai utilisé pendant longtemps est très bien, mais n'a pas tout les avantages de Bacula comme la vérification par checksum sur les fichiers ou bien un plugin MySQL.

2 Prérequis

Il va falloir prévoir quelques petits services avant de faire le grand saut :

3 Installation

On va la faire sous Debian hien, ne changeons pas nos bonnes habitudes :

Command apt-get
apt-get install bacula bacula-client bacula-common bacula-console bacula-director-common bacula-director-mysql bacula-fd bacula-sd bacula-sd-mysql bacula-server

Par défaut, Bacula s'installe avec SQLite pour qe ce soit plus rapide à mettre en place, mais les paquages ci dessus sont pour MySQL. J'ai choisis ici de mettre ce serveur de base de donnée car pour l'interface graphique web, il faut absolument utiliser MySQL ou PostgreSQL. Par soucis de simplicité, j'ai choisis MySQL :-)

Pendant l'installation des packages, il vous sera demandé le mot de passe du serveur SQL pour qu'il puisse créer tout ce dont il a besoin (base de donnée + utilisateur).

4 Configuration

Voici un shéma expliquant le positionnement des fichiers de configuration. Cela permet entre autre de prévoir comment agencer aux mieux la structure de ces fichiers :
Bacula-objects.png

Et voivi le comportement des fichiers entre eux :
Conf-Diagram.png

4.1 Language

La configuration n'est pas toujours évidente, c'est pourquoi un peu d'explication ne fait pas de mal pou comprendre ce language :

  • FileSet : Que sauvegarder ?
  • Client : Qui sauvegarder ?
  • Schedule : Quand sauvegarder ?
  • Pool : Où sauvegarder ? (c'est à dire : Sur quel volume ?)
  • Volume : c'est un simple support physique (cartouche, ou simple fichier) sur lequel Bacula écrit vos données de sauvegarde
  • Pools : regroupent les Volumes de sorte qu'une sauvegarde n'est pas restreinte à la capacité d'un unique Volume

Bien que les options de base soient spécifiées dans la ressource Pool du fichier de configuration du Director, le Pool réel est géré par le Catalogue Bacula. Il contient les informations de la ressource Pool (bacula-dir.conf) ainsi que les informations concernant tous les Volumes qui ont été ajoutés au Pool. L'ajout de Volumes se fait en principe manuellement depuis la Console grâce à la commande label.

Pour que Bacula puisse lire ou écrire sur un Volume physique, celui-ci doit avoir reçu un étiquettage logiciel afin que Bacula soit assuré que le bon Volume est monté. Ceci s'effectue en principe manuellement depuis la Console grâce à la commande label.

  • Director : Pour définir le nom du Director et son mot de passe pour l'authentification du programme Console. Il ne doit y avoir qu'une seule définition de ressource Director dans le fichier de configuration. Si vous avez soit /dev/random soit bc sur votre machine, Bacula génèrera un mot de passe aléatoire lors du processus de configuration, sinon, il sera laissé blanc.
  • Job : Pour définir les Jobs de types sauvegarde et restauration, et pour lier les ressources Client, FileSet et Schedules à utiliser conjointement pour chaque Job.
  • JobDefs : Ressource optionnelle destinée à fournir des valeurs par défaut pour les ressources Job.
  • Schedule : Pour définir le moment où un Job doit être lancé automatiquement par le scheduler interne de Bacula.
  • FileSet : Pour définir l'ensemble des fichiers à sauvegarder pour chaque client.
  • Client : Pour définir quel Client est à sauvegarder.
  • Storage : Pour définir sur quel périphérique physique les volumes seront montés.
  • Pool : Pour définir quel le pool de volumes qui peut être utilisé pour un Job donné
  • Catalog : Pour définir la base de données où conserver les listes des fichiers sauvegardés et des volumes où ils ont été sauvegardés.
  • Messages : Pour définir les destinataires (ou les fichiers de logs) des messages d'erreur et d'information.

4.2 Director

Nous allons modifier le catalogue ici afin qu'il puisse se connecter sur la base MySQL. Editez votre fichier /etc/bacula/bacula-dir.conf et modifiez ces lignes pour les adapter à vos besoins :

Configuration File /etc/bacula/bacula-dir.conf
Catalog {
  Name = MySQL
  dbname = bacula
  user = bacula
  password = "bacula_password"
  DB Address = 'localhost
  DB Port = 3306
}

Pour obtenir toutes les informations pour le director, je vous invites à accéder à cette page : http://www.bacula.org/fr/rel-manual/Configurer_le_Director.html