Ettevõte XTX Markets avas TernFS failisüsteemi lähtekoodi, mis on loodud jaotatud salvestuse loomiseks, katab mitu geograafiliselt eraldatud andmekeskust ja suudab talletada kümneid eksabaite andmeid, triljoone faile ja sadu miljardeid katalooge, millega saavad samal ajal suhelda miljonid kliendid. Projekti kood on kirjutatud C++ ja Go keeltes ning levitatakse GPLv2 litsentsi all. Protokolli spetsifikatsioonid ja kliendi teegid on saadaval Apache 2.0 litsentsi all.
FS on optimeeritud masinõppe süsteemide spetsiifiliste koormuste jaoks — failide lugemise ja kirjutamise, mis ei muutu pärast loomist ja sisaldavad rohkem kui mitmeid megabaite andmeid. FS ei ole ette nähtud uute kataloogide sagedaseks loomiseks ega failide sagedaseks liigutamiseks erinevate kataloogide vahel. On olemas võimalused nii kogemata kustutatud failide või kataloogide taastamiseks kui ka poliitikate seadistamiseks täielikuks ja pöördumatuks kustutamiseks. FS sisu saab replikeerida mitmete andmekeskuste vahel erinevates piirkondades. Salvestuspunktid võivad hõlmata erinevat tüüpi salvestusseadmeid (diskide ja flash-mälu alusel).
Üks projekteerimise nõudeid oli üksiku rikke punkti puudumine ja kõrge salvestamise usaldusväärsuse tagamine — elektrikatkestused ei tohi kahjustada FS-i, ja faile ei tohi kirjutada osaliselt (lugemiseks on saadaval ainult täielikult kirjutatud failid). Süsteem on vastupidav üksikute salvestusseadmete, metaandmete ja salvestussõlmede riketest. Salvestuslahendust saab hooldada ilma töö katkestamiseta.
TernFS-põhise salvestuse juurutamine ettevõttes XTX Markets algas 2023. aasta suvel, pärast 1,5 aastat failisüsteemi arendamist. 2024. aasta keskpaiku viidi kõik XTX Markets'i masinõppetehnoloogiad üle TernFS-ile. Praegu koosneb salvestus enam kui 30 000 kettast ja 10 000 Flash-mäluseadmest, mis on paigutatud kolme andmekeskusesse. Salvestatavate andmete kogumaht on hinnanguliselt 500 petabaiti ning tippsooritusvõime on mitu petabaiti sekundis. Salvestust kasutab klaster, kus on rohkem kui 100 000 arvutusüksust. Kahe aasta jooksul kasutuses pole andmekadu põhjustanud ühtegi intsidenti.
TernFS-i piirangute seas on: salvestatud faile ei saa muuta; väike efektiivsus failide töötlemisel, mille suurus on alla 2 MB; madal kataloogide loomise ja kustutamise jõudlus; juurdepääsuõiguste jagamise puudumine.
TernFS-i salvestusklastri moodustavad komponendid:
- Metaandmete salvestusüksused, mis vastutavad kataloogistruktuuri ja failiatribuutide teabe haldamise eest.
- Koordineerimise sõlmed (CDC — Cross-Directory Coordinator), mis teostavad tehinguid, hõlmavad erinevaid katalooge.
- Andmete salvestamise teenused, mis aitavad failide sisu säilitada.
- Register, mis sisaldab teavet kõigi teiste teenuste kohta ja jälgib nende tööd.
- Klienditeenused, mille kaudu kasutajad saavad FS-iga ühendust võtta:
- ternweb — juurdepääs salvestusele läbi Web API.
- terncli — käsurea liides.
- ternfs.ko — Linuxi tuuma moodul, mis võimaldab salvestust mountida, et töödelda seda nagu kohalikke failisüsteeme.
- ternfuse — FUSE alamüsteemi kasutav klient failisüsteemi töötluseks.
- terns3 — Amazon S3 API rakendamine.
- Taustprotsessid:
- GC — prügikoguja, mis vabastab aegunud snapshot'id (kustutatud, kuid mitte puhastatud failid) ja puhastab plokid püsivalt kustutatud failide jaoks.
- scrubber — andmete degradeerumise tuvastamine ja taastamine.
- migrator — riketega ketaste säilitusest välja jätmine.

Allikas: opennet.ru
