Was genau macht Gluster?

12

Ich habe die letzten 2 Tage mit Glanz gespielt und hier und in ihrem Fragesystem Fragen gestellt. Ich verstehe einige Sachen wirklich nicht. Ich sehe Leute, die solche Sachen sagen

Richten Sie replizierte Bausteine ​​zwischen den Servern ein (da Sie nur 3 verwenden, wäre repliziert sicherer), und jeder Server betrachtet die Dateien aller anderen Server als "lokal" - selbst wenn ein Server ausfällt, wurden die Dateien repliziert die anderen Server.

oder

Gluster behält die Dateisynchronisierung über Volumes (Bricks) bei und verfügt über Funktionen zur Selbstheilung, mit denen Inkonsistenzen behoben werden können, die dadurch entstehen, dass ein Server offline ist.

Da ich mounten ein Remote - Volume vom Server an den Client (s) wie funktioniert Gluster Griff Ausfall des Server - Knotens, der eine die Volumina von angebracht sind? Nach dem, was ich ausprobiert habe, ist der Ordner auf dem Client, auf dem das Volume gemountet wurde, nicht mehr zugänglich und ich muss umount verwenden, um es zu entsperren. Und danach gibt es keine Inhalte vom Server.

Dies ist im Grunde das, was ich in keiner Erklärung sehe: Was passiert, wenn der Serverknoten ausfällt und ob es möglich ist, den Inhalt wirklich zu replizieren, wie es unisono oder rsync tun ?

cbaltatescu
quelle

Antworten:

8

Wir haben kürzlich damit begonnen, GlusterFS für unseren eigenen Gebrauch zu erforschen, daher war diese Frage für mich interessant. Gluster verwendet so genannte Übersetzer auf dem FUSE-Client, um die Speicherung von Daten zu verwalten. Es gibt verschiedene Arten von Übersetzern, die hier beschrieben werden:

http://www.gluster.com/community/documentation/index.php/GlusterFS_Translators_v1.3

Die, nach der Sie speziell fragen, wird als Automatic File Replication Translator (AFR) bezeichnet und wird hier ausführlich behandelt:

http://www.gluster.com/community/documentation/index.php/Understanding_AFR_Translator

Betrachtet man den Quellcode, sieht es so aus, als würden die Daten tatsächlich gleichzeitig auf Knoten geschrieben, viel besser als mit rsync!

In Bezug auf die Wiederherstellung nach einer Fehlersituation habe ich einen interessanten Hinweis gefunden. Das Gluster-System unterscheidet sich von Ceph darin, dass es Änderungen des Replikationsstatus nicht aktiv erkennt und "ausgelöst" werden muss. Wenn Sie also einen Knoten in Ihrem Cluster verlieren, müssen Sie jede Datei nachschlagen, damit Gluster sicherstellen kann, dass sie repliziert wird:

http://www.gluster.com/community/documentation/index.php/Gluster_3.2:_Triggering_Self-Heal_on_Replicate

Ich konnte keine gute Seite finden, die die internen Mechanismen des Fehlerszenarios beschreibt, z. B. wie der Client feststellt, dass Fehler vorliegen. Beim Herunterladen des Quellcodes und Durchsuchen des Clients treten jedoch verschiedene Zeitüberschreitungen auf, die für Befehle verwendet werden, und ein Test, der von Zeit zu Zeit für andere Systeme im Cluster ausgeführt wird. Es sieht so aus, als ob die meisten von ihnen TODO-Markierungen haben und derzeit nur durch Änderung des Quellcodes konfiguriert werden können. Dies kann ein Problem für Sie sein, wenn die Konvergenzzeit kritisch ist.

Polynom
quelle
Ich hatte selbst von AFR erfahren, aber als ich es benutzte, konnte ich nicht auf dem Client schreiben, sondern nur auf dem Server. Ist dies eine Konsequenz der dahinter stehenden Logik, oder muss ich mich damit befassen?
cbaltatescu
2
Das ist höchstwahrscheinlich ein Konfigurationsproblem (nicht beabsichtigt).
Polynom
3

Mit nur 2 Knoten, die repliziert werden, unterscheidet sich Gluster nicht wesentlich von einem automatischen rsync-Skript. Die Dinge werden erst dann wirklich interessant, wenn Sie 4 oder mehr Speicherknoten haben - Ihre Client-Computer sehen einen Pool von Speicherplatz, aber die Dateien, aus denen sie bestehen, sind auf alle Speicherknoten (Bausteine) verteilt. Dies bedeutet, dass bei 4 Servern mit 10 TB lokalem Speicherplatz auf den Clientcomputern ein einzelner Namespace von 20 TB (repliziert oder 40 TB ungeschützter Speicher) angezeigt wird.

Auf einem Client-Computer ist ein kurzes Problem aufgetreten - vielleicht 30 Sekunden oder so -, als er E / A versucht, nachdem ein Speicherbaustein nicht mehr verfügbar ist. Nach dem Schluckauf wird IO jedoch normal fortgesetzt, solange Server online sind, die noch einen vollständigen Satz der Volumendaten enthalten.

techieb0y
quelle
slideshare.net/Gluster/... Präsentation von Gluster CTO darüber , wie es funktioniert.
Polynom
1
Die Sache ist, es macht NICHT das, was rsync macht. Rsync stellt eine Kopie der Daten auf dem anderen Computer bereit. Glanz, wenn der Master (in einem 2-Knoten-Server-Client-Setup) nichts hinterlässt oder ich nicht verstehen konnte, daher die Frage.
cbaltatescu
2
Wenn Sie nur 2 Knoten haben und einer der Knoten ein Client ist (der keine Daten lokal speichert), führt der Verlust des 'Masters' mit den Daten zur Nichtverfügbarkeit und zum Blockieren der E / A auf dem Client. Sie benötigen mindestens 2 Server mit einem für die Replikation konfigurierten Volume sowie Ihre Clients.
techieb0y
0

Wenn der Client-Server ausfällt (dh der Server, dessen IP / DNS vom Client zum Mounten des Dateisystems verwendet wurde), wird das gesamte Volume für diesen Client offline geschaltet, dh er kann auf dem Volume nicht lesen / schreiben.

Wenn der Client es jedoch über IP / DNS eines anderen Servers gemountet hat, ist das Volume für diesen Client weiterhin online. Die Lese- / Schreibvorgänge werden jedoch nicht an die fehlgeschlagene / abgestürzte Instanz weitergeleitet.

Harit Vishwakarma
quelle