Lolokai – Supervision, systèmes, réseaux, base de données…

8

Installation d’un serveur de sauvegarde: Bacula

Said ASSOUMANI 11 avril 2012

Introduction

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
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)

  1. 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.

    Répondre
  2. @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.

    Répondre
    • 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.

      Répondre
  3. 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.

    Répondre
    • 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.

      Répondre
  4. 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

    Répondre
  5. 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).

    Répondre

Laisser un commentaire

 

Login to your account

Can't remember your Password ?

Register for this site!