Wiki du DRT

Outils d'utilisateurs

Outils du Site


scribe:sauvegarde_restauration_avec_bacula

LA SAUVEGARDE ET LA RESTAURATION AVEC BACULA SUR UN SYSTEME SCRIBE

Exporter la page au format Open Document



Introduction

Une sauvegarde est essentielle sur un serveur SCRIBE. Elle permet de dépanner en cas :

  • de perte de fichiers
  • d'infection virale
  • de crash de disque dur
  • de problème d'annuaire…

Le logiciel qui permet de sauvegarder le serveur est BACULA. Il s'agit d'un logiciel open-source de sauvegarde, le plus utilisé en entreprise. Il est intégré nativement sur les SCRIBE.

La sauvegarde sur SCRIBE

Sur quels supports sauvegarder ?

Actuellement, 2 types de support peuvent être utilisés pour sauvegarder un serveur SCRIBE :

  1. un disque dur USB de taille au moins égale à 3 ou 4 fois la taille du disque dur du SCRIBE (permet d'avoir une durée de rétention des sauvegardes suffisante)
  2. un partage Windows distant sur un poste allumé en permanence.

Le plus utilisé actuellement, mais aussi le moins cher mais le moins sécurisé, est le disque dur USB. L'inconvénient majeur est que l'on ne peut pas facilement déporté le disque dur. Il est donc relié physiquement au serveur.

Le disque dur USB devra avoir ces caractéristiques :

  • disque avec la norme USB3
  • disque externe 3.5 pouces alimenté électriquement et ondulé (sur l'onduleur du scribe)
  • 2, 3 ou 4 To en 7200 tours/minutes

Voici quelques modèles recommandés.

Programmation de la sauvegarde

2 ou 3 types de sauvegardes sont nécessaires selon votre version de Scribe :

  • la complète qui fait une sauvegarde totale de tout ce qui doit être sauvegardé (Scribe 2.2 et 2.3)
  • l'incrémentale qui se contente de sauvegarder les nouveaux fichiers (Scribe 2.2 et 2.3)
  • la différentielle : on ne sauvegarde que ce qui a changé depuis la dernière sauvegarde complète (Scribe 2.3)

La programmation sur Scribe 2.2 :

  • une sauvegarde hebdomadaire complète et totale le dimanche à 2h (ou avant la mise à jour du serveur)
  • une sauvegarde quotidienne incrémentale du mardi 2h au samedi 2h.

La programmation sur scribe 2.3 :

  • Une sauvegarde totale dans la première nuit du mois du dimanche au lundi à 21:00
  • Une sauvegarde différentielle dans la nuit du vendredi au samedi à 21:00
  • Une sauvegarde incrémentale de la nuit du lundi au mardi à la nuit du jeudi au vendredi à 21:00

On programmera impérativement les sauvegardes durant la nuit car le serveur est beaucoup sollicité pendant cette période.

Quels sont les fichiers sauvegardés ?

Voici la liste des répertoires et fichiers sauvegardés par Bacula (uniquement ce qui est nécessaire) :

  • /home (avec support ACLs) = répertoires personnels des utilisateurs,…
  • /etc/mail/sympa_aliases
  • /etc/eole/config.eol = fichier de configuration du serveur, très important
  • /etc/eole/patch = les différents patches s'il y en a
  • /etc/eole/dicos
  • /etc/eole/SCRIBE_SID (généré) = SID du domaine (identifiant de sécurité pour identifier les ressources et les personnes sur un réseau Microsoft)
  • /var/lib/sympa/expl
  • /var/lib/mysql = base de données mysql
  • /var/lib/ldap = l'annuaire LDAP
  • /var/www/ead/config = configuration de l'EAD (par exemple le paramétrage de bacula)
  • /var/www/ead/modeles
  • /usr/share/ead/perso/
  • /usr/share/eole/backend/conf = paramétrage des partages samba (commun, icones, devoirs, groupes)
  • /usr/share/eole/backend/special_shares.py = partages présentant des cas particuliers (lettre de lecteur réservée)
  • /etc/bacula/listefichiersperso.conf (une inclusion de fichiers personnalisés)

Le dossier /var/www/html n'est pas sauvegardé par défaut.
C'est dans ce dossier que l'on installe des applications web, il faudra donc veiller à le sauvegarder si l'établissement utilise des applications web (cdt, grr…).

Il est possible d'ajouter des répertoires à cette liste : Voir la FAQ.

Paramétrer la sauvegarde

L'entreprise ou les techniciens des collectivités ont déjà effectué ce paramétrage, cette aide est là au cas où vous vouliez modifier le support de sauvegarde.

Programme sur un disque USB local

Sur scribe 2.2 il est conseillé de formater (avec l'outil GParted) le disque en ext3 alors que sur scribe 2.3, il faut le formater en ext4.

Dans ce cas, on utilisera l'uuid de la partition de sauvegarde comme chemin d'accès. Cela évite que la sauvegarde se fasse dans /boot en cas d'inversion entre sda et sdb.

Pour connaître le chemin à déclarer dans la configuration de bacula (le disque USB doit être branché):

blkid

On peut alors voir l'UUID des partitions mais aussi leur LABEL ainsi que le système de fichier utilisé :

Ou encore:

ls -l /dev/disk/by-uuid/

On visualise alors les liens symboliques “uuid” vers les partitions.

On voit dans cet exemple que l'uuid de la partition sdb1 : 492B-B037

Le chemin d'accès à déclarer sera donc /dev/disk/by-uuid/492B-B037

Programme sur un partage distant (PC, NAS ou disque réseau)

Si l'accès au partage est authentifié avec un compte local, celui-ci doit être renseigné sous la forme <machine>\<login>

Si la configuration avec le nom de machine distante ne fonctionne pas, n'hésitez pas à mettre l'IP à la place.

Votre machine doit être accessible sur les ports 139 et 445. Configurez votre pare feu si ce n'est pas le cas.

Paramétrage des droits sur le serveur sur Scribe 2.3

Sur scribe 2.3 il est nécessaire de changer les droits sur le point de montage /mnt/sauvegardes

Monter d'abord le support avec la commande

/usr/share/eole/bacula/baculamount.py --mount

puis

cd /mnt
chown -R bacula:root /mnt/sauvegardes
/usr/share/eole/bacula/baculamount.py –umount

Restauration totale

Pour restaurer totalement un serveur, on utilisera cette procédure, utilisée principalement dans le cas précis d'un crash de serveur.

Restauration partielle

Il faut disposer des droits SuperUtilisateur 'Root' pour faire ces manipulations.

Tout se passe à la console du serveur, directement sur le serveur ou en SSH via Putty ou un terminal Gnu/Linux.

Montage et démontage du support de sauvegarde

Que ce soit sauvegardé sur un support distant (NAS) ou un disque dur USB, pour monter le support de sauvegarde, une seule commande :

Sur Scribe 2.2 :

Montage :

  /usr/share/eole/bacula/montage.sh pre

Démontage :

  /usr/share/eole/bacula/montage.sh post

Sur Scribe 2.3 :

Montage :

/usr/share/eole/bacula/baculamount.py --mount

Démontage :

/usr/share/eole/bacula/baculamount.py --umount

Vérification du montage

Le montage se fait dans un dossier différent si l'on est sur Scribe 2.2 (/var/sauvegardes) ou Scribe 2.3 (/mnt/sauvegardes).

On pourra donc vérifier que le point de montage contient bien les fichiers de la sauvegarde en tapant la commande :

ls /var/sauvegardes

ou

ls /mnt/sauvegardes

Exemple sur Scribe 2.2 :

Utilitaire de sauvegarde/restauration "bconsole"

1 - Lancement de l'utilitaire bconsole

bconsole

A partir de là, le prompt est devenu une *.

On peut passer des commandes bconsole. Pour avoir la liste des commandes :

help

Quelques commandes utiles :

  • Pour quitter : quit
  • Pour annuler une commande : .

2 - Activation du mode restauration

restore

Le menu Restauration apparaît tel quel :

3 - Sélection de l'option de restauration

En tapant :

5

On sélectionne la sauvegarde la plus récente. On peut taper 6 si on veut restaurer à une date précise.

Scribe 2.2

Le menu suivant apparaît :

puis sur :

2

puis encore sur :

2

Sur Scribe 2.3 :

C'est ce menu qui apparaît :

Il faut taper ensuite

3

L'arborescence des fichiers sauvegardés est maintenant construite comme le montre cette capture :

A la fin de la construction, le prompt est maintenant devenu $.

On va pouvoir se déplacer dans l'arborescence, en utilisant les commandes suivantes :

  • help pour voir la liste des commandes
  • cd pour se déplacer
  • ls pour lister le répertoire courant

Cela nécessite donc de connaître l'emplacement des fichiers à restaurer.

Le dossier personnel de prenom.nom est dans :
/home/p/prenom.nom/perso/
Les répertoires partagés sont dans :
/home/workgroups/commun/…
ou /home/workgroups/c601/ pour la classe c601…

4 - Déplacement dans un dossier spécifique

cd /home/p/prenom.nom/perso/

Exemple :

puis listing des fichiers sauvegardés dans ce dossier

ls

Exemple :

5 - Sélection des fichiers à restaurer

Pour cela, nous allons utiliser la commande mark. On peut marquer un fichier ou un dossier. Par défaut, si on marque un dossier, tous les fichiers contenus à l'intérieur seront restaurés. C'est une commande récursive.

Exemple :

On veut restaurer le fichier sncf.mdb :

mark sncf.mdb

En utilisant la commande lsmark, on peut voir les fichiers “marqués” qui seront donc restaurés.

La commande unmark permet de dé-marquer les fichiers marqués par erreur.

6 - Fin de sélection des fichiers à restaurer

La commande à utiliser est done.

done

7 - Lancer la restauration des fichiers marqués

Ici, nous avons un menu qui permet plusieurs types de restauration :

  1. Restauration des fichiers marqués
  2. Restauration totale
  3. Restauration de l'annuaire LDAP
  4. Restauration de la base de données MySQL
  5. Restauration des quotas
  6. Restauration du serveur de messagerie instantanée Ejabberd

On restaure donc uniquement nos fichiers, on tape donc :

1

8 - Confirmation de la restauration immédiate

Restaurer avec les options par défaut

Par défaut, les fichiers seront restaurés à leur emplacement d'origine à partir de la racine / et la restauration sera lancée immédiatement.

Pour cela, il faut écrire :

yes

Si vous optez pour une sauvegarde totale, ldap ou autre, des services seront arrêtés sur le serveur, il ne faut donc qu'il n'y est personne de connecté. On pourra éventuellement utiliser la commande when (Cf. §modification des options de restauration) pour ne pas lancer la restauration immédiatement.

La restauration est lancée, vous pouvez voir l'évolution (en tapant sur la touche Entrée):

autodisplay on

La restauration est terminée uniquement si vous voyez apparaître * Restauration terminée *

Modifier les options de restauration

Pour restaurer dans un autre répertoire (non obligatoire)
OK to run? (oui/mod/non), on tapera :

mod

Le menu suivant apparaît :

Sélectionner ensuite : 9 (where)

Destination et saisir le chemin (prefix) pour la restauration.

Exemple : /home/restauration/.

On peut aussi modifier l'heure de restauration en utilisant la commande when

9 - Vérification de la bonne restauration des fichiers

Pour vérifier que les fichiers ont bien été restaurés, 2 façons simples :

  1. sur le serveur SCRIBE, en ligne de commande avec les commandes cd et ls
  2. depuis un poste windows, en utilisant l'explorateur Windows : \\srv-scribe\…

Comme /home est la seule partition à supporter les ACLs, une restauration dans /tmp ou autre, par exemple, ne permettrait pas de restaurer les ACLs si les fichiers/dossiers étaient à l'origine dans /home.
Dans notre exemple, vu qu'on a restauré dans /home les ACLs ont été conservés :-D.

10 - Annuler un Job

Toujours en tant que ROOT:

bconsole

et au lieu de saisir restore on tape cancel, une liste va apparaitre et il reste plus qu'à choisir le job à annuler.

11 - Quitter bconsole

Il y'a noté * Restauration terminée * (lorsqu'on a utilisé la commande autodisplay on), c'est donc fini, on peut quitter l'utilitaire :

quit

Normalement, le script de restauration démonte le lecteur USB, vous pouvez tout de même le démonter au besoin par la commande :
Scribe 2.2 :

/usr/share/eole/bacula/montage.sh post

Scribe 2.3 :

/usr/share/eole/bacula/baculamount.py –umount


Ressources complémentaires

scribe/sauvegarde_restauration_avec_bacula.txt · Dernière modification: 2015/03/05 14:47 par jcvilleneuve