Kompania XTX Markets hapi kodin burim të sistemit të skedarëve TernFS, e projektuar për të krijuar një ruajtje të shpërndarë që mbulon disa data qendrat të ndara gjeografikisht dhe që është në gjendje të ruajë deri në dhjetëra eksabajt të dhënash, triliona skedare dhe qindra miliarda katalogë, me të cilët mund të ndërveprojnë njëkohësisht miliona klientë. Kodi i projektit është shkruar në gjuhët C++ dhe Go dhe shpërndahet nën licencën GPLv2. Specifikimet e protokollit dhe bibliotekat klienti ofrohen nën licencën Apache 2.0.
FS është optimizuar për ngarkesat që i përkasin sistemeve të mësimit të makinerive - shkrimi dhe leximi i skedareve, të cilat nuk ndryshohen pas krijimit dhe përmbajnë më shumë se disa megabajt të dhëna. FS nuk është e dizajnuar për krijimin e shpeshtë të katalogëve të rinj dhe për zhvendosjen e shpeshtë të skedareve midis katalogëve. Janë të pranishme mundësi për rikuperimin e skedareve ose katalogëve të fshirë gabimisht, si dhe për përcaktimin e politikave për eliminimin e plotë dhe të pakthyeshëm. Përmbajtja e FS mund të replikojë midis disa qendrave të të dhënave në rajone të ndryshme. Njësitë e ruajtjes mund të përfshijnë lloje të ndryshme ruajtësish (bazuar në disqe dhe memorie flash).
NjĂ« nga kĂ«rkesat gjatĂ« projektimit ishte mungesa e njĂ« pike tĂ« vetme dĂ«shtimi dhe sigurimi i njĂ« ruajtjeje tĂ« lartĂ« tĂ« besueshmĂ«risĂ« - ndĂ«rprerjet emergjente tĂ« energjisĂ« nuk duhet tĂ« çojnĂ« nĂ« dĂ«mtimin e FS, dhe skedarĂ«t nuk mund tĂ« regjistrohen pjesĂ«risht (tĂ« lexueshĂ«m janĂ« vetĂ«m skedarĂ«t e regjistruar plotĂ«sisht). Sistemi Ă«shtĂ« i qĂ«ndrueshĂ«m ndaj dĂ«shtimit tĂ« njĂ«sive tĂ« veçanta, njĂ«sive me metadatat dhe njĂ«sive tĂ« ruajtjes. ĂshtĂ« e mundur kryerja e mirĂ«mbajtjes sĂ« ruajtjes pa ndaluar funksionimin.
Zbatimi i ruajtjes në bazë të TernFS në kompaninë XTX Markets filloi verën e vitit 2023, pas një vite e gjysmë zhvillimi të FS. Në mes të vitit 2024, të gjitha sistemet e mësimit të makinerive të XTX Markets u kaluan në TernFS. Aktualisht, ruajtja formon më shumë se 30 mijë disqe dhe 10 mijë ruajtës flash, të vendosur në tri data qendra. Vëllimi i përgjithshëm i të dhënave të ruajtura vlerësohet në 500 petabajt, dhe performanca maksimale - disa petabajt në sekondë. Ruajtja përdoret në një grup që numëron më shumë se 100 mijë njësish llogaritëse. Nuk ka pasur incidente që çojnë në humbjen e të dhënave në dy vitet e fundit të eksploatimit.
Disa avantazhet e TernFS: skedarët e regjistruar nuk mund të modifikohen; eficiencë e ulët në punën me skedarë më të vegjël se 2 MB; performancë e ulët në operacionet e krijimit dhe fshirjes së katalogëve; mungesë e ndarjes së të drejtave të aksesit.
Komponentët që formojnë klastrin e ruajtjes TernFS:
- Njësitë e ruajtjes së metadata-s, përgjegjëse për menaxhimin e informacionit mbi strukturën e katalogëve dhe atributet e skedarëve.
- Njësitë e koordinimit (CDC - Koordinatori i Katalogëve) që realizojnë transaksione përfshirëse të ndryshme katalogësh.
- Shërbimet e ruajtjes që ofrojnë ruajtjen e përmbajtjes së skedarëve.
- Regjistri që përmban informacionin mbi të gjithë shërbimet e tjera dhe monitoron punën e tyre.
- Shërbimet klienti për qasje të përdoruesve në FS:
- ternweb - qasje në magazinë përmes Web API.
- terncli - ndërfaqja e linjës së komandës.
- ternfs.ko - moduli për bërthamën Linux, i cili lejon montimin e ruajtjes për të punuar si me FS lokale.
- ternfuse - realizimi i klientit për të punuar me FS, duke përdorur nën-sistemin FUSE.
- terns3 - realizimi i API-së Amazon S3.
- Proceset prapa scenave:
- GC - mbledhësi i mbeturinave, që çliron snapshotet e skaduara (skedarë të fshirë, por jo të pastruar) dhe pastron blloqet për skedarët që janë fshirë përfundimisht.
- scrubber - identifikimi i degradimit të të dhënave dhe rikuperimi.
- migrator - përjashtimi i disqeve të dështuar nga ruajtja.

Burimi: opennet.ru
