Aller au contenu

📥 Sécurisation avec les sauvegardes

Sauvegarde des données et des configurations des services

Les données persistantes des services et leur configuration sont hébergées sur un partage NFS. Le serveur NFS étant une VM tournant sur PVE, j'utilise donc l'outil de sauvegarde de l'hyperviseur pour sauvegarder ce serveur une fois par jour avec une rétention des 3 dernières sauvegardes.

Sauvegarde et restauration du Swarm

Je me suis fait un petit script Bash disponible ici.

Il n'est pas nécessaire de sauvegarder chaque noeud mais uniquement le répertoire /var/lib/docker/swarm/ sur un des noeuds manager contenant les logs et l'état du cluster Swarm. Avec DietPi le chemin de ce répertoire est /mnt/dietpi_userdata/docker-data/swarm.

Le script lance une commande d'arrêt du service Docker sur un des noeuds manager et si l'arrêt est OK, démarre la sauvegarde. À l'issue de la sauvegarde, le service Docker est redémarré puis un email est envoyé contenant le rapport de sauvegarde et le status du service Docker. Le script sauvegarde une fois par jour, par le biais d'une tâche Cron, le répertoire en question sur le serveur NFS. Ce serveur est quant à lui sauvegarder également une fois par jour (cf ci-dessus).

En cas de crash complet du Swarm, il suffira de restaurer ce répertoire à son emplacement d'origine. Si un répertoire swarm est déjà présent, il faudra le déplacer ou le supprimer.

Restauration Swarm
systemctl stop docker
cd <BACKUP_DIR>
cp -r swarm/ /mnt/dietpi_userdata/docker-data/
systemctl start docker
docker swarm init --force-new-cluster

Sauvegarde avec dietpi-backup

Il est possible de sauvegarder entièrement les noeuds avec l'utilitaire dietpi-backup qui s'appuie sur rsync. Un des intérêts est de pouvoir restaurer le noeud complet après un crash (sdcard morte par exemple) lors de la réinstallation de DietPi en précisant dans le fichier /boot/dietpi.txt que l'on souhaite restaurer une sauvegarde.

Cependant la sauvegarde est très lente et non incrémentielle. L'outil réalise à chaque fois une sauvegarde complète. Je trouve dommage qu'il n'utilise pas l'option "hardlink" de rsync qui permet de faire de la déduplication.

Maintenant si vous avez des Raspberry Pi 4 voire 5, la sauvegarde est peut-être plus rapide. Pour plus d'informations sur l'utilitaire, vous pouvez vous rendre sur DietPi backup backup/restore