Kann jemand dieses GlusterFS-Setup erklären?


7

Nachdem ich mich umgesehen habe, um zu verstehen, wie die Replikation mit Gluster eingerichtet wird, bin ich auf die folgende Frage gestoßen: Kann Apache den GlusterFS-Stein direkt lesen, aber auf den GlusterFS-Mount schreiben?

Ich habe auch herausgefunden, wie das das Gleiche zu erklären scheint, und ich dachte, ich verstehe es, aber jetzt denke ich, dass ich es nicht verstehe.

Um diese Art der Replikation zu erhalten, müssen beide Computer gleichzeitig als Server und Clients fungieren. Jetzt verstehe ich nicht, wie die Beziehung funktioniert: Ist B nicht zum Beispiel ein Kunde von A?

Gibt es mehr als eine Ebene von Client-Server-Beziehungen? Ist A ein Client für A und B ein Client für B, wobei jeder in einem Ordner ein Volume von demselben Computer bereitstellt und diese beiden Volumes in einer dritten Beziehungsebene irgendwie synchron sind (von A nach B)?

Warum wird in der obigen Frage nach dem Schreiben in das Dateisystem oder auf das bereitgestellte Volume gefragt? Wenn ich B zu einem Client für A mache, wobei A einen Ordner exportiert und B ihn als Remote-Volume in einem Ordner bereitstellt, habe ich mich nie gefragt, worauf ich schreibe: Ich habe in den Originalordner auf A und in das bereitgestellte Volume auf geschrieben B. Soll das nicht so funktionieren?

Antworten:


12

/opt/filesAngenommen, Sie haben zwei Computer, A und B. Auf jedem Computer exportieren Sie als Gluster-Baustein und richten die clientseitige Replikation ein. Wir mounten dann das resultierende Verzeichnis wie /mnt/gluster-filesauf beiden Maschinen. Das ist wichtig!

Mit diesem Einhängepunkt verfügen wir nun über ein hochverfügbares Dateisystem auf beiden Computern.

Wenn Sie eine Datei schreiben - sagen wir /mnt/gluster-files/exampleauf Maschine A -, passieren zwei Dinge:

  1. Schreiben Sie eine Kopie an /opt/files
  2. Senden Sie eine Kopie über das Netzwerk, auf die /opt/filesauf Computer B geschrieben werden soll.

Das ist gut, weil wir Redundanz wollen, was bedeutet, dass wir mehr als eine Kopie der Daten haben müssen.

Nehmen wir als nächstes an, wir möchten dieselbe Datei lesen. Wieder auf Maschine A:

  1. Sie geben eine Lesung für aus /mnt/gluster-files/example
  2. GlusterFS sagt: "Ich muss alle Replikatknoten überprüfen, um herauszufinden, wer die neueste Version dieser Datei hat."
  3. GlusterFS überprüft jeden Knoten
  4. Es stellt sich heraus, dass alle Kopien gleich sind, da die Replikation gut funktioniert
  5. Sie erhalten die Datei von Ihrer lokalen Festplatte zurück. § §

(§ Es gibt eine read-subvolumeClient-Option, und es ist sinnvoll, sie wie in diesem Fall auf jedem Computer, der ein Gluster-Client und -Server ist, auf das lokale Volume einzustellen. Andernfalls könnte Schritt 5 lauten: "Sie erhalten die Datei von einem Zufallsprinzip." Knoten'.)


Hinter den Kulissen /opt/filessynchronisiert GlusterFS beide Computer synchron. Das Überprüfen jedes Knotens, insbesondere auf eine große Anzahl kleiner Dateien, führt zu einer nicht unerheblichen Leistungseinbuße.

Es stellt sich daher die Frage: Wenn ich einen Prozess auf einem dieser beiden Computer ausführe und weiß, dass die Dateien synchron sind, warum kann ich die Dateien nicht einfach von der lokalen Freigabe lesen?

Es wird nicht empfohlen, aber Sie können dies tun. Lesen Sie die Dateien von /opt/files. Halten manuell verfolgen, wenn Sie die Synchronisierung erhalten, und wenn Sie tun, tun Sie etwas wie ein ls -laRin /mnt/gluster-filesdem eine Synchronisation auslösen.

Was passiert also, wenn Sie /opt/filesauf Maschine A schreiben ?

Die Datei befindet sich dort unbemerkt von GlusterFS. Gluster funktioniert so nicht. Es gelangt nicht auf Maschine B, es sei denn, Sie tun etwas, das Gluster auf Maschine A bemerkt.

Daher können Sie Apache nicht einfach anweisen, zu lesen und zu schreiben /opt/files. Was wie ein guter Kompromiss erscheint, ist, ihm zu sagen, er solle lesen, /opt/filesaber schreiben /mnt/gluster-files. Dies ist nur möglich, wenn Sie in Ihrer Anwendung einen anderen Pfad zum Lesen und Schreiben von Dateien angeben können, was nicht viele tun.


Ja, von allen Tutorials war dies das aufschlussreichste, nachdem ich Ihren Beitrag zweimal gelesen habe :)) howtoforge.com/… Der Schlüssel war, dass ich immer die Lautstärke von A nach B eingestellt habe, aus der Ferne, ich habe Sie nur nie verstanden Mounten Sie lokal und dann repliziert Gluster die dahinter liegenden Mount-Quellen.
cbaltatescu

Ich habe gerade ein "Replikat 3" unter GlusterFS 3.5.0 eingerichtet und das Read-Subvolume wurde nach dem Erstellen eines Volumes standardmäßig konfiguriert.
ColinM
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.