I Tested 5 Popular Linux Filesystems — Here’s What I Found
Cette vidéo compare cinq systèmes de fichiers (ext4, F2FS, XFS, ZFS et Btrfs) sur un même matériel avec une méthodologie stricte, révélant que ZFS domine pour les charges serveur, NAS et workstation, tandis que Btrfs et ext4 se disputent la première place pour le gaming.

SYNTHÈSE STRUCTURÉE
Méthodologie de test : matériel et logiciel
L’intervenant utilise un MSI Prestige 16 AI EVO avec un Intel Core Ultra 7 155H à 4,8 GHz, 32 Go de RAM et un Western Digital SN850X de 2 To dédié au benchmark. Le système d’exploitation est Endeavour OS (version Titan), avec le noyau Linux 6.18 et IOzone 3 (version 5.11). Il précise : « I didn’t tune anything on the file system. So if you’re I mean this is not a tuning exercise. This is a benchmark exercise to see what you can expect to get right out of the gate. » Aucun paramètre n’a été modifié, ce qui donne une vision réaliste des performances par défaut.
Contrainte noyau : le problème DKMS avec ZFS
L’auteur a dû rétrograder son noyau de 7.1 à 6.18 car ZFS ne compile pas avec DKMS sur les versions supérieures à 7.1. Il explique : « There’s a inhibitor in the DKMS encoding that says if you’re on seven, you’re great. You can compile. If it’s greater than seven, it’ll abort. » Il a aussi vérifié le noyau Liquorix, mais celui-ci était déjà passé à 7.1, ce qui l’a obligé à utiliser le noyau standard. C’est un point critique pour tout admin qui envisage ZFS : il faut vérifier la compatibilité noyau avant mise à jour.
Présentation des cinq systèmes de fichiers
- ext4 : créé en 1992 avec Linux, basé sur UFS. Il réduit la fragmentation et convient bien aux SD cards (ext2 sans journaling reste un choix pour ce cas).
- F2FS : introduit en 2012 par Samsung, conçu pour les mémoires flash. Il utilise un design log-structuré avec multi-headed logging et tables de hachage multi-niveaux. Il offre rollback/rollforward recovery, chiffrement au niveau du système de fichiers et compression transparente.
- XFS : créé par Silicon Graphics en 1993. Le « X » n’a jamais eu de signification, comme le précise l’auteur : « It was a placeholder. The Silicon Graphics people who created it in 1993, they were going to get back to it and give it a clever name, but nobody ever did. » Il supporte les I/O parallèles et utilise un modèle d’allocation par arbre B+.
- ZFS : initialement « zetabyte file system », le nom a été simplifié. Il offre déduplication (accélérée dans les versions récentes d’OpenZFS), chiffrement, pooling de disques (même avec des fichiers comme backing store), snapshots et réplication. Il ne supporte pas le RAID matériel, d’où l’utilisation d’un seul disque dans ce test.
- Btrfs : propose déduplication, chiffrement, clonage, sous-volumes et snapshots.
Les quatre piliers d’utilisation
L’auteur définit quatre cas d’usage pour interpréter les résultats : gaming (lecture séquentielle, mono-utilisateur), workstation (charges interactives variées, compilation, création de contenu), serveur (accès multi-utilisateurs, I/O mixtes et non linéaires) et NAS (stockage et récupération soutenus). Il précise : « Compilers do all kinds of crazy things like read the file backwards. » Cette catégorisation est essentielle car un même système de fichiers peut exceller dans un contexte et être médiocre dans un autre.
Résultats pour les petits fichiers
Pour les charges avec petits fichiers, les résultats sont nets :
- Gaming : Btrfs est le plus rapide, mais ext4 est un très bon choix aussi.
- NAS : ZFS domine sans surprise.
- Serveur : ZFS encore, suivi de Btrfs, avec les systèmes de base (ext4, XFS, F2FS) au milieu.
- Workstation : ZFS gagne, ce qui surprend l’auteur : « Really, I should be using ZFS for my workload. Okay. Because I’m mostly workstation. »
L’auteur nuance : « It’s not that you can’t, you know, if you choose one of the core system, it doesn’t mean you’re wrong. I’m not saying that. But you may not be pulling full performance out of your file system. » Le choix doit donc être guidé par le besoin réel.
Résultats pour les fichiers de 2 Go
Avec des fichiers plus volumineux, les tendances restent stables : ZFS conserve la tête pour NAS et serveur, et la workstation reste performante. Fait surprenant, ZFS bat même Btrfs pour le gaming, ce que l’auteur n’aurait jamais anticipé : « I would have never thought of telling somebody, ‘Hey, you know, if you’re gaming, you probably ought to be using a ZFS file system to store your stuff on.’ » Mais il met en garde contre le risque de blocage lors d’une mise à jour noyau.
Avertissement sur ZFS sous Linux
L’auteur rappelle deux risques majeurs avec ZFS :
- Taint du noyau : le module ZFS a une licence incompatible avec la GPL, ce qui « taint » le noyau. Cela ne le casse pas, mais peut casser des applications si le module ne peut pas être recompilé après une mise à jour.
- Dépendance au DKMS : si le noyau est mis à jour et que ZFS ne peut pas régénérer son module, l’utilisateur est bloqué. Il conseille : « Probably you’d be better off in this case taking the hit of a few megabytes and use Btrfs where you don’t have that problem. »
Recommandation pratique pour le gaming
Pour un usage gaming, l’auteur suggère d’éviter ZFS malgré ses performances, à cause du risque de maintenance. Btrfs est un compromis raisonnable : « You’re not going to be really happy if you run into that condition where you can’t compile the kernel drivers. So, you’re stuck trying to get into your game and figure out, oh I got to back level the kernel now. What’s that gonna break? » La fiabilité opérationnelle prime sur quelques mégaoctets par seconde.
Limites de l’étude et pistes d’amélioration
L’auteur reconnaît que c’est une première tentative et invite aux commentaires : « If you have suggestions for the way you feel like I should either move things around, that’s why I put all this information in here. » Il n’a pas partagé les pondérations utilisées pour les scores, et prévoit d’affiner en fonction du type d’I/O à l’avenir. Il conclut : « I would use this as a suggested starting point. »
CONCEPTS CLÉS
- DKMS : Dynamic Kernel Module Support, un framework qui recompile automatiquement les modules noyau (comme ZFS) lors des mises à jour. S’il échoue, le module n’est plus chargé.
- Taint du noyau : marqueur indiquant qu’un module non-GPL est chargé. Cela n’empêche pas le fonctionnement, mais peut limiter le support ou le débogage.
- Log-structured file system : conception où les écritures sont séquentielles et journalisées, idéale pour les mémoires flash (F2FS).
- Arbre B+ : structure de données utilisée par XFS pour l’allocation des blocs, efficace pour les gros volumes et les accès parallèles.
- Pooling : capacité de ZFS à regrouper plusieurs disques (ou fichiers) en un seul pool de stockage logique.
- Rollback/rollforward recovery : mécanisme de F2FS permettant de revenir à un état antérieur ou de rejouer des opérations après une panne.
CONCLUSION
Le message principal est qu’il n’existe pas de système de fichiers universel : le choix doit être dicté par le cas d’usage. ZFS est le champion des charges serve