Společnost XTX Markets otevřela zdrojový kód souborového systému TernFS, navrženého pro vytváření distribuovaného úložiště pokrývajícího několik geograficky oddělených datových center a schopného uložit až desítky exabajtů dat, triliony souborů a stovky miliard katalogů, s nimiž mohou současně interagovat miliony klientů. Kód projektu je napsán v jazycích C++ a Go a je distribuován pod licencí GPLv2. Specifikace protokolu a klientské knihovny jsou dodávány pod licencí Apache 2.0.
FS je optimalizován pro zátěže typické pro systémy strojového učení — zápis a čtení souborů, které nejsou upravovány po vytvoření a obsahují více než několik megabajtů dat. FS není určena pro časté vytváření nových katalogů a časté přesouvání souborů mezi katalogy. Existují možnosti pro obnovení omylem odstranitelných souborů nebo katalogů, stejně jako pro nastavení politiky plného nevratného odstranění. Obsah FS může být replikován mezi několika datovými centry v různých regionech. Uzly úložiště mohou zahrnovat různé typy úložišť (na bázi disků a flash paměti).
Jedním z požadavků při navrhování bylo absence jediného bodu selhání a zajištění vysoké spolehlivosti úložiště — havarijní výpadky napájení by neměly vést k poškození FS a soubory nesmí být zapsány částečně (čitelnými jsou pouze plně zapsané soubory). Systém je odolný proti selhání jednotlivých úložišť, uzlů s metadaty a uzlů úložiště. Je možné provádět údržbu úložiště bez zastavení provozu.
Nasazení úložiště založeného na TernFS ve společnosti XTX Markets začalo v létě 2023, po jednom a půl roce vývoje FS. V polovině roku 2024 byly všechny systémy strojového učení XTX Markets převedeny na TernFS. V současnosti úložiště zahrnuje více než 30 000 disků a 10 000 flash úložišť umístěných ve třech datových centrech. Celkový objem uložených dat se odhaduje na 500 petabajtů a špičkový výkon činí několik petabajtů za sekundu. Úložiště je používáno v clusterech, které zahrnují více než 100 000 výpočetních uzlů. K incidentům vedoucím ke ztrátě dat během dvou let provozu nedošlo.
Mezi omezeními TernFS patří: zapsané soubory nelze měnit; nízká efektivita práce se soubory menšími než 2 MB; nízký výkon při vytváření a mazání adresářů; absence dělení přístupových práv.
Komponenty tvořící cluster úložiště TernFS:
- Uzly pro ukládání metadat odpovídající za správu informací o struktuře adresářů a atributech souborů.
- Uzly koordinace práce (CDC — Cross-Directory Coordinator), které provádějí transakce pokrývající různé adresáře.
- Úložišťové služby zajišťující uchovávání obsahu souborů.
- Registr, který obsahuje informace o všech ostatních službách a provádí monitoring jejich činnosti.
- Klientské služby pro přístup uživatelů k FS:
- ternweb — přístup k úložišti přes Web API.
- terncli — rozhraní příkazového řádku.
- ternfs.ko — modul pro jádro Linux, který umožňuje připojit úložiště pro práci s místní FS.
- ternfuse — implementace klienta pro práci s FS, která využívá subsystém FUSE.
- terns3 — implementace API Amazon S3.
- Pozadí procesy:
- GC — sběrač odpadu, který uvolňuje prošlé snímky (smazané, ale nevyčištěné soubory) a čistí bloky pro nevratně smazané soubory.
- scrubber — identifikace degradace dat a obnova.
- migrator — odstranění porouchaných disků z úložiště.

Zdroj: opennet.ru
