Ceci est une ancienne révision du document !
Table des matières
Guide d’utilisation du dossier /home sur ZFS
Consultation de l’espace libre
Lorsque le dossier /home des postes Linux utilise ZFS, les commandes qui affichent le périphérique afficheront le nom « dataset » (home) à l’intérieur du « pool » (zdata) au lieu d’un nom de périphérique. Par exemple :
df -h /home/ Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur zdata/home 417G 131G 287G 32% /home
Une commande spécifique permet de consulter des informations du pool. Dans l’exemple suivant, qui correspond au même système de fichiers que celui de l’exemple précédent, le taux de dé-duplication 1.31x explique le fait que seulement 99.4G sont alloués pour stocker 131G de données.
zpool list NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT zdata 398G 99.4G 299G - - 0% 24% 1.31x ONLINE -
Sauvegardes locales (snapshots)
Si le disque est HS ou si la machine est volée, les données sont perdues.
Il s’agit en fait de prise d’instantanés (snaphots) à intervalle réguliers permettant de consulter le système de fichier tel qu’il était dans le passé. La configuration des snapshots est à faire en prenant en compte l’espace libre et l’usage qui est fait du système de fichier. La résilience en cas d’erreur de manipulation est fonction de la configuration des snapshots. Il est possible de moduler la fréquence et la durée de rétention des snapshots. Plus la durée de rétention est longue, plus l’espace disque consommé est important. L’espace disque libéré par la suppression de fichiers n’est utilisable que lorsque le snapshot de durée de conservation la plus élevée a expiré.
Consultation des snapshots
Le dossier /home/.zfs/ est un dossier virtuel qui n’apparaît pas lors du listing de /home mais qui est monté à la demande lors de l’exécution de commandes ls, cd … La complétion sur /home/.zfs ne fonctionnera pas mais celle sur /home/.zfs/ ainsi que celle sur les dossiers de /home/.zfs/snapshot/.
Les horaires exprimés au niveau des noms des snapshots sont explicitement en TZ=UTC et non en TZ=CEST afin d’éviter que le mécanisme de changement d’heure entre hiver et été (Dayligth Saving Time) ne provoque des bugs.
L’ordre lexicographique suit l’ordre chronologique de part la convention de nommage. Un exemple de listing :
♯ ls -l /home/.zfs/snapshot/ total 0 drwxrwxrwx 1 root root 0 juil. 2 14:00 autosnap_2025-07-02_12:00:04_hourly drwxrwxrwx 1 root root 0 juil. 2 14:15 autosnap_2025-07-02_12:15:06_daily drwxrwxrwx 1 root root 0 juil. 2 14:15 autosnap_2025-07-02_12:15:06_monthly drwxrwxrwx 1 root root 0 juil. 2 15:00 autosnap_2025-07-02_13:00:14_hourly drwxrwxrwx 1 root root 0 juil. 2 16:00 autosnap_2025-07-02_14:00:11_hourly
Afin de faciliter l’accès au dernier snapshot en date, un lien symbolique est disponible :
ls -l /home/.zfs_snapshot_latest lrwxrwxrwx 1 root root 59 juil. 2 16:00 .zfs_snapshot_latest -> /home/.zfs/snapshot/autosnap_2025-07-02_14:00:11_hourly
Le suffixe des snapshots correspond à l’intervalle d’exécution. Les noms parlent d’eux même (hourly, daily, monthly et même yearly). Lorsque l’intervalle est inférieur à une heure, le suffixe est frequently.
Configuration des snapshots
La configuration est centralisée dans l’inventaire ansible du parc informatique. La configuration par défaut consiste à prendre un snapshot toute les heures et d’en conserver 24 pour couvrir au minimum 24h de retour en arrière possible. Il est possible de configurer une rétention plus longue et/ou des snapshots plus fréquents. C’est à déterminer en fonction de l’usage du poste.
Opérations sur les snapshots
En faire la liste :
NAME USED AVAIL REFER MOUNTPOINT zdata/home@autosnap_2025-07-02_17:43:52_daily 0B - 15.0G - zdata/home@autosnap_2025-07-02_17:43:52_frequently 0B - 15.0G - zdata/home@autosnap_2025-07-02_18:00:20_frequently 15K - 15.0G - zfs list -t snapshot
En détruire certains :
zfs destroy zdata/home@autosnap_2025-07-02_17:43:52_daily <code> La destruction manuelle est à envisager lorsqu’il faut rapidement faire de la place et qu’il n’est pas possible d’attendre l’expiration des snapshots. À l’inverse, vous pouvez créer un snaphot manuel mais il ne sera JAMAIS supprimé automatiquement. <code> zfs snapshot zdata/home@snapshot_avant_dawa
C’est intéressant si l’opération « dawa » consiste à faire du nettoyage par le vide manuellement ou à l’aide d’un programme qui pourrait comporter des erreurs.