Website-Suche

So führen Sie Selbstheilungs- und Neuausgleichsvorgänge im Gluster-Dateisystem durch – 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 und beschrieb einige grundlegende Befehle. Es ist erwähnenswert, dass in diesem Artikel die beiden wichtigen Funktionen Selbstheilung und Neuausbalancierung erwähnt werden, ohne die eine Erklärung zu GlusterFS ausbleibt keine Verwendung. Machen wir uns mit den Begriffen Selbstheilung und Wiederherstellung vertraut.

Was meinen wir mit Selbstheilung auf replizierten Volumes?

Diese Funktion ist für replizierte Volumes verfügbar. Angenommen, wir haben ein repliziertes Volume [minimale Replikatanzahl 2]. Gehen Sie davon aus, dass aufgrund einiger Fehler ein oder mehrere Bricks unter den Replika-Bricks für eine Weile ausfallen und der Benutzer zufällig eine Datei vom Mount-Punkt löscht, was nur auf dem Online-Brick betroffen ist.

Wenn der Offline-Brick zu einem späteren Zeitpunkt online geht, muss diese Datei auch von diesem Brick entfernt werden, d. h. es muss eine Synchronisierung zwischen den Replika-Bricks durchgeführt werden, die als „Healing“ bezeichnet wird. Das Gleiche gilt für die Erstellung/Änderung von Dateien auf Offline-Bricks. GlusterFS verfügt über einen integrierten Selbstheilungs-Daemon, der diese Situationen behebt, wenn die Bausteine online gehen.

Was meinen wir mit Neuausrichtung?

Stellen Sie sich ein verteiltes Volumen 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 das Volume nur einen Brick enthält. 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 auf die verschiedenen im Volume enthaltenen Bausteine neu verteilt werden.

Durchführen einer Selbstheilung in GlusterFS

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/b

Hinweis: Die Erstellung eines replizierten Volumes mit Bricks auf demselben Server kann eine Warnung auslösen, die Sie ignorieren müssen.

2. Starten Sie das Volume und stellen Sie es bereit.

gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/

3. Erstellen Sie eine Datei vom Mount-Punkt.

touch /mnt/foo

4. Überprüfen Sie dasselbe an zwei Replikatsteinen.

ls /home/a/
foo
ls /home/b/
foo

5. Senden Sie nun einen der Bausteine offline, indem Sie den entsprechenden Glusterfs-Daemon mithilfe der PID aus den Volume-Statusinformationen beenden.

gluster volume status vol
Beispielausgabe
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	3829

Hinweis: Überprüfen Sie, ob auf dem Server ein Selbstheilungsdämon vorhanden ist.

kill 3810
gluster volume status vol
Beispielausgabe
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	3829

Jetzt ist der zweite Stein offline.

6. Löschen Sie die Datei foo vom Mount-Punkt und überprüfen Sie den Inhalt des Bricks.

rm -f /mnt/foo
ls /home/a
ls /home/b
foo

Sie sehen, dass foo immer noch im zweiten Stein vorhanden ist.

7. Bringen Sie den Baustein jetzt wieder online.

gluster volume start vol force
gluster volume status vol
Beispielausgabe
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	4129

Jetzt ist der Baustein online.

8. Überprüfen Sie den Inhalt der Ziegel.

ls /home/a/
ls /home/b/

Die Datei wurde vom Selbstheilungsdämon aus dem zweiten Baustein entfernt.

Hinweis: Bei größeren Dateien kann es eine Weile dauern, bis die Selbstreparatur erfolgreich durchgeführt wird. Sie können den Heilungsstatus mit dem folgenden Befehl überprüfen.

gluster volume heal vol info

Neuausgleich in GlusterFS durchführen

1. Erstellen Sie ein verteiltes Volume.

gluster create volume distribute 192.168.1.16:/home/c

2. Starten Sie das Volume und stellen Sie es bereit.

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  file9

4. Fügen Sie einen weiteren Baustein zum Volumen hinzu verteilen.

gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d

5. Stellen Sie das Gleichgewicht wieder her.

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  file9

Dateien wurden neu ausbalanciert.

Hinweis: Sie können den Neuausgleichsstatus überprüfen, indem Sie den folgenden Befehl ausgeben.

gluster volume rebalance distribute status
Beispielausgabe
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 möchte ich diese Serie über GlusterFS abschließen. Fühlen Sie sich frei, hier Ihre Zweifel bezüglich der Selbstheilungs- und Wiederherstellungsfunktionen zu kommentieren.