console linux

Bacula – nettoyage de printemps des volumes inutilisés

Si vous avez un manque d’espace pour Bacula, ceci peut peut-être bien vous aider, mais pas vous sauver… Il faut toujours bien penser à son dimensionnement d’espace disque nécessaire dès le départ.

Mais parfois il arrive que vous faites des changements importants, comme changer les pools utilisés par certains jobs. A ce moment là, vous risquez d’avoir beaucoup de volumes qui n’ont plus de jobs associés une fois la période de rétention passée.

Cas concret :

Vous révisez votre façon de sauvegarder avec Bacula et vous décidez de dissocier les backups systèmes et backups data. Ceci afin d’avoir une rétention de 3 mois sur les systèmes et 12 mois sur les data. Cela vaut aussi pour séparer des données critiques avec rétention de 10 ans et des données temporaires de projets de < 6 mois. Les volumes des deux pools sont sur le même disque physique (une grosse baie RAID par exemple).

Si vous modifiez les jobs “data” du pool de 3 mois vers celui de 12 mois, il faut savoir que les volumes de ce pool de 3 mois seront toujours là. Ce qui est normal vu que la rétention de 3 mois est toujours active. Après les 3 mois passé, les jobs sont retirés du catalogue, et les volumes sont toujours présents afin d’être recyclés si besoin. Mais au vue de nos changements, ce nombre de volumes prêts à être recyclés est trop important et prend de l’espace physique sur le disque inutilement.

C’est comme si vous 2 pools étaient 2 containers de cargo. Celui de 3 mois était plein, mais après changement il est à moitié vide. Pourtant il garde la même taille sur le cargo. On va donc réduire la taille de ce containers pour pouvoir en mettre un autre sur l’espace gagné.

Afin de gagner de l’espace sur le disque physique et d’avoir quelque chose de plus réaliste entre le volume de données Bacula et le volume réel des données, nous allons grappiller sur cet espace “perdu”.

Obtenir la liste des volumes bacula inutilisés

Cela se fait via des requêtes SQL, la plupart étant déjà toutes faites, voici la liste :

Voir le fichier /etc/bacula/scripts/query.sql pour la liste des query disponibles. Je mets celles que j’ai ici en pièce jointe : query.sql

Celle qui nous intéresse est “List total files/bytes by Volume”

Vous aurez une liste qui contiendra tous les volumes, avec tous les jobs associés du genre :

On veut justement le contraire nous : tous les volumes vides. On va donc travailler en faisant un diff entre la liste de tous les volumes et cette liste de volumes associés à des jobs. On aura donc la liste des volumes n’ayant pas de job associés dans Bacula. Vous pouvez faire cela via une requête SQL dédiée pour la réutiliser via la commande query de Bacula plus tard. Mais dans mon cas, j’ai fais au plus simple.

On écrit la liste des volumes :

On arrange proprement :

On va lister les fichiers de volumes concernés en se déplaçant dans le répertoire des volumes Bacula :

Visionnez le diff :

Obtenir la liste les volumes vides de jobs :

Vérification des volumes Bacula

Pour savoir la taille que cela va vous faire gagner en espace physique (en Go):

On va vérifier toute la liste des volumes afin d’être sur qu’il n’y a plus de job associés!

La query qui nous intéresse est la 14 “List Jobs stored for a given Volume name”

Vous aurez la liste des jobs qui ne renverra aucun résultat :

Si vous avez quelque chose du genre de ceci, vous avez fait une erreur quelque part! Attention à ne pas supprimer des jobs utiles de Bacula.

Suppression des volumes Bacula

Suppression d’un volume du catalogue directement avec tous ses jobs associés! (dans note cas, il n’y a plus de jobs associés)

Pour tous les volumes :

On supprime physiquement les volumes du disque :

Voilà 950Go de gagné! Bacula pourra toujours créer des volumes dans les deux pools en fonction de ses besoins.

Et n’oubliez pas de monitorer tout cela avec l’interface web pour Bacula. Pour toutes les infos sur Bacula, je vous redirige vers la bible 🙂

 

2 thoughts on “<span>Bacula – nettoyage de printemps des volumes inutilisés</span>”

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">