Aktualisierung des Cluster-Dateisystems LizardFS 3.13.0-rc2

Nach einem Jahr der Stille in der Entwicklung wurde wieder an einem neuen Branch des ausfallsicheren verteilten Dateisystems LizardFS 3.13 und veröffentlicht der zweite Kandidat für die Releases. Kürzlich gab es eine Änderung des Eigentümers der Firma, die LizardFS entwickelt; es wurde eine neue Leitung eingesetzt und die Entwickler haben gewechselt. In den letzten zwei Jahren hatte sich das Projekt vom Community-Einfluss zurückgezogen und erhielt nicht die nötige Aufmerksamkeit, aber das neue Team hat die Absicht, die früheren Beziehungen zur Community wiederzubeleben und enge Zusammenarbeit zu etablieren. Der Code des Projekts ist in C und C++ geschrieben und wird unter der GPLv3-Lizenz bereitgestellt. unter der GPLv3-Lizenz.

LizardFS ist ein verteiltes, clusterbasiertes Dateisystem, das es ermöglicht, Daten über verschiedene Server zu streuen, während der Zugriff in Form eines einzigen großen Volumes erfolgt, das wie traditionelle Festplattenteile verwaltet wird. Im eingebundenen Volume mit LizardFS werden POSIX-Dateiattribute, ACL, Sperren, Sockets, Pipes, Gerätedateien sowie symbolische und harte Links unterstützt. Das System hat keinen einzelnen Punkt des Versagens; alle Komponenten sind redundant. Die Parallelisierung von Datenoperationen wird unterstützt (mehrere Clients können gleichzeitig auf Dateien zugreifen).

Um die Ausfallsicherheit zu gewährleisten, werden Daten in Replikate aufgeteilt, die über verschiedene Knoten mit Redundanz verteilt sind (auf unterschiedlichen Knoten werden mehrere Kopien gespeichert). Im Falle eines Ausfalls von Knoten oder Festplatten bleibt das System weiterhin funktionsfähig, ohne Datenverlust, und verteilt die Daten automatisch unter Berücksichtigung der verbleibenden Knoten. Für die Erweiterung des Speichers genügt es, neue Knoten anzuschließen, ohne dass das System für Wartungsarbeiten angehalten werden muss (das System repliziert automatisch einen Teil der Daten auf die neuen Server und balanciert den Speicher unter Berücksichtigung der neuen Server). Ebenso kann die Clustergröße verringert werden – es genügt, veraltete Hardware einfach vom System zu trennen.

Daten und Metadaten werden getrennt gespeichert. Für den Betrieb wird empfohlen, zwei Metadatenspeicherserver im Master-Slave-Modus einzurichten sowie mindestens zwei Datenspeicherserver (Chunk-Server). Zusätzlich können Log-Server zur Sicherung der Metadaten eingesetzt werden, die Informationen über Änderungen an den Metadaten speichern und eine Wiederherstellung im Falle eines Ausfalls aller vorhandenen Metadatenspeicherserver ermöglichen. Jede Datei wird in Blöcke (Chunks) von bis zu 64 MB zerlegt. Die Blöcke werden je nach gewähltem Replikationsmodus auf den Datenspeicherservern verteilt: Standard (explizite Angabe der Anzahl der Kopien, die auf verschiedenen Knoten platziert werden, einschließlich der Möglichkeit, bestimmte Verzeichnisse anzupassen – für wichtige Daten kann die Anzahl der Kopien erhöht und für weniger wichtige verringert werden), XOR (RAID5) und EC (RAID6).

Der Speicher kann auf Petabyte-Größen skaliert werden. Zu den Anwendungsbereichen gehören Archivierung, Speicherung von virtuellen Maschinen-Images, multimedialen Daten, Backups, Nutzung als DRC (Disaster Recovery Center) und als Speicher in Clustern für hochleistungsfähige Berechnungen. LizardFS bietet eine sehr hohe Lesegeschwindigkeit für Dateien beliebiger Größe und zeigt beim Schreiben eine gute Leistung, insbesondere bei großen und mittleren Dateien, wenn keine ständige Modifikation, intensive Nutzung offener Dateien und sporadische Operationen mit zahlreichen kleinen Dateien stattfinden.

Aktualisierung des Cluster-Dateisystems LizardFS 3.13.0-rc2

Zu den Merkmalen des FS gehört auch die Unterstützung von Snapshots, die den Zustand der Dateien zu einem bestimmten Zeitpunkt widerspiegeln, sowie eine integrierte Implementierung des "Papierkorbs" (Dateien werden nicht sofort gelöscht und sind eine gewisse Zeit lang für die Wiederherstellung verfügbar). Der Zugang zum Bereich kann nach IP-Adresse oder Passwort eingeschränkt werden (ähnlich wie bei NFS). Es gibt Mechanismen für Quoten und das Management der Dienstqualität, die es ermöglichen, Größe und Bandbreite für bestimmte Benutzerkategorien zu begrenzen. Es ist möglich, geografisch verteilte Speicher zu erstellen, deren Segmente in verschiedenen Rechenzentren untergebracht sind.

Das Projekt LizardFS wurde 2013 als Fork MooseFSins Leben gerufen und unterscheidet sich hauptsächlich durch den Replikationsmodus auf Basis von Reed-Solomon-Codes (analog zu raidzN), erweiterte Unterstützung für ACL, einen Client für die Windows-Plattform, zusätzliche Optimierungen (zum Beispiel werden bei der Kombination von Client und Storage-Server Blöcke nach Möglichkeit vom aktuellen Node geliefert, während die Metadaten im Speicher zwischengespeichert werden), ein flexibleres Einstellungssystem, Unterstützung für vorzeitiges Lesen von Daten, Quoten für Verzeichnisse und interne Überarbeitungen.

Die Veröffentlichung von LizardFS 3.13.0 ist für Ende Dezember geplant. Eine der Hauptneuheiten von LizardFS 3.13 ist die Implementierung eines Konsensalgorithmus zur Gewährleistung der Ausfallsicherheit (Wechsel der Master-Server im Falle eines Ausfalls). Raft (Hierbei kommt die eigene Implementierung von uRaft zum Einsatz, die zuvor in kommerziellen Produkten verwendet wurde). Der Einsatz von uRaft vereinfacht die Konfiguration und verringert die Ausfallzeiten bei der Wiederherstellung nach einem Ausfall, erfordert jedoch mindestens drei funktionierende Knoten, von denen einer für das Quorum genutzt wird.

Weitere Änderungen umfassen: einen neuen Client basierend auf dem FUSE3-Subsystem, die Behebung von Fehlerkorrekturen und das nfs-ganesha-Plugin wurde in C neu geschrieben. In der Aktualisierung 3.13.0-rc2 wurden mehrere kritische Fehler behoben, die frühere Testversionen der 3.13-Zweigstelle nahezu unbrauchbar machten (Fehlerbehebungen für den 3.12-Zweig wurden bisher nicht veröffentlicht und das Upgrade von 3.12 auf 3.13 führt weiterhin zu einem vollständigen Datenverlust).

Im Jahr 2020 wird der Schwerpunkt auf der Entwicklung liegen
Agama, eines komplett neu geschriebenen LizardFS-Kernels, der nach Angaben der Entwickler eine dreifache Leistungssteigerung im Vergleich zur Version 3.12 bieten wird. In Agama erfolgt der Übergang zu einer ereignisgesteuerten Architektur (event-driven) sowie asynchronem I/O basierend auf asio, hauptsächlich im Benutzerspeicher (um die Abhängigkeit von Kernel-Caching-Mechanismen zu verringern). Darüber hinaus werden ein neues Debugging-System und ein Netzwerkaktivitätsanalysator mit Unterstützung für automatisches Performance-Tuning angeboten.

Im LizardFS-Client wird umfassende Unterstützung für die Versionierung von Schreibvorgängen hinzugefügt, was die Zuverlässigkeit der Wiederherstellung nach einem Ausfall verbessert, Probleme löst, die beim gemeinsamen Zugriff mehrerer Clients auf dieselben Daten auftreten, und eine erhebliche Steigerung der Leistung ermöglicht. Der Client wird auf ein eigenes, im Benutzermodus betriebenes Netzwerk-Subsystem migriert. Der erste funktionale Prototyp von LizardFS, basierend auf Agama, ist für das zweite Quartal 2020 geplant. Zur gleichen Zeit sollen auch Mittel zur Integration von LizardFS mit der Kubernetes-Plattform bereitgestellt werden.

Quelle: opennet.ru

Erwerben Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster