Sur le champ de bataille des technologies modernes de stockage, Btrfs et ZFS / OpenZFS sont sans aucun doute deux des puissances les plus dominantes. Bien que tous deux reposent sur la philosophie centrale du Copy-on-Write (CoW) et offrent des capacités d’auto-réparation et de snapshots, ils présentent un ADN d’ingénierie distinct lorsqu’il s’agit de gérer la couche physique de stockage (par exemple, RAID5/RAID50) et l’expansion des dispositifs.

Examinons les différences entre ces deux systèmes de fichiers selon quatre dimensions majeures : mécanismes d’écriture, coût d’expansion, le trou d’écriture RAID et l’intégrité de données.
1. Différences philosophiques dans les mécanismes d’écriture : flexibilité vs efficacité
Btrfs et ZFS adoptent des stratégies fondamentalement différentes pour gérer les écritures de données, et cette distinction détermine directement leurs cas d’utilisation respectifs.
Btrfs : remplissage façon Tetris
Btrfs abstrait les dispositifs physiques en unités logiques de 1 GiB appelées « chunks ». Cette conception lui permet de déterminer dynamiquement la largeur de bande lors de l’écriture en fonction du nombre de disques actuellement disponibles.
L’avantage clé est une flexibilité matérielle exceptionnelle. Au sein d’un seul pool, vous pouvez mélanger des lecteurs de différentes capacités, et Btrfs maximisera l’utilisation de l’espace comme dans un jeu de Tetris.
Architecturalement, il ne possède pas de profil RAID50 autonome ; à la place, il agrège plusieurs chunks RAID5, fonctionnant effectivement comme un RAID50 parallèle.
ZFS : logique de performance basée sur les transactions
ZFS, en revanche, suit une stratégie axée sur la performance. Il adopte une approche de largeur de bande variable et détermine dynamiquement la disposition des bandes pour chaque transaction d’écriture.
L’avantage de ZFS réside dans l’élimination complète du cycle traditionnel RAID Read-Modify-Write (RMW), améliorant considérablement l’efficacité d’E/S. ZFS prend en charge les écritures en bande complète. Il calcule la parité en temps réel selon la taille de données et effectue des écritures en bande complète, garantissant que la parité ne traverse pas les frontières de données.
Si votre environnement est rempli de divers anciens lecteurs de secours, l’architecture de Btrfs est bien adaptée au mélange de lecteurs de différents âges et capacités. Cependant, si vous recherchez un débit E/S maximal et une cohérence de niveau entreprise, l’architecture transactionnelle de ZFS présente un avantage évident.
2. Le coût de l’expansion : rééquilibrage vs flux dynamique de données
Lorsque la capacité de stockage est faible et qu’un nouveau disque est ajouté, que se passe-t-il ? C’est l’un des aspects les plus souvent mal compris par les équipes d’exploitation.
Le coût d’une réécriture complète dans Btrfs
Pour utiliser le nouveau disque et obtenir une largeur de bande plus grande, Btrfs doit effectuer l’opération de balance btrfs. L’impact est un processus de réécriture complète. Pour des ensembles de plusieurs téraoctets, ce processus peut prendre plusieurs jours et générer une charge E/S importante.
En conséquence, ce n’est qu’après la fin du long processus de réécriture que la distribution de données et le niveau RAID seront entièrement convertis.
L’élégance et les pièges de ZFS : reflow logique
ZFS ne nécessite pas de déplacer les données existants lors de l’expansion. Ce comportement est appelé « pas de réécriture forcée ». Dans ce mécanisme, le SPA (Allocateur pool de ZFS) surveille la capacité libre et privilégie l’écriture des nouvelles données sur les nouveaux appareils disposant de plus d’espace libre. Il s’agit d’une forme d’allocation pondérée orientée capacité.
Cependant, il existe une idée reçue courante concernant l’expansion : beaucoup pensent à tort que les données seront automatiquement rééquilibrés après l’expansion. C’est incorrect. Les données existants restent sur les disques d’origine, ce qui entraîne des points chauds en lecture. Les IOPS des nouveaux disques apportent peu de bénéfices lors de l’accès à ces données existants.
Dans ces cas, une meilleure solution consiste à obtenir un véritable équilibre en effectuant manuellement une réécriture ZFS ou en utilisant la nouvelle technologie d’expansion RAIDZ. Cependant, il convient de noter que si des snapshots existent, cela peut entraîner un doublement de l’utilisation de l’espace.
Dans les dernières versions d’OpenZFS, il existe déjà des fonctionnalités telles que zpool remove et d’autres capacités de modification de périphériques, ainsi que des outils pouvant être utilisés pour le rééquilibrage. En résumé, le modèle d’expansion ZFS diffère de l’expansion dynamique de Btrfs, mais il n’est pas entièrement statique.
En pratique, une fois la capacité déterminée, la configurer en conséquence et éviter toute expansion supplémentaire est un choix plus adapté. Les entreprises devraient estimer les spécifications nécessaires à l’avance et acheter en conséquence pour éviter des complications futures. Cependant, cela constitue également un inconvénient de ZFS, car la flexibilité d’expansion d’un ensemble RAID entier n’est pas aussi bonne que celle de Btrfs.
3. Le champ de bataille central de l’intégrité données : RAID Write Hole
Le « write hole » désigne un risque critique qui survient lorsqu’une panne de courant se produit pendant le processus d’écriture, pouvant entraîner une incohérence entre données et la parité.
ZFS : Immunité structurelle
ZFS empêche intrinsèquement ce problème au niveau architectural en adoptant plusieurs technologies. La première est la mise à jour atomique : ZFS utilise des Transaction Groups (TXG) et un tampon circulaire. Le système analyse le tampon circulaire pour localiser le dernier TXG avec un « checksum valide ». Les TXG incomplets — ceux en cours d’écriture au moment d’une panne de courant — sont purement ignorés, et le système revient immédiatement à l’état cohérent précédent.
Le second est l’arbre de Merkle. L’ensemble du système de fichiers est structuré comme un immense arbre de hachage, où toute corruption du données sous-jacent entraîne l’échec de la validation du checksum au niveau supérieur, empêchant ainsi une corruption silencieuse du données. L’Uberblock sert d’unique point d’ancrage de confiance pour cet arbre et n’est jamais écrasé sur place.
Btrfs : Du statut expérimental à la rédemption grâce au RST
Le RAID5/6 de Btrfs a longtemps été qualifié d’« expérimental », précisément à cause de la vulnérabilité fatale du write hole.
Avec le noyau Linux 6.2, le RAID Stripe Tree (RST) a été introduit. Il s’agit d’une nouvelle structure d’arbre qui gère la disposition physique sur une base par extension et qui a été conçue à l’origine pour résoudre la vulnérabilité du write hole. Avant cela, Btrfs s’appuyait sur le cycle complet lecture-modification-écriture (RMW) pour vérifier les checksums, ce qui entraînait une surcharge de performance.
Cependant, selon le page officielle de statut btrfs readthedocs (à partir du noyau Linux 6.17), la plupart des fonctionnalités de Btrfs sont indiquées comme OK ou principalement OK. RAID5/6 reste inadapté à une utilisation en production et n’est pas marqué comme OK dans le tableau de statut. À partir du noyau Linux 6.12, les fonctionnalités expérimentales nécessitent l’activation de CONFIG_BTRFS_EXPERIMENTAL, et des problèmes connus subsistent. De plus, les causes sous-jacentes du write hole n’ont pas été complètement éliminées. L’implémentation actuelle atténue certains scénarios de corruption d’écriture, mais les effets à long terme nécessitent encore une observation supplémentaire.
Dans les noyaux Linux grand public actuels (par exemple, la série 6.x), la prise en charge native du RAID5/6 dans Btrfs a montré une amélioration progressive. Au cours des dernières années, la communauté Btrfs et les développeurs ont corrigé des bugs connus dans l’implémentation RAID5/6, notamment des correctifs pour les conditions de concurrence et des améliorations du comportement du scrub. Cependant, l’implémentation centrale du RAID5/6 n’a pas encore atteint une pleine maturité ou stabilité. Dans certains cas limites—comme la récupération données après une défaillance de périphérique—des problèmes de récupération fiable peuvent encore survenir.
Autrement dit, bien que la gestion du RAID5/6 dans les noyaux modernes soit devenue plus mature qu’auparavant, elle reste inférieure à la robustesse offerte par le RAID1/10 ou des implémentations éprouvées comme RAID-Z dans ZFS. Dans les discussions techniques, il reste donc conseillé d’utiliser des configurations RAID plus stables—comme RAID1/10, ou RAID5/6 construit avec mdadm et superposé à Btrfs—comme alternatives, plutôt que de compter directement sur l’implémentation native RAID5/6 de Btrfs dans des environnements de production critiques.
En pratique, il a été constaté que même si le noyau Linux 6.2 et ultérieur améliore certains aspects de la gestion de l’écriture et du checksum de Btrfs, le write hole persiste—notamment dans des cas particuliers impliquant une perte de courant et une défaillance de périphérique. Parallèlement, les opérations de scrub et de balance peuvent encore être lentes. Sur des ensembles de grande capacité, elles peuvent prendre des jours, voire des semaines, pour se terminer.
4. Risques sous les snapshots : préoccupations cachées dans Btrfs
Les snapshots sont une fonctionnalité phare des systèmes de fichiers CoW, mais lors de l’expansion ou de la réorganisation d’un array, les snapshots peuvent devenir un fardeau. Dans ZFS, les ensembles de données et les snapshots sont des entités formellement séparées. En revanche, les sous-volumes et snapshots Btrfs conservent la flexibilité de partager le même espace de noms interne.
Le risque avec Btrfs réside dans l’exécution d’une opération de balance tout en conservant un grand nombre de snapshots, car la mise à jour des étendues référencées par ces snapshots peut déclencher une explosion de références différées. Cela peut entraîner une chute des performances à zéro, et il y a même eu des incidents catastrophiques où des échecs de vérification des métadonnées ont empêché le montage du système de fichiers. Cependant, bon nombre de ces problèmes ont été atténués dans les versions récentes de Btrfs et les dernières versions du noyau Linux.
La résilience de ZFS se reflète dans le fait que ses pointeurs de blocs sont immuables. Le reflow ajuste uniquement la disposition physique au niveau du RAID et est indépendant des fonctionnalités au niveau du système de fichiers telles que les snapshots. Même avec des milliers de snapshots, l’expansion de l’array ne menace pas l’intégrité des métadonnées ni ne provoque un effondrement des performances.
Comment les utilisateurs professionnels et domestiques doivent-ils choisir ?
Lors de l’évaluation de l’adéquation de Btrfs dans les environnements d’entreprise, le point clé n’est pas de savoir s’il offre des fonctionnalités avancées, mais s’il est adapté pour servir de fondation stockage capable de résister aux scénarios les plus critiques. D’un point de vue ingénierie, Btrfs est déjà assez mature en configurations RAID1, RAID10, ou disque unique et multi-copie, et il est largement utilisé pour la disques système, la gestion d’images et les scénarios de restauration de snapshots dans les distributions Linux.
Cependant, lorsque les exigences stockage évoluent vers l’efficacité de capacité et les niveaux de tolérance aux pannes les plus appréciés par les entreprises (par exemple, RAID5/6), le modèle de risque de Btrfs peut ne pas répondre pleinement aux attentes des entreprises en matière de modes de défaillance prévisibles et de fiabilité de récupération données. Bien que Btrfs RAID5/6 ait progressivement résolu certains problèmes connus dans la série de noyaux Linux 6.x actuellement dominante, son implémentation est toujours explicitement indiquée comme non recommandée pour les environnements de production critiques. Cela amène certaines entreprises à se demander si elles sont prêtes à assumer une incertitude supplémentaire dans la gestion des incidents, la délimitation des responsabilités et les opérations et la maintenance à long terme.
Dans l’ensemble, Btrfs n’est pas « inadapté à un usage en entreprise », mais il est mieux positionné au niveau du système, de la plateforme ou au sein des architectures stockage qui offrent une protection de couche supérieure. En revanche, pour les scénarios qui portent des données essentiels à l’entreprise, nécessitent des années de fonctionnement stable et dépendent fortement de l’efficacité de capacité du RAID5/6, il convient toujours de privilégier des solutions présentant une maturité technique et une maîtrise des risques plus élevées.
En comparaison, ZFS a un rôle plus clairement défini dans les environnements d’entreprise. Son design central part du principe que le système doit porter des données critiques sur le long terme et doit toujours maintenir la cohérence et la récupérabilité des données dans des conditions extrêmes telles que des défaillances matérielles, des anomalies d’alimentation ou des défaillances simultanées de plusieurs disques.
ZFS intègre le système de fichiers et la gestion du disque dans une seule pile stockage. Grâce aux sommes de contrôle de bout en bout, au Copy-on-Write et à l’étroite intégration du RAID-Z, il établit des modes de défaillance prévisibles et des processus de réparation automatique matures, qui sont précisément les caractéristiques d’ingénierie les plus appréciées par les entreprises.
Par conséquent, ZFS est particulièrement adapté aux stockage d’entreprise critiques, aux backends Virtualisation (par exemple, les VM et les volume de conteneurs), aux déploiements NAS à grande échelle et aux référentiels de sauvegarde. Ceci est particulièrement vrai dans les environnements où des architectures basées sur la parité telles que RAID5/6 sont nécessaires pour équilibrer l’efficacité de la capacité avec l’intégrité du données, car ZFS offre une stabilité supérieure et un comportement de défaillance plus prévisible que la plupart des systèmes de fichiers généralistes.
Bien sûr, ZFS implique des exigences matérielles plus élevées, des coûts globaux supérieurs et un modèle d’extension plus strict. Cependant, à l’échelle de l’entreprise, cette philosophie de conception qui échange des ressources contre de la prévisibilité est souvent plus acceptable pour les organisations soucieuses des opérations à long terme, de la conformité réglementaire et de la gestion des risques.
Les deux systèmes de fichiers ont leurs propres atouts
Lors de l’intégration du modèle RAID-Z, ZFS fournit des sommes de contrôle de bout en bout et des mécanismes d’auto-réparation, tandis que Btrfs s’appuie principalement sur la configuration RAID et les opérations de vérification (scrub) pour la validation. Cependant, Btrfs présente toujours des limitations et des risques distincts concernant les métadonnées et les scénarios RAID5/6.
ZFS nécessite relativement beaucoup de RAM, en particulier lorsque la déduplication est activée. Cela doit être soigneusement pris en compte lors du déploiement, car cela peut augmenter le coût global du système, surtout à une époque où le prix de la mémoire est élevé, ce qui en fait un facteur de coût important. En contrepartie, il offre également de meilleures performances et une intégrité du données renforcée.
Voici une comparaison des principales différences entre les deux systèmes de fichiers :
| Système de fichiers | Btrfs | ZFS |
| Flexibilité matérielle | Prend en charge le mélange de disques | Plus restrictif (contraintes VDEV) |
| Impact sur l’extension | Élevé (nécessite une réécriture complète via balance) | Faible (reflow, aucune réécriture requise, mais les points chauds de lecture doivent être surveillés) |
| Protection contre le Write Hole | Dépend de la version du noyau Linux (6.2+ RST) | Immunité architecturale (TXG atomique) |
| Stabilité de l’expansion du snapshot | Risque (explosion des références différées) | Sûr (BP immutable) |
Pour les environnements à grande échelle où la « protection données » et la « fiabilité à long terme » sont des priorités non négociables, OpenZFS est le choix définitif. Sa stabilité, ainsi que le Merkle Tree et les mises à jour atomiques, offrent une intégrité vérifiable mathématiquement.
Cependant, pour l’utilisateur expérimenté de Linux qui nécessite une gestion flexible de disque — par exemple, en mélangeant d’anciens lecteurs de capacités variées dans un home lab — et qui est à l’aise avec la gestion de la compatibilité des versions du noyau et des détails opérationnels, Btrfs offre une flexibilité considérable.
Veuillez noter que, quel que soit votre choix, les SMR lecteurs ne doivent jamais être utilisés dans un environnement NAS. Dans la mesure du possible, spécifiez toujours les CMR lecteurs. En effet, les SMR lecteurs présentent des performances d’écriture aléatoire relativement faibles, ce qui les rend inadaptés aux opérations d’écriture fréquentes. Les fabricants de HDD, dont Western Digital et Seagate Technology, développent des technologies de nouvelle génération telles que l’enregistrement magnétique assisté par micro-ondes (MAMR) et l’enregistrement magnétique assisté par la chaleur (HAMR) pour dépasser les limites de capacité, et les nouveaux modèles de lecteur adopteront également ces technologies.
Republié avec Autorisation depuis CyberQ