Forum Linux.général Bacula : Explications

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
23
mar.
2014

Bonjour à tous,

Je me permets de poster sur ce forum pour vous demander votre aide. J'ai mis en place un système de sauvegarde sur Bacula.

Je sauvegarde plusieurs serveurs (réels et virtuels) sur des bandes "virtuelles" sur un NAS Synology.

Voici ma politique de sauvegarde :
- Sauvegardes incrémentales quotidiennes, rétention 15 jours
- Sauvegardes complètes hebdomadaires, rétention 1 mois
- Sauvegardes complètes mensuelles, rétention 2 mois
- Sauvegardes complètes annuelles, rétention 10 ans

L'ensemble fonctionne parfaitement à un détail près : en voulant faire un essai de restauration (car il faut le faire de temps en temps), je ne retrouve pas mes sauvegardes annuelles effectuées en septembre 2013 et pourtant j'ai bien 2 bandes avec 100Go sur chaque.

Quelques éléments sur la configuration :
Pool de bandes sauvegardes annuelles

MediaId | VolumeName | VolStatus | Enabled | VolBytes | VolFiles | VolRetention | Recycle | Slot | InChanger | MediaType | LastWritten |
+---------+------------+-----------+---------+-----------------+----------+--------------+---------+------+-----------+-----------+---------------------+
| 40 | D001 | Full | 1 | 107,374,138,457 | 24 | 315,360,000 | 0 | 0 | 0 | File | 2013-09-03 22:27:20 |
| 41 | D002 | Full | 1 | 107,374,160,118 | 24 | 315,360,000 | 0 | 0 | 0 | File | 2013-09-04 01:42:36 |
| 42 | D003 | Append | 1 | 2,991,135,696 | 0 | 315,360,000 | 0 | 0 | 0 | File | 2013-09-04 02:21:46 |

Config job :

Job {
   Name = "Sauvegarde_SerLinS01"
   Client = SerLinS01-fd
   JobDefs = "Sauvegarde_Quotidienne_Linux"
   RunBeforeJob = "/etc/bacula/scripts/mount_media"
   Write Bootstrap = "/var/lib/bacula/SerLinS01.bsr"
   RunAfterJob = "/etc/bacula/scripts/duplicate_file SerLinS01.bsr"
}

Config du pool annuel :

Pool {
  Name = Yearly 
  Pool Type = Backup
  Recycle = no                       # Bacula can automatically recycle Volumes
  AutoPrune = no                     # Do not prune expired volumes
  Volume Retention = 10 years        # 10 years
  Maximum Volume Bytes = 100G
}

Lorsque je tente une restauration à partir de la bconsole, j'ai le message suivant :

restore
First you select one or more JobIds that contain files
to be restored. You will be presented several methods
of specifying the JobIds. Then you will be allowed to
select which files from those JobIds are to be restored.

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: Find the JobIds of the most recent backup for a client
10: Find the JobIds for a backup for a client before a specified time
11: Enter a list of directories to restore for found JobIds
12: Select full restore to a specified Job date
13: Cancel
Select item: (1-13): 6
The restored files will the most current backup
BEFORE the date you specify below.

Enter date as YYYY-MM-DD HH:MM:SS :2013-09-15 00:00:00
Defined Clients:
1: SerLinD01-fd
2: SerLinS01-fd
3: SerLinS02-fd
4: SerWinS01-fd
Select the Client (1-4): 2
The defined FileSet resources are:
1: Catalog
2: Linux
Select FileSet resource (1-2): 2
No Full backup before 2013-09-15 00:00:00 found.

Config client :

Client {
Name = SerLinS01-fd
Address = 192.168.2.1
FDPort = 9102
Catalog = MyCatalog
Password = "mon mot de passe" # password for FileDaemon
File Retention = 21 days # 30 days
Job Retention = 2 months # six months
AutoPrune = yes # Prune expired Jobs/Files
}

Avez-vous une petite idée ? Je pense que les données sont présentes mais que la base de données Bacula ne contient plus la liste des données sauvegardées. Je pense que j'ai un problème avec les rétentions définies ci-dessus. Dois-je passer la valeur "Job retention" à une valeur plus élevée ?

Merci d'avance pour votre aide.

Rob

  • # je dis surement une connerie

    Posté par  . Évalué à 2.

    mais tu essayes de restaurer avec :

    • 6: Select backup for a client before a specified time
    • Enter date as YYYY-MM-DD HH:MM:SS :2013-09-15 00:00:00
    • 2: SerLinS01-fd
    • 2: Linux

    mais dans la defintion du client tu lui indiques catalog

    Catalog = MyCatalog

    donc il est peut-etre normal que bacula n'ait pas fait de sauvegarde du "linux" mais uniquement un catalogue des fichiers de la machine.

    • [^] # Re: je dis surement une connerie

      Posté par  . Évalué à 1.

      Bonjour,

      La directive Catalog correspond au catalogue (=base de données) dans lequel les noms des fichiers sauvegardés sont indexés (ainsi que les noms de Pool, les medias de stockage, etc.). Le fileset "Catalog" est sauvegardé et peut être restauré. Le problème ne vient pas de là.

      Je viens de trouver la solution je pense. J'ai découvert un paragraphe dans la documentation que je n'avais pas vu auparavant. Voici ce qui est dit :

      Pool File and Job retention
      We added two new Pool directives, FileRetention and JobRetention, that take precedence over Client directives of the same name. It allows you to control the Catalog pruning algorithm Pool by Pool. For example, you can decide to increase Retention times for Archive or OffSite Pool.

      Donc en plus de définir la rétention de la liste des fichiers sauvegardés et des jobs dans la config du client, on peut définir ces mêmes rétentions au niveau du pool de médias. Ce sont ces dernières qui écrasent les valeurs définies au niveau du client. Cela paraît plus que logique.

      J'ai donc ajouté dans la définition de mon pool de bandes pour les sauvegardes annuelles les 2 directives suivantes :

      FileRetention = 1 year #je conserve le détail de tous les fichiers sauvegardés pendant 1 an
      JobRetention = 10 years #je conserve les données du job pendant 10 ans

      Autrement dit, je peux faire une restauration fichier par fichier pendant 1 an et je peux restaurer en un seul bloc l'ensemble des fichiers sauvegardés pendant 10 ans.

      Ma précédente configuration qui était erronée a supprimé les "méta données" du job mais les données sont toujours là… C'est certainement inexploitable. Je peux supprimer mes 200Go de données.

      Je reviens vers vous dans quelques mois voir si cela fonctionne correctement ;-)

      N'hésitez pas à me contredire si vous pensez que j'ai mal compris.

      Merci de m'avoir lu.

      Rob

      • [^] # Re: je dis surement une connerie

        Posté par  . Évalué à 2.

        Je n'ai plus utiliser Bacula depuis 2 ans mais tu doit avoir une commande pour récupérer les méta-données des jobs et fichier directement depuis la bande de sauvegarde, cela reconstruit le catalogue.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.