LizardFS 3.13.0-rc2 Cluster-Dateisystem-Update

Nach einer einjährigen Entwicklungspause wieder aufgenommen Arbeiten an einem neuen Zweig eines fehlertoleranten verteilten Dateisystems LizardF 3.13 и veröffentlicht zweiter Release-Kandidat. Kürzlich aufgetreten Eigentümerwechsel des Unternehmens, das LizardFS entwickelt, ein neues Management übernommen und Entwickler ersetzt wurden. In den letzten zwei Jahren wurde das Projekt aus der Community zurückgezogen und ihm nicht genügend Aufmerksamkeit geschenkt, aber das neue Team beabsichtigt, die bisherige Beziehung zur Community wiederzubeleben und eine enge Interaktion mit ihr aufzubauen. Der Projektcode ist in den Sprachen C und C++ geschrieben vertrieben von unter GPLv3-Lizenz.

EidechseFS ist ein verteiltes Cluster-Dateisystem, das es Ihnen ermöglicht, Daten auf verschiedene Server zu verteilen, den Zugriff darauf jedoch in Form einer einzigen großen Partition bereitzustellen, die auf ähnliche Weise wie herkömmliche Festplattenpartitionen bearbeitet wird. Eine mit LizardFS gemountete Partition unterstützt POSIX-Dateiattribute, ACLs, Sperren, Sockets, Pipes, Gerätedateien, symbolische und harte Links. Das System hat keinen Single Point of Failure; alle Komponenten sind redundant. Die Parallelisierung von Datenoperationen wird unterstützt (mehrere Clients können gleichzeitig auf Dateien zugreifen).

Zur Gewährleistung der Fehlertoleranz werden die Daten in Replikate aufgeteilt, die redundant auf verschiedene Knoten verteilt werden (mehrere Kopien werden auf verschiedenen Knoten platziert); bei Ausfall von Knoten oder Laufwerken arbeitet das System ohne Informationsverlust weiter und verteilt die Daten automatisch neu unter Berücksichtigung der verbleibenden Knoten. Um den Speicher zu erweitern, reicht es aus, neue Knoten daran anzuschließen, ohne die Wartungsarbeiten zu unterbrechen (das System selbst repliziert einen Teil der Daten auf neue Server und gleicht den Speicher unter Berücksichtigung der neuen Server aus). Sie können das Gleiche tun, um die Größe des Clusters zu reduzieren – Sie können einfach die veralteten Geräte deaktivieren, die aus dem System entfernt werden.

Daten und Metadaten werden getrennt gespeichert. Für den Betrieb wird empfohlen, zwei Metadatenserver im Master-Slave-Modus sowie mindestens zwei Datenspeicherserver (Chunkserver) zu installieren. Darüber hinaus können Protokollserver zur Sicherung von Metadaten verwendet werden, um Informationen über Änderungen in Metadaten zu speichern und Ihnen die Wiederherstellung des Betriebs im Falle einer Beschädigung aller vorhandenen Metadatenserver zu ermöglichen. Jede Datei ist in Blöcke (Chunks) mit einer Größe von bis zu 64 MB unterteilt. Die Blöcke werden gemäß dem ausgewählten Replikationsmodus auf Speicherserver verteilt: Standard (explizite Festlegung der Anzahl der Kopien, die auf verschiedenen Knoten platziert werden sollen, auch in Bezug auf einzelne Verzeichnisse – für wichtige Daten kann die Anzahl der Kopien erhöht werden, und für unwichtige Daten reduziert), XOR (RAID5) und EC (RAID6).

Der Speicher kann auf Petabyte-Größen skaliert werden. Zu den Einsatzgebieten gehören Archivierung, Speicherung von Abbildern virtueller Maschinen, Multimedia-Daten, Backups, Einsatz als DRC (Disaster Recovery Center) und als Speicher in High-Performance-Computing-Clustern. LizardFS bietet eine sehr hohe Lesegeschwindigkeit für Dateien jeder Größe und zeigt beim Schreiben eine gute Leistung beim Schreiben ganzer großer und mittlerer Dateien, wenn keine ständige Änderung, intensive Arbeit mit geöffneten Dateien und einmalige Vorgänge mit a Haufen kleiner Dateien.

LizardFS 3.13.0-rc2 Cluster-Dateisystem-Update

Zu den Funktionen des FS zählen auch die Unterstützung von Snapshots, die den Status von Dateien zu einem bestimmten Zeitpunkt widerspiegeln, sowie eine integrierte Implementierung des „Papierkorbs“ (Dateien werden nicht sofort gelöscht und sind für verfügbar). Erholung für einige Zeit). Der Zugriff auf eine Partition kann durch IP-Adresse oder Passwort eingeschränkt werden (ähnlich wie bei NFS). Es gibt Quoten- und Dienstqualitätsverwaltungsmechanismen, mit denen Sie die Größe und Bandbreite für bestimmte Benutzerkategorien begrenzen können. Es ist möglich, geografisch verteilte Speichereinrichtungen zu schaffen, deren Segmente sich in verschiedenen Rechenzentren befinden.

Das LizardFS-Projekt wurde 2013 als Fork gegründet ElchFS, und unterscheidet sich hauptsächlich durch das Vorhandensein eines Replikationsmodus basierend auf Reed-Solomon-Fehlerkorrekturcodes (analog zu RaidzN), erweiterter ACL-Unterstützung, dem Vorhandensein eines Clients für die Windows-Plattform, zusätzlichen Optimierungen (z. B. beim Kombinieren eines Clients und ein Speicherserver, Blöcke werden, wenn möglich, mit dem aktuellen Knoten gesendet und Metadaten im Speicher zwischengespeichert), ein flexibleres Konfigurationssystem, Unterstützung für Daten-Vorauslesen, Verzeichniskontingente und interne Nacharbeit.

LizardFS 3.13.0 soll Ende Dezember erscheinen. Die Hauptinnovation von LizardFS 3.13 ist die Verwendung eines Konsensalgorithmus zur Gewährleistung der Fehlertoleranz (Wechsel der Master-Server im Fehlerfall). Raft (verwendet unsere eigene Implementierung von uRaft, die zuvor in kommerziellen Produkten verwendet wurde). Die Verwendung von uRaft vereinfacht die Konfiguration und reduziert Verzögerungen bei der Wiederherstellung nach Fehlern, erfordert jedoch mindestens drei funktionierende Knoten, von denen einer für das Quorum verwendet wird.

Weitere Änderungen: ein neuer Client basierend auf dem FUSE3-Subsystem, der Probleme mit der Fehlerkorrektur löst, das NFS-Ganesha-Plugin wurde in C-Sprache neu geschrieben. Update 3.13.0-rc2 behebt mehrere kritische Fehler, die frühere Testversionen des 3.13-Zweigs unbrauchbar machten (Korrekturen für den 3.12-Zweig wurden noch nicht veröffentlicht und das Update von 3.12 auf 3.13 führt immer noch zu vollständigem Datenverlust).

Im Jahr 2020 liegt der Schwerpunkt der Arbeit auf der Entwicklung
Agama, ein neuer, komplett neu geschriebener LizardFS-Kernel, der laut den Entwicklern eine dreifache Leistungssteigerung im Vergleich zu Branch 3.12 bieten wird. Agama wird zu einer ereignisgesteuerten Architektur übergehen, die auf asynchroner Eingabe/Ausgabe basiert asio, arbeiten hauptsächlich im Benutzerbereich (um die Abhängigkeit von Kernel-Caching-Mechanismen zu verringern). Darüber hinaus werden ein neues Debugging-Subsystem und ein Netzwerkaktivitätsanalysator mit Unterstützung für die automatische Leistungsoptimierung angeboten.

Der LizardFS-Client bietet volle Unterstützung für versionierte Schreibvorgänge, was die Zuverlässigkeit der Notfallwiederherstellung verbessert, Probleme löst, die auftreten, wenn verschiedene Clients gemeinsam auf dieselben Daten zugreifen, und erhebliche Leistungsverbesserungen ermöglicht. Der Client wird auf sein eigenes Netzwerksubsystem übertragen, das im Benutzerbereich arbeitet. Der erste funktionierende Prototyp von LizardFS auf Basis von Agama soll im zweiten Quartal 2020 fertig sein. Gleichzeitig versprechen sie die Implementierung von Tools zur Integration von LizardFS in die Kubernetes-Plattform.

Source: opennet.ru

Kommentar hinzufügen