Automatiser les snapshots ZFS avec zfstools

Le 23/01/2021 20:37 par grz

Unix FreeBSD ZFS

Je suis tombé sur un vieil article très intéressant de Michael Warren Lucas sur l'automatisation des snapshots ZFS. Dans cet article il présente l'outil zfstools pour accomplir cette tâche.

Dans un premier temps, il faut installer le paquet qui va bien.

# pkg install zfstools

Le message de fin d'installation se suffit à lui seul pour expliquer les étapes suivantes.

L'étape suivante est de déterminer sur quel dataset activer l'auto-snapshot.

Par exemple :

# zfs set com.sun:auto-snapshot=true zroot/jails

Activera l'auto-snapshot sur mon dataset zroot/jails.

Pour consulter :

# zfs get com.sun:auto-snapshot zroot/jails

Pour tout voir :

# zfs get com.sun:auto-snapshot

Ensuite, tel que décrit dans le message post-installation, on ajoute les bonnes directives dans le fichier /etc/crontab. À adapter selon ses besoins, mais l'exemple est pas mal du tout.

Par exemple dans mon /etc/crontab, mon PATH ressemble à ça :

PATH=/etc:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin

Puis j'ai ajouté ceci à la fin du fichier :

# zfs-auto-snapshot
15,30,45 * * * * root /usr/local/sbin/zfs-auto-snapshot 15min 4
0 * * * * root /usr/local/sbin/zfs-auto-snapshot hourly 24
7 0 * * * root /usr/local/sbin/zfs-auto-snapshot daily 7
14 0 * * 7 root /usr/local/sbin/zfs-auto-snapshot weekly 4
28 0 1 * * root /usr/local/sbin/zfs-auto-snapshot monthly 12

À la prochaine itération, on vérifie que tout va bien :

# zfs list -t snapshot
zroot/jails@zfs-auto-snap_15min-2021-01-23-20h45 1.18M - 25.6G -

Pour déboguer on peut se reporter aux logs de cron dans /var/log/cron.