You are using an outdated browser. Please update your browser for a better user experience.

Démystifions la sauvegarde sur DryCat

DryCat c'est 20 machines, dont 3 au fonctionnement quotidien et une qui possède les backups.
Les backups qui sont bien entendu le sujet le plus sensible d'une infrastructure, sans backup, pas de restauration possible et on peut tout perdre du jour a lendemain. Et bien entendu, une backup non testé n'est pas une backup mais des fichiers copier. Dans le processus des backups, il faut donc impérativement tester les backups. Pas de test revient à la même chose que pas de backup.

Mais alors, sur DryCat, tu tests en plus de backuper ? Mais ça prend un temps monstre.

Oui, mais il faut le faire, sinon autant ne pas m'embêter à backuper. Ça ma été utile lors des dernières migrations de pouvoir compter sur mes backups.

Quels sont les outils pour sauvegarder DryCat ?

Il y a 4 choses à sauvegarder sur DryCat :

  • Les VMs
  • Les fichiers
  • La base de données MySQL
  • La base de donnée PostgreSQL.

Il y a deux types de VM sur DryCat :

  • Les VMs destructibles, c'est à dire les VMs où tout est automatisé et seul les données sont importante. Conserver l'intégralité des VMs n'a pas de sens et coute cher en espace de stockage
  • Les VMs non destructible. Il s'agit de VM où les logiciels ne sont pas déployé automatiquement (c'est le cas de Rudder) et qui sont long à configuré. Dans ce cas l'intégralité de la VM est à sauvegardé.

Pour la sauvegarde des VMs, Proxmox permet de gérer ce genre de sauvegarde et dépose ça sur les disques du serveur de backup. Seul les machines ne craignant pas une coupure ou n'étant pas "destructible" est sauvegardé comme ça.

La sauvegarde des fichiers est géré par Borg qui est paramétré via Ansible. Grâce à borg je garde une rétention de 7 jours, les fichiers sont compressé, dédupliqué... C'est peu gourmand en espace. Ces sauvegardes là sont les plus importantes, elles sont donc monitorées par Healthcheck qui vérifie le script est lancé et fini correctement et BorgBackup Dashboard qui vérifie que les sauvegardes sont bien créées.

Les bases de données MySQL sont sauvegardé via une tache cron qui exportent tout ça dans un fichier que Borg récupère ensuite.

PostgreSQL par contre est plus intéressant. Afin de ne générer aucune coupure (car même 30Go à sauvegardé, ça coupait certaines applications et c'était visible), j'ai utilisé pgbarman. Les bases de données sont sauvegardé tout les soirs en récupérant les fichiers de la base ainsi que les transactions qui se sont déroulé pendant la récupération des fichiers de la base de donnée. Cela permet, en plus de ne générer aucune coupure, d'avoir des backups très rapidement restaurable (en une ligne de commande).

Et après : plus qu'à tester tout ça ! Mais je n'ai malheureusement pas de script pour automatiser les tests :/