Système de fichier : zfs, btrfs ou ext4 ?

Ce bref état de l’art va donc tout d’abord présenter quelques facteurs de choix pouvant aider à départager des systèmes de fichier concurrents, avant de présenter plus en détail trois de ceux-ci : zfs, btrfs et ext4.

6 minutes de lecture

Les systèmes de fichiers sont utilisés pour organiser le stockage de l’information sur des supports physiques (disques dur, ssd, etc.) de manière transparent pour l’utilisateur tout en lui permettant un stockage et un accès fiables.

Il existe plusieurs systèmes de fichiers, chacun ayant des caractéristiques propres et des cas d’utilisation particulier. S’il est souvent peu utile de sélectionner manuellement son système de fichier plutôt que de choisir celui proposé par défaut, dans certaines conditions d’utilisation il est nécessaire de sélectionner le système de fichier le plus adapté ; cela peut-être le plus rapide, ou le plus fiable, ou celui impliquant le moins de cycles d’écritures, etc.

Ce bref état de l’art va donc tout d’abord présenter quelques facteurs de choix pouvant aider à départager des systèmes de fichier concurrents, avant de présenter plus en détail trois de ceux-ci : zfs, btrfs et ext4.

Types de système de fichier

Devant la multitude de systèmes de fichiers existant, il faut sélectionner quelques critères permettant de faire le choix le plus adapté à l’utilisation souhaitée. De plus, le choix est souvent conditionné en partie par le système d’exploitation choisi.

Les systèmes de fichiers sont souvent regrouppés par type, ce qui permet de mettre en avant leur caractéristique principale. Voici une présentation rapide des types les plus fréquemment rencontrés :

  • journalisé : une trace de l’ensemble des modifications apportées aux données est conservé dans un journal, ce qui permet une plus grande tolérance aux pannes et une réparation plus facile en cas de corruption. Ext3, Ext4 et la famille Reiser sont journalisés.
  • non journalisé : ce sont des systèmes de fichiers plus historiques, qui sont de moins en moins utilisés; comme par exemple les systèmes FAT ou ext/ext2.
  • à snapshot : un snapshot est un instantané du système de fichier qui permet d’enreigistré les modifications apportées. Selon l’implémentation utilisée (sauvegarde totale du système de fichier auparavant ou non), cette méthode permet d’éviter toute perte en cas de panne, mais implique une utilisation double d’espace de stockage. Les deux systèmes de fichier de ce type les plus anciens sont Btrfs et ZFS.

Il existe encore d’autres types de systèmes de fichier, certains développés pour une utilisation en réseau, pour les clusters, ou encore d’autres plus spécialisés (ISO 9660 pour les CD-ROM, CFS pour le stockage chiffré, ramfs et tempFS pour les systèmes de fichiers temporaires, etc.). Dans la suite, nous n’aborderons plus ces systèmes de fichiers spécialisés pour nous concentrer sur les usages plus conventionnels.

ext4

Présentation et historique

Comme son nom l’indique, l’extended filesystem 4 (ext4) est le quatrième des systèmes de fichiers extended filesystem, utilisés par Linux depuis ses début. Il a été développé pour apporter à ext3 des améliorations en attendant l’arrivée d’un système de fichier plus révolutionnaire (qui devrait être Btrfs). Cependant, même si ses concepteurs l’ont conçu comme une étape intermédiaire, il a été massivement adopté et est implémenté dans une grande partie des systèmes d’exploitation de type Unix. Par rapport à ses prédécesseurs, ext4 apporte une meilleure gestion des gros volumes et des gros fichiers, ainsi qu’une limitation de la fragmentation grâce à l’extent.

Points forts

  • Compatibilité ascendante avec ext3
  • Répandu, bien documenté, stable
  • Limitation des erreurs I/O grâce à l’utilisation de checksum
  • Moins de fragmentation, efficace sur les gros fichiers :
    • pré-allocation (grâce à l’extent)
    • allocation retardée (le système attend d’avoir la taille totale du fichier à écrire pour allouer l’espace)
  • performance pas trop en deça des autres pour les manipulations simples

Points faibles

  • compression et chifrement pas intégrés de base
  • performances en deça pour les multiples manipulations en même temps

ZFS

Présentation et historique

ZFS a été développé dans l’objectif d’être le système de fichier “ultime”. Le projet a été lancé par Sun Microsystem entreprise maintenant rachetée par Oracle. Il a fait sa première apparition en 2005 sur Solaris et a été totalement intégré mi 2006.

Il intègre en un seul produit le système de fichiers et la gestion de volumes.

Points forts

  • vérification de disque à chaud
  • vérification des métadata et des data lors d’une vérification de disque
  • systeme de snapshot très performant par différence
  • possibilité de transférer des snapshot par le réseau, via ssh
  • possibilité de définir un device pour faire du cache sur un pool de disque
  • raidz (aucune, simple, double, ou triple partité)

Points faibles

  • pas intégrable dirctement dans le noyau linux à cause de sa license

Btrfs

Présentation et historique

Le projet de B-tree File System (Btrfs, à prononcer Butter-FS) voit le jour fin 2007 et a pour but de créer un système de fichier combinant toutes les couches habituellement utilisées (mdadm/lvm/fs…) en un produit unique. Ainsi, puisqu’il en a connaissances, Btrfs est capable de faire plus de choses et de les faire plus rapidement qu’un système de fichier utilisant des couches indépendantes (et universelles).

Son rôle sur le long terme est de remplacer ext4. Cependant, tant que son développement n’est pas terminé, il souffre de beaucoup de points faibles et la plupart de ses fonctionnalité se retrouvent déjà dans les produits actuels.

Points forts

  • Garantir la fiabilité des données
  • Réaliser des instantanés au niveau fichier
  • Mode « 3 copies » : RAID1 sur 3 blocs au lieu de 2
  • Le « scrubbing » automatique en tâche de fond pour régulièrement traquer les corruptions et ventiler uniformément les données entre les disques
  • De nouveaux algorithmes de compression, plus rapide (Snappy, de chez Google, ou LZ4, en plus de zlib et LZO)

Points faibles

  • Plus de 50% du disque sera utilisé pour assurer cette sécurité
  • Pas de chiffrement des données
  • En cas de panne d’un disque, il est nécéssaire de démonter le FS !
  • Une fragmentation importante.
  • Une fiabilité encore très éloignées des FS habituels.
ZFS Btrfs Ext4
Signification Z File System B-tree File System Extended File System
date de création 01/10/2005 06/12/2007 10/10/2006
capacité maximale du disque 16 Eio 16 Eio 1 Eio (limité à 16Tio par e2fsprogs)
taille maxi d’un fichier 16 Eio 16 Eio 16 Tio
nombre max de fichier dans un répertoire 2^56 Illimité Illimité
nombre maxi de fichiers 2^48 2^64 4 milliards
nombre d’instantannés max 2^48 N/A N/A
architecture physique, comment les fichiers sont stockés sur le disque Extensible hash table extend extend
taille des noms de fichiers 255 octets 255 octets 255 octets
licence CDDL open source GPL BSD
éditeur/developpeur sun/oracle oracle sun
objectif, besoin auquel il répond fiabilité, protection contre les corruptions de données Remplacer l’ext4 en s’inspirant de zfs Améliorer ext3 en attendant un successeur « révolutionnaire » (btrfs)
dates associées au fichier N/A modification (mtime), modification des attributs(ctime), accès (atime) Précision à la nanoseconde
où il est utilisé solaris 10, netbsd, zfsguru linux linux
système de permissions posix posix, ACL N/A
compression intégrée intégrée (gzip, LZO1, Snappy2 et LZ43) non
chiffrement intégrée intégrée bob

Sources et références


Recherches & rédaction : Jake, Wandrille et Thom

Licence Creative Commons Cet article est mis à disposition selon les termes de la Licence Creative Commons Attribution-ShareAlike 4.0 International. Cet article a été publié il y a 2003 jours, son contenu peut être inexact, voire erroné, et l'application des conseils ou consignes présents dans cet article doit être fait à votre propre appréciation. L'auteur de l'article ne pourra être tenu responsable des inconvénients pouvant résulter de l'application des conseils et consignes énoncés dans cet article.
comments powered by Disqus