Ceci est une ancienne révision du document !
ZFS
ZFS est un système de fichiers open source pour la gestion de "très haute capacité de stockage".
C'est un système de fichiers moderne implémentant des fonctionnalités avancées :
- Il permet d'agréger de multiples supports de stockage sur une infrastructure, à la manière du RAID, sous forme de pool (agrégat de plusieurs supports ou clusters de stockage).
- Il fournit des fonctionnalités d'instantannés (snapshots), permettant de restaurer le stockage à un état antérieur, en nécessitant un minimum de ressources.
- Il est compatible UNIX (permissions POSIX), ce qui en fait un bon candidat pour une infrastructure Linux (et un concurrent à Btrfs).
Il est cependant particulièrement gourmand en mémoire vive, et son utilisation est relativement complexe.
Il est principalement utilisé par des administrateurs système et devops pour faciliter la gestion de grappes de serveurs (clusters) en data centers, et éviter des coupures de service dans le cadre de services d'hébergement cloud (ou autre traitement de big data).
Installation
Contrairement à d'autres systèmes de fichiers comme ext4 ou Btrfs, le support de ZFS n'est pas inclus dans le noyau Linux. Un conflit de licence en empêche en effet son intégration native.
Ce support peut cependant être apporté sur n'importe quelle version et variante d'Ubuntu par l'installation du paquet zfs-dkms, qui permet donc d'accéder en lecture et écriture aux partitions formatées en ZFS.
Si besoin, le paquet zfsutils-linux fournit des outils supplémentaires pour la gestion des partitions et des volumes (pools).
Il est aussi possible d'installer certaines versions d'Ubuntu directement sur une partition ZFS. Cette option est parfois donnée par l'installateur d'Ubuntu :
Lors de l'installation d'Ubuntu
Ubuntu propose propose de s'installer sur partition ZFS pour certaines de ses versions :
- de façon expérimentale en version Focal 20.04
- en version Noble 24.04
- incertain en version Resolute 26.04
Pour créer une partition ZFS lors de l'installation d'Ubuntu (ici Jammy 22.04), à l'étape du choix du Type d'installation, sélectionner la seconde option donnant accès aux Fonctions avancées. Sélectionner Effacer le disque et utiliser ZFS. Choisir éventuellement de Chiffrer la nouvelle installation, puis Continuer.
Dans le cas d'une installation chiffrée, le formulaire de saisie de la clé de chiffrement est affiché.
Attention au fait qu'à cet étape il arrive que le verrouillage numérique du clavier ne soit pas activé.
- La seconde partition de 2 Go est formatée en linux-swap. En effet ZFS ne sait pas gérer un fichier swap.
- La troisième partition de 2 Go au format ZFS contient les fichiers de démarrage d'Ubuntu.
- La quatrième partition prend le reste du support. Elle contient le système d'exploitation et les données.
Utilisation
ZFS gère les espaces de stockage en volumes ou (pools) qui offrent une plus grande souplesse que les partitions traditionnelles. Les principales différences sont qu'un même espace physique pourra être utilisé pour un volume ou un autre en fonction des besoins de ceux-ci, et qu'un volume peut s'étendre sur plusieurs supports de stockage physiques différents.
Contraintes
Pour bien fonctionner, il faut au moins 20% d'espace libre sinon message d'avertissement :
Requesting to save current system state. ERROR couldn't save system state: Minimum free space to take a snapshot and preserve ZFS performance is 20%. Free space on pool "rpool" is 20%.
Créations des volumes
Lancer GParted pour faire les créations des partitions. Elles seront de tailles identiques, de préférence sur des disques différents pouvant être externes. Le type de "système de fichiers" à retenir sera "non formaté" car l'exécution sera plus rapide. Mais ce n'est pas grave de mettre un autre type. Il y aura juste à accepter son écrasement au moment de la création.
Les utilisations principales seront lessuivantes
- mirror. Si seulement deux partitions. (Le cas de ce chapitre).
- raidz-1. Si trois partitions ou plus et on veut dupliquer en un seul exemplaire.
- raidz-2. Si quatre partitions ou plus et on veut dupliquer en deux exemplaires.
- raidz-3. Si cinq partitions ou plus et on veut dupliquer en trois exemplaires.
Création du regroupement
installons le logiciel manquant.
sudo apt install zfsutils-linux
La commande est, par exemple, la suivante :
zpool create MesDonnees mirror /dev/sdb8 /dev/sdc11
Puis fabriquons l'enveloppe qui convient.
sudo zpool create -f -m $HOME/data -O encryption=on -O keyformat=passphrase -O keylocation=prompt -o feature@lz4_compress=enabled MesDonneesPersonnelles mirror /dev/sdb8 /dev/sdc11
Il est exigé que la taille du mot de passe soit au minima de 8 caractères quelconques sans aucune autre contrainte.
Ne pas oublier que la perte de ce mot de passe entraine l'impossibilité définitive d'accéder aux données.
Activation de la compression
On va constater qu'actuellement, il est nécessaire, si on veut en profiter, d'activer la compression.
sudo zfs get compression NAME PROPERTY VALUE SOURCE MesDonneesPersonnelles compression off default sudo zfs set compression=on MesDonneesPersonnelles sudo zfs get compression NAME PROPERTY VALUE SOURCE MesDonneesPersonnelles compression on local
Voir aussi
- ZFS sur la page Système de fichiers
- GitHub OpenZFS
- (en) Documentation OpenZFS






