Script Python pour automatiser la sauvegarde périodique d'une piscine ZFS

Bonjour,

Je ne sais pas si ça intéresse quelqu’un. Mais voilà.

Chez moi, j’ai un serveur qui s’appelle ATLANTIS. ATLANTIS roule FreeBSD sur un AMD Ryzen 5 2600, avec 4 x 4 disques de 4 TB dans une piscine ZFS (ZFS ZPOOL). ATLANTIS a une carte mère ASRock Fatal1ty de GAMING qui permet le Gigabit Ethernet, et supporte la mémoire ECC. J’ai mis 8 GB ECC RAM.

J’ai enfin eu le temps d’écrire un script d’automatisation pour répliquer la piscine ZPOOL « tank » vers mon autre serveur qui s’appelle PIKACHU. PIKACHU est seulement pour envoyer les sauvegardes.
C’est un Raspberry Pi 4 Model B avec 4 GB RAM et un disque de SATA 4 GB branché en SATA-2-over-USB-3.0.

Il me reste 2 choses à faire pour ce projet:

  • Invoquer le script dans un CRONTAB
  • utiliser l’envoi incrémentiel avec zfs send -R -I previous_snapshot snapshot

L’envoi incrémentiel de ZFS est de loin supérieur à RSYNC.

Si mettons, j’ai 13 TB de données sur « tank » dans ATLANTIS, avec « zfs send », je peux envoyer seulement les nouveautés depuis le dernier snapshot. C’est équivalent à « git push origin my-topic » parce que GIT, lui aussi, il est intelligent et va envoyer au serveur origin seulement les parties de my-topic qui ne sont pas déjà connues sur le serveur.

J’ai mis les détails de mon hardware dans mon script.

Mon script Python 3.7 est ici: