Společnost XTX Markets zpřístupnila souborový systém TernFS s otevřeným zdrojovým kódem, který je navržen tak, aby vytvořil distribuované úložiště zahrnující několik geograficky rozptýlených datových center a schopný ukládat desítky exabajtů dat, biliony souborů a stovky miliard adresářů, ke kterým mají přístup miliony klientů současně. Kód projektu je napsán v jazyce C++ a Go a je licencován pod licencí GPLv2. Specifikace protokolu a klientské knihovny jsou licencovány pod licencí Apache 2.0.
Souborový systém je optimalizován pro pracovní zátěž typickou pro systémy strojového učení – zápis a čtení souborů, které jsou po vytvoření neměnné a obsahují více než několik megabajtů dat. Souborový systém není navržen pro časté vytváření nových adresářů ani pro časté přenosy souborů mezi adresáři. Mezi funkce patří obnova omylem smazaných souborů nebo adresářů a také konfigurace zásad pro trvalé smazání. Obsah souborového systému lze replikovat mezi více datovými centry v různých regionech. Úložné uzly mohou zahrnovat různé typy úložišť (disková a flash paměť).
Jedním z požadavků na návrh byla absence jediného bodu selhání a vysoká spolehlivost úložiště. Výpadky napájení by neměly poškodit souborový systém a soubory by nebylo možné částečně zapsat (přístupné jsou pouze plně zapsané soubory). Systém je odolný vůči selhání jednotlivých disků, uzlů metadat a úložných uzlů. Údržba úložiště je možná bez přerušení provozu.
Společnost XTX Markets začala implementovat úložiště založené na platformě TernFS v létě 2023, po roce a půl vývoje. Do poloviny roku 2024 byly všechny systémy strojového učení společnosti XTX Markets migrovány na TernFS. Úložiště v současné době zahrnuje přes 30 000 disků a 10 000 flash disků, které jsou umístěny ve třech datových centrech. Celkový objem uložených dat se odhaduje na 500 petabajtů, přičemž špičkový výkon dosahuje několika petabajtů za sekundu. Úložiště se používá v clusteru s více než 100 000 výpočetními uzly. Během dvou let provozu nedošlo k žádným incidentům, které by vedly ke ztrátě dat.
Mezi omezení TernFS patří: nelze upravovat zapsané soubory; nízká efektivita při práci se soubory menšími než 2 MB; nízký výkon při vytváření a mazání adresářů; nedostatečné oddělení oprávnění.
Komponenty, které tvoří úložný cluster TernFS, jsou:
- Uzly úložiště metadat zodpovědné za správu informací o adresářových strukturách a atributech souborů.
- Uzly Cross-Directory Coordinator (CDC), které provádějí transakce napříč různými adresáři.
- Úložné služby, které poskytují ukládání obsahu souborů.
- Registr, který obsahuje informace o všech ostatních službách a monitoruje jejich provoz.
- Klientské služby pro uživatele s přístupem k FS:
- ternweb — přístup k úložišti přes webové API.
- terncli je rozhraní příkazového řádku.
- ternfs.ko — модуль для ядра Linux, позволяющий монтировать хранилище для работы как с локальной ФС.
- ternfuse je klientská implementace pro práci s FS, využívající subsystém FUSE.
- terns3 je implementace rozhraní Amazon S3 API.
- Procesy na pozadí:
- GC je garbage collector, který uvolňuje vypršené snapshoty (smazané, ale ne vymazané soubory) a čistí bloky pro trvale smazané soubory.
- scrubber — detekce a obnova degradace dat.
- migrátor - vyloučení vadných disků z úložiště.

Zdroj: opennet.ru
