Retour

Les sauvegardes

Généralités sur la sauvegarde

La sauvegarde[1] consiste à dupliquer des données stockées dans le Système Informatique (SI) de l'entité, dans le but de les mettre en sécurité.

Cette mise en sécurité a pour but de répondre à deux éventualités de restauration[2] :

  • la restauration de tout ou d'une partie du SI, suite à une dégradation importante ou à une destruction ;

  • la restauration de quelques fichiers, suite à une corruption ou une destruction limitée de données.

On distingue trois types de sauvegardes :

  • la sauvegarde totale ;
  • la sauvegarde différentielle ;
  • la sauvegarde incrémentale.

La sauvegarde peut être :

  • réalisée localement ;

  • sur un média (serveur, disque, bande, CD-ROM) ;

  • hébergé dans le SI (Système Informatique) à des fins de restauration rapide ;

  • archivée  ;

  • externalisée.

Sauvegarde totale

Une sauvegarde totale ou complète, correspond à la copie intégrale d'un contenu à un instant T, sans prendre en compte l'historique.

Coûteuse en temps et en espace, cette sauvegarde reste malgré tout la plus fiable, puisqu'elle assure à elle seule l'intégrité de l'ensemble des données sauvegardées.

Il n'est pas judicieux de ne pratiquer que ce type de sauvegarde, car l'ensemble des données n'est jamais totalement modifié entre deux sauvegardes.

Il existe deux autres méthodes qui procèdent à la sauvegarde des seules données modifiées et/ou ajoutées entre deux sauvegardes totales :

  • la sauvegarde incrémentale ;

  • la sauvegarde différentielle.

Sauvegarde incrémentale

Une sauvegarde incrémentale réalise une copie des fichiers créés ou modifiés depuis la dernière sauvegarde quel que soit son type (complète, différentielle ou incrémentale).

Une sauvegarde totale est réalisée le jour T. Le jour T+1, la sauvegarde incrémentale est réalisée par référence à la sauvegarde précédente, donc la sauvegarde T. Le jour T+2, la sauvegarde incrémentale est réalisée par référence à la sauvegarde précédente, à savoir T+1. Et ainsi de suite.

La restauration d'un système complet à un jour donné (par ex : au jour T+3) se fait en appliquant la dernière sauvegarde complète (jour T), ainsi que toutes les sauvegardes incrémentales jusqu'au jour cible, à savoir T+1, T+2 et T+3.

Lorsqu'il s'agit de la restauration d'un fichier ou d'un répertoire qui a été sauvegardé à la date T+3 (T étant le jour de la sauvegarde totale de référence), seule la sauvegarde incrémentale du jour T+3 est nécessaire.

Sauvegarde différentielle

Une sauvegarde différentielle réalise une copie des fichiers crées ou modifiés, en se basant sur les différences constatées avec la dernière sauvegarde totale (quelles que soient les sauvegardes intermédiaires).

Attention

La notion de sauvegarde différentielle peut varier suivant la solution de sauvegarde utilisée.

Cette présentation est fidèle à l'outil de sauvegarde choisi par EOLE.

Des outils de sauvegarde

Les systèmes GNU/Linux embarquent depuis toujours des outils unitaires d'archivage qui permettent de réaliser des embryons de stratégie de sauvegarde.

Ainsi des outils tels que la commande tar permettent de créer des archives sur des médias locaux (disques, ou lecteurs de bandes).

Via des scripts se basant sur les dates de modifications, il est possible d'implémenter les méthodes de sauvegarde détaillées dans les paragraphes précédents.

Des outils plus complexes, et souvent propriétaires, ont été développés depuis, pour faciliter la création de ces sauvegardes (gestion du contenu à sauvegarder), mais aussi pour faciliter la gestion du calendrier de sauvegarde (programmation des tâches et des successions de sauvegardes).

Enfin, la plupart de ces outils intègrent la gestion de la restauration, avec la possibilité de choisir la date cible à restaurer.

Les solutions logicielles les plus connus sont :

La sauvegarde EOLE

EOLE 2.5 utilise l'outil de sauvegarde libre Bareos.

Backup Archiving REcovery Open Sourced est un dérivé (fork) de l'outil de sauvegarde Bacula : http://www.bareos.org

Bareos permet de sauvegarder :

  • des fichiers et des dossiers

Bareos permet de sauvegarder des données (indifféremment sur des disques locaux ou distants, des bandes magnétiques), de gérer un nombre important et non limité de clients, et évidemment de restaurer facilement les sauvegardes.

Bareos supporte, entre autres, la possibilité de faire des sauvegardes sur plusieurs unités de stockage si une première unité possède une capacité insuffisante.

Le vocabulaire Bareos

Bareos utilise un nombre important de ressources pour définir une sauvegarde.

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-60001.3

Quelques définitions

Job

L'objet le plus élevé est la définition d'un Job, représentant une "sauvegarde" au sens Bareos du terme.

Un Job Bareos est une ressource de configuration qui définit le travail que Bareos doit effectuer pour sauvegarder ou restaurer un client particulier. Un Job consiste en l'association d'un type d'opération à effectuer (Type : backup, restore, verify, etc.), d'un niveau de sauvegarde (Level : Full, Incremental, ...), de la définition d'un ensemble de fichiers et répertoires à sauvegarder (FileSet), et d'un lieu de stockage où écrire les fichiers (Storage, Pool).

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-990008.2

Schedule

Un Job peut être immédiat, mais dans une stratégie de sauvegarde, il est généralement planifié via la ressource Schedule.

Le schedule détermine la date et l'instant où le job doit être lancé automatiquement, et le niveau (total, différentiel, incrémental...) du job en question.

Cette directive est optionnelle. Si elle est omise, le job ne pourra être exécuté que manuellement via la Console.

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1010008.4

Volume

Un Volume est une unité d'archivage, usuellement une cartouche ou un fichier nommé sur disque où Bareos stocke les données pour un ou plusieurs jobs de sauvegarde. Tous les volumes Bareos ont un label unique (logiciel) écrit sur le volume par Bareos afin qu'il puisse être assuré de lire le bon volume. En principe, il ne devrait pas y avoir de confusion avec des fichiers disques, mais avec des cartouches, le risque d'erreur est plus important.

Les volumes ont certaines propriétés comme la durée de rétention des données et la possibilité d'être recyclés une fois cette durée de rétention expirée; ceci afin d'éviter de voir grossir indéfiniment l'espace disque occupé par les sauvegardes.

Pool

La ressource Pool définit l'ensemble des Volumes de stockage (cartouches ou fichiers) à la disposition de Bareos pour écrire les données. En configurant différents Pools, vous pouvez déterminer quel ensemble de volumes (ou média) reçoit les données sauvegardées.

Ceci permet, par exemple, de stocker les sauvegardes totales sur un ensemble de volumes, et les sauvegardes différentielles et incrémentales sur un autre. De même, vous pouvez assigner un ensemble de volumes à chaque machine sauvegardée.

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1130008.8

FileSet

Un FileSet est une ressource qui définit les fichiers à inclure dans une sauvegarde. Il consiste en une liste de fichiers ou répertoires inclus, une liste de fichiers ou répertoires exclus et la façon dont les fichiers seront stockés (compression, chiffrement, signatures).

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1030008.5

Storage

Cette ressource définit les services de stockage que peut contacter le directeur. On y retrouve les répertoires de travail du processus, le nombre de Jobs concurrents qu'il est capable de traiter, et éventuellement, la définition des adresses IP des clients dont il accepte les connexions. Chaque Job est associé à une ressource Storage. Une ressource Storage peut être associée à plusieurs Jobs.

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1120008.7

Device

Véritable destination physique de la sauvegarde, la ressource Device fait le lien entre le matériel de sauvegarde (lecteur de bandes, robots de sauvegarde, mais aussi disques locaux - internes comme externes) et la ressource Storage.

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1250009.4

Catalog

La ressource Catalog précise quel catalogue utiliser pour le job courant. Actuellement, Bareos ne peut utiliser qu'un type de serveur de base de données défini lors de sa configuration : SQLite, MySQL, PostgreSQL. En revanche, vous pouvez utiliser autant de catalogues que vous le souhaitez. Par exemple, vous pouvez avoir un catalogue par client, ou encore un catalogue pour les sauvegardes, un autre pour les jobs de type Verify et un troisième pour les restaurations.

Le catalogue (ressource Catalog) est une base de données utilisée pour stocker :

  • des informations sur les fichiers: la liste, les permissions, l'emplacement sur les volumes de sauvegarde, etc.

  • la définition de la configuration de Bareos.

Actuellement, trois formats de bases de données sont supportés : SQLite, MySQL et PostgreSQL.

SQLite est conseillé pour de petites installations, alors que MySQL est préférable pour les installations d'entreprise (à partir d'une dizaine de clients).

Attention, l'interface web ne fonctionne qu'avec les versions MySQL et PostgreSQL.

Le catalogue est une pièce majeure de Bareos, et doit également faire partie du plan de sauvegarde.

Ce catalogue peut rapidement devenir volumineux, il faut veiller au taux d'occupation et à la performance de la base de données.

Point important, la configuration de Bareos se fait à deux niveaux:

  • les fichiers de configuration ;

  • la base de données.

Bareos lit les fichiers de configuration au démarrage, et inscrit les valeurs dans la base de données du Catalogue. C'est le Catalogue qui définit la configuration utilisée par Bareos, donc il faut préférer le résultat des commandes console aux valeurs des fichiers.

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1150008.9

Architecture de Bareos

Bareos est construit suivant une architecture distribuée :

Architecture de Bareos inspiré du dessin original de Aristedes Maniatis (documentation officielle de Bacula)
Architecture de Bareos inspiré du dessin original de Aristedes Maniatis (documentation officielle de Bacula)
  • le serveur directeur (backup server) est l'élément central, qui supervise et archive les opérations de sauvegarde et de restauration, le nom du service sur un module EOLE est bareos-dir ;

  • le serveur base de données (database server) gère le catalogue dans lequel le directeur archive les opérations et l'emplacement des fichiers dans les différents volumes de sauvegarde, au format SQLite ou MySQL. Il se trouve sur le même serveur que le directeur sur un module EOLE ;

  • le serveur de stockage (storage server) est le serveur qui prend en charge l'écriture et la lecture des volumes de sauvegarde, le nom du service sur un module EOLE est bareos-sd ;

  • le serveur de lecture/écriture de fichiers (file server) exécute les commandes de lecture/écriture des fichiers gérés par la sauvegarde sur chaque poste où il est installé, le nom du service sur un module EOLE est bareos-fd ;

La communication entre chaque serveur est associée à un mot de passe. Ces différents serveurs peuvent être :

  • installés sur la même machine sans problème ;

  • présents en plusieurs exemplaires (on peut dupliquer les destinations de sauvegardes, avoir plusieurs

    directeur, etc.).

La configuration Bareos sur un module EOLE ne permet pas la séparation du serveur directeur, du serveur base de données et du serveur de fichiers.

Architecture de Bareos intégré à EOLE
Architecture de Bareos intégré à EOLE

Cette partie de la configuration est appelée directeur dans la suite de la documentation.

Par contre, il est possible de déporter le serveur de stockage sur un serveur disposant d'un disque de sauvegarde.

Pour résumer, 3 services liés aux sauvegardes se retrouvent sur un module EOLE :

  • bareos-dir (lié à bareos-fd)

  • bareos-fd (lié à bareos-dir)

  • bareos-sd

Truc & astuce

Plusieurs directeurs peuvent envoyer les données sur un unique serveur de stockage en établissement.

Il est également possible de copier les sauvegardes au travers d'autres protocoles réseau : rsync, samba, SSH, etc.

Configuration des sauvegardes

La configuration des sauvegardes consiste en une activation de la sauvegarde du serveur et/ou en l'activation du support de sauvegarde sur le module.

Si le support de sauvegarde est activé, un complément de configuration peut se faire soit par l'EAD soit en ligne de commande.

Activation et configuration de Bareos

La sauvegarde du serveur et le support de stockage de la sauvegarde sont activés par défaut sur certains modules, il peuvent être activés/désactivés dans l'onglet Services de l'interface de configuration du module.

Activation de la sauvegarde Bareos dans l'onglet Services de l'interface de configuration
Activation de la sauvegarde Bareos dans l'onglet Services de l'interface de configuration
  • L'activation du support de stockage de la sauvegarde permet d'accueillir des sauvegardes locales ou distantes.

  • L'activation de la sauvegarde permet d'activer la sauvegarde du serveur, celle-ci peut être locale si le support de stockage est activé ou déportée à condition d'avoir un serveur sur lequel est activé le support de stockage.

Cette fonctionnalité permet de mettre en place des sauvegardes croisées.

Si le support de stockage de la sauvegarde est activé (Activer le support de stockage de la sauvegarde à oui) un onglet Stockage bareos apparaît dans l'interface de configuration du module.

L'onglet permet de configurer le nom du serveur de stockage et d'autoriser des directeurs à se connecter au stockage.

Suite à l'activation de la sauvegarde du serveur (Activer la sauvegarde du serveur à oui) l'onglet Directeur bareos apparaît dans l'interface de configuration du module. Il permet de configurer le nom du directeur et les périodes de rétention et de définir si le serveur de stockage est distant ou local.

Onglet Directeur bareos

Le type de base de données permet de choisir si l'enregistrement du catalogue se fait dans MySQL ou dans SQLite. Il ne sera plus possible de modifier ce paramètre après l'enregistrement de la configuration.

Conseil

Si le choix est laissé à l'utilisateur il est préférable d'utiliser MySQL. L'application web bareos-webui nécessite MySQL.

Le nom du directeur est une information importante, il est utilisé en interne dans le logiciel mais, surtout, il est nécessaire pour configurer un client Bareos ou pour joindre le serveur de stockage depuis un autre module.

À l'enregistrement du fichier de configuration il ne sera plus possible de modifier le nom du directeur, en effet cette variable est utilisée dans les noms des fichiers de sauvegarde.

Vue de l'onglet Directeur Bareos
Vue de l'onglet Directeur Bareos

Ensuite, il est nécessaire de définir les durées de rétention[5] des différents espaces de stockage (totale, différentielle et incrémentale).

La durée de rétention des fichiers détermine le temps de conservation avant l'écrasement.

Plus les durées de rétention sont importantes, plus l'historique sera important et plus l'espace de stockage nécessaire sera important.

Exemple

Il peut être intéressant de conserver un historique long mais avec peu d'états intermédiaires.

Pour cela, voici un exemple de configuration :

  • 6 mois de sauvegardes totales ;
  • 5 semaines de sauvegardes différentielles ;
  • 10 jours de sauvegardes incrémentales.

Avec la politique de sauvegarde suivante :

  • une sauvegarde totale par mois ;
  • une sauvegarde différentielle par semaine ;
  • une sauvegarde incrémentale du lundi au vendredi.

Dans l'historique, il y aura donc une sauvegarde par jour de conservée pendant 10 jours, une sauvegarde par semaine pendant 5 semaines et une sauvegarde mensuelle pendant 6 mois.

Attention

Une modification de la durée de rétention en cours de production n'aura aucun effet sur les sauvegardes déjà effectuées, elles seront conservées et recyclées mais sur la base de l'ancienne valeur, stockée dans la base de données.

Afin de prendre en compte la nouvelle valeur pour les sauvegardes suivantes, il faut utiliser les outils Bareos pour mettre à jour la base de données :

# bconsole

*update

*2

*<numéro du pool de volumes de sauvegarde>

Une autre solution consiste à vider le support de sauvegarde ou prendre un support de sauvegarde ne contenant aucun volume et à ré-initialiser la base de données Bareos avec la commande :

# bareosregen.sh

La regénération du catalogue de bareos va écraser l'ancienne base, confirmez-vous ? [oui/non]

[non] : oui

Configuration du stockage

Le stockage peut être local ou distant, il est local par défaut.

Dans ce cas aucun paramètre n'est à configurer dans l'onglet Directeur Bareos.

Par contre des paramètres vous permettant éventuellement d'autoriser des directeurs à se connecter au présent stockage dans l'onglet Stockage bareos.

Vue de l'onglet Directeur Bareos
Vue de l'onglet Directeur Bareos

Dans le cas d'un serveur distant (Activer le serveur de stockage localement à non), il faut configurer l'adresse IP et le mot de passe du serveur de stockage distant.

Attention

Certaines infrastructures nécessitent une dégradation des fonctionnalités des modules EOLE comme la désactivation des mises à jour automatiques pour que la sauvegarde distante fonctionne correctement.

Le déport du service bareos-sd sur un autre serveur que bareos-dir ne permet pas de gérer correctement les verrous des tâches d'administration sur ce serveur : bareos-dir ne permet pas de signaler efficacement à bareos-sd qu'une sauvegarde est lancée et qu'il doit poser un verrou empêchant les autres tâches d'administration.

En mode expert, il est possible de modifier le répertoire utilisé par défaut pour l'extraction de la base de données du catalogue. Ce changement permet éventuellement de ne pas surcharger l'espace occupé dans /var.

Il est également possible de définir manuellement le mot de passe de la base de donnée MySQL, le délai accordé à l'exécution de la sauvegarde ainsi que l'algorithme de compression utilisé pour le stockage.

Vue de l'onglet Directeur Bareos
Vue de l'onglet Directeur Bareos
Type de compression et délai alloué
Type de compression et délai alloué

La durée maximale pour l'exécution complète d'une sauvegarde permet d'arrêter le job après un temps d'exécution fixé en seconde, par défaut le job est limité à 86 400 secondes soit 24 heures (la valeur 0 lève cette limite de temps).

Plus l'algorithme est efficace, moins il nécessite d'espace mais plus il alourdit la charge système et allonge la durée du processus de sauvegarde. Le taux de compression est exprimé par un chiffre de 1 à 9, proportionnel. Au delà de 6, le gain en place est faible par rapport aux niveaux immédiatement inférieurs, tandis que la durée de traitement s'allonge sensiblement.

Le champ Mot de passe du directeur contient le mot de passe à transmettre aux applications distantes pour leur permettre de s'authentifier auprès du directeur.

Dans l'onglet Stockage bareos il est possible de choisir un nom de serveur de stockage et d'autoriser des directeurs distants à se connecter au présent serveur de stockage.

Pour ajouter un ou plusieurs directeurs distants à se connecter il faut cliquer sur Nom du directeur Bareos distant, le détail de l'autorisation s'affiche.

Pour ce faire il faut se munir des paramètres du directeur distant :

  • son nom ;

  • son adresse IP ;

  • son mot de passe.

Autoriser des clients Bareos distants à se connecter au directeur
Autoriser des clients Bareos distants à se connecter au directeur
Attention

Les sauvegardes sont des informations sensibles. Il ne faut pas utiliser de mot de passe facilement déductible.

Pour que les modifications soient prises en compte, une reconfiguration du module est nécessaire avec la commande : reconfigure.

Configuration depuis l'EAD

Une fois le stockage Bareos activé dans l'interface de configuration du module, il faut configurer le support de sauvegarde.

Le menu Sauvegardes de l'EAD propose une interface simplifiée pour la configuration du support de sauvegarde et le paramétrage facultatif de l'envoi des rapports.

Configuration du support

Trois types de support de sauvegarde sont proposés :

  • SMB

  • Disque USB local

  • Configuration manuelle du support

Le point de montage du support est, dans les trois cas de figure : /mnt/sauvegardes

  • SMB : la sauvegarde se fait à travers un partage SMB[6].

    Il est préférable de déporter le serveur de stockage Bareos plutôt que d'utiliser le protocole SMB[6].

    Ce type de sauvegarde sera utilisé, par exemple, pour les NAS[7].

    Les informations suivantes sont demandées :

    • Nom de machine de la machine distante (n'accepte pas les majuscules) ;
    • IP de la machine distante ;
    • le nom du Partage ;
    • optionnellement le Login, le Mot de passe.
Configuration d'un support de sauvegarde distant dans l'EAD
Configuration d'un support de sauvegarde distant dans l'EAD
Attention

Les informations stockées dans les sauvegardes sont sensibles, il donc préférable de toujours authentifier l'accès aux partages contenant les données.

  • Disque USB local : la sauvegarde se fait sur un support nécessitant un montage (disque USB, disque interne, etc.), contrôlé avant chaque sauvegarde.

    Le chemin d'accès à saisir correspond au nœud du périphérique (par exemple /dev/hda1, /dev/disk/by-label/LABEL si un label est disponible sur le disque).

    Si le périphérique utilise un label

Configuration d'un support de sauvegarde USB local dans l'EAD
Configuration d'un support de sauvegarde USB local dans l'EAD
Attention

Méthode purement locale à la machine, cette méthode est donc sensible aux corruptions éventuelles du serveur.

  • Configuration manuelle du support : comme son nom l'indique elle permet à l'utilisateur de définir sa propre destination de sauvegarde via les outils Bareos. Ce choix correspond généralement à l'utilisation de lecteurs de bandes et s'intègre dans une stratégie de sauvegarde à plus grande échelle.

    Le point de montage par défaut est toujours /mnt/sauvegardes. Le montage n'est pas contrôlé.

Le pilote est dépendant du matériel, le lecteur de bande doit être configuré manuellement.

Pour information, le fichier template concerné bareossupport.conf est dans /usr/share/eole/creole/distrib/

Pour que la solution soit pérenne il est nécessaire de créer un patch EOLE[8].

Voir la documentation officielle de Bareos pour le paramétrage :

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-480004

Configuration d'un support de sauvegarde manuelle dans l'EAD
Configuration d'un support de sauvegarde manuelle dans l'EAD
Attention

Le support doit être monté sur /mnt/sauvegardes et l'utilisateur bareos doit avoir les droits en écriture :

# ls -l /mnt

# chown -R bareos:root /mnt/sauvegardes

Options de montage du support de sauvegarde

Le fichier /etc/eole/bareos.conf permet de personnaliser les options de montage du support de stockage de la sauvegarde. L'intérêt est que ce fichier ne sera pas écrasé lors de la prochaine mise à jour.

Le fichier /etc/eole/bareos.conf a une syntaxe du type fichier INI[9] : clé = valeur.

Truc & astuce

Il existe trois variables paramétrables DISTANT_LOGIN_MOUNT, DISTANT_MOUNT et USB_MOUNT :

  • la ligne de commande permettant de monter un support distant avec authentification, la valeur par défaut de DISTANT_LOGIN_MOUNT est :

    /bin/mount -t cifs -o username={0},password={1},ip={2},uid={3},noexec,nosuid,nodev,vers=3.0 //{4}/{5} {6}

  • la ligne de commande permettant de monter un support distant sans authentification, la valeur par défaut de DISTANT_MOUNT est :

    /bin/mount -t cifs -o password={0},ip={1},uid={2},noexec,nosuid,nodev,vers=3.0 //{3}/{4} {5}

  • la ligne de commande permettant de monter un support USB :

    Par défaut la valeur de la variable USB_MOUNT est :

    • /bin/mount {0} {1} -o noexec,nosuid,nodev,uid={2},umask=0077 pour les systèmes VFAT et NTFS
    • /bin/mount {0} {1} -o noexec,nosuid,nodev pour le reste.
Remarque

Sur les modules EOLE 2.6 utilisant un noyau Linux 4.4, le montage distant est paramétré avec l'ancienne option sec=ntlm qu'il est possible de remplacer par vers=2.0 si le montage distant le requiert

Paramètres pour l'envoi de rapports

L'envoi de courriels est proposé si le directeur Bareos est activé sur le serveur.

EOLE offre la possibilité d'envoyer deux types de courriel :

  • les rapports d'erreurs de Bareos ;
  • les rapports de sauvegarde réussie.

Il est recommandé de définir les deux types d'envoi. Le premier type de rapport informe que la sauvegarde s'est mal déroulée, alors que le second informe qu'une sauvegarde s'est bien déroulée. Pensez à configurer correctement votre relai SMTP[10].

Truc & astuce

Il est possible de déclarer plusieurs destinataires en séparant les adresses par des virgules.

Exemple : admin@ac-dijon.fr,technicien@ac-dijon.fr

Configuration depuis la ligne de commande

Il n'est pas nécessaire de passer par l'EAD pour configurer le support de sauvegarde.

L'ensemble des paramétrages peut être réalisé avec le script bareosconfig.py.

Les informations définies dans l'EAD sont modifiables en ligne de commande et inversement.

Configuration du support
  • Si le support est un partage SMB :

# bareosconfig.py -s smb --smb_machine=nom_machine --smb_ip=adresse_ip --smb_partage=nom_du_partage --smb_login=login --smb_password=mot_de_passe

  • Si le support est un disque USB local :

# bareosconfig.py -s usb --usb_path=/dev/device_usb

  • Si le support est un disque USB local avec un label :

# bareosconfig.py -s usb --usb_path=/dev/disk/by-label/LABEL

  • Si le support est à configurer manuellement :

# bareosconfig.py -s manual

Vous devez ensuite configurer le support dans le fichier template /usr/share/eole/creole/distrib/bareossupport.conf

Pour que la solution soit pérenne il est nécessaire de créer un patch EOLE[8].

Attention

nom_machine ne doit pas comporter de majuscule

Truc & astuce

Pour tester le support de sauvegarde (USB local ou SMB), il est possible d'utiliser le script bareosmount.py :

# bareosamount.py -t

Test de montage OK

Attention

En USB le numéro du périphérique dans /dev peut changer selon si un autre périphérique est connecté au serveur.

Truc & astuce

Une astuce consiste à utiliser un label pour identifier de façon plus certaine le périphérique utilisé.

Pour donner un label au périphérique :

# tune2fs -L Sauvegardes /dev/sdX

Pour configurer le support de sauvegarde sur le périphérique USB :

# bareosconfig.py -s usb --usb_path=/dev/disk/by-label/Sauvegardes

Options de montage du support de sauvegarde

Le fichier /etc/eole/bareos.conf permet de personnaliser les options de montage du support de stockage de la sauvegarde. L'intérêt est que ce fichier ne sera pas écrasé lors de la prochaine mise à jour.

Le fichier /etc/eole/bareos.conf a une syntaxe du type fichier INI[9] : clé = valeur.

Truc & astuce

Il existe trois variables paramétrables DISTANT_LOGIN_MOUNT, DISTANT_MOUNT et USB_MOUNT :

  • la ligne de commande permettant de monter un support distant avec authentification, la valeur par défaut de DISTANT_LOGIN_MOUNT est :

    /bin/mount -t cifs -o username={0},password={1},ip={2},uid={3},noexec,nosuid,nodev,vers=3.0 //{4}/{5} {6}

  • la ligne de commande permettant de monter un support distant sans authentification, la valeur par défaut de DISTANT_MOUNT est :

    /bin/mount -t cifs -o password={0},ip={1},uid={2},noexec,nosuid,nodev,vers=3.0 //{3}/{4} {5}

  • la ligne de commande permettant de monter un support USB :

    Par défaut la valeur de la variable USB_MOUNT est :

    • /bin/mount {0} {1} -o noexec,nosuid,nodev,uid={2},umask=0077 pour les systèmes VFAT et NTFS
    • /bin/mount {0} {1} -o noexec,nosuid,nodev pour le reste.
Remarque

Sur les modules EOLE 2.6 utilisant un noyau Linux 4.4, le montage distant est paramétré avec l'ancienne option sec=ntlm qu'il est possible de remplacer par vers=2.0 si le montage distant le requiert

Paramètres pour l'envoi de rapports

La configuration de l'adresse courriel se fait de la façon suivante :

# bareosconfig.py -m --mail_ok=adresse_courriel --mail_error=adresse_courriel

Les paramètres --mail_ok et --mail_error ne sont pas obligatoires.

Afficher la configuration

Il est possible de lister l'ensemble des paramètres depuis la ligne de commande avec la commande bareosconfig.py :

1
# bareosconfig.py -d
2
Support : {'usb_path': '/dev/sdb1', 'support_type': 'usb'}
3
Mail : {'mail_error': [], 'mail_ok': []}
4
Programmation : 
5
	Aucun job programmé.

Programmation des sauvegardes

Une fois le support de sauvegarde défini, il est possible de programmer un type de sauvegarde par périodicité.

Cette programmation se fait soit par l'EAD soit depuis la ligne de commande.

EOLE propose trois périodicités et trois types de sauvegarde pour la programmation des sauvegardes :

Périodicité

Type de sauvegarde

sauvegardes mensuelles

totale

sauvegardes hebdomadaires

totale, différentielle, incrémentale

sauvegardes quotidiennes

totale, différentielle, incrémentale

En plus des périodicités proposées, il est possible de lancer une sauvegarde immédiate de type totale, différentielle ou incrémentale.

Seules les sauvegardes totales sont possibles dans le cas de la périodicité mensuelle.

Les sauvegardes mensuelles se font la première semaine du mois.

Si une autre sauvegarde est programmée la même nuit, celle-ci sera automatiquement reportée à la semaine d'après.

Les sauvegardes se programment pour une nuit de la semaine. Une nuit va de 12h à 11h59.

Pour les sauvegardes quotidiennes, il est possible de choisir une plage de jours.

Programmation depuis l'EAD

Le menu Sauvegardes de l'EAD propose une interface simplifiée pour programmer des sauvegardes périodiques ou pour lancer une sauvegarde immédiate.

L'interface de programmation des sauvegardes dans l'EAD
L'interface de programmation des sauvegardes dans l'EAD

Programmation depuis la ligne de commande

Pour ajouter une nouvelle programmation, il faut connaître les paramètres suivants :

  • choix de la périodicité : quotidienne → daily, hebdomadaire → weekly ou mensuelle → monthly ;
  • le type : totale → Full, différentielle → Differential ou incrémentale → Incremental ;
  • le jour de la semaine : de 1 (pour la nuit de dimanche à lundi) à 7 (pour la nuit du samedi à dimanche) ;
  • en cas de sauvegarde quotidienne, éventuellement le jour de fin : de 1 à 7 ;
  • l'heure de la sauvegarde : de 0 à 23, sachant que la nuit commence à 12h et fini à 11h le lendemain

Exemple pour ajouter une programmation de sauvegarde depuis la ligne de commande :

# bareosconfig.py -j daily --job_level=Incremental --job_day=2 --job_end_day=5 --job_hour=22

Les programmations ajoutées depuis la ligne de commande sont également visibles dans l'EAD.

Il est également possible de lancer une sauvegarde immédiate.

Il est nécessaire de choisir le type de sauvegarde totale (Full), différentielle (Differential) ou incrémentale (Incremental)).

Si aucune sauvegarde n'a été effectuée préalablement sur le serveur, la première sauvegarde sera automatiquement une sauvegarde totale.

Pour effectuer une sauvegarde immédiate, il faut exécuter la commande suivante :

# bareosconfig.py -n --level=Full

Il est possible de suivre l'évolution de la sauvegarde dans le fichier /var/log/rsyslog/local/bareos-dir/bareos-dir.info.log.

Les éventuelles erreurs sont enregistrées dans le fichier /var/log/rsyslog/local/bareos-dir/bareos-dir.err.log.

Truc & astuce

bareosconfig.py --help donne la liste des options de bareosconfig.py

Il existe également des pages de manuel :

man bareos, man bareos-dir, ...

Afficher la configuration

Il est possible de lister l'ensemble de la configuration depuis la ligne de commande avec la commande bareosconfig.py :

# bareosconfig.py -d

Support : {'usb_path': '/dev/sdb1', 'support': 'usb'}

Mail : {}

Programmation :

1 : Sauvegarde totale dans la première nuit du mois du mercredi au jeudi à 02:00

2 : Sauvegarde incrémentale de la nuit du lundi au mardi à la nuit au vendredi à 22:00

3 : Sauvegarde totale dans la première nuit du mois du lundi au mardi à 21:00

Supprimer un job

Il est possible de supprimer un job depuis la ligne de commande grâce à la commande bareosconfig.py . Elle s'utilise comme suit :

# bareosconfig.py -x <numéro_job>

ou encore :

# bareosconfig.py --job_to_delete=<numéro_job>

La restauration des sauvegardes EOLE

La restauration peut être :

  • complète, elle va restaurer l'ensemble des bases de données, l'annuaire, les quotas, ... ainsi que l'ensemble des fichiers sauvegardés.

  • partielle, elle peut restaurer l'ensemble ou une partie des fichiers sauvegardés.

Restauration complète

Attention

La restauration d'un serveur s'effectue toujours sur un serveur instancié.

Préparation du serveur avant restauration

Mise à jour

Idéalement, le niveau de mise à jour du serveur avant restauration doit être identique au à celui du serveur sauvegardé.

Mettre à jour les paquets :

Maj-Auto

Choix du mode conteneur ou non

Si le serveur sauvegardé était en mode conteneur, il faut re-créer les conteneurs, avec la commande gen_conteneurs.

Configurer Bareos
  • si le serveur est enregistré dans Zéphir, il faudra redescendre la configuration en ré-enregistrant le serveur avec la commande enregistrement_zephir ;

  • si le serveur n'est pas enregistré dans Zéphir, il sera nécessaire de récupérer la sauvegarde de la configuration sur le support de sauvegarde.

    Configuration de Bareos pour un serveur non enregistré dans Zéphir

    # bareosconfig.py -s usb --usb_path=/dev/device_usb

    Configuration de Bareos pour un serveur non enregistré dans Zéphir avec le label du périphérique

    # bareosconfig.py -s usb --usb_path=/dev/disk/by-label/LABEL

    Il est normal d'avoir le message suivant lors de l'utilisation de bareosconfig.py :

    Fichier template /var/lib/creole/bareossupport.conf inexistant

    Il peut être utile de configurer l'envoi des courriels en même temps que le support de sauvegarde.

    # bareosconfig.py -m --mail_ok=mailok@ac-dijon.fr --mail_error=mailerror@ac-dijon.fr

Paquets additionnels

Pour les paquets additionnels ajoutés sur l'ancien serveur (eole-ejabberd par exemple) il est impératif que le paquet soit installé sur le serveur au moment où on exécute la restauration.

  • si le serveur était enregistré sur un serveur Zéphir, les paquets additionnels déclarés sont installés à la fin de l'enregistrement auprès du serveur Zéphir ;

  • dans le cas d'une installation isolée, il est judicieux de réinstaller les paquets avant d'instancier le serveur.

Truc & astuce

Si l'ancien serveur est toujours accessible, il est possible de lister l'ensemble des paquetages installés grâce à la commande :

# dpkg --get-selections

Il est possible de filtrer uniquement les paquets préfixé par eole- :

# dpkg --get-selections | grep eole-

La liste des paquets peut être exportée dans un fichier pour être transférée sur une autre machine :

# dpkg --get-selections > paquetages.txt

Récupération de la liste précédente :

# dpkg --set-selections < paquetages.txt

Installation des paquets de la liste :

# apt-get dselect-upgrade

Remarque

Pour avoir plus d'informations (version, architecture et descriptif) sur les paquets installés il est possible d'utiliser l'option -l

# dpkg -l | grep eole

Montage du support

Une fois que le serveur est enregistré dans Zéphir ou que le support est configuré, il faut monter le support de sauvegarde :

# bareosmount.py --mount

Montage OK

Extraire le fichier config.eol de la sauvegarde

Pour extraire le fichier config.eol de la sauvegarde il est nécessaire de connaître le nom du directeur.

Le nom du directeur est, par défaut, de la forme : nom_du_module-dir (par exemple : scribe-dir).

Si vous ne vous souvenez plus du nom du directeur de votre serveur, il suffit de regarder le contenu du support de sauvegarde :

# ls /mnt/sauvegardes/*-catalog-0003

/mnt/sauvegardes/amonecole-dir-catalog-0003

Le directeur est dans ce cas amonecole-dir.

# bareosrestore.py --configeol amonecole-dir

Le fichier config.eol extrait est enregistré dans /root/zephir-restore.eol.

Instance

Avant toute chose, il faut déplacer et renommer le fichier de configuration :

# mv /root/zephir-restore.eol /etc/eole/config.eol

Instancier maintenant votre serveur avec la commande : instance

Si vous avez enregistré votre serveur sur Zéphir, il est possible d'utiliser directement le fichier de configuration zephir.eol

À l'étape de Postconfiguration, sauf besoin exceptionnel il ne faut pas réinitialiser le catalogue :

Le catalogue Bareos a déjà été initialisé, voulez-vous le réinitialiser ? [oui/non]

Ne pas tenir compte du message d'erreur suivant :

ERREUR : /var/lib/eole/config/shedule.conf not exist

Récupération du catalogue

Pour récupérer le catalogue de sauvegarde il est nécessaire de connaître le nom du directeur.

Le nom du directeur est, par défaut, de la forme : nom_du_module-dir (par exemple : scribe-dir).

Si vous ne vous souvenez plus du nom du directeur de votre serveur, il suffit de regarder le contenu du support de sauvegarde :

# ls /mnt/sauvegardes/*-catalog-0003

/mnt/sauvegardes/amonecole-dir-catalog-0003

Le directeur est dans ce cas amonecole-dir.

Lancer la récupération du catalogue :

# bareosrestore.py --catalog

Restauration du catalog

Pas de fichier /var/lib/eole/config/bareosjobs.conf dans le volume nom_du_directeur-catalog-0003

Pas de fichier /etc/eole/bareos.conf dans le volume nom_du_directeur-catalog-0003

Les messages concernant l'absence de certains fichiers sont normaux.

Le répertoire /var/lib/bareos/ doit contenir :

  • nom_du_directeur-JobDefsCatalog.bsr
  • nom_du_directeur-JobDefsSauvegarde.bsr
  • bareos.sql
Démontage du support

Pour démonter le support de sauvegarde :

# bareosmount.py --umount

Restauration

Avant de lancer la restauration il est préférable de vérifier que le chemin du nœud du périphérique est toujours bon.

Il peut changer en fonction du nombre de périphériques connectés :

# bareosmount.py -t

Si le périphérique n'a plus le même nœud la commande bareosmount.py renvoie :

ERREUR : le périphérique /dev/sdb1 n'existe pas

Il faut alors changer la configuration du support :

# bareosconfig.py -s usb --usb_path=/dev/device_usb

ou si le disque a un label :

# bareosconfig.py -s usb --usb_path=/dev/disk/by-label/LABEL

Le test de montage doit renvoyer OK :

# bareosmount.py -t

Test de montage OK

Lister l'ensemble de la configuration :

# bareosconfig.py -d

La restauration complète du serveur va restaurer l'ensemble des bases de données, l'annuaire, les quotas, ... ainsi que l'ensemble des fichiers sauvegardés.

Pour ce faire il faut utiliser la commande bareosrestore.py :

# bareosrestore.py --all

Truc & astuce

Il est possible de suivre l'évolution des restaurations dans le fichier de log : /var/log/bareos/restore.txt

Les informations peuvent mettre un peu de temps avant d'apparaître car Bareos ne les "flush" pas tout de suite dans son fichier de log.

Si rien n'apparaît dans un délai raisonnable il faut vérifier le chemin du nœud du périphérique.

Lorsque la restauration complète est terminée, il faut re-configurer votre serveur à l'aide de la commande reconfigure.

Restauration partielle

Rechercher un fichier à restaurer

Pour rechercher un fichier ou un répertoire dans le support de sauvegarde (sur la dernière sauvegarde uniquement), on utilise l'option --search :

# bareosrestore.py --search nom_du_fichier

Il est possible d'utiliser les caractères  ? ou * pour remplacer respectivement un ou plusieurs caractères en l'échappant de la façon suivante :

# bareosrestore.py --search nom_du_\*

Il est également possible de lister le contenu d'un répertoire sauvegardé avec l'option --ls_folder :

# bareosrestore.py --ls_folder /etc/eole

liste du contenu de /etc/eole

config.eol

Restauration d'un fichier ou d'un répertoire

Pour restaurer un fichier de la dernière sauvegarde, on peut utiliser la commande :

# bareosrestore.py --file /chemin_absolu/nom_du_fichier

Exemple :

# bareosrestore.py --file /etc/eole/config.eol

Pour restaurer un répertoire et l'intégralité de son contenu, on peut utiliser la commande :

# bareosrestore.py --folder /chemin_absolu/nom_du_répertoire

Exemple :

# bareosrestore.py --folder /usr/share/ead2/backend/config

Restauration de l'ensemble des fichiers sauvegardés

Pour restaurer l'ensemble des fichiers sauvegardés, il est possible d'utiliser la commande :

# bareosrestore.py --all_files

Restauration spécifique

Les bases de données, les quotas, l'annuaire, ... ne sont pas sauvegardés sous forme de fichiers binaires.

Ils sont extraits avant la sauvegarde.

Pour restaurer, il existe une procédure particulière, différente suivant l'application.

Pour connaître les possibilités, faire :

# bareosrestore.py --help

Exemple

Pour restaurer l'annuaire :

# bareosrestore.py --ldap

Restauration manuelle

Avant de lancer la restauration il est préférable de vérifier que le chemin du nœud du périphérique est toujours bon.

Il peut changer en fonction du nombre de périphériques connectés :

# bareosmount.py -t

Si le périphérique n'a plus le même nœud la commande bareosmount.py renvoie :

ERREUR : le périphérique /dev/sdb1 n'existe pas

Il faut alors changer la configuration du support :

# bareosconfig.py -s usb --usb_path=/dev/device_usb

ou si le disque a un label :

# bareosconfig.py -s usb --usb_path=/dev/disk/by-label/LABEL

Le test de montage doit renvoyer OK :

# bareosmount.py -t

Test de montage OK

Lister l'ensemble de la configuration :

# bareosconfig.py -d

La restauration manuelle s'effectue au moyen d'un programme en ligne de commande, bconsole :

# bconsole

Il est possible de spécifier le fichier de configuration :

# bconsole -c /etc/bareos/bconsole.conf

Une fois bconsole démarré, il est possible d'abandonner la procédure à tout moment en quittant la console avec la commande quit, done ou avec les touches ctrl + c.

Le prompt de bconsole est une étoile.

Exemple

Dans cet exemple nous verrons comment restaurer le fichier /home/a/admin/perso/icones.url.

Dans bconsole, taper la commande restore qui indique à bconsole d'initialiser une restauration :

*restore

Il est possible de choisir directement le support de sauvegarde des fichiers, ce qui évite d'avoir à le choisir par la suite, pour cela utiliser la commande suivante (attention aux majuscules/minuscules et à la saisie sans accents) :

*restore fileset=FileSetSauvegarde

Vous avez alors plusieurs choix :

To select the JobIds, you have the following choices:

[...]

Les plus pertinents sont :

  • Depuis que l'utilisateur a supprimé le fichier le système n'a effectué que des sauvegardes incrémentales alors le fichier est toujours présent dans la sauvegarde, choisissez la sauvegarde la plus récente pour un client :

    5: Select the most recent backup for a client (sélectionner la sauvegarde réussie la plus récente)

  • Depuis que l'utilisateur a supprimé le fichier le système a effectué une sauvegarde complète (Full) alors le fichier n'est présent que dans les sauvegardes précédant la sauvegarde complète, sélectionner la dernière sauvegarde pour un client avant une certaine date et entrez une date antérieure à la dernière sauvegarde complète :

    6: Select backup for a client before a specified time (sélectionner la dernière sauvegarde réussie avant une date spécifiée)

La console propose trois options :

The defined FileSet ressources are :

1 : FileSetCatalog

2 : FileSetDefault

3 : FileSetSauvegarde

Il faut ensuite choisir le support de sauvegarde des fichiers (et non celui du catalogue) :

3 : FileSetSauvegarde

Un prompt apparaît et permet de naviguer dans l'arborescence des sauvegardes :

cwd is : /

$ ls

etc/

home/

root/

usr/

var/

$ cd /home/a/admin/perso

Il faut marquer les fichiers/dossiers à restaurer avec la commande mark (attention, la commande mark est récursive) :

$ mark icones.url

1 file marked.

Pour "dé-marquer" un fichier marqué par erreur :

$ unmark icones.url

1 file unmarked.

Lorsque les fichiers et les dossiers à restaurer sont sélectionnés, passer à l'étape suivante avec la commande :

$ done

bconsole propose plusieurs options, il faut choisir le job de restauration, ici l'option numéro 3 :

3: Restore_file

On obtient alors le message suivant :

Bootstrap records written to /var/lib/bareos/xxxxxxxxx.restore.2.bsr

[...]

Ok to run ? (yes/mod/no) :

La restauration peut maintenant être lancée en répondant yes à la question.

Il ne sera plus possible d'abandonner après cette étape.

OK to run? (yes/mod/no): yes

La restauration est alors placée dans une file d'attente. Le numéro JobId est affiché à l'écran.

Il est possible de changer les paramètres de restauration en répondant mod à la question :

OK to run? (oui/mod/non): mod

Parameters to modify :

1 : Level

2 : Storage

[...]

Par exemple pour restaurer dans un autre répertoire, il faut choisir Where (9 dans le cas présent) et saisir le chemin de la restauration :

9 : Where

Please enter path prefix for restore (/ for none) : /home/restauration

Ok to run ? (yes/mod/no) : yes

La restauration est alors placée dans une file d'attente. Le numéro JobId est affiché à l'écran.

Pour quitter la console :

* quit

Truc & astuce

Il est possible de suivre l'évolution des restaurations dans le fichier de log : /var/log/bareos/restore.txt

Les informations peuvent mettre un peu de temps avant d'apparaître car Bareos ne les "flush" pas tout de suite dans son fichier de log.

Si rien n'apparaît dans un délai raisonnable il faut vérifier le chemin du nœud du périphérique.

Attention

Pour conserver les droits étendus associés à un fichier (ACL), il faut restaurer un fichier issu d'une partition avec ACL (par exemple le répertoire /home sur le module Scribe) dans une partition supportant les ACL.

Ajouter des données à sauvegarder

Il est tout à fait possible d'ajouter des fichiers et/ou des répertoires à sauvegarder à ceux déjà configurés par défaut sur un module.

Pour cela il faut ajouter un fichier de configuration portant l'extension .conf dans le répertoire /etc/bareos/bareosfichiers.d/

Celui-ci ne doit comporter que les directives Include et Exclude, il ne faut pas, par exemple, spécifier le Name du FileSet car il est déjà défini dans le reste de la configuration.

Exemple d'un fichier de configuration pour la prise en charge de nouvelles données à sauvegarder :

Include {

   Options {

      # Sauvegarde des ACL

      aclsupport = yes

      # Tous les fichiers seront chiffrés en SHA1

      signature = SHA1

      # Compression des fichiers (niveau de com pression croissant de 0 à 9)

      compression = GZIP6

      # Permet de sauvegarder plusieurs systèmes de fichiers

      onefs = yes

   }

   File = /chemin/du/repertoire/ou/du/fichier/a/sauvegarder

   File = /chemin/du/repertoire/ou/du/fichier/a/sauvegarder

}

Exclude {

   File = /chemin/du/repertoire/ou/du/fichier/a/ignorer

   File = /chemin/du/repertoire/ou/du/fichier/a/ignorer

}

Pour sauvegarder les fichiers d'un conteneur il faut préciser le chemin complet du fichier, par exemple :

   File = /var/lib/lxc/reseau/rootfs/var/www/html/fichier

Les autres options pour la ressource FileSet sont consultables dans la documentation officielle du projet Bareos :

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-1030008.5

Attention

Pour que l'ajout d'un fichier de configuration soit pris en compte par Bareos il faut procéder à la reconfiguration du module avec la commande reconfigure.

Réinitialisation de la sauvegarde

Pour réinitialiser la sauvegarde il faut vider le support de sauvegarde ou prendre un support de sauvegarde ne contenant aucun volume et surtout il faut ré-initialiser la base de données de Bareos.

Pour ce faire il faut utiliser la commande suivante :

# bareosregen.sh

La régénération du catalogue de la sauvegarde va écraser l'ancienne base, confirmez-vous ? [oui/non]

[non] : oui

bareos-webui : outil d'administration pour Bareos

bareos-webui est un logiciel libre écrit en PHP (basé sur Zend Framework), destiné à surveiller et à gérer les sauvegardes Bareos au travers d'une application web.

http://www.bareos.org/en/bareos-webui.html

L'interface web permet l'utilisation de plusieurs comptes pour gérer les sauvegardes et afficher les informations détaillées sur les jobs, les clients, groupes de fichiers, Pools, Volumes, stockages, Directeur, Scheduler et les journaux.

Mire d'authentification de bareos-webui
Mire d'authentification de bareos-webui
Tableau de bord de bareos-webui
Tableau de bord de bareos-webui
Affichage des volumes dans bareos-webui
Affichage des volumes dans bareos-webui
Affichage des jobs dans  bareos-webui
Affichage des jobs dans bareos-webui

Installation

bareos-webui s'installe manuellement, saisir les commandes suivantes dans un terminal :

# Query-Auto

# apt-eole install eole-bareoswebui

Remarque

Le paquet est pré-installé sur les modules Scribe, Horus et AmonEcole.

Configuration

Bareos doit être configuré pour utiliser une base de données MySQL.

Dans l'interface de configuration du module, dans l'onglet Directeur Bareos, le type de la base de données du catalogue doit être positionné sur mysql.

Le serveur web apache doit être activé sur le module. Dans l'interface de configuration du module, dans l'onglet Services, Activer le serveur web Apache doit être à oui.

Dans l'onglet Applications web, il faut passer Activer Bareos WebUI (gestion de la sauvegarde) à oui.

Un nouvel onglet Bareos webui apparaît dans l'interface de configuration du module.

Il est possible de créer un ou plusieurs comptes autorisés à se connecter à l'interface bareos-webui en cliquant sur le bouton + Utilisateur autorisé à se connecter à l'interface web de gestion de la sauvegarde.

Le mot de passe de la base de données MySQL peut éventuellement être personnalisé mais par défaut il est généré automatiquement. Une fois la configuration enregistrée, il ne sera plus possible de le modifier.

Remarque

L'application n'est pas disponible immédiatement après l'installation.

L'opération nécessite une reconfiguration du serveur avec la commande reconfigure.

Accès à l'application

Pour accéder à l'application se rendre à l'adresse : http://<adresse_serveur>/bareos-webui/

L'authentification se fait obligatoirement avec les comptes déclarés dans l'interface de configuration du module.

Désactivation

Truc & astuce

Pour désactiver rapidement et temporairement (jusqu'au prochain reconfigure) l'application web il est possible d'utiliser la commande suivante :

# a2dissite nom_de_l'application

Le nom de l'application à mettre dans la commande est celui que l'on trouve dans le répertoire /etc/apache2/sites-available/

Pour activer cette nouvelle configuration il faut recharger la configuration d'Apache avec la commande :

# service apache2 reload

Pour réactiver l'application avec cette méthode il faut utiliser les commandes suivantes :

# a2ensite nom_de_l'application

# service apache2 reload

Pour désactiver l'application pour une période plus longue voir définitivement, il faut désactiver l'application depuis l'interface de configuration du module, dans l'onglet Applications web.

L'opération nécessite une reconfiguration du module avec la commande reconfigure.

Diagnostic, rapport et résolution de problème

Outils de diagnostic et rapport

En plus de l'envoi de courrier électronique, il est possible de connaître l'état de la dernière sauvegarde en utilisant la commande diagnose.

Celle-ci liste également l'état des différents services de Bareos.

État des sauvegardes et des services avec diagnose
État des sauvegardes et des services avec diagnose

L'EAD permet également de connaître l'état de la dernière sauvegarde depuis sa page d'accueil.

Le détail de la sauvegarde est disponible en cliquant sur Afficher le rapport.

État des sauvegardes dans l'EAD
État des sauvegardes dans l'EAD

Par contre, pour voir l'état des différents services Bareos il faut se rendre à la rubrique ETAT DES SERVICES de la page d'accueil et cliquer sur DETAILS, puis sélectionner État des démons bareos.

États des services Bareos dans l'EAD
États des services Bareos dans l'EAD

Si l'un des services est arrêté, il est possible de le relancer à l'aide de la commande service :

# service bareos-dir restart

* Restarting Bareos Director bareos-dir ... [ OK ]

Tester le support de sauvegarde

Pour tester le support de sauvegarde USB local ou SMB, il est possible d'utiliser le script bareosmount.py.

Exemple
1
root@scribe:~# bareosmount.py -t
2
Test de montage OK
3
root@scribe:~#
Exemple
1
root@scribe:~# bareosmount.py -t
2
Problème de montage (1 essais restants)
3
ERREUR : périphérique /dev/sda1 non reconnu
4
Problème de montage (0 essais restants)
5
ERREUR : périphérique /dev/sda1 non reconnu
6
Échec du test de montage :
7
point de montage : Erreur
8
permissions : Erreur
9
montage : Erreur
10
root@scribe:~#
Exemple
1
root@scribe:~# bareosmount.py -t
2
Problème de montage (1 essais restants)
3
[Errno 32] mount error(13): Permission denied
4
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
5
6
Problème de montage (0 essais restants)
7
[Errno 32] mount error(13): Permission denied
8
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
9
10
Échec du test de montage :
11
point de montage : Erreur
12
permissions : Erreur
13
montage : Erreur
14
root@scribe:~#

Base de donnée sqlite de Bareos irrécupérable

Lors d'un incident sur l'un des modules EOLE la base de donnée sqlite de Bareos peut être irrécupérable.

Il est possible de restaurer des données sans la base de données avec les commandes bls et bextract.

Inspiré de l'article suivant : https://pipposan.wordpress.com/2010/06/09/bacula-tape-restore-without-database/

Truc & astuce

Il est également possible de réaliser la récupération avec la commande bconsole.

Montage du support de sauvegarde et affichage des volumes par date

La commande ls -lrt permet de trier l'affichage des volumes par date :

root@srv-scribe:~# ls -lrt /mnt/sauvegardes/

On voit une sauvegarde FULL le 06/06/2015 (de nombreux volumes de 2Go ont la même date) :

-rw-r----- 1 bareos root 1999997379 2015-06-06 02:02 ScribeVolume0044

-rw-r----- 1 bareos root 1999936662 2015-06-06 02:05 ScribeVolume0068

-rw-r----- 1 bareos root 1999936707 2015-06-06 02:09 ScribeVolume0045

[...]

-rw-r----- 1 bareos root 1999936658 2015-06-06 04:34 ScribeVolume-0241

-rw-r----- 1 root root 1999936613 2015-06-06 04:38 ScribeVolume-0302

Utilisation de la commande bsl

root@srv-scribe:~# bls -j -V ScribeVolume0044 /mnt/sauvegardes

bls: butil.c:282 Using device: "/mnt/sauvegardes" for reading.

15-jun 16:38 bls JobId 0: Prêt à lire les données du volume « ScribeVolume0044 » depuis le device "FileStorage" (/mnt/sauvegardes).

Volume Record: File:blk=0:208 SessId=103 SessTime=1427205136 JobId=1 DataLen=173

End Job Session Record: File:blk=0:603258940 SessId=103 SessTime=1427205136 JobId=3381

Date=03-jun-2015 02:08:39 Level=I Type=B Files=13,342 Bytes=752,617,191 Errors=0 Status=T

Begin Job Session Record: File:blk=0:603259372 SessId=104 SessTime=1427205136 JobId=3382

Job=BackupCatalog.2015-06-03_02.00.00_48 Date=03-jun-2015 02:12:24 Level=I Type=B

End Job Session Record: File:blk=0:603259372 SessId=104 SessTime=1427205136 JobId=3382

Date=03-jun-2015 02:12:24 Level=I Type=B Files=0 Bytes=0 Errors=0 Status=T

[...]

Begin Job Session Record: File:blk=0:1308041742 SessId=109 SessTime=1427205136 JobId=3387

Job=Complet.2015-06-06_02.00.00_53 Date=06-jun-2015 02:00:12 Level=F Type=B

15-jun 15:54 bls JobId 0: Fin de Volume au fichier 0 sur le Device "FileStorage" (/mnt/sauvegardes), Volume « ScribeVolume0044 »

15-jun 15:54 bls JobId 0: Fin de tous les Volumes.

Le Job du 06/06/2015 a SessId=109 et SessTime=1427205136. Ainsi que le Job du dernier volume en date du 06/06/2015

root@srv-scribe:~# bls -j -V ScribeVolume-0302 /mnt/sauvegardes

bls: butil.c:282 Using device: "/mnt/sauvegardes" for reading.

15-jun 15:59 bls JobId 0: Prêt à lire les données du volume « ScribeVolume-0302 » depuis le device "FileStorage" (/mnt/sauvegardes).

Volume Record: File:blk=0:209 SessId=109 SessTime=1427205136 JobId=33 DataLen=174

15-jun 16:00 bls JobId 0: Fin de Volume au fichier 0 sur le Device "FileStorage" (/mnt/sauvegardes), Volume « ScribeVolume-0302 »

15-jun 16:00 bls JobId 0: Fin de tous les Volumes.

Génération d'un fichier bootstrap avec la liste des volumes à utiliser (tous ceux du 06/06/2015)

root@srv-scribe:~# cat boostrap.bsr

Volume="ScribeVolume0044"

VolSessionId=109

VolSessionTime=1427205136

Volume="ScribeVolume0068"

VolSessionId=109

VolSessionTime=1427205136

Volume="ScribeVolume0045"

VolSessionId=109

VolSessionTime=1427205136

[...]

Volume="ScribeVolume-0302"

VolSessionId=109

VolSessionTime=1427205136

Restauration

root@srv-scribe:~# root 15133 15119 25 16:26 pts/5 00:07:31 bextract -b boostrap.bsr /mnt/sauvegardes /home/restore/

Restauration LDAP

root@srv-scribe:~# service slapd stop

root@srv-scribe:~# md /home/sav/ldap

root@srv-scribe:~# mv /var/lib/ldap/*.* /home/sav/ldap/

root@srv-scribe:~# slapadd -l /home/sauv_ldap.ldif

Restauration MySQL

root@srv-scribe:~# mysql_pwd.py eole21 nomodif

root@srv-scribe:~# mysql -uroot -peole21 < /home/sauv_mysql.sql

Restauration Quotas

root@srv-scribe:~# bareosrestore.py --quota

Restauration SID

root@srv-scribe:~# cat /etc/eole/${MODULE}_SID | xargs net setlocalsid

Reconfiguration du serveur

Il faut procéder à la reconfiguration du serveur à l'aide de la commande reconfigure.

Annexes

Voici un complément d'information (outils d'administration, liens, …) pour aller plus loin avec Bareos.

Autres outils d'administration pour Bareos

L'administration de Bareos se fait au travers d'une console (texte ou graphique), qui pourra être installée sur le même serveur que le directeur (Director), mais aussi sur d'autres postes pour permettre de commander Bareos à distance.

Différentes versions existent :

  • bconsole est la console en mode texte ;

  • Bareos Administration Tool (BAT) est l'interface graphique standard qui permet d'exploiter bconsole, installable (25Mo) sur les modules EOLE avec la commande :

    # apt-eole install bareos-bat

    BAT se lance avec la commande suivante :

    # bat -c /etc/bareos/bat.conf

    Il est possible de lancer l'interface BAT à travers SSH avec l'option -X pour activer le déport de l'affichage et l'option -C pour éventuellement compresser les données (pratique pour les lignes à faible débit) :

    # ssh -C -X <adresse_serveur>

BAT (Bacula Administration Tool)
BAT (Bacula Administration Tool)
  • bgnome-console est une console graphique (notamment pour les opérations de restauration), mais nécessite l'installation des librairies GNOME 2.x ;

  • bwx-console est une version graphique utilisant wxWidgets

    L'installation de bwx-console est décrite pour Mandriva et pour Ubuntu à l'adresse suivante : http://m-k.cc/spip.php?rubrique3

  • bacula-win (http://sourceforge.net/projects/bacula/files/) permet notamment d'installer :

    • un client Windows (File Daemon) ;

    • des consoles : BAT, bconsole et TrayMonitor.

Il existe aussi des versions Web comme :

Pour avoir plus d'informations sur les outils mentionnés : http://wiki.bacula.org/doku.php?id=3rd_party_addons

Quelques références

Voici quelques références autour de Bareos et des sauvegardes.

Définition des éléments de sauvegarde Bareos :

http://doc.bareos.org/master/html/bareos-manual-main-reference.html#x1-60001.3

Un répertoire partagé Windows 7 comme support de sauvegarde

Les modules EOLE permettent d'utiliser plusieurs supports pour effectuer les sauvegardes, dont un répertoire partagé.

Pour la sauvegarde, les accès au partage doivent impérativement se faire en utilisant un compte local du poste sur lequel se trouve le dossier partagé.

Remarque

Donner des droits d'accès au partage à un compte du domaine pose un problème pour le bon déroulement des sauvegardes. En effet pour avoir accès au partage, la station va vérifier la validité de l'utilisateur et de son mot de passe auprès du contrôleur de domaine mais le service Samba est arrêté par Bareos pour éviter qu'un fichier/dossier ne soit modifié pendant la sauvegarde. L'accès au partage n'est donc pas validé par le contrôleur de domaine et la sauvegarde ne peut pas se faire.

Voici comment créer un partage avec les droits d'accès adéquats sur un poste équipé de Windows Seven.

Le dossier partagé peut se trouver sur le disque dur de la station Windows mais il peut aussi se trouver sur un disque dur externe connecté à la station.

Création d'un compte dédié sur le poste Windows 7

Ouvrir une session en administrateur local de la station sur laquelle vous voulez créer le partage.

Puis ouvrir la console de Gestion de l'ordinateur : Menu démarrer → Ordinateur → clic droit Gérer.

Aller dans le menu : Outils système → Utilisateurs et groupes locaux → Utilisateurs, puis effectuer un clic droit dans l'espace vide.

Configurer l'utilisateur comme ceci :

Finaliser l'opération en cliquant sur le bouton Créer.

Partage du dossier et réglage des droits d'accès

Après avoir créé un dossier sauvegardes à l'emplacement de votre choix, effectuer un clic droit sur le dossier et sélectionner Partager avec puis Des personnes spécifiques...

Entrer le nom de l'utilisateur créé précédemment et cliquer sur le bouton Ajouter.

Lui donner les droits en Lecture/écriture.

Finaliser l'opération en cliquant sur le bouton Partager.

Attention

L’interface propose une liste déroulante pour la sélection des utilisateurs spécifiques. Elle affiche le nom complet alors qu’il faut fournir le nom d’utilisateur.

En cas d’erreur du type Windows n’a pas pu trouver <utilisateur>, vérifier que le nom saisi correspond bien au nom d’utilisateur.

Un répertoire partagé Windows XP comme support de sauvegarde

Les modules EOLE permettent d'utiliser plusieurs supports pour effectuer les sauvegardes, dont un répertoire partagé.

Pour la sauvegarde, les accès au partage doivent impérativement se faire en utilisant un compte local du poste sur lequel se trouve le dossier partagé.

Remarque

Donner des droits d'accès au partage à un compte du domaine pose un problème pour le bon déroulement des sauvegardes. En effet pour avoir accès au partage, la station va vérifier la validité de l'utilisateur et de son mot de passe auprès du contrôleur de domaine mais le service Samba est arrêté par Bareos pour éviter qu'un fichier/dossier ne soit modifié pendant la sauvegarde. L'accès au partage n'est donc pas validé par le contrôleur de domaine et la sauvegarde ne peut pas se faire.

Voici comment créer un partage avec les droits d'accès adéquats sur un poste équipé de Windows XP.

Le dossier partagé peut se trouver sur le disque dur de la station Windows mais il peut aussi se trouver sur un disque dur externe connecté à la station.

Création d'un compte sur le poste Windows XP

Ouvrez une session en administrateur local de la station sur laquelle vous voulez créer le partage. Puis ouvrez la console de Gestion de l'ordinateur.

Ensuite, créez un nouvel utilisateur : Menu "Action" ou clic droit dans l'espace vide de la colonne de droite.

... avec les options configurées.

Partage du dossier et réglage des droits d'accès

Après avoir créé un dossier "sauvegardes" à l'emplacement de votre choix, partagez-le à l'aide d'un clic droit sur le dossier.

Puis cliquez sur Autorisations. Supprimez les autorisations par défaut ("Tout le monde") puis ajoutez "usersauv" avec "Contrôle total".

Fermez la fenêtre des autorisations puis allez dans l'onglet "Sécurité" et cliquez sur "Paramètres avancés".

Décochez "Hérite de l'objet parent...", une fenêtre s'ouvre alors, sélectionnez "Supprimer".

Ajoutez ensuite l'utilisateur "usersauv" toujours avec le "Contrôle total".

Enfin, affectez le "Contrôle total".