Installation d’un serveur de sauvegarde: Bacula
Said ASSOUMANI 11 avril 2012Introduction
L’année dernière lors de mon stage de fin d’année, parmi mes missions j’ai dû installer un serveur de sauvegarde. J’ai donc décidé de faire un petit break concernant les technologies Oracle et partager à travers deux articles ce que j’ai fait lors de mon stage. Pour cet article, dans un premier temps je vais vous présenter ce qu’est BACULA et dans un second temps vous montrer »un moyen » d’installation sur CentOS 5.
Présentation
Bacula est un logiciel libre qui va nous permettre de faire des sauvegardes , restaurations de données en réseaux.
Il fonctionne sur un model client-serveur. Sur le serveur on aura différents composants installés tel que le Bacula Director qui va agir comme chef d’orchestre , le catalogue qui va stocker nos différents actions…
Sur le client , on va juste retrouver un service , le bacula file qui sera configuré par la suite pour communiquer avec notre serveur (Bacula Director).
Il faut savoir que ce logiciel , qui rappelons le est libre permet de sauvegarder sur plusieurs type de supports tels que les bandes magnetiques , disques dur , CD/DVD…
Composants et services de BACULA
Bacula est constitué des cinq composants ou services majeurs suivants :
- Le service Bacula Director est le chef d’orchestre son role est de superviser toutes les opérations de sauvegarde, restauration, vérification et archivage.
- Le service Bacula Console va permettre à l’administrateur de communiquer avec le Bacula Director (Console/GUI).
- Le service Bacula Storage est chargé de transférer les données aux support de sauvegarde et permet de les rstaurer.
- Les services Catalogue sont role est de maintenir la base de données (MySQL, PostgreSQL, ou SQLite. )et les informations sur les données sauvegardés.
- Le service Bacula File est le programme installé sur la machine à sauvegarder.
Schema d’interactions des services BACULA
Installation BACULA
Dans la suite nous aurons :
- Un server Bacula sur un système GNU/UNIX, plus précisément sur CentOs 5, l’adresse IP de cette machine est : 192.168.1.5 où l’on installera le Director, le Catalogue, le Storage et la Console (A bien retenir).
- Un Client Bacula sur un système Windows, plus précisément sur Windows 7, l’adresse IP de cette machine n’étant pas statique on indiquera le nom d’hôte de la machine où l’on installera le File Daemon ici : PC_CLIENT.lolokai.fr (A bien retenir).
Par la suite notre utilisateur root sera nommé : Root et notre utilisateur normale sera nommé User.
Sauf précisions, toutes les commandes seront rentrées par l’utilisateur Root.
Installations des pré-requis
Dans le terminal, entrez les commandes suivantes :
yum -y install libxml2-devel zlib-devel pango-devel atk-devel libtermcap-devel
yum -y install gtk2-devel libgnomeui-devel ORBit2-devel libart_lgpl-devel
yum -y install libbonobo-devel libbonoboui-devel GConf2-devel freetype-devel mysql-devel
yum -y install autoconf automake e2fsprogs-devel gcc-c++ glibc-devel glibc-headers
yum -y install krb5-devel libacl-devel libgomp libstdc++-devel libtermcap-devel m4 make mysql mysql-server
yum -y install ncurses ncurses-devel openssl-devel php qt4 qt4-devel readline-devel redhat-rpm-config rpm-build
Si vous n’avez pas le Perl-DBI sur votre machine :
wget http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.616.tar.gz
tar -zxvf DBI-1.616.tar.gz
cd DBI-1.616
perl Makefile.PL
make
make test
make install
Installer aussi le module Perl:
wget http://mirror.centos.org/centos/5/os/i386/CentOS/logwatch-7.3-9.el5_6.noarch.rpm
rpm -Uvh logwatch-7.3-8.el5.noarch.rpm
Puis installer le paquet suivant:
yum install qwt qwt-devel wxGTK
Installations de la base de données MySQL
yum install mysql-server
yum install mysql-devel
/etc/init.d/mysqld start
mysqladmin –u root password ‘vote_mot_de_passe’
chkconfig –add mysqld
Installations des sources bacula
Maintenant passons aux choses sérieuses, nous allons par la suite télécharger les différents sources rpms, avant cela rendons nous dans le dossier /etc/tmp
cd /etc/tmp
Téléchargement des sources
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-bat-5.0.3-2.src.rpm
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-mtx-5.0.3-1.src.rpm
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-docs-5.0.3-1.src.rpm
wget http://downloads.sourceforge.net/project/bacula/rpms/5.0.3/bacula-5.0.3-1.src.rpm
Cela fait, nous allons attribuer certains droits à l’utilisateur User pour pouvoir “construire” (installer) ces sources.
Passer à l’utilisateur User et rentrer la commande suivante :
cp -r /usr/src/redhat ~/rpm_build
Puis créer un fichier caché .rpmmacros dans votre répertoire Home :
cd /home
touch .rpmmacros
Insertion des deux lignes suivantes dans le fichier .rpmmacros :
%_topdir %(echo ${HOME}/rpm_build)
%_tmppath %{_topdir}/tmp
Cela fait , retournez maintenant dans le répertoire /etc/tmp et rentrer en tant que User les commandes suivantes (pour cette partie la patience est de mise) :
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-5.0.3-1.src.rpm
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-bat-5.0.3-2.src.rpm
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-mtx-5.0.3-1.src.rpm
rpmbuild –rebuild –define « build_centos5 1″ –define « build_mysql 1″ –define « build_bat 1″ –define « build_wxconsole 1″ bacula-docs-5.0.3-1.src.rpm
Dans le même répertoire /etc/tmp , repasser en utilisateur Root, et rentrer les commandes suivantes :
rpm -Uvh bacula-libs-5.0.3-1.x86_64.rpm
rpm -Uvh bacula-mysql-5.0.3-1.x86_64.rpm
rpm -Uvh bacula-bat-5.0.3-2.x86_64.rpm
chown bacula:bacula /usr/lib64/libbac-5.0.3.so
Donner les privilèges MySQL
/usr/lib64/bacula/grant_mysql_privileges –p
Password : ’votre_mot_de_passe’
Création de la base de donnée Bacula
/usr/lib64/bacula/create_mysql_database –p
Password : ’votre_mot_de_passe’
Création des tables Bacula
/usr/lib64/bacula/create_mysql_tables –p
Password : ‘Votre_Mot_de_Passe’
On se connecte à la base de données pour attribuer un mot de passe pour bacula :
mysql –u root -p
Password : ‘Votre_Mot_de_Passe’
mysql > set password for bacula=password(‘bacula password’);
mysql > set password for bacula@localhost=password(‘bacula password’);
Si vous voulez vérifier que tout va pour le mieux :
mysql> select user,host,password from mysql.user where user=’bacula’;
Voila , on vient de finir l’installation des différents composants de notre serveur de sauvegarde Bacula
Conclusion:
Tout au long de cet article , nous avons vu comment les composants Bacula interagissent entre eux , et surtout comment les installer.
Dans un prochain article , nous verrons comment configurer bacula coté serveur et coté client, nous aurons aussi une presentation de l’interface graphique de bacula et enfin nous verrons comment sauvegarder et récupérer des données.
Avez vous deja installé Bacula ?
si non , vous utilisez quel programme « libre » pour vos sauvegarde?
Je reste ouvert à tous commentaires
Said ASSOUMANI



Comments (8)
Hum j en avait deja entendu parlé de Bacula. Tu l’utilises sur combien de serveur ? J vais le tenter de mon coté sur des debian.
Installé et utilisé en entreprise ! C’est en prime assez facile de modifier le comportement du logiciel pour changer un certain nombre de paramètres qui peuvent être gênants par défaut.
J’en profite d’ailleurs pour dire que le manuel est ultra complet et qu’il permet souvent de trouver l’option-qui-fait-le-café-mais-seulement-les-jours-impairs ce qui est quand même relativement pratique.
Blague à part, c’est un excellent logiciel auquel il ne manque pas grand chose pour être utilisable en toute circonstance.
@Loo:
Lorsque j’ai du installer bacula , je l’avais fait pour environ 5 serveurs ( petit SI )
Mail il y avais quand même pas mal de machines clientes…
J’ai jamais essayer sur debian , à mon avis il y n’y a pas grand chose qui change
@Gibbon
Lorsque j’ai installé le logiciel , j’avais un peu du mal car il fallait quasiment tout faire au niveau des fichiers conf, mais bon ça fait deja un an , je pense qu’ils ont du mettre une interface graphique pour gerer ça.
En fait, non, ils ont rien ajouté comme interface graphique. Le plus gros souci de ce logiciel, c’est qu’il faut ingurgité une grosse doc avant d’être capable de pondre une configuration basique qui « juste marche ».
Mais une fois qu’on a compris les différentes parties du bacula-director.conf (parce qu’en fait, c’est lui le plus compliqué au final), ça se passe déjà bien mieux.
Merci pour cette article. Pour ma part, j’ai préféré backuppc. Celui-ci a l’avantage d’utiliser les liens physiques (hardlinks) pour gérer les multiples copies d’un même fichier sur le serveur de sauvegarde, et du coup, de pouvoir conserver des sauvegardes sur une durée importante en consommant moins d’espace disque.
Bonjour Boris ,
De rien , en fait j’avais proposé aussi backuppc , mais pour des raisons privées l’entreprise pour laquelle je travaillais on voulu installer BACULA…
De plus il me semble que Backuppc utilise rsync , alors que bacula utilise un agent comme client je pense qu’avec ce système c’est plus facile de gérer les differentes machine clientes surtout les Windows.
Bonjour,
Très bon logiciel je l’utilise sur debian depuis un moment dans quelques entreprises
j’avais longtemps hésité avec Backuppc mais pour la gestion des postes sous windows
bacula est mieux je trouve
Bonne journée
Bonjour, premier post pour un blog que j’ai découvert – parcours encore – depuis peu.
Parlons un peu de Bacula. Ces principaux avantages sont d’être gratuit et OpenSource, mais ce dernier peut être également son principal inconvénient si les équipes des dev’ ne sont pas dynamiques.
J’ai étudié, il y a quelques temps ce produit en terme de fonctionnalités et je peux dire qu’il se trouve largement en deçà des autres produits (payants) du marché et notamment des tenors. Pas de déduplication que ce soit à la source ou à la cible, BackupToDisktoTape mais avecle disque uniquement comme tampon (certes c’est bien utile pour éviter le shoe-shining mais ce n’est pas l’unique raison de faire de BtD), pas de multithreading côté client (on rempli le tuyau) juste du multiplexing (on sature le media), pas de synthétique (pratique quand on ne peut faire de la dédupl’ à la source et que le Plan de Sauvegarde l’exige), diff et Inc, limités au time-stamp, pas de policies, ….
Alors pour celui qui maîtrise et qui a du temps devant lui, pas de problème, sinon les autres allez taper votre patron pour obtenir le budget qui va bien (s’il vous titille sur le prix que cela coûte – produit+formation – demandez-lui combien il accepte de perdre si ça casse). D’ailleurs pour bâtir une architecture de sauvegarde on doit toujours partir des RTO et RPO, sinon on monterait à tout bout de champs des infra redondantes avec des DRP bétons, ce qui est loin d’être le cas. On ne fait pas de la sauvegarde pour faire de la sauvegarde mais pour faire de la restauration et l’infra doit être taillée selon le besoin.
Bref, de la base prometteuse mais réservée aux petites structures qui ont décidés d’investir dans le temps-homme plutôt que le temps-machine, encore faut-il que ces hommes maîtrisent les Bonne Pratiques de la Sauvegarde ce qui n’est pas le cas de tous les Admin et encore moins les DBA (pas leur métier).