dimanche 3 décembre 2006
Bacula 2 : Sauvegarder, restaurer et ajouter un client
Par JJL, dimanche 3 décembre 2006 à 13:51 :: kubuntu
Voici le deuxième article de ma série sur la sauvegarde d'un réseau local. Nous allons étudier le processus de sauvegarde/restauration (sur le serveur) puis configurer la sauvegarde d'une nouvelle machine.
- Bacula 1 : Installation et configuration du serveur
- Bacula 2 : Sauvegarder, restaurer et ajouter un client
- Bacula 3 : Interface graphique, Trucs et astuces
Notez que l'affichage des commandes a été allégé dans un but de simplification de l'article. Si vous les executez vous même, beaucoup plus d'informations apparaîtront. J'ai essayé de ne garder que le plus pertinent. Les ... signalent à peu pret les endroits ou j'ai coupé.
Rappelons aussi que le serveur de sauvegarde est nommé FortCigogne et le nouveau client Penfret. Les commandes sont préfixées par le nom de machine sur laquelle elles doivent être executées.
Sauvegarder
Voyons comment lancer une sauvegarde à la main.
Creer les Volumes de stockage
Les exemples sont pour des bandes, mais une procedure similaire est à faire dans les autres cas (Fichiers, dvd...).
Il faut affecter un Label aux différents média (les nommer) et les ajouter au Pool de sauvegarde (nous utilisons celui par défaut). Cette opération permet à bacula de connaître chaque média. Pensez aussi à étiquetter (physiquement) vos médias avec le label affecté.
Si la bande n'est pas vierge ou a déjà servi pour des tests, commencez par la nettoyer.
## arretons le Storage daemon qui a peut-être vérouillé le lecteur $ sudo invoke-rc.d bacula-sd stop ## on rembobine $ sudo mt -f /dev/st0 rewind ## on "efface" $ sudo mt -f /dev/st0 weof ## on redemarre le Storage daemon $ sudo invoke-rc.d bacula-sd start
Note: Si elle est deja utilisée dans un Pool de bacula utilisez plutôt purge et relabel
Puis labelisez la à l'aide de la Console (Plus d'infos dans la doc rapide ou de référence) :
$ sudo bconsole *label Using default Catalog name=MyCatalog DB=bacula Automatically selected Storage: DDS-3 Enter new Volume name: Backup01 Automatically selected Pool: Default ... 3001 Device /dev/st0 is mounted with Volume "Backup01" *list media Pool: Default +---------+------------+-----------+-----------+------------+ ... | MediaId | VolumeName | VolStatus | MediaType |LastWritten | +---------+------------+-----------+-----------+------------+ | 1 | Backup01 | Append | DDS-3 | 0 | +---------+------------+-----------+-----------+------------+ *quit
Démarrer une Sauvegarde
Pour lancer notre sauvegarde à la main, nous allons utiliser la Console :
FortCigogne$ sudo bconsole *show filesets FileSet: name=Config I /etc FileSet: name=Catalog I /var/lib/bacula/bacula.sql ... *status dir FortCigogne-dir Version: 1.36.3 (22 April 2005) i486-pc-linux-gnu debian testing/unstable Scheduled Jobs: Level Type Pri Scheduled Name Volume =================================================================================== Incremental Backup 10 28-Nov-06 01:05 FortCigogne_Config Backup01 Full Backup 11 28-Nov-06 01:10 BackupCatalog Backup01 ... *run A job name must be specified. The defined Job resources are: 1: FortCigogne_Config 2: BackupCatalog 3: RestoreFiles Select Job resource (1-3): 1 Run Backup job JobName: FortCigogne_config ... OK to run? (yes/mod/no): yes Job started. JobId=1 *status dir ... Running Jobs: JobId Level Name Status ====================================================================== 1 Full FortCigogne_Config.2006-11-27_21.21.51 is running ...
Quand il est terminé, vous pouvez voir le rapport en tapant messages. Si vous avez configuré correctement l'envoi de mail, vous devriez aussi en recevoir un.
Restaurer des fichiers
Toujours à partir de la Console :
*restore all Using default Catalog name=MyCatalog DB=bacula To select the JobIds, you have the following choices: 1: List last 20 Jobs run 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Cancel Select item: (1-9): 5 +-------+----------+---------------------+------------+ ... | JobId | JobFiles | StartTime | VolumeName | +-------+----------+---------------------+------------+ | 1 | 1157 | 2006-11-27 21:21:53 | Backup01 | +-------+----------+---------------------+------------+ You have selected the following JobId: 1 ... cwd is: / #### A ce moment vous pouvez selectionner quels fichiers vous allez restaurer #### Pour la manière de faire, voyez toujours dans la documentation $ done The job will require the following Volumes: Backup01 1157 files selected to be restored. Run Restore job JobName: RestoreFiles Where: /tmp/bacula-restores ... OK to run? (yes/mod/no): yes Job started. JobId=2 *quit
Vous notez que la restauration se fait dans un repertoire temporaire. Cela se change dans bacula-dir.conf ou via la Console.
Vous pouvez tester la restauration :
FortCigogne$ sudo diff /tmp/bacula-restores/etc/ /etc/
Ajouter un client
Nous allons maintenant ajouter la sauvegarde d'une autre machine : Penfret.
Installer et Configurer le client
Sur les clients, seul le service de fichier est necessaire :
Penfret$ sudo apt-get install bacula-fd Penfret$ sudo vi /etc/bacula/bacula-fd.conf
Modifiez le de cette manière :
# Authorise le serveur a se connecter
Director {
Name = FortCigogne-dir # Correspond au Name de Director dans bacula-dir.conf sur le serveur
Password = ""
}
Verifiez la syntaxe de votre fichier et redémarrez le File daemon :
Penfret$ sudo bacula-fd -t -c /etc/bacula/bacula-fd.conf Penfret$ sudo invoke-rc.d bacula-fd restart
Configurer le serveur
Nous allons donc modifier la configuration du serveur pour y ajouter un nouveau Job et un nouveau Client. Editez le fichier bacula-dir.conf
Les modifications sont assez similaires à celles que nous avons vu pour la sauvegarde du serveur FortCigogne.
Job {
Name = "Penfret_Config"
JobDefs = "DefaultJob"
FileSet = "Config" # Ici le même que pour FortCigogne
Client = Penfret-fd # Voir Client ci-dessous
Write Bootstrap = "/var/lib/bacula/Penfret.bsr"
}
Client {
Name = Penfret-fd # voir Job ci-dessus
Address = Penfret # La nouvelle machine à sauver
FDPort = 9102
Catalog = MyCatalog
Password = "" # password for FileDaemon
File Retention = 30 days # 30 days
Job Retention = 6 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}
Redémarrez le Director daemon pour prendre en compte vos modifications.
FortCigogne$ sudo bacula-dir -t -c /etc/bacula/bacula-dir.conf FortCigogne$ sudo invoke-rc.d bacula-director restart
Pour vérifier que le nouveau client est bien connu, utilisez la console :
FortCigogne$ sudo bconsole *status dir Scheduled Jobs: Level Type Pri Scheduled Name Volume =================================================================================== Incremental Backup 10 28-Nov-06 01:05 FortCigogne_Config Backup01 Incremental Backup 10 28-Nov-06 01:05 Penfret_Config Backup01 Full Backup 11 28-Nov-06 01:10 BackupCatalog Backup01 ...
Vous pouvez alors le sauvegarder de la même manière que vue pour le serveur.
A noter, nous n'avons pas modifié la programation automatique des sauvegardes. Par défaut, elles sont toutes les nuits à partir de 1h05 :
- Complètes (Full) le 1er dimanche de chaque mois
- Différentielles (Difeferential) les autres dimanches
- Incrémentales (Incremental) les autres jours
Pour plus d'explications, allez lire ... la documentation
Dans le dernier article nous découvrirons les possibilités d'utiliser une interface graphique, comment paufiner un peu notre configuration et enfin tous les liens pour aller plus loin.
5 commentaires :: aucun trackback :: Tags: