Koden för det distribuerade filsystemet TernFS har öppnats

Företaget XTX Markets har öppnat källkoden för filsystemet TernFS, som är designat för att skapa en distribuerad lagring som spänner över flera geografiskt separerade datacenter och kan lagra upp till tiotals exabyte data, triljoner filer och hundratals miljarder kataloger, som samtidigt kan interagera med miljontals kunder. Projektets kod är skriven i C++ och Go och distribueras under GPLv2-licensen. Protokolls-specifikationer och klientbibliotek tillhandahålls under Apache 2.0-licensen.

Filsystemet är optimerat för belastningar som är typiska för maskininlärningssystem — skriv- och läsning av filer som inte ändras efter skapandet och som innehåller mer än ett par megabyte data. Filsystemet är inte avsett för frekvent skapande av nya kataloger eller för frekvent flyttning av filer mellan kataloger. Det finns möjligheter både för att återställa oavsiktligt borttagna filer eller kataloger samt för att ställa in policyer för fullständig, oåterkallelig radering. Innehållet i filsystemet kan replikeras mellan flera datacenter i olika regioner. Lagringsnoder kan inkludera olika typer av lagringsmedia (både disk- och flashbaserade).

Ett av kraven vid designen var att undvika enstaka felpunkter och säkerställa hög tillförlitlighet i lagringen — strömbortfall får inte leda till skador på filsystemet, och filer får inte skrivas delvis (endast helt skrivna filer är tillgängliga för läsning). Systemet är motståndskraftigt mot fel av individuella lagringsenheter, metadata-noder och lagringsnoder. Underhåll av lagringen kan utföras utan att driften stoppar.

Implementeringen av lagring baserad på TernFS hos XTX Markets började sommaren 2023, efter ett och ett halvt år av utveckling av filsystemet. I mitten av 2024 hade alla maskininlärningssystem hos XTX Markets övergått till TernFS. För närvarande består lagringen av mer än 30 000 diskar och 10 000 flash-enheter, placerade i tre datacenter. Den totala volymen av lagrad data uppskattas till 500 petabyte, med en toppprestanda på flera petabyte per sekund. Lagringen används i en kluster med mer än 100 000 beräkningsnoder. Inga incidenter som ledde till datarförlust har inträffat under två års drift.

Bland begränsningarna för TernFS: skrivna filer kan inte ändras; låg effektivitet vid arbete med filer som är mindre än 2 MB; låg prestanda vid skapande och borttagning av kataloger; avsaknad av rättighetsuppdelning.

Komponenterna som utgör TernFS lagringskluster:

  • Metadata-noder ansvariga för att hantera information om katalogstruktur och filattribut.
  • Koordinationsnoder (CDC – Cross-Directory Coordinator) som hanterar transaktioner som sträcker sig över olika kataloger.
  • Lagringstjänster som tillhandahåller lagring av filinnehåll.
  • Register som innehåller information om alla övriga tjänster och övervakar deras funktion.
  • Klienttjänster för användares åtkomst till Filsystemet:
    • ternweb — åtkomst till lagringen via Web API.
    • terncli — kommandoradsgränssnitt.
    • ternfs.ko — modul för Linux-kärnan som möjliggör montering av lagring för arbete som med lokal Filsystem.
    • ternfuse — implementering av en klient för arbete med Filsystem som använder FUSE-subsystemet.
    • terns3 — implementering av Amazon S3 API.
  • Bakgrundsprocesser:
    • GC — skräputel, som frigör föråldrade snapshots (borttagna men inte rensade filer) och rensar block för oåterkalleligt borttagna filer.
    • scrubber — identifiering av datadegradering och återställning.
    • migrator — uteslutning av misslyckade enheter från lagringen.

Koden för det distribuerade filsystemet TernFS har öppnats


Källa: opennet.ru
Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster