/opt/files
Angenommen, 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-files
auf 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/example
auf Maschine A -, passieren zwei Dinge:
- Schreiben Sie eine Kopie an
/opt/files
- Senden Sie eine Kopie über das Netzwerk, auf die
/opt/files
auf 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:
- Sie geben eine Lesung für aus
/mnt/gluster-files/example
- GlusterFS sagt: "Ich muss alle Replikatknoten überprüfen, um herauszufinden, wer die neueste Version dieser Datei hat."
- GlusterFS überprüft jeden Knoten
- Es stellt sich heraus, dass alle Kopien gleich sind, da die Replikation gut funktioniert
- Sie erhalten die Datei von Ihrer lokalen Festplatte zurück. § §
(§ Es gibt eine read-subvolume
Client-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/files
synchronisiert 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 -laR
in /mnt/gluster-files
dem eine Synchronisation auslösen.
Was passiert also, wenn Sie /opt/files
auf 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/files
aber 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.