Wie man Selbstheilungs- und Rebalancing-Operationen im Gluster-Dateisystem durchführt - Teil 2
In meinem vorherigen Artikel über 'Einführung in GlusterFS (Dateisystem) und Installation – Teil 1' gab ich nur einen kurzen Überblick über das Dateisystem und seine Vorteile, indem ich einige grundlegende Befehle beschrieb. Erwähnenswert sind die beiden wichtigen Funktionen, Selbstheilung und Wiederherstellung des Gleichgewichts, in diesem Artikel, ohne die eine Erklärung auf GlusterFS nicht von Nutzen ist. Machen wir uns mit den Begriffen Selbstheilung und Re-Balance vertraut.
Was verstehen wir unter Selbstreparatur auf replizierten Volumes?
Diese Funktion ist für replizierte Volumes verfügbar. Angenommen, wir haben ein repliziertes Volume [minimale Replikatanzahl 2]. Nehmen wir an, dass aufgrund einiger Fehler ein oder mehrere Bausteine unter den Replikatbausteinen für eine Weile ausfallen und der Benutzer zufällig eine Datei vom Bereitstellungspunkt löscht, die nur auf dem Online-Baustein betroffen ist.
Wenn der Offline-Brick zu einem späteren Zeitpunkt online geht, ist es notwendig, diese Datei auch aus diesem Brick zu entfernen, d.h. es muss eine Synchronisation zwischen den Replikat-Bricks durchgeführt werden, die als Reparatur bezeichnet wird. Das Gleiche gilt für das Erstellen/Ändern von Dateien auf Offline-Bausteinen. GlusterFS verfügt über einen eingebauten Selbstheilungs-Daemon, der sich um diese Situationen kümmert, wenn die Steine online gehen.
Was meinen wir mit Re-Balance?
Stellen Sie sich ein verteiltes Volume mit nur einem Baustein vor. Zum Beispiel erstellen wir 10 Dateien auf dem Volume über den Mount-Punkt. Jetzt befinden sich alle Dateien auf demselben Brick, da sich nur Brick auf dem Volume befindet. Wenn wir dem Volume einen weiteren Baustein hinzufügen, müssen wir möglicherweise die Gesamtzahl der Dateien auf die beiden Bausteine neu verteilen. Wenn ein Volume in GlusterFS erweitert oder verkleinert wird, müssen die Daten zwischen den verschiedenen im Volume enthaltenen Bausteinen neu verteilt werden.
Selbstheilung in GlusterFS durchführen
1. Erstellen Sie mit dem folgenden Befehl ein repliziertes Volume.
$ gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/bHinweis: Das Erstellen eines replizierten Volumes mit Bricks auf demselben Server kann eine Warnung auslösen, für die Sie fortfahren müssen, indem Sie dasselbe ignorieren.
2. Starten und mounten Sie das Volume.
$ gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/3. Erstellen Sie eine Datei vom Bereitstellungspunkt aus.
$ touch /mnt/foo4. Überprüfen Sie dies auf zwei Replikat-Steinen.
$ ls /home/a/
foo
ls /home/b/
foo5. Senden Sie nun einen der Bricks offline, indem Sie den entsprechenden glusterfs-Daemon mit der PID beenden, die Sie aus den Statusinformationen des Volumes erhalten haben.
$ gluster volume status volBeispiel-Ausgabe
Status of volume: vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.16:/home/a 49152 Y 3799
Brick 192.168.1.16:/home/b 49153 Y 3810
NFS Server on localhost 2049 Y 3824
Self-heal Daemon on localhost N/A Y 3829Hinweis: Sehen Sie sich das Vorhandensein eines Selbstheilungs-Daemons auf dem Server an.
$ kill 3810$ gluster volume status volBeispiel-Ausgabe
Status of volume: vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.16:/home/a 49152 Y 3799
Brick 192.168.1.16:/home/b N/A N N/A
NFS Server on localhost 2049 Y 3824
Self-heal Daemon on localhost N/A Y 3829Jetzt ist der zweite Stein offline.
6. Löschen Sie die Datei foo vom Einhängepunkt und überprüfen Sie den Inhalt des Bausteins.
$ rm -f /mnt/foo
ls /home/a
ls /home/b
foo
Ihr seht, foo ist immer noch im zweiten Stein da.
7. Bringen Sie den Stein nun wieder online.
$ gluster volume start vol force
gluster volume status volBeispiel-Ausgabe
Status of volume: vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.1.16:/home/a 49152 Y 3799
Brick 192.168.1.16:/home/b 49153 Y 4110
NFS Server on localhost 2049 Y 4122
Self-heal Daemon on localhost N/A Y 4129Jetzt ist der Stein online.
8. Überprüfen Sie den Inhalt der Ziegel.
$ ls /home/a/
ls /home/b/Die Datei wurde vom Selbstheilungs-Daemon aus dem zweiten Baustein entfernt.
Hinweis: Bei größeren Dateien kann es eine Weile dauern, bis die Selbstheilungsoperation erfolgreich durchgeführt wird. Sie können den Reparaturstatus mit dem folgenden Befehl überprüfen.
$ gluster volume heal vol infoDurchführen des Re-Balancing in GlusterFS
1. Erstellen Sie ein verteiltes Volume.
$ gluster create volume distribute 192.168.1.16:/home/c2. Starten und mounten Sie das Volume.
$ gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/3. Erstellen Sie 10 Dateien.
$ touch /mnt/file{1..10}
ls /mnt/
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
ls /home/c
file1 file10 file2 file3 file4 file5 file6 file7 file8 file94. Fügen Sie einen weiteren Baustein zur Volumenverteilung hinzu.
$ gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d
5. Gleichen Sie das Gleichgewicht wieder aus.
$ gluster volume rebalance distribute start
volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.6. Überprüfen Sie den Inhalt.
$ ls /home/c
file1 file2 file5 file6 file8
ls /home/d
file10 file3 file4 file7 file9Die Dateien wurden neu ausbalanciert.
Hinweis: Sie können den Status der Neuausrichtung überprüfen, indem Sie den folgenden Befehl ausführen.
$ gluster volume rebalance distribute statusBeispiel-Ausgabe
Node Rebalanced-files size scanned failures skipped status run time in secs
--------- ----------- --------- -------- --------- ------- -------- -----------------
localhost 5 0Bytes 15 0 0 completed 1.00
volume rebalance: distribute: success:Damit plane ich, diese Serie über GlusterFS abzuschließen. Fühlen Sie sich frei, hier Ihre Zweifel bezüglich der Selbstheilungs- und Rebalancing-Funktionen zu kommentieren.

