Aggiornamento del file system distribuito LizardFS 3.13.0-rc2

Dopo un anno di inattività nello sviluppo è ripresa l'attività su un nuovo ramo del sistema di file distribuito a tolleranza di guasto LizardF 3.13 e pubblicato secondo candidato per le release. Recentemente c'è stata una cambio di proprietà dell'azienda che sviluppa LizardFS, è stata adottata una nuova direzione e sono cambiati gli sviluppatori. Negli ultimi due anni il progetto si è allontanato dalla comunità e non ha dedicato sufficiente attenzione, ma il nuovo team intende rinvigorire le relazioni preesistenti con la comunità e stabilire una stretta collaborazione. Il codice del progetto è scritto in C e C++ e distribuito è sotto licenza GPLv3.

LizardFS è sistema di file cluster distribuiti che consente di suddividere i dati su più server, presentando però l'accesso come un'unica grande partizione, la cui gestione avviene analogamente a quella delle partizioni disco tradizionali. Nella partizione montata con LizardFS vengono supportati gli attributi POSIX dei file, ACL, locking, socket, pipe, file di dispositivi, collegamenti simbolici e rigidi. Il sistema non ha un singolo punto di guasto, tutti i componenti sono ridondanti. È supportata la parallelizzazione delle operazioni sui dati (più client possono accedere ai file contemporaneamente).

Per garantire la disponibilità, i dati vengono suddivisi in repliche che vengono distribuite su diversi nodi con ridondanza (più copie vengono collocate su nodi differenti). In caso di guasto di nodi o dispositivi, il sistema continua a funzionare senza perdita di dati e riassegna automaticamente i dati in base ai nodi rimasti. Per espandere lo storage, è sufficiente collegare nuovi nodi senza interrompere l'operatività per la manutenzione (il sistema replica automaticamente parte dei dati sui nuovi server e bilancia lo storage in base ai nuovi server). È possibile fare lo stesso per ridurre le dimensioni del cluster: è possibile semplicemente disattivare l'attrezzatura obsoleta non più in uso.

I dati e i metadati vengono memorizzati separatamente. Si raccomanda di installare due server di metadati operanti in modalità master-slave e almeno due server di archiviazione dati (chunkserver). Inoltre, per il backup dei metadati, è possibile utilizzare server di log che memorizzano informazioni sulle modifiche dei metadati e consentono di ripristinare il funzionamento nel caso in cui tutti i server di metadati disponibili risultino danneggiati. Ogni file viene suddiviso in blocchi (chunk) di dimensioni fino a 64 MB. I blocchi vengono distribuiti sui server di archiviazione secondo la modalità di replica scelta: standard (definizione esplicita del numero di copie da collocare su nodi diversi, inclusa l'associazione a specifici cataloghi—per i dati importanti il numero di copie può essere aumentato, mentre per quelli non critici può essere diminuito), XOR (RAID5) ed EC (RAID6).

Lo storage può scalare fino a dimensioni petabyte. Tra gli ambiti di applicazione si citano l'archiviazione, la conservazione delle immagini delle macchine virtuali, dei dati multimediali, dei backup, l'utilizzo come DRC (Disaster Recovery Center) e come storage nei cluster di calcolo ad alte prestazioni. LizardFS garantisce un'elevata velocità di lettura per file di qualsiasi dimensione e offre buone prestazioni in scrittura, in particolare quando si tratta di file grandi e medi, a condizione che non ci sia una modifica costante, un intenso utilizzo di file aperti o operazioni sporadiche con numerosi file di piccole dimensioni.

Aggiornamento del file system distribuito LizardFS 3.13.0-rc2

Tra le caratteristiche del FSS si segnala la presenza del supporto per snapshot, che riflette lo stato dei file in un determinato momento, e l'implementazione integrata del "cestino" (i file non vengono eliminati immediatamente e sono disponibili per il ripristino per un certo periodo). L'accesso alla sezione può essere limitato per indirizzo IP o password (simile a quanto avviene con NFS). Sono presenti meccanismi di quotazione e gestione della qualità del servizio, che permettono di limitare la dimensione e la larghezza di banda per alcune categorie di utenti. È possibile creare archivi distribuiti geograficamente, i cui segmenti sono collocati in diversi data center.

Il progetto LizardFS è stato fondato nel 2013 come un fork MooseFS, e si distingue principalmente per la modalità di replica basata sui codici di correzione degli errori di Reed-Solomon (simile a raidzN), un supporto esteso per ACL, la presenza di un client per la piattaforma Windows, ottimizzazioni aggiuntive (ad esempio, quando il client e il server di archiviazione sono combinati, i blocchi vengono restituiti, se possibile, dal nodo attuale, mentre 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 rielaborazioni interne.

Il rilascio di LizardFS 3.13.0 è previsto per la fine di dicembre. La principale novità di LizardFS 3.13 è l'adozione di un algoritmo di consenso per garantire l'affidabilità (commutazione dei server master in caso di guasto) Raft (viene utilizzata una implementazione proprietaria di uRaft, precedentemente applicata in prodotti commerciali). L'uso di uRaft semplifica la configurazione e riduce i ritardi nel ripristino da un guasto, ma richiede la presenza di almeno tre nodi operativi, uno dei quali viene utilizzato per il quorum.

Altre modifiche: nuovo client basato sul sottosistema FUSE3, risoluzione di problemi di correzione degli errori, il plugin nfs-ganesha è stato riscritto in C. Nell'aggiornamento 3.13.0-rc2 sono stati corretti diversi errori critici che rendevano le precedenti versioni di prova del ramo 3.13 poco utilizzabili (le correzioni per il ramo 3.12 non sono ancora state pubblicate e l'aggiornamento da 3.12 a 3.13 continua a causare la perdita totale dei dati).

Nel 2020, il lavoro sarà concentrato sullo sviluppo
Agama, di un nuovo nucleo completamente riscritto di LizardFS, che, secondo gli sviluppatori, garantirà un aumento delle prestazioni di tre volte rispetto al ramo 3.12. In Agama verrà effettuato il passaggio a un'architettura basata su eventi (event driven), con input/output asincrono basato su asio, e funzionerà principalmente nello spazio utente (per ridurre la dipendenza dai meccanismi di caching del nucleo). Inoltre, verranno proposti un nuovo sottomodulo di debug e un analizzatore dell'attività di rete con supporto per il tuning automatico delle prestazioni.

Nel client LizardFS sarà aggiunto un completo supporto per la versioning delle operazioni di scrittura, il che migliorerà l'affidabilità del ripristino dopo un guasto, risolverà i problemi derivanti dalla condivisione dei dati tra diversi client e permetterà un notevole aumento delle prestazioni. Il client sarà trasferito su un proprio sistema di rete funzionante nello spazio utente. Il primo prototipo operativo di LizardFS basato su Agama è previsto per il secondo trimestre del 2020. In questo 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, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster