Avatud TernFS jaotatud failisüsteemi lähtekood

Ettevõte XTX Markets avas jaotatud failisüsteemi TernFS lähtekoodi, mis on kavandatud looma jaotatud salvestust, mis katab mitmeid territoriaalselt eraldatud andmekeskusi ja suudab säilitada kümneid eksabaiti andmeid, triljoneid faile ja sadu miljardeid katalooge, millega saavad samal ajal suhelda miljonid kliendid. Projekti kood on kirjutatud C++ ja Go keeltes ning levitatakse GPLv2 litsentsi alusel. Protokolli spetsifikatsioonid ja klientteegid on saadaval Apache 2.0 litsentsi alusel.

Failisüsteem on optimeeritud masinõppesüsteemidele iseloomulike koormuste jaoks — faile, mis ei muutu pärast loomist ja sisaldavad rohkem kui mitu megabaiti andmeid, lugemine ja kirjutamine. Failisüsteem ei ole kavandatud uute kataloogide sagedaseks loomiseks ega failide sagedaseks liigutamiseks kataloogide vahel. On olemas võimalused nii ekslikult kustutatud failide või kataloogide taastamiseks kui ka täieliku pöördumatute kustutamise poliitikate seadistamiseks. Failisüsteemi sisu saab replikeerida mitme andmekeskuse vahel eri piirkondades. Salvestuspunktid võivad sisaldada erinevat tüüpi salvestusseadmeid (ketaste ja flash-mälu alusel).

Üks projekteerimise nõudeid oli, et ei tohi olla ühteki tugevust, samuti kõrge salvestuse usaldusväärsuse tagamine — voolukatkestus ei tohi põhjustada failisüsteemi kahjustamist ja faile ei tohi osaliselt salvestada (lugemiseks on saadaval ainult täielikult salvestatud failid). Süsteem on vastupidav üksikute salvestusseadmete, metaandmete sõlmede ja salvestussõlmede rikke suhtes. Salvestuse hooldust on võimalik teostada ilma töö katkestamiseta.

TernFS-põhise andmesalvestuse rakendamine ettevõttes XTX Markets algas 2023. aasta suvel, pärast poolteist aastat failisüsteemi arendamist. 2024. aasta keskpaiku viidi kõik XTX Markets'i masinõppe süsteemid üle TernFS-ile. Aktiivses andmesalvestuses on hetkel üle 30 000 ketta ja 10 000 Flash-mälu, mis asuvad kolmes andmekeskuses. Salvestatavate andmete kogumaht on umbes 500 petabaiti ning tipptasemel jõudlus mitu petabaiti sekundis. Salvestust kasutatakse klastris, kus on üle 100 000 arvutusüksuse. Kahe aasta jooksul ei ole esinenud andmete kadumise juhtumeid.

TernFS-i piirangute hulka kuuluvad: salvestatud faile ei saa muuta; madal efektiivsus failidega, mille suurus on väiksem kui 2 MB; madal kataloogide loomise ja kustutamise operatsioonide jõudlus; juurdepääsuõiguste jagamise puudumine.

TernFS-i andmesalvestusklastri moodustavad komponendid:

  • Metaandmete salvestuse sõlmed, mis haldavad kataloogistruktuuri ja failiattribuutide teavet.
  • Tööhõive koordineerimise sõlmed (CDC - Cross-Directory Coordinator), mis teevad tehinguid, mis hõlmavad erinevaid katalooge.
  • Salvestusteenused, mis tagavad failide sisu salvestamise.
  • Aknatiregister, mis sisaldab teavet kõikide teiste teenuste kohta ja jälgib nende toimimist.
  • Klienditeenused kasutajatele failisüsteemi juurde pääsemiseks:
    • ternweb - juurdepääs salvestusele läbi Web API.
    • terncli - käsurealiides.
    • ternfs.ko - Linuxi kernelile mõeldud moodul, mis võimaldab salvestust monteerida, et töötada nagu kohalik failisüsteem.
    • ternfuse - klient, mis võimaldab failisüsteemiga töötada ja kasutab FUSE alamüsteemi.
    • terns3 - Amazon S3 API rakendus.
  • Taustprotsessid:
    • GC - prügikoguja, mis vabastab aegunud snapshotid (kustutatud, kuid mitte kustutatud failid) ja puhastab blokeeringud pöördumatult kustutatud failide jaoks.
    • scrubber - andmete degradeerimise tuvastamine ja taastamine.
    • migrator - vigaste ketaste eemaldamine salvestusest.

Avatud TernFS jaotatud failisüsteemi lähtekood


Allikas: opennet.ru
Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster