Systèmes de fichiers : (Open)ZFS, ses grandes capacités et ses mystères

Admiré, boudé

Systèmes de fichiers : (Open)ZFS, ses grandes capacités et ses mystères

Systèmes de fichiers : (Open)ZFS, ses grandes capacités et ses mystères

Abonnez-vous pour tout dévorer et ne rien manquer.

Déjà abonné ? Se connecter

Abonnez-vous

Après les principaux systèmes de fichiers trouvés chez Microsoft, Apple et dans le monde Linux, nous nous penchons sur ZFS. Développé initialement par Sun, on le trouve dans plusieurs UNIX, quelques distributions, certaines gammes de NAS et même dans macOS pendant un temps. Ses caractéristiques sont nombreuses.

Alors que tous les noms de systèmes de fichiers sont composés généralement d’un sigle ayant un sens, ZFS n’en a pas particulièrement. Le « Z » renvoie, selon les personnes qui en parlent, à plusieurs significations, notamment zettabyte (zettaoctet) ou comme dernière lettre de l’alphabet, soulignant l’idée qu’il serait en quelque sorte l’aboutissement de ce que l’on peut faire de mieux dans le domaine.

Parmi tous les systèmes de fichiers déjà vus, ZFS est l’un des plus récents, avec APFS. Son développement a débuté en 2001. Il a été présenté et annoncé par Sun pour septembre 2004, mais il est arrivé six mois plus tard, intégré à Solaris, l’UNIX maison, puis dans OpenSolaris à la fin de la même année.

Dès le départ, ses caractéristiques ont fait de ZFS un système de fichiers à part. Il pourrait techniquement être la réponse à bien des problématiques de stockage, mais son fonctionnement particulier l’a réservé à certains scénarios. Des décisions justifiées ?

Lire notre dossier sur les systèmes de fichiers :

ZFS, un système de fichiers hors normes

Les caractéristiques de ZFS sont peu communes. Dans les articles précédents, vous vous souvenez peut-être que l’arrivée du 64 bits avait profondément modifié les capacités des systèmes de fichiers concernés, comme dans NTFS et ext4. Dans le cas de ZFS, on parle de 128 bits.

Techniquement, la taille maximale des volumes et des fichiers est de 16 Eo, soit 16 millions de To. Un volume peut embarquer 2⁴⁸ fichiers, soit plus de 280 millions de milliards, ce qui correspond également au nombre maximal dans un répertoire. Il n’y a virtuellement aucune limite au nombre de fichiers qu’un volume peut ainsi stocker.

Des chiffres si élevés qu’ils ont fait dire au concepteur de ZFS, Jeff Bonwick, que « remplir en totalité un espace de stockage 128 bits consommerait, littéralement, plus d'énergie que de faire bouillir les océans ». Une phrase et une explication restées célèbres.

Comme on peut s’en douter, ZFS gère les noms longs (255 caractères). Pensé avant tout pour le monde UNIX, il reprend les autorisations POSIX (comme ext4 et Btrfs), auxquelles il ajoute les ACL (NFSv4). La hiérarchie de ZFS est en arbre B, comme la plupart des systèmes de fichiers modernes.

Bien que la taille des blocs soit par défaut de 128 ko, elle est en fait variable. Elle peut être adaptée selon les besoins au sein d’un même volume, que ce soit par l’administrateur ou par des processus automatisés. En cas de compression des données, elle est ainsi automatiquement activée.

Des caractéristiques bien spécifiques

L’approche retenue dès le départ tranche avec ce que l’on a pu voir jusqu’ici. ZFS virtualise partiellement la gestion du stockage, notamment celle des disques, ce que l’on peut rapprocher du fonctionnement des volumes logiques, que l’on retrouve par exemple dans APFS. Dans ZFS, il s’agit du Volume Manager, qui ajoute une couche d’abstraction intermédiaire entre les disques et le système de fichiers, donc avec le système d’exploitation. On parle ainsi parfois de ZFS comme d’une plateforme, car il reprend à son compte des fonctions trouvées habituellement dans le système d’exploitation lui-même.

Ce dernier verra ainsi des volumes mis à disposition depuis le Storage Pool. C’est à l’administrateur de déterminer quels vont être les besoins de stockage pour configurer des vdev (virtual device, ou appareil virtuel), c’est-à-dire des agrégats de disques ou de partitions. Chaque vdev peut être configuré avec ou sans redondance des données (choix du niveau de RAID) et selon des critères de performances spécifiques.

La gestion des vdev est souple, puisqu’ils peuvent être reconfigurés. On peut ainsi modifier le nombre de disques ou de partitions dans chaque vdev, augmenter ou diminuer sa capacité en ajoutant ou supprimant des disques, on peut déclarer un ou plusieurs disques en spare (redondance) dans chaque pool, etc.

Dans la gestion de l’ensemble, on trouve deux commandes essentielles. La première, zpool s’occupe des pools (agrégats). La seconde, zfs, gère les volumes et les datasets. Par exemple, si l’on souhaite créer un agrégat « nxi » de huit disques (nommés de a à h), dont deux utilisés en redondance, la commande est la suivante :

zpool create nxi raidz2 sd[abcdefgh]

ici, raidz2 est le type de RAID choisi pour établir la redondance. Avant d’aller plus loin, il faut donc aborder la manière dont ZFS s’occupe de l’intégrité des données.

OpenZFS
Crédits : GT-ZFS

Intégrité des données : c'est parti

C’est l’une des fonctions principales de ZFS : protéger l’intégrité des données. Des caractéristiques qui l’ont rendu populaire notamment auprès de certains constructeurs de NAS.

Premièrement, ZFS fait une utilisation différente des sommes de contrôle (checksum) en SHA-256. Comme dans Btrfs, elles sont utilisées aussi bien pour les données que les métadonnées. Mais au lieu d’être stockée dans le bloc de données concerné, une somme sera stockée dans le pointeur de ce bloc (bloc parent). Ce fonctionnement est répliqué dans l’intégralité de la hiérarchie du système de fichiers. 

Ensuite, ZFS fonctionne – sans surprise cette fois – sur la base du copy-on-write. Comme nous l’avons expliqué plusieurs fois, cela signifie que les modifications sur des fichiers sont faites sur des copies de ces derniers, plutôt que sur les données originales. Ce qui signifie une augmentation de l’espace requis, mais pérennise les informations, puisqu’une opération échouée pourra être retentée ou des données pourront être restaurées.

Ce mécanisme est à la base des clones et snapshots, exactement comme dans Btrfs. Dans ZFS, on peut virtuellement créer autant d’instantanés que l’on souhaite, puisque leur nombre maximal est égal à celui du nombre maximal de fichiers dans un volume, soit 2⁴⁸. Ce fonctionnement peut être automatisé pour que ZFS crée de lui-même des snapshots ou des clones (les premiers sont en lecture seule, les seconds permettent l’écriture) à intervalles réguliers, avec suppression ou non des anciens.

ZFS a ses solutions RAID bien à lui

La gestion des modes RAID dans ZFS est particulière. Plutôt que d’employer des solutions matérielles, il est conseillé de laisser faire ZFS, qui a son propre fonctionnement logiciel.

ZFS peut utiliser les modes RAID classiques, mais on leur préfèrera RAID-Z, spécifique au système de fichiers. Semblable au RAID-5 (même schéma de parité), il tolère donc la panne d’un disque. Il dispose cependant d’un gros avantage sur son modèle : il permet d’éviter les trous d’écriture.

Dans une configuration RAID-Z, ZFS se sert de la copie sur écriture pour ajouter les nouvelles données aux côtés des anciennes, sans réécrire sur ces dernières. En outre, tout fichier, quelle que soit sa taille, a sa propre bande (full-strip, entrelacement total). En configuration RAID-Z, la séquence habituelle lecture-modification-écriture n’est pas utile. En cas de reconstruction, ZFS parcourt les métadonnées, une opération rendue possible car système de fichiers et matrice RAID se confondent, ZFS ayant une vue intégrée des vues logique et physique. Chaque bloc de données est alors validé par sa somme de contrôle.

Les checksums sont également utilisées pour effectuer de la « guérison automatique », quand des corruptions silencieuses de données se sont installées. Pour y remédier, ZFS compare chaque bloc lu à sa somme de contrôle. Si la réponse n’est pas bonne, le système de fichiers va lire les informations de parité correspondantes et répare les données. Une fois corrigées, elles sont envoyées au processus qui en a fait la demande.

Pour reprendre la commande donnée plus haut en exemple, raidz2 renvoie simplement à la configuration RAID-Z2, équivalente au RAID 6. Il existe une variante Z3, tolérant la panne de trois disques au sein d’une configuration RAID. RAID-Z supporte également le striping simple (RAID 0) et le mirroring (RAID 1).

À noter qu’une autre capacité est en cours de déploiement, après des années de travail : Raid-Z Expansion. Particulièrement attendue, elle permet d’ajouter un disque à une configuration RAID-Z déjà en place, opération impossible actuellement. Cette technologie fonctionne avec les configurations Z1, Z2 et Z3. La fonction est très récente. Elle est par exemple présente dans QuTS hero 5.1 (QNAP), sorti il y a un mois.

Pour les personnes comprenant bien l'anglais (ou sachant lire très rapidement les sous-titres sur YouTube), la chaine Lawrence Systems avait publié plusieurs vidéos sur ZFS, dont une portant sur la configuration des pools de stockage ZFS et de ses modes RAID-Z :

Des fonctions multiples et des caches à gogo

Parmi les autres fonctions disponibles dans ZFS, plusieurs sont directement présentes dans le traitement des entrées/sorties. À l’écriture, un bloc peut ainsi être compressé, chiffré, faire l’objet d’un contrôle avec sa somme ou dédupliqué.

La déduplication entre dans le champ des techniques visant à économiser la place quand on le peut. Avec la copie sur écriture par exemple, les données originales ne sont pas remplacées. Cependant, seules les parties différentes sont ajoutées : les données non modifiées ne sont présentes qu’en un seul exemplaire. Avec la déduplication, c’est un peu la même chose : les fichiers sont découpés en tronçons, chaque tronçon n’étant stocké qu’une fois. Si d’autres données possèdent les mêmes tronçons, des pointeurs s’occupent de référencer où trouver les informations « manquantes ».

Ce processus, dans le cas de ZFS, est très gourmand en mémoire vive. ZFS réclame en effet presque toute la mémoire disponible (au moins 75 %) pour y créer un cache en lecture nommé ARC (Adaptive Remplacement Cache). Le fonctionnement global est classique dans son approche : puisqu’il n’est pas possible de stocker l’intégralité des données en RAM, les informations les plus fréquemment demandées seront prioritaires dans le cache. Cette priorité est établie de manière dynamique selon l’ordre suivant : disque dur > SSD > RAM. Si la taille d’ARC – donc de la mémoire – est suffisante, les données n’auront pas besoin d’être lues depuis un disque dans la grande majorité des cas.

L2ARC (Level 2 Arc) est le deuxième niveau de cache en lecture, bien qu’optionnel, peut augmenter significativement les performances, notamment de la déduplication. Pour que L2ARC soit pleinement efficace, il doit être créé sur un disque rapide, idéalement un SSD véloce. Il faut également pouvoir y stocker l’intégralité de la table correspondante, dont la taille dépend bien sûr de la quantité de données sur les disques. Au même niveau, on peut aussi créer un ZIL (ZFS Intent Log), chargé de journaliser les flux d’écriture. Il est par défaut créé en mémoire, mais on peut le déporter vers un vdev dédié pour sécuriser les informations, et accompagné d’un miroir (la perte du ZIL peut corrompre tout l’agrégat de disques).

Une note tout de même sur cette dépendance à la RAM. Quand il est utilisé en entreprise, les serveurs ou équipements sont presque toujours accompagnés de mémoire ECC. ZFS peut être utilisé sans, mais puisque la mémoire est essentielle à son fonctionnement et qu’il en est friand, mieux ne pas lésiner sur les moyens, aucune erreur n’étant acceptable.

Pourquoi ZFS n’est-il pas plus utilisé aujourd’hui ?

On trouve ZFS dans certains produits et systèmes d’exploitation. Certains constructeurs de NAS l’utilisent dans leurs gammes, comme QNAP avec QuTS. Le système de fichiers est également géré par différents systèmes, notamment FreeBSD, NetBSD, FreeNAS et ZFSGuru. Et sous Linux ? C’est un peu plus compliqué.

La plupart des distributions n’intègrent pas de support pour ZFS. Il est possible cependant de l’installer, le plus souvent via la ligne de commande en passant par le gestionnaire de paquets présent dans le système. Sous Ubuntu par exemple, le support a été présent pendant un temps, mais les versions récentes ne l’ont plus. À chaque fois, il est possible d’installer ZFS, mais l’utiliser pour la partition root demande un peu de travail.

Pour comprendre un peu la situation, il faut savoir que le rachat de Sun Microsystems en 2010 par Oracle a changé la donne. Les sources du projet sont devenues fermées et OpenSolaris fut abandonné. En réaction, des développeurs ont réalisé un fork de ce dernier et repris les sources encore disponibles de ZFS pour créer OpenZFS, officiellement né en 2013. Parmi ses membres fondateurs, Matt Ahrens, l’un des principaux développeurs de ZFS.

En dix ans, la question d’une inclusion d’OpenZFS dans le noyau Linux a été de nombreuses fois remise sur le tapis. Son absence aujourd’hui s’explique surtout par les réactions épidermiques de Linus Torvalds sur le sujet. Il a déclaré à plusieurs reprises ne faire aucune confiance à Oracle, dont le comportement avec Java avait hérissé bien des développeurs.

En outre, il soutient qu’il existe une incompatibilité entre la GPLv2 du noyau Linux et la CCDL (Common Development and Distribution License) utilisée par OpenZFS. La CDDL est une licence créée par Sun à partir de la MPL (Mozilla Public License). Elle est reconnue comme libre par la Free Software Foundation, tout en étant incompatible avec la GPL, car elle possède un copyleft faible s’appliquant à chaque fichier. Richard Stallman en personne, auteur des GPL, y avait consacré une explication sur le site de la FSF. La consigne est, depuis, de ne pas utiliser CDDL si possible.

Pour autant, le grand public n’y perd sans doute rien. Les bénéfices de ZFS peuvent être immenses, mais sont taillés pour des configurations avec des disques multiples. Dans l’immense majorité des cas, les ordinateurs sont fournis avec un seul disque. Qu’il soit dur ou de type SSD ne change pas le constat : les fonctions de ZFS ne pourront pas s’y exprimer, car elles sont en bonne partie fondées sur la redondance et la parité. Les discussions à ce sujet sont nombreuses et régulières.

En dehors des questions de licence, cela peut expliquer aussi pourquoi certaines distributions, comme Fedora, se sont rapprochées de Btrfs ces dernières années.

Commentaires (30)



“Son absence aujourd’hui s’explique surtout par les réactions épidermiques de Linus Torvalds sur le sujet.”




Non, la licence est la raison n°1, ramener le débat à une question de ressenti alors que tout le monde s’accorde sur la nature du problème, c’est déformer une position basée sur des contraintes légales pour en faire une position irrationnelle, et ce n’est pas très honnête.



La licence n’est pas compatible, elle empêche catégoriquement d’intégrer openzfs dans le code source du noyau, car cela violerait la licence GPL2 de ce dernier: si ça fait partie du noyau, il est obligatoire que ce soit distribué sous GPL2. Cela violerait aussi la CDDL qui a aussi cette exigence (limitée au code source, ce qui permet à Ubuntu de livrer des binaires zfs sous GPL2).



Donc à moins que le noyau ne passe en CDDL ou qu’OpenZFS ne passe en GPL2, c’est juste impossible…



Maintenant, il est aussi évident que vu le comportement passé et présent d’Oracle, même si OpenZFS passait en GPL2, de nombreux membres de la Linux Foundation feraient barrage contre l’inclusion d’OpenZFS si Oracle n’ouvre pas aussi ses brevets (en temps de paix, personne de censé ne consent à laisser quelqu’un enterrer des mines antipersonnelles dans son propre jardin). Aucune des grandes entreprises impliquées dans Linux n’a envie de se faire trainer en justice pour violation de brevets par Oracle.


(Open)ZFS -> OZFS -> OZEF ?
(L’heure du jeu de mot pourri)


Le meilleur ambassadeur de zfs reste à mon goût Truenas, qui malgré son nom serait plutôt à classer côté SAN.
Besoin d’une grosse config avec en échange beaucoup de fonctions intéressantes lié à zfs.


Oracle ? Mais je croyais qu’Oracle était pour l’Open Source, comme indiqué lors d’une réponse à RedHat.
Cette société n’oserait jamais intenter des procès à tort ou à raison, c’est pas le genre de la maison !



Sarcasmes mise à part, merci pour cet article.
C’est mon système de fichier chouchou pour les disques de données de mon proxmox perso, le combo snapshot, possibilité NFS, quotas …



À part cela, je n’ai jamais été un grand spécialiste des licences mais le coup de la licence CCDL utilisé par OpenZFS, j’ai du mal.
Concrètement en cas de procès quels sont les risques ? Une interdiction pure est simple d’utilisation de OpenZFS en plus des « dommages et intérêts » ? Et pour qui ? La fondation Linux ? Proxmox ?
Oracle a beau avoir une armée d’avocats, je doute que chaque pecnot moyen qui utilise ZFS dans son serveur se retrouve avec un procès sur le dos.


Je suis sincèrement impressionné par les possibilités de cet FS ! Je trouve qu’il est très pro, très secure, très complet… Peut-être un peu trop ?



Je pense qu’il est vraiment taillé pour les grosses entreprises, avec ses multiples possibilités de RAID, son système de snapshots, etc…



Perso, à part l’exemple de @M.Rahl ci-dessus qui a l’air d’en être content (et après tout, c’est bien l’essentiel), difficile d’envisager ça dans un cadre plus “amateur”, je crois qu’à moins d’avoir un système automatisé à mort, je me noierais un peu dans un verre d’eau…



Le problème de licence, à mon avis, est secondaire : si les devs d’OpenZFS le voulaient vraiment, ils pourraient changer leur licence pour la GPL2 ou équivalent (CC ?)…



…à moins que Oracle ait tout prévu, et tout mis en place au niveau légal pour que ce ne soit jamais, jamais, jamais (…navigué ?) le cas…?



Au passage, je suis dégoutté qu’ils aient sabordé Open Solaris, dont j’avais essayé la v10 à l’époque (mais problème de drivers, réseau en particulier…), qui aurait pu évoluer en une distri vraiment sympa, accessible et utilisable au quotidien par n’importe qui.


L’OS pour NAS, Unraid , supporte le ZFS depuis la version 6.12.



(quote:2146432:DantonQ-Robespierre)
Le problème de licence, à mon avis, est secondaire : si les devs d’OpenZFS le voulaient vraiment, ils pourraient changer leur licence pour la GPL2 ou équivalent (CC ?)…




Pour faire un changement de licence, il faut que toutes les parties détenant la propriété du code soient d’accord de changer la licence. SI une seule refuse, c’est foutu.




…à moins que Oracle ait tout prévu, et tout mis en place au niveau légal pour que ce ne soit jamais, jamais, jamais (…navigué ?) le cas…?




Si oracle ne veut pas changer, rien ne peut l’y forcer. Et même s’il le faisait, il reste l’épée de Damoclès que représentent la cinquantaine de brevets qu’Oracle détient sur ZFS. En l’absence d’une déclaration d’ouverture de ces brevets, OpenZfs sous GPL2 serait juste un appât pour déclencher un procès (de préférence contre une grosse entreprise)



(reply:2146433:Cyber Sinh)




La distribution de binaires est une zone grise dans laquelle Ubuntu s’est aussi engouffré. A priori ça pourrait être légal. Il ne s’agit pas d’un d’une intégration directe du code d’OpenZFS dans le noyau, juste d’un module tiers compilé et distribué sous GPL2.


Après les principaux systèmes de fichiers trouvés chez Microsoft, Apple et dans le monde Linux, nous nous penchons sur ZFS.



Côté Linux il manque encore XFS, qui reste le FS par défaut de RHEL et de ses clones (Rocky Linux, ALMA OS, etc.)



Le système de fichiers est également géré par différents systèmes, notamment FreeBSD, NetBSD, FreeNAS et ZFSGuru.



Le développeur original de FreeNAS et détenteur du nom a “donné” (vendu ?) la marque à iXsystems qui au final, quelques années après, n’en a pas gardé grand chose d’origine, pour finir par le renommer TrueNAS.
De son côté le dernier mainteneur de FreeNAS est parti créer OpenMediaVault (sur base Linux. Debian ?) qui supporte également OpenZFS via plugin.
La dernière version de FreeNAS en tant que telle a été forké et continuée sous le nom NAS4Free, avant d’être renommée XigmaNAS. Cette dernière reste, in fine, la vraie continuation du FreeNAS 7 initial (basé sur m0n0wall ).



Sinon on trouve aussi du ZFS sur les forks d’OpenSolaris, type illumos/OpenIndiana ou NexentaStor.



(quote:2146432:DantonQ-Robespierre)
Le problème de licence, à mon avis, est secondaire : si les devs d’OpenZFS le voulaient vraiment, ils pourraient changer leur licence pour la GPL2 ou équivalent (CC ?)…




Non, ils ne peuvent pas. La licence CDDL vient d’OpenSolaris, et donc de Sun. Oracle ayant racheté Sun, il faudrait donc l’accord d’Oracle pour changer la licence. Aucune chance.



C’est une erreur qui est souvent rencontrée sur les forums : il ne faut pas l’accord de chacun des développeurs individuellement, il faut l’accord de l’employeur de ces gens à l’époque où ils ont fait le code ; c’est plus compliqué. Surtout quand c’est Oracle.



(quote:2146438:alex.d.)
C’est une erreur qui est souvent rencontrée sur les forums : il ne faut pas l’accord de chacun des développeurs individuellement, il faut l’accord de l’employeur de ces gens à l’époque où ils ont fait le code ; c’est plus compliqué. Surtout quand c’est Oracle.




Pour être exact, il faut l’accord de toutes les personnes détenant des droits sur tout ou partie du code. Dans certains cas, c’est facile car l’entreprise à l’origine du projet a forcé tous les contributeurs à donner un droit perpétuel et illimité de redistribuer le code et ses dérivés, permettant à l’entreprise de changer la licence, y compris vers une licence propriétaire… dans ce camp on retrouve MongoDB, Cups, …



Dans d’autres cas, seuls les propriétaires du code ont le droit de changer la licence, et du coup tout le monde sans exception doit être d’accord (ou il faut réécrire les bouts de code produits par ceux qui ont refusé)… dans ce camp on retrouve le noyau Linux et de nombreux projets communautaires.


L’intégrité des données est une vraie question au boulot. Je me suis pas encore penché sur la question mais quand on a des obligations légales de conservation de données pendant 5, 10, 20, 50 ans ou plus, sur quoi on stock ça ?



Parce qu’on va pas garder le matériel aussi longtemps théoriquement, il faudra passer par plusieurs phases de transfert. Et il faudrait pas qu’un lot de données se retrouve corrompu et qu’on continue de conserver ce lot en l’état.



Le ZFS m’avais l’air chouette pour ça mais j’ai pas trouvé d’appliance françaises ou implantée dans le coin.



(reply:2146442:Fab’z)




Quand on rentre dans des obligations au delà de 5 ans, on rentre dans des processus d’archivage assez coûteux où les données doivent être stockées en plusieurs exemplaires et revérifiées périodiquement. En général, on utilise des bandes magnétiques type LTO. Sinon, il y a aussi le M-Disc, qui est une variation sur DVD/Blu-ray et qui doit être gravé avec un enregistreur spécial et est chimiquement inerte (donc pas d’oxydation) et qui est qualifié de stable par le NIST jusqu’à 100 ans…



En pratique, quelque soit le format, on vérifiera la disponibilité des lecteurs au fil du temps et on se préparera toujours à migrer vers un autre format.



(quote:2146442:Fab’z)
L’intégrité des données est une vraie question au boulot. Je me suis pas encore penché sur la question mais quand on a des obligations légales de conservation de données pendant 5, 10, 20, 50 ans ou plus, sur quoi on stock ça ?



Parce qu’on va pas garder le matériel aussi longtemps théoriquement, il faudra passer par plusieurs phases de transfert. Et il faudrait pas qu’un lot de données se retrouve corrompu et qu’on continue de conserver ce lot en l’état.



Le ZFS m’avais l’air chouette pour ça mais j’ai pas trouvé d’appliance françaises ou implantée dans le coin.




Cela peut être un stockage sur bandes magnétiques. On avait ça sur une application bancaire. L’avantage que j’y vois c’est que ça ne consomme pas de ressources.


Merci des retours. Effectivement on a déjà du LTO mais en sauvegarde déconnecté régulière (quotidien, hebdomadaire, mensuel, annuel). Sauf qu’on est plus qu’au bout niveau volumétrie. Le LTO 9 ne fait que 3x LTO 7 et avec les dernières réglementations ça risque de grimper super vite. Il y a une autre complexité, on doit garder un accès a ces données depuis les applications métiers. D’ou la réflexion sur le sujet, avec l’idée d’un tiers de stockage archive sur ZFS et 2ème lecteur LTO pour ne pas empiéter sur les tâches courantes et garder une copie déconnecté en changeant simplement l’organisation de sauvegarde. A creuser…


Petite précision concernant la conclusion:




Les bénéfices de ZFS peuvent être immenses, mais sont taillés pour des configurations avec des disques multiples. Dans l’immense majorité des cas, les ordinateurs sont fournis avec un seul disque. Qu’il soit dur ou de type SSD ne change pas le constat : les fonctions de ZFS ne pourront pas s’y exprimer, car elles sont en bonne partie fondées sur la redondance et la parité




Même avec un seul disque, ZFS fournit toujours plusieurs fonctionnalités intéressantes:




  1. intégrité des données (les checksums permettent de détecter une corruption même avec un seul disque)

  2. les snapshots => et donc possibilité de corriger des fausses manips et faire des backup incrémentaux vers un stockage externe (avec zfs send/receive)

  3. les volume logiques (“filesystem” ou zvol) au sein d’un même pool physique => pas de taille fixe allouée à chaque volume logique, et donc meilleur utilisation possible du disque physique (dynamiquement, sans resize)


C’est sans doute pour ça que c’est le FS par défaut sur OPNsense.


Edtech

C’est sans doute pour ça que c’est le FS par défaut sur OPNsense.


En fait c’est surtout parce que OPNsense est basé sur FreeBSD, qui lui propose ZFS en natif depuis de nombreuses années.


Certes, mais les fonctionnalités ne sont pas complètement inédites, et sous Linux ça reste au prix d’une gestion mémoire assez agressive et d’une intégration limitée… pour un serveur de stockage, je ne dis pas mais pour un poste de travail, j’éviterais.



Pour les alternatives natives sous linux:




  • intégrité (détection du bit-rot): dm-integrity, qui permet de s’intercaler entre le disque et le filesystem. Peut aussi être utilisé pour une base de donnée utilisant directement le disque sans filesystem.

  • snapshot: lvm

  • volumes logiques: lvm avec des volumes logiques de type thin-pool



Ce n’est évidemment pas la panacée, mais ce n’est pas non-plus le désert, et l’avantage de ces solutions est d’être intégré au noyau sans chipotage et sans monopoliser trop de ressources.



Pollux_ a dit:


Côté Linux il manque encore XFS, qui reste le FS par défaut de RHEL et de ses clones (Rocky Linux, ALMA OS, etc.)




C’est bien sûr prévu :chinois:



Vincent_H a dit:


C’est bien sûr prévu :chinois:




En tout cas, j’adore cette série d’articles car j’en apprend pas mal. Donc, merci :chinois:.


:smack:


Pour cause de vacances, je n’avais pas vu l’article parlant de Btrfs, et il n’est plus possible de commenter, je le fais donc ici.



Le bien connu sebsauvage a écrit une doc théorique et pratique bien utile sur Btrfs. Si ce système vous intéresse, je vous la recommande.



Note : l’exemple pratique qu’il donne est sur disque dur et n’est donc pas bien adapté aux SSD. Pour ceux-ci, le même sebsauvage a aussi fait une doc, Linux et SSD, mais qui parle de ext4. À vous, donc, de mixer les deux…


Allez je vais me faire des potes mais le monde de l’open source nous fait chier avec des licences toujours plus complexes…



(reply:2146546:Fab’z)




Backup chiffré dans le cloud, genre chez Amazon (https://aws.amazon.com/s3/storage-classes/glacier/).



(quote:2146546:Fab’z)
D’ou la réflexion sur le sujet, avec l’idée d’un tiers de stockage archive sur ZFS et 2ème lecteur LTO pour ne pas empiéter sur les tâches courantes et garder une copie déconnecté en changeant simplement l’organisation de sauvegarde. A creuser…




Tout dépend de ce qui est manipulé niveau métier. Données froides (pdf et autres documents immuables) ou données chaudes (bdd, documents évolutifs).
Traitement des documents trè fréquent ou au ou par coup (par exemple, données médicales qui ne ressortent que suite à ‘une visite du patient )



La sauvegarde quotidienne/hebdo/ensuelle des données froides n’est pas nécessaire.
Si c’est du légal, un tiers de stockage légal peut être intéressant.
Un bon logiciel de gestion d’un robot de LTO peut aussi permettre de faire un ‘libre accès’: les utilisateurs peuvent demander la restau d’un fichier des bandes et le robot le fait dans la journée (netbackup à l’époque)
J’envisage au boulot de remplacer des documents par un version minimaliste en pdf+référence à l’archivage au fur et à mesure…


Pour compléter l’article, il y a un excellent groupe de travail sur le zfs pour l’enseignement supérieur et la recherche:
https://resinfo-gt.pages.in2p3.fr/zfs/doc/index.html



Perso, nous l’utilisons pour de la sauvegarde avec du raidz3 sur des volumetries de 600 à 800To.



Merci pour cette série d’articles sur les systèmes de fichiers.



ydamian a dit:


Allez je vais me faire des potes mais le monde de l’open source nous fait chier avec des licences toujours plus complexes…




Fais du bien à martin, il te chiera dans la main…



ragoutoutou a dit:




  • intégrité (détection du bit-rot): dm-integrity, qui permet de s’intercaler entre le disque et le filesystem. Peut aussi être utilisé pour une base de donnée utilisant directement le disque sans filesystem.




J’ai fait des tests avec ça en l’intercalant entre les disques et mdadm en RAID5 ou 6. dm-integrity génère une erreur de lecture en cas de checksum faux et le RAID corrige immédiatement en utilisant la parité. Je prévoyais aussi un scan régulier du RAID pour forcer une relecture de tout l’ensemble et corriger les erreurs en attente.



Un truc que je trouve bien avec dm-integrity, c’est qu’on peut stocker les checksums sur un autre disque (je conseille un SSD) sans rien modifier sur le disque qu’on veut protéger. On peut donc à loisir ajouter ou supprimer les checksums, ou modifier la façon dont ils sont calculés, voire utiliser le disque tel quel sans dm-integrity si besoin, rien n’est définitif. J’avais cependant un problème de performance juste sur le scan du RAID qui était très lent sans que je sache pourquoi, alors que sinon ça tournait bien.



J’ai testé un autre truc aussi, du mdadm en RAID 6 seul avec un script de scan spécial qui, en cas d’erreur de parité détectée, détermine où se trouve la corruption en utilisant le fait qu’il y a 2 parités calculées différemment, et la corrige. Ca permet d’éviter la couche dm-integrity en RAID 6, avec l’inconvénient que les erreurs ne sont détectées et corrigées que lors du scan. Il faudrait intégrer cette correction spéciale au RAID mdadm en temps réel, je crois qu’il y a d’ailleurs un patch pour ça.





  • snapshot: lvm




J’ai peut-être tort mais j’ai l’impression que ça va être bien moins efficace que de le faire gérer par le système de fichiers.


OpenZFS s’intègre très bien à docker https://docs.docker.com/storage/storagedriver/zfs-driver/


Fermer