Rilasciato il codice del file system distribuito TernFS

L’azienda XTX Markets ha aperto il codice sorgente del file system TernFS, progettato per creare uno storage distribuito che copre diversi data center territorialmente separati e capace di memorizzare fino a decine di exabyte di dati, trilioni di file e centinaia di miliardi di cataloghi, con i quali possono interagire simultaneamente milioni di clienti. Il codice del progetto è scritto nei linguaggi C++ e Go e distribuito sotto licenza GPLv2. Le specifiche del protocollo e le librerie client sono fornite sotto licenza Apache 2.0.

Il file system è ottimizzato per carichi tipici dei sistemi di machine learning: scrittura e lettura di file non modificabili dopo la creazione e contenenti più di alcuni megabyte di dati. Non è progettato per la creazione frequente di nuovi cataloghi o per il frequente spostamento di file tra cataloghi. Sono presenti funzionalità sia per il recupero di file o cataloghi eliminati accidentalmente, sia per configurare politiche di eliminazione permanente e irreversibile. Il contenuto del file system può essere replicato tra più data center in diverse regioni. I nodi di storage possono includere vari tipi di supporti (basati su dischi e memoria flash).

Uno dei requisiti nella progettazione era l'assenza di un singolo punto di guasto e la garanzia di elevata affidabilità dello storage: le interruzioni di alimentazione non devono causare danni al file system, e i file non possono essere scritti parzialmente (solo i file completamente scritti sono disponibili per la lettura). Il sistema è resiliente al guasto di singoli supporti, nodi con metadati e nodi di storage. È possibile effettuare manutenzione dello storage senza fermare il funzionamento.

L'implementazione dello storage basato su TernFS in XTX Markets è iniziata nell'estate del 2023, dopo un anno e mezzo di sviluppo del file system. A metà del 2024, tutti i sistemi di machine learning di XTX Markets sono stati trasferiti su TernFS. Attualmente, lo storage comprende oltre 30.000 dischi e 10.000 supporti Flash, situati in tre data center. Il volume totale dei dati memorizzati è stimato in 500 petabyte, mentre le prestazioni di picco raggiungono diversi petabyte al secondo. Lo storage è utilizzato in un cluster che conta oltre 100.000 nodi di calcolo. Non si sono verificati incidenti che abbiano portato alla perdita di dati in due anni di utilizzo.

Tra i limiti di TernFS: i file registrati non possono essere modificati; bassa efficienza nel lavoro con file inferiori a 2 MB; bassa produttività nelle operazioni di creazione e eliminazione di directory; assenza di separazione dei diritti di accesso.

I componenti che formano il cluster di archiviazione TernFS:

  • Nodi di archiviazione dei metadati, responsabili della gestione delle informazioni sulla struttura delle directory e degli attributi dei file.
  • Nodi di coordinamento (CDC - Cross-Directory Coordinator), che eseguono transazioni che coinvolgono diverse directory.
  • Servizi di archiviazione, che garantiscono la conservazione dei contenuti dei file.
  • Registro che contiene informazioni su tutti gli altri servizi e monitora il loro funzionamento.
  • Servizi client per l'accesso degli utenti al FS:
    • ternweb — accesso all'archiviazione tramite API Web.
    • terncli — interfaccia della riga di comando.
    • ternfs.ko — modulo per il kernel Linux, che consente di montare l'archiviazione per lavorare come con un FS locale.
    • ternfuse — implementazione di un client per lavorare con il FS, che utilizza il sottosistema FUSE.
    • terns3 — implementazione dell'API Amazon S3.
  • Processi in background:
    • GC — garbage collector, che libera snapshot scaduti (file eliminati ma non puliti) e pulisce i blocchi per file eliminati in modo irreversibile.
    • scrubber — rilevamento della degradazione dei dati e recupero.
    • migrator — esclusione dai repository di dischi guasti.

Rilasciato il codice del file system distribuito TernFS


Fonte: opennet.ru
Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster