TernFS - Un système de fichiers distribué capable de gérer des exaoctets
Et encore un article un peu technique pour finir la journée en beauté ! Si je vous disais que votre serveur Linux pouvait gérer 10 exaoctets de données sans broncher ? Vous ne me croiriez pas je pense… D’ailleurs c’est quoi 10 exaoctets ?? Et bien ça correspond à 10 millions de To. C’est pas mal hein ?
Hé bien c’est exactement ce que permet de gérer TernFS, le système de fichiers qu’XTX Markets vient de libérer après trois ans d’utilisation intensive. XTX Markets est une boîte d’algo-trading qui brasse 250 milliards de dollars par jour et j’avoue que c’est un joli cadeau de presque-Noël qu’elle vient de nous faire…
D’après ce qu’ils expliquent sur leur site , NFS et les autres solutions classiques ne tenaient plus la charge face à leurs 650 pétaoctets de données utilisées leur machine learning. Alors ils ont fait ce que font les vrais geeks, ils ont codé leur propre solution… et après trois ans de production sans perdre “un seul octet”, ils ont tout balancé en en open source sur GitHub .
Le truc génial avec TernFS, c’est qu’il a été pensé pour les fichiers immuables, vous savez, ces gros datasets de plusieurs gigaoctets qu’on écrit une fois et qu’on relit des milliers de fois pour entraîner des modèles. Pas de modification après création, pas de prise de tête avec les locks et la cohérence. C’est simple et efficace.
L’architecture repose sur quatre composants principaux qui bossent ensemble : les metadata shards (256 shards logiques pour gérer les métadonnées), le CDC (Cross-Directory Coordinator) pour les opérations entre répertoires, les block services pour stocker les données, et un registry pour orchestrer tout ce petit monde. Le tout communique en UDP/TCP avec du Reed-Solomon pour l’erasure coding et du CRC32-C pour vérifier l’intégrité. Bref, ça semble être du solide.

Et les chiffres qu’ils donnent sur leur production sont assez dingues. Ils parlent de 500+ pétaoctets répartis sur 30 000 disques durs et 10 000 SSD, dans 3 datacenters différents, avec des débits qui montent à plusieurs téraoctets par seconde en vitesse de pointe. Et leur système gère ça tranquille, avec du multi-région natif et une tolérance aux pannes qui ferait pâlir d’envie n’importe quel admin sys.
Si ça vous chauffe, pour installer TernFS, c’est du classique. Vous clonez le repo, vous lancez ./build.sh alpine
ou ./build.sh ubuntu
selon votre distrib, et c’est parti. Il y a un module kernel Linux pour gratter les perfs maximales et toucher les étoiles, mais vous pouvez aussi utiliser FUSE si vous préférez rester en userspace. Ils ont même implémenté une API S3 pour ceux qui veulent migrer depuis AWS sans tout réécrire.
git clone https://github.com/XTXMarkets/ternfs
cd ternfs
./build.sh alpine
# Et pour tester en local
./scripts/ternrun
Par contre, attention aux limitations ! Car TernFS n’est pas du tout fait pour les petits fichiers (genre les millions de fichiers de 1KB d’un projet Node.js). C’est vraiment optimisé pour du gros volume du style datasets ML, logs d’applications, archives, ce genre de trucs. Et y’a pas de système de permissions intégré non plus, car ils ont préféré garder ça basique et laisser chacun implémenter sa propre couche de sécurité.
Ils ont mis au point également un système de “block proofs” où chaque bloc de data a une preuve cryptographique qui permet de vérifier que le client n’a pas corrompu les données avant de les écrire. Ça évite qu’un client bugué ou malveillant ne pourrisse tout le filesystem. Ils ont aussi un système de “scrubbing” automatique qui détecte et remplace les secteurs défaillants sur les disques.
Chouette non ?
D’après Bloomberg , XTX Markets investit actuellement 1 milliard d’euros dans de nouveaux datacenters en Finlande. Avec leurs 25 000 GPUs (dont 10 000 A100 et 10 000 V100) et maintenant TernFS en open source, ils montrent surtout qu’ils ne rigolent pas avec l’infrastructure. C’est pas pour rien qu’ils arrivent à traiter un trillion d’enregistrements par jour pour leurs algos de trading.
Leur code est disponible sous double licence à savoir GPLv2+ pour le core et Apache 2.0 avec exception LLVM pour les bibliothèques client et les définitions de protocole. Ça permet d’intégrer TernFS dans à peu près n’importe quel projet, commercial ou non.
Bref, si vous gérez des pétaoctets de données et que ZFS commence à tirer la langue, TernFS vaut vraiment le coup d’œil. Reste à voir si d’autres géants du big data vont l’adopter ou si ça restera un outil de niche pour les vraiment gros volumes, mais avec l’explosion du Machine Learning et des LLMs, je parie qu’on va en entendre parler de plus en plus…