Aggiornamento del file system cluster LizardFS 3.13.0-rc2

Dopo un anno di silenzio nello sviluppo è ripresa l'attività su un nuovo ramo del sistema di file distribuiti e tollerante ai guasti LizardF 3.13 e pubblicato secondo candidato per i rilasci. Recentemente si è verificato dopo il cambio di proprietà dell'azienda che sviluppa LizardFS, è stata assunta una nuova dirigenza e sono cambiati anche gli sviluppatori. Negli ultimi due anni, il progetto si è allontanato dalla comunità senza darle la dovuta attenzione, ma il nuovo team è determinato a ripristinare le precedenti relazioni con la comunità e a stabilire una stretta collaborazione con essa. Il codice del progetto è scritto in C e C++ e è distribuito sotto licenza GPLv3.

LizardFS è è un sistema di file cluster distribuito che consente di ripartire i dati su diversi server, ma di presentarli come un'unica grande partizione, con la quale si interagisce in modo simile alle tradizionali partizioni disco. Nella partizione montata con LizardFS sono supportati gli attributi POSIX dei file, ACL, blocchi, socket, pipe, file di dispositivo, collegamenti simbolici e rigidi. Il sistema non ha un unico punto di guasto, tutti i componenti sono ridondanti. È supportata la parallelizzazione delle operazioni sui dati (più client possono accedere contemporaneamente ai file).

Per garantire la tolleranza ai guasti, i dati sono suddivisi in repliche, che vengono distribuite su nodi diversi con ridondanza (più copie sono collocate su nodi diversi) - in caso di guasto di nodi o dispositivi, il sistema continua a funzionare senza perdita di dati e rialloca automaticamente i dati tenendo conto dei nodi rimasti. Per espandere lo storage è sufficiente collegare nuovi nodi senza interrompere l'attività per la manutenzione (il sistema replica autonomamente una parte dei dati sui nuovi server e bilancia lo storage tenendo conto dei nuovi server). Analogamente, è possibile ridurre le dimensioni del cluster: è sufficiente disconnettere l'hardware obsoleto.

I dati e i metadati sono memorizzati separatamente. Si raccomanda di installare due server di metadati in modalità master-slave e almeno due server di archiviazione dati (chunkserver). Inoltre, per il backup dei metadati possono essere utilizzati server di log che memorizzano le informazioni sulle modifiche dei metadati e consentono di ripristinare il funzionamento in caso di danneggiamento di tutti i server di metadati disponibili. Ogni file è suddiviso in blocchi (chunk) di dimensioni fino a 64 MB. I blocchi sono distribuiti sui server di archiviazione in base alla modalità di replica scelta: standard (definizione esplicita del numero di copie da collocare su nodi diversi, inclusa l'assegnazione a specifiche directory—per i dati importanti il numero di copie può essere aumentato, mentre per quelli non essenziali può essere ridotto), XOR (RAID5) ed EC (RAID6).

Lo storage può scalare fino a dimensioni petabyte. Tra i casi d'uso si citano la gestione degli archivi, la memorizzazione delle immagini delle macchine virtuali, dei dati multimediali, dei backup, l'uso come DRC (Disaster Recovery Center) e come storage nei cluster di calcolo ad alte prestazioni. LizardFS offre una velocità di lettura molto elevata per file di qualsiasi dimensione, e durante la scrittura mostra buone prestazioni nel gestire la scrittura di file di grandi e medie dimensioni, quando non ci sono modifiche permanenti, lavoro intenso con file aperti e operazioni sporadiche con un gran numero di file di piccole dimensioni.

Aggiornamento del file system cluster LizardFS 3.13.0-rc2

Tra le caratteristiche del FS va inoltre notata la presenza del supporto per gli snapshot, che riflettono lo stato dei file in un determinato momento, e l'implementazione integrata del "cestino" (i file non vengono eliminati immediatamente e sono disponibili per un periodo di tempo per il ripristino). L'accesso alla sezione può essere limitato per indirizzo IP o password (analogamente a quanto avviene con NFS). Sono disponibili meccanismi di quota e gestione della qualità del servizio, che consentono di limitare la dimensione e la larghezza di banda per alcune categorie di utenti. È possibile creare archiviazioni distribuite territorialmente, i cui segmenti sono collocati in diversi data center.

Il progetto LizardFS è stato fondato nel 2013 come fork MooseFS, e si distingue, principalmente, per la presenza di una modalità di replica basata sui codici di correzione degli errori di Reed-Solomon (simile a raidzN), supporto avanzato per ACL, la presenza di un client per la piattaforma Windows, ottimizzazioni aggiuntive (ad esempio, durante la combinazione di client e server di archiviazione, i blocchi vengono restituiti, se possibile, dal nodo attuale e i metadati vengono memorizzati nella cache in memoria), un sistema di configurazione più flessibile, supporto per la lettura anticipata dei dati, quote sulle directory e rifacimenti interni.

Il rilascio di LizardFS 3.13.0 è previsto per la fine di dicembre. La principale novità di LizardFS 3.13 è l'implementazione di un algoritmo di consenso per garantire la tolleranza ai guasti (switching dei server master in caso di malfunzionamento) Raft (si utilizza una propria implementazione di uRaft, precedentemente usata in prodotti commerciali). L'uso di uRaft semplifica la configurazione e riduce i ritardi nel ripristino dopo un guasto, ma richiede la presenza di almeno tre nodi funzionanti, uno dei quali è utilizzato per il quorum.

Tra le altre modifiche: un nuovo client basato sul sottosistema FUSE3, risoluzione di problemi di correzione degli errori, il plugin nfs-ganesha riscritto in C. Nell'aggiornamento 3.13.0-rc2 sono stati corretti diversi bug critici che rendevano le precedenti versioni di test della branca 3.13 poco utilizzabili (le correzioni per la versione 3.12 non sono ancora state pubblicate e l'aggiornamento da 3.12 a 3.13 continua a causare una completa perdita di dati).

Nel 2020, il lavoro sarà incentrato sullo sviluppo
Agama, un nuovo kernel completamente riscritto di LizardFS, che, secondo i sviluppatori, garantirà un incremento delle prestazioni di tre volte rispetto alla versione 3.12. In Agama si realizzerà la transizione a un'architettura basata su eventi (event driven), I/O asincrono basato su asio, e lavoro prevalentemente nello spazio utente (per ridurre la dipendenza dai meccanismi di caching del kernel). Saranno inoltre offerti un nuovo sottosistema di debug e un analizzatore dell'attività di rete con supporto per il tuning automatico delle prestazioni.

Nel client LizardFS verrà aggiunto un completo supporto per la versioning delle operazioni di scrittura, il che migliorerà l'affidabilità del ripristino dopo un guasto, affronterà i problemi legati all'accesso simultaneo di diversi client a un set di dati e consentirà un notevole aumento delle prestazioni. Il client sarà migrato su un proprio sistema di rete che opera nello spazio utente. Il primo prototipo funzionante di LizardFS basato su Agama è previsto per il secondo trimestre del 2020. In questo stesso periodo si promette di implementare strumenti per l'integrazione di LizardFS con la piattaforma Kubernetes.

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