Spoločnosť XTX Markets otvorila zdrojový kód súborového systému TernFS, navrhnutého na vytvorenie distribuovaného úložiska, ktoré pokrýva viaceré geograficky rozdelené dátové centrá a je schopné ukladať až desiatky exabajtov údajov, trilióny súborov a stovky miliárd adresárov, s ktorými môžu súčasne interagovať milióny klientov. Kód projektu je napísaný v jazykoch C++ a Go a je distribuovaný pod licenciou GPLv2. Špecifikácie protokolu a klientské knižnice sú dodávané pod licenciou Apache 2.0.
FS je optimalizovaný pre záťaže vlastné systémom strojového učenia — zápis a čítanie súborov, ktoré nie sú po vytvorení modifikované a obsahujú viac ako niekoľko megabajtov údajov. FS nie je určený na časté vytváranie nových adresárov a časté presúvanie súborov medzi adresármi. Existujú možnosti na obnovu omylom vymazaných súborov alebo adresárov ako aj na nastavenie politík úplného nezvratného mazania. Obsah FS môže byť replikovaný medzi viacerými dátovými centrami v rôznych regiónoch. Uzly ukladania môžu zahŕňať rôzne typy úložných médií (na báze diskov a flash pamäte).
Jedným z požiadaviek pri navrhovaní bola absencia jedinečného bodu zlyhania a zabezpečenie vysokých spoľahlivosti ukladania — výpadky energie nesmú viesť k poškodeniu FS, a súbory nemôžu byť zapísané čiastočne (k dispozícii na čítanie sú iba úplne zapísané súbory). Systém je odolný voči zlyhaniu jednotlivých úložných médií, uzlov obsahujúcich métadáta a uzlov ukladania. Možnosti údržby úložiska bez prerušenia prevádzky sú k dispozícii.
Implementácia úložiska na báze TernFS v spoločnosti XTX Markets sa začala v lete 2023 po roku a pol vývoja FS. V polovici roka 2024 boli všetky systémy strojového učenia XTX Markets preložené na TernFS. V súčasnosti úložisko obsahuje viac ako 30 000 diskov a 10 000 flash úložných médií umiestnených v troch dátových centrách. Celkový objem uložených údajov sa odhaduje na 500 petabajtov a maximálny výkon je niekoľko petabajtov za sekundu. Úložisko je používané v clustri, ktorý zahŕňa viac ako 100 000 výpočtových uzlov. Počas dvoch rokov prevádzky nedošlo k žiadnym incidentom, ktoré by viedli k strate údajov.
Medzi obmedzeniami TernFS patrí: zapísané súbory nie je možné upravovať; nízka efektivita pri práci so súbormi menšími ako 2 MB; nízka výkonnosť operácií vytvárania a mazania adresárov; absencia rozdelenia prístupových práv.
Komponenty, tvoriace cluster ukladania TernFS:
- Uzly ukladania metadát, zodpovedajúce za správu informácií o štruktúre adresárov a atribútoch súborov.
- Uzly koordinácie práce (CDC — Cross-Directory Coordinator), vykonávajúce transakcie, ktoré pokrývajú rôzne adresáre.
- Služby ukladania, zabezpečujúce ukladanie obsahu súborov.
- Register, obsahujúci informácie o všetkých ostatných službách a vykonávajúci monitoring ich činnosti.
- Klientske služby pre prístup používateľov k FS:
- ternweb — prístup k úložisku cez Web API.
- terncli — rozhranie príkazového riadku.
- ternfs.ko — modul pre jadro Linux, umožňujúci pripojiť úložisko na prácu s lokálnou FS.
- ternfuse — implementácia klienta na prácu s FS, ktorá využíva subsystém FUSE.
- terns3 — implementácia API Amazon S3.
- Pozadie procesy:
- GC — zberač odpadu, uvoľňujúci premlčaný snapshoty (vymazané, ale nevyčistené súbory) a čistiaci bloky pre nezvratne vymazané súbory.
- scrubber — zistenie degradácie dát a obnova.
- migrator — vylúčenie z úložiska chybných diskov.

Zdroj: opennet.ru
