Backups

Modifié par Clément AUBIN le 2022/01/17 12:29

Présentation

Depuis le mois de février 2017, ATILLA dispose de sauvegardes sur les principaux composants de son infrastructure. Ces sauvegardes sont effectuées chaque jour et incluent des éléments tels que :

  • Des dumps des bases de données de production (pgsql-prod, mysql-prod) et de test (pgsql-test, mysql-test)
  • Des dumps de bases de données spécifiques à certains services : gitlab-prod et rocket-prod
  • Des éléments de configuration pour les services critiques de l’infrastructure : configuration DNS, DHCP, …

Fonctionnement

Ces sauvegardes sont effectuées à l’aide de l’infrastructure Bacula proposée au sein du S.I. de l’EISTI ; le serveur bill.atilla.org dispose d’un file daemon Bacula chargé d’effectuer les sauvegardes de l’infrastructure tous les jours à partir de 21h.

En pratique, l’agent bacula-fd présent sur bill.atilla.org ne sauvegarde que le contenu du dossier /srv/bacula, dans ce dossier se trouvent plusieurs montages NFS des différents serveurs à sauvegarder.

Ajout d’un nouveau contenu à sauvegarder

Si vous souhaitez mettre en place une sauvegarde pour un nouveau serveur, voici un exemple de procédure à suivre.

Depuis Janvier 2022, le montage des dossiers de backup entre la VM à sauvegarder et Bill est effectué automatiquement avec Puppet. En pratique, il est nécessaire d'ajouter la classe atilla::services::backups::share au nœud à sauvegarder, et de configurer la variable atilla::services::backups::share::folder. Puppet se charge ensuite d'installer nfs-kernel-server sur la machine, de configurer ses exports, et de créer un point de montage sur Bill.

L'ensemble doit être opérationnel sous une heure après l'ajout de la configuration dans Puppet. Il est possible de regarder sur puppet.admin.atilla.org pour valider que le déploiement de la configuration se passe comme prévu, ou alors on peut tout simplement forcer l'exécution de la synchro Puppet, d'abord sur la machine à sauvegarder, puis sur Bill, avec la commande puppet agent -t.

Voici par exemple la déclaration de la VM gitlab-prod, pour sauvegarder le contenu de son dossier /var/opt/gitlab/backups, à retrouver sur GitLab ici :

---
classes:
  - atilla::services::backups::share

atilla::services::backups::share::folder: '/var/opt/gitlab/backups'

Notes importantes

  • Pour que notre installation de Bacula soit homogène avec les installations de la DOSI, notre agent bacula-fd à été rétrogradé à sa version 5.4.
  • Il est nécessaire de notifier la DOSI lors de l’ajout d’un nouveau répertoire monté via NFS dans /srv/bacula pour que la sauvegarde de ce nouveau point de montage soit effective.
  • Il est également nécessaire de notifier la DOSI lors de l'ajout de gros volumes à sauvegarder (>5G).