XTX Markets şirkəti, coğrafi cəhətdən ayrılmış bir neçə məlumat mərkəzini əhatə edən paylanmış saxlama sistemini yaratmaq üçün nəzərdə tutulmuş TernFS fayl sisteminin mənbə kodunu açıq etdi. Bu sistem, onlarla eksabayt məlumat, trilyonlarla fayl və yüz milyardlarla kataloqu saxlama qabiliyyətinə malikdir ki, bunlar eyni anda milyonlarla müştəri tərəfindən istifadə oluna bilər. Layihənin kodu C++ və Go dillərində yazılmışdır və GPLv2 lisenziyası altında yayılır. Protokol spesifikasiyaları və müştəri kitabxanaları Apache 2.0 lisenziyası altında təqdim edilir.
Fayl sistemi, yaradıldıqdan sonra dəyişdirilməyən və bir neçə meqabaytdan artıq olan faylların yazılması və oxunması ilə bağlı maşın öyrənməsi sistemləri üçün uyğunlaşdırılmışdır. Fayl sistemi, yeni kataloqların tez-tez yaradılmasına və faylların kataloqlar arasında tez-tez köçürülməsinə nəzərdə tutulmamışdır. Həmçinin, təsadüfən silinmiş faylları və ya kataloqları bərpa etmək üçün imkanlar, eləcə də tam geri qaytarılmayan silinmə siyasətləri qurmaq üçün imkanlar mövcuddur. Fayl sisteminin məzmunu müxtəlif bölgələrdəki bir neçə məlumat mərkəzində replikalaşdırıla bilər. Saxlama düyünləri fərqli tip saxlama cihazlarını (disk və flash yaddaş əsasında) əhatə edə bilər.
Dizayn zamanı tələblərdən biri, tək bir qüsur nöqtəsinin olmaması və yüksək saxlama etibarlılığının təmin edilməsi idi — qəza zamanı elektrik kəsilməsi fayl sisteminin zədələnməsinə səbəb olmamalı, həmçinin fayllar qismən yazılmış ola bilməz (yalnız tam yazılmış fayllar oxumağa mövcuddur). Sistem, fərdi saxlama cihazlarının, metadata düyünlərinin və saxlama düyünlərinin nasazlıqlarına davamlıdır. Saxlama xidmətlərini dayandırmadan yerinə yetirmək mümkündür.
TernFS ilə əsaslanan saxlama sisteminin tətbiqi XTX Markets-də 2023-cü ilin yayında başlandı, fayl sisteminin bir buçuk illik inkişafından sonra. 2024-cü ilin ortalarında XTX Markets-in bütün maşın öyrənməsi sistemləri TernFS-ə köçürüldü. Hazırda sistem, üç məlumat mərkəzində yerləşən 30.000-dən çox disk və 10.000 Flash yaddaşından ibarətdir. Saxlanılan məlumatların ümumi həcmi 500 petabayt ilə qiymətləndirilir, ən yüksək məhsuldarlıq isə saniyədə bir neçə petabaytdır. Saxlama, 100.000-dən çox hesablama düyünü olan bir klasterdə istifadə olunur. İki il ərzində məlumat itkisilə nəticələnən hadisələr baş verməmişdir.
TernFS-in məhdudiyyətləri arasında: yazılmış faylların dəyişdirilə bilməməsi; 2 MB-dən az olan fayllarla işləmədə aşağı səmərəlilik; kataloqların yaradılması və silinməsi əməliyyatlarında aşağı məhsuldarlıq; giriş hüquqlarının ayrılmaması.
TernFS saxlama klasterini formalaşdıran komponentlər:
- Kataloqların strukturu və fayl atributları haqqında məlumatın idarə edilməsi ilə məşğul olan metadata saxlama düyünləri.
- İşin koordinasiyası düyünləri (CDC — Cross-Directory Coordinator), müxtəlif kataloqları əhatə edən tranzaksiyaları yerinə yetirir.
- Məzmun fayllarının saxlanmasını təmin edən saxlama xidmətləri.
- Digər xidmətlər haqqında məlumat saxlayan və onların işini izləyən reyestr.
- İstifadəçilərin FS-yə müraciət etmələri üçün müştəri xidmətləri:
- ternweb — Web API vasitəsilə saxlama sisteminə giriş.
- terncli — komandalar üçün interfeys.
- ternfs.ko — Linux nüvəsi üçün modul, saxlama sistemini yerli FS kimi bağlamağa imkan tanıyır.
- ternfuse — FUSE alt sistemini istifadə edən FS ilə işləmək üçün müştəri tərkibi.
- terns3 — Amazon S3 API-nin tətbiqi.
- Arxa plan prosesləri:
- GC — zədələnmiş, lakin silinməmiş faylları azad edən yığışdırıcı və geri qaytarılması mümkünsüz olan fayllar üçün blokları təmizləyən.
- scrubber — məlumatların pisləşməsinin aşkar olunması və bərpası.
- migrator — saxlama sistemindən nasaz diskların çıxarılması.

Mənbə: opennet.ru
