| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| zfs [Le 31/03/2026, 01:13] – +lexique | reformulations | explications dataset | vdev plutôt que volume | correction | +présentation vidéo | suppr doublon installation | suppr exemples abstraits mal expliqués | pourquoi gparted alors qu'il ne gère pas ZFS !? | détails krodelabestiole | zfs [Le 01/07/2026, 04:43] (Version actuelle) – [Lors de l'installation d'Ubuntu] experimental sur resolute https://lecrabeinfo.net/app/uploads/2026/04/fonctions-avancees-chiffrement-et-systeme-de-fichiers-installation-ubuntu-26-04-lts-69f34cc842b0f.webp krodelabestiole |
|---|
| {{tag>installation administration système partitions cloud brouillon}} | {{tag>installation administration système partitions cloud}} |
| |
| {{ :logo:openzfs.png?100|Logo de OpenZFS}} | {{ :logo:openzfs.png?100|Logo de OpenZFS}} |
| * Il implémente des fonctionnalités de chiffrement et de compression. | * 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. | * 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]] , mais en offrant davantage de souplesse que les autres solutions, car il repose sur des niveaux d'abstractions supplémentaires (voir //[[#Utilisation]]//). | * À la place des traditionnelles [[:partitions]], il permet d'agréger de multiples supports de stockage sur une infrastructure, à la manière du [[:RAID]], mais en offrant davantage de souplesse que les autres solutions, car il repose sur des niveaux d'abstractions supplémentaires (voir //[[#Utilisation]]//). |
| |
| Il est cependant particulièrement gourmand en mémoire vive (son cache en particulier est stocké en RAM), et son utilisation est particulièrement complexe. | Il est cependant particulièrement gourmand en mémoire vive (son cache est stocké en RAM), et son utilisation est particulièrement complexe. |
| |
| Il est principalement utilisé par des [[:administration|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 [[:administration|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]]//). |
| |
| **[[:ZFS]]** permet de mettre en place une redondance et/ou concaténation proche du [[:RAID|RAID 5]] 5(([[wpfr>RAID_(informatique)#RAID-Z|RAID-Z]] sur Wikipedia)), en apportant les notions de //vdev// (//virtual device//), de //pools// et de //datasets//, qui offrent une grande souplesse, au prix d'une importante complexité (abstractions à saisir, voir //[[#Utilisation]]//). | **[[:ZFS]]** permet de mettre en place une redondance et/ou concaténation proche du [[:RAID|RAID 5]](([[wpfr>RAID_(informatique)#RAID-Z|RAID-Z]] sur Wikipedia)), en apportant les notions de //vdev// (//virtual device//), de //pools// et de //datasets//, qui offrent une grande souplesse, au prix d'une importante complexité (abstractions à saisir, voir //[[#Utilisation]]//). |
| |
| <note important> | <note warning> |
| Pour que les fonctionnalités de **ZFS** soient intéressantes (comparées à celles de **[[:Btrfs]]** par ex.), il est nécessaire de disposer d'un certains nombre de supports de stockage, idéalement de performances similaires, d'avoir aussi beaucoup de RAM, de solides connaissances en informatique, et du temps. | **ZFS** est conçu pour gérer des //clusters// de stockage dans des //datacenters//, par extension il est parfois utilisé sur des [[:NAS]] professionnels, mais il ne convient pas à un ordinateur personnel. |
| | |
| | Pour que les fonctionnalités de **ZFS** soient intéressantes (comparées à celles de **[[:Btrfs]]** par ex.), il est nécessaire de disposer d'un certain nombre de supports de stockage, idéalement de performances similaires, d'être prêt à sacrifier entre 20% et la moitié de leur capacité, d'avoir aussi //beaucoup// de RAM disponible, de solides connaissances en informatique, et du temps. Il est aussi nécessaire de maîtriser un minimum l'anglais car la documentation francophone est encore [[https://resinfo-gt.pages.in2p3.fr/zfs/doc/index.html|rudimentaire]]. |
| </note> | </note> |
| |
| Ubuntu propose de s'installer sur une structure **ZFS** pour certaines de ses [[:versions]] : | Ubuntu propose de s'installer sur une structure **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?500|Capture d'un écran d'installation d'Ubuntu.}} |
| * en version [[:noble|Noble 24.04]] | * en version [[:noble|Noble 24.04]] |
| * incertain en version [[:resolute|Resolute 26.04]] | * de façon expérimentale en version [[:resolute|Resolute 26.04]] |
| |
| {{:zfs:zfsinstal01.png?600}} | {{:zfs:zfsinstal01.png?500}} |
| |
| 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//. | 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//. |
| |
| {{:zfs:zfsinstal02.png?600}} | {{:zfs:zfsinstal02.png?500}} |
| |
| 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]]. | 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> | </note> |
| |
| {{:zfs:zfsinstal03.png?600}} | {{:zfs:zfsinstal03.png?500}} |
| |
| {{:zfs:zfsinstal04.png?600}} | {{:zfs:zfsinstal04.png?500}} |
| |
| * 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]]. |
| ==== vdevs, zpools et datasets ==== | ==== vdevs, zpools et datasets ==== |
| |
| * Les espaces de stockages **ZFS** sont organisés en **//pools//** équivalent à une [[:partitions|partition]] utilisable //pour l'[[:utilisateur]]//. Il s'agit de l'espace de stockage visible dans un gestionnaire de fichiers. Les //pools// sont des agrégats de plusieurs supports ou //clusters// de stockage, appelés //vdev//. | * Les espaces de stockages **ZFS** sont organisés en **//pools//** équivalent à une [[:partitions|partition]], ou un volume utilisable //pour l'[[:utilisateur]]//. Il s'agit de l'espace de stockage visible dans un gestionnaire de fichiers. Les //pools// sont des agrégats d'un ou plusieurs supports ou //clusters// de stockage, appelés //vdevs//. |
| * Les **//vdevs//** (pour //virtual devices//) correspondent à une [[:partitions|partition]] //pour le support matériel// -- ou à de la mémoire vive. Ils sont à disposition des //pools//. | * Les **//vdevs//** (pour //virtual devices//) correspondent à une [[:partitions|partition]] //pour le support matériel// -- ou à de la mémoire vive. Ils sont à disposition des //pools//. |
| |
| Ceci permet aux //pools// d'offrir une plus grande souplesse que les [[:partitions]] traditionnelles. Les principales différences sont qu'un même espace "physique" (//vdev//) peut être utilisé pour un //pool// ou un autre en fonction des besoins de ceux-ci, et qu'un //pool// peut s'étendre sur plusieurs supports de stockage physiques (//vdev//) différents. | Ceci permet aux //pools// d'offrir une plus grande souplesse que les [[:partitions]] traditionnelles. Les principales différences sont qu'un même espace "physique" (//vdev//) peut être utilisé pour un //pool// ou un autre en fonction des besoins de ceux-ci, et qu'un //pool// peut s'étendre sur un ou plusieurs supports de stockage physiques (//vdev//) différents. |
| |
| <note> | <note> |
| </note> | </note> |
| |
| * De plus, les **//datasets//** permettent de subdiviser chaque //pool// en sous-volumes, permettant de définir différentes politiques pour les //snapshots//, les [[:sauvegarde]], les permissions, etc. | * De plus, les **//datasets//** permettent de subdiviser chaque //pool// en sous-volumes, permettant de définir différentes politiques pour les //snapshots//, les [[:sauvegarde|sauvegardes]], les permissions, etc.\\ Ils peuvent être considérés comme des [[:arborescence|répertoires]] qui contiennent différents types de données, et amènent à différentes manières de gérer le stockage. |
| |
| <note important> | <note important> |
| Pour fonctionner correctement, un //vdev// doit conserver au minimum 20% d'espace libre. | Pour fonctionner correctement, un //pool// doit conserver au minimum 20% d'espace libre. |
| |
| On rencontre dans le cas contraire un message d'erreur de ce type : | On rencontre dans le cas contraire un message d'erreur de ce type : |
| On peut les utiliser en argument de ''[[man>zpool-create|zpool create]]'' pour ajouter de la parité (le choix par défaut, sans paramètre, est l'absence de parité). | On peut les utiliser en argument de ''[[man>zpool-create|zpool create]]'' pour ajouter de la parité (le choix par défaut, sans paramètre, est l'absence de parité). |
| |
| Pour créer un //pool// ''monStockage'' qui utilise les //vdevs// ''/dev/sdb1'' et ''/dev/sdc1''((Voir //[[:partitions#Règle de dénomination]]//.)) : | Pour créer un //pool// ''monStockage'' qui s'étend sur les //vdevs// ''/dev/sdb1'' et ''/dev/sdc1''((Voir //[[:partitions#Règle de dénomination]]//.)) : |
| <code bash>zpool create monStockage /dev/sdb1 /dev/sdc1</code> | <code bash>zpool create monStockage /dev/sdb1 /dev/sdc1</code> |
| |
| |
| <note warning> | <note warning> |
| Si vous chiffrez votre //pool//, notez votre mode passe, idéalement avec un [[:securite#gestionnaires_de_mots_de_passe|gestionnaire]] : sa perte entraîne l'impossibilité définitive d'accéder aux données. | Si vous chiffrez votre //pool//, notez votre mot de passe, idéalement avec un [[:securite#gestionnaires_de_mots_de_passe|gestionnaire]] : sa perte entraîne l'impossibilité définitive d'accéder aux données. |
| </note> | </note> |
| |
| |
| On peut activer la compression avec la sous-commande ''[[man>zfs-set|zfs set]]'' : | On peut activer la compression avec la sous-commande ''[[man>zfs-set|zfs set]]'' : |
| <code bash>sudo zfs set compression=on MesDonneesPersonnelles</code> | <code bash>sudo zfs set compression=on monStockage</code> |
| |
| La commande ''[[man>zfs-get|zfs get]]'' permet d'obtenir son état : | La commande ''[[man>zfs-get|zfs get]]'' permet d'obtenir son état : |
| <code bash>sudo zfs get compression</code> | <code bash>sudo zfs get compression monStockage</code> |
| |
| ===== Voir aussi ===== | ===== Voir aussi ===== |
| ---- | ---- |
| * [[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]], [[:utilisateurs:krodelabestiole]].// |