| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| zfs [Le 14/02/2026, 05:07] – [Lors de l'installation d'Ubuntu] suppr inutile et hors sujet krodelabestiole | zfs [Le 14/02/2026, 18:05] (Version actuelle) – typos / orga screenshots krodelabestiole |
|---|
| ====== ZFS ====== | ====== ZFS ====== |
| |
| **[[wpfr>ZFS]]** est un [[:système de fichiers]] //[[wpfr>open source]]// pour la gestion de "très haute capacité de stockage". | **[[wpfr>ZFS]]** est un [[:système de fichiers]] //[[wpfr>open source]]// conçu par Sun Microsystem (société rachetée par Oracle) en 2004 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 : | 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 [[wpfr>UNIX]] ([[:permissions]] [[wpfr>POSIX]]), ce qui en fait un bon candidat pour une infrastructure Linux (et un concurrent à [[:Btrfs]]). | * Il est compatible [[wpfr>UNIX]] ([[:permissions]] [[wpfr>POSIX]]), ce qui en fait un bon candidat pour une infrastructure Linux (et un concurrent à [[:Btrfs]]). |
| | * Il implémente des fonctionnalités de chiffrement et de compression. |
| | * Il fournit des fonctionnalités d'instantanés (//snapshots//), permettant de restaurer le stockage à un état antérieur, en nécessitant un minimum de ressources. |
| | * À la place des traditionnelles [[:partitions]], il permet d'agréger de multiples supports de stockage sur une infrastructure, à la manière du [[:RAID]], sous forme de //volumes// (agrégats de plusieurs supports ou //clusters// de stockage) organisés par //pools// (descriptions de ces volumes, avec leurs caractéristiques et leurs //snapshots//). |
| |
| Il est cependant particulièrement gourmand en mémoire vive, et son utilisation est relativement complexe. | Il est cependant particulièrement gourmand en mémoire vive, et son utilisation est complexe. |
| |
| Il est principalement utilisé par des administrateurs système et //[[wpfr>devops]]// pour faciliter la gestion de grappes de serveurs (//clusters//) en //[[wpfr>Centre_de_données|data centers]]//, et éviter des coupures de service dans le cadre de services d'hébergement //[[:cloud]]// (ou autre traitement de //[[wpfr>big data]]//). | Il est principalement utilisé par des administrateurs système et //[[wpfr>devops]]// pour faciliter la gestion de grappes de serveurs (//clusters//) en //[[wpfr>Centre_de_données|data centers]]//, et éviter des coupures de service dans le cadre de services d'hébergement //[[:cloud]]// (ou autre traitement de //[[wpfr>big data]]//). |
| Contrairement à d'autres [[:système de fichiers|systèmes de fichiers]] comme **[[:ext4]]** ou **[[:Btrfs]]**, le support de **ZFS** n'est pas inclus dans le [[:kernel|noyau Linux]]. Un conflit de licence en empêche en effet son intégration native. | Contrairement à d'autres [[:système de fichiers|systèmes de fichiers]] comme **[[:ext4]]** ou **[[:Btrfs]]**, le support de **ZFS** n'est pas inclus dans le [[:kernel|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'[[:deb#installer un paquet deb|installation du paquet]] ''[[apt>zfs-dkms]]'', qui permet donc d'accéder en lecture et écriture aux partitions formatées en **ZFS**. | Ce support peut cependant être apporté sur n'importe quelle version et [[:variante]] d'Ubuntu par l'[[:deb#installer un paquet deb|installation du paquet]] ''[[apt>zfs-dkms]]'', qui permet donc d'accéder en lecture et écriture aux volumes **ZFS**. |
| |
| Si besoin, le [[:deb|paquet]] ''[[apt>zfsutils-linux]]'' fournit des outils supplémentaires pour la gestion des [[:partitions]] et des volumes (//pools//). | Si besoin, le [[:deb|paquet]] ''[[apt>zfsutils-linux]]'' fournit des outils supplémentaires pour la gestion des //pools// et des volumes. |
| |
| 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 : | <note> |
| | Vous trouverez aussi des informations en anglais concernant l'installation du support de **ZFS** sur Ubuntu sur le [[https://openzfs.github.io/openzfs-docs/Getting%20Started/Ubuntu/index.html#installation|site officiel]] d'**OpenZFS**. |
| | </note> |
| | |
| | Il est aussi possible d'installer certaines [[:versions]] d'Ubuntu directement sur un volume **ZFS**. Cette méthode est parfois proposée par l'installateur d'Ubuntu : |
| |
| ==== Lors de l'installation d'Ubuntu ==== | ==== Lors de l'installation d'Ubuntu ==== |
| |
| Ubuntu propose propose de s'installer sur [[:partitions|partition]] **ZFS** pour certaines de ses [[:versions]] : | Ubuntu propose de s'installer sur un volume **ZFS** pour certaines de ses [[:versions]] : |
| * de façon expérimentale en version [[:focal|Focal 20.04]] | * de façon expérimentale en version [[:focal|Focal 20.04]] |
| * en version [[:jammy|Jammy 22.04.2]]\\ {{:zfs:zfs.png?200|Capture d'un écran d'installation d'Ubuntu.}} | * en version [[:jammy|Jammy 22.04.2]]\\ {{:zfs:zfs.png?200|Capture d'un écran d'installation d'Ubuntu.}} |
| * en version 21.10 voir [[https://www.tremplin-numerique.org/comment-installer-et-configurer-zfs-sur-ubuntu-cloudsavvy-it|ce guide]] | |
| * Non proposé par la version 23.04 | |
| * Non proposé par la version 23.10 | |
| * en version [[:noble|Noble 24.04]] | * en version [[:noble|Noble 24.04]] |
| * incertain en version [[:resolute|Resolute 26.04]] | * incertain en version [[:resolute|Resolute 26.04]] |
| |
| Sur la page du type d'installation (ici [[:jammy|Jammy 22.04]]), pour créer une [[:partitions|partition]] **ZFS**, il faut 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//. | |
| |
| {{:zfs:zfsinstal01.png?600}} | {{:zfs:zfsinstal01.png?600}} |
| |
| Dans le cas d'une installation chiffrée, le formulaire de saisie de la clé de chiffrement est affiché.\\ | Pour créer une infrastructure **ZFS** lors de l'installation d'Ubuntu (ici [[:jammy|Jammy 22.04]]), à l'étape du choix du //Type d'installation//, choisir //Effacer le disque et installer Ubuntu// et cliquer sur le bouton //Fonctions avancées...//. Sur la fenêtre ainsi ouverte sélectionner //Effacer le disque et utiliser ZFS//. Choisir éventuellement de //Chiffrer la nouvelle installation//, puis //OK// -> //Continuer//. |
| Attention au fait que le verrouillage numérique peut ne pas être activé. | |
| |
| {{:zfs:zfsinstal02.png?600}} | {{:zfs:zfsinstal02.png?600}} |
| | |
| | Dans le cas d'une installation chiffrée, un formulaire permet d'entrer sa clé de chiffrement (le mot de passe qu'il faudra entrer à l'ouverture de chaque [[:session utilisateur|session]]) et sa clé de récupération (//recovery key//). Vous devriez être en mesure de vous souvenir du mot de passe, mais il est impératif de noter ces informations, et particulièrement la clé, idéalement au moyen d'un [[:securite#gestionnaires_de_mots_de_passe|gestionnaire de mots de passe]]. |
| | |
| | <note tip> |
| | Attention au fait qu'à cette étape il arrive que le verrouillage numérique du clavier ne soit pas activé. |
| | |
| | Cliquer sur l'œil à droite d'un champs protégé permet de s'assurer des informations entrées. |
| | </note> |
| |
| {{:zfs:zfsinstal03.png?600}} | {{:zfs:zfsinstal03.png?600}} |
| |
| * La première partition de 512 Mo en **[[:systeme de fichiers#FAT32]]** contient la structure [[:EFI]] ainsi que [[:GRUB]]. | * La première partition de 512 Mo en **[[:systeme de fichiers#FAT32]]** contient la structure [[:EFI]] ainsi que [[:GRUB]]. |
| * La seconde partition de 2 Go est formatée en //linux-swap//. En effet **ZFS** ne sait pas gérer un fichier [[:swap]]. | * La seconde partition de 2 Go est formatée en //linux-swap//. En effet, **ZFS** ne gérerait pas correctement un [[:swap#creer_un_fichier_d_echange|fichier swap]]. |
| * La troisième partition de 2 Go au format **ZFS** contient les fichiers de démarrage d'Ubuntu. | * La troisième "partition" est en fait un //pool boot// **ZFS** de 2 Go, qui contient les fichiers de démarrage du système (équivalent au répertoire ''[[:arborescence#la_norme_selon_la_fhs|/boot]]''). |
| * La quatrième partition prend le reste du support. Elle contient le système d'exploitation et les données. | * La quatrième "partition" est un //[[https://docs.oracle.com/cd/E37927_01/html/E36654/gjtuk.html|pool root]]// **ZFS**, dont le //volume// contient le système d'exploitation et les données. |
| |
| ===== Utilisation ===== | ===== Utilisation ===== |
| |
| <note warning>Ce chapitre n'est pas développé.</note> | Les //pools// **ZFS** gèrent les espaces de stockage en //volumes// qui offrent une plus grande souplesse que les [[:partitions]] traditionnelles. Les principales différences sont qu'un même espace physique peut ê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 ==== | <note important>Pour fonctionner correctement, un volume doit conserver au minimum 20% d'espace libre. |
| |
| Pour bien fonctionner, il faut au moins 20% d'espace libre sinon message d'avertissement : | On rencontre dans le cas contraire un message d'erreur de ce type : |
| <code>Requesting to save current system state. | <code>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%. | 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%.</code> | Free space on pool "rpool" is 20%.</code> |
| | </note> |
| |
| ==== Créations des partitions ==== | ==== Création des volumes ==== |
| | |
| | <note tip>Voir la [[https://docs.oracle.com/cd/E24843_01/html/820-2315/gayob.html|documentation officielle]] en français.</note> |
| | |
| | <note warning>FIXME La suite de ce chapitre n'a pas encore été corrigée.</note> |
| |
| 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. | 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. |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| |
| * [[:systeme_de_fichiers#ZFS]] sur la page //[[:Système de fichiers]]// | * [[https://www.oracle.com/fr/storage/nas/|Site officiel]] |
| * [[https://github.com/openzfs/zfs|GitHub]] OpenZFS | * [[https://github.com/openzfs/zfs|GitHub]] OpenZFS |
| | * [[:systeme_de_fichiers#ZFS]] sur la page //[[:Système de fichiers]]// |
| * **(//en//)** [[https://openzfs.github.io/openzfs-docs/|Documentation]] OpenZFS | * **(//en//)** [[https://openzfs.github.io/openzfs-docs/|Documentation]] OpenZFS |
| * [[https://www.lmgc.univ-montp2.fr/perso/norbert-deleutre/2017/09/08/zfs-terminologie-et-commandes-de-bases/|ZFS terminologie et commandes de bases sur lmgc.univ-montp2.fr par Norbert Deleutre]] | * [[https://www.lmgc.univ-montp2.fr/perso/norbert-deleutre/2017/09/08/zfs-terminologie-et-commandes-de-bases/|ZFS terminologie et commandes de bases sur lmgc.univ-montp2.fr par Norbert Deleutre]] |
| * **(//en//)** [[https://pthree.org/2012/12/05/zfs-administration-part-ii-raidz/|ZFS Administration, Part II- RAIDZ - Aaron Toponce]] | |
| * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2071553|échanges sur le forum]] | * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2071553|échanges sur le forum]] |
| * **(//en//)** [[https://wiki.ubuntu.com/ZFS]] | |
| |
| ==== Alternative ==== | ==== Alternative ==== |
| * [[:Btrfs]] | * [[:Btrfs]] |
| |
| ----- | ---- |
| * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2094391|Discussion]] au sujet de cette page sur le forum. | * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2094391|Discussion]] au sujet de cette page sur le forum. |
| * //[[:Contributeurs]] : [[:utilisateurs:bcag2]], geole, [[:utilisateurs:krodelabestiole]].// | * //[[:Contributeurs]] : [[:utilisateurs:bcag2]], geole, [[:utilisateurs:krodelabestiole]].// |