Vorheriger Abschnitt
GlusterFS-Server hinzufügen und entfernen
Dieser Artikel zeigt die folgenden Wiederherstellungsmethoden, wenn ein einzelner Server ausfällt:
-
Fügen Sie einen neuen Server mit einer neuen IP-Adresse hinzu, um seinen Platz einzunehmen (eine weniger arbeitsintensive Lösung).
-
Fügen Sie einen neuen Server hinzu, aber behalten Sie die IP-Adresse des ausgefallenen Servers bei (eine arbeitsintensivere Lösung).
Nachdem Sie den vorherigen Artikel abgeschlossen haben, sollten Sie über ein GlusterFS-Array mit mindestens zwei Knoten verfügen und wissen, wie Knoten hinzugefügt und gelöscht werden.
Voraussetzungen
Für die Zwecke dieses Artikels müssen Sie auf einem vollständig replizierten Gluster-Volume mit vier Knoten arbeiten.
Füllen Sie Ihr GlusterFS-Array zum Testen mit gefälschten Daten.
Ersatzserver hinzufügen
In diesem Szenario schlägt web03 fehl, aber Sie fügen einen neuen Knoten mit der IP-Adresse 192.168.0.5 hinzu, um ihn zu ersetzen. Diese Methode ist einfacher als das Hinzufügen eines neuen Servers mit derselben IP-Adresse wie der ausgefallene Server.
Dieser Artikel zeigt zwei Formen der Notfallwiederherstellung:
- Ein einzelner Knoten ist ausgefallen, und Sie fügen einen neuen Knoten hinzu, um seinen Platz einzunehmen.
- Ein einzelner Knoten fiel aus, wurde neu erstellt und behielt die IP - dies stellte sich als mehr Arbeit heraus, die behoben werden musste
Ersatzknoten hinzufügen
In diesem Szenario fällt web03 wieder aus, aber Sie fügen einen neuen Knoten bei 192.168.0.5 hinzu, um ihn zu ersetzen. Diese Methode ist viel einfacher.
-
Fügen Sie mit einem der laufenden Server den neuen Server zum Cluster hinzu:
root@matt:~# gluster peer probe 192.168.0.5 peer probe: success
-
Tauschen Sie den fehlerhaften Stein gegen den neuen aus:
root@matt:~# gluster volume replace-brick www 192.168.0.3:/srv/.bricks/www 192.168.0.5:/srv/.bricks/www commit force volume replace-brick: success: replace-brick commit successful
-
Heilen Sie das System:
root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Erhalte Informationen über den Fortschritt der
heal
Betrieb:root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful ... Brick 192.168.0.4:/srv/.bricks/www Number of entries: 23 /wordpress/wp-admin/upload.php
-
Wenn Sie ein verteiltes System ausgeführt haben, führen Sie die folgenden Befehle aus:
root@matt:~# gluster volume rebalance www fix-layout start volume rebalance: www: success: Starting rebalance on volume www has been successful. ID: 0a9719c1-cf04-4161-b3b0-cc6fd8dd9108 root@matt:~# gluster volume rebalance www status Node Rebalanced-files size scanned failures skipped status run time in secs --------- ----------- ----------- ----------- ----------- ----------- ------------ -------------- localhost 0 0Bytes 0 0 0 completed 1.00 localhost 0 0Bytes 0 0 0 completed 1.00 192.168.0.2 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.4 0 0Bytes 0 0 0 completed 1.00 192.168.0.5 0 0Bytes 0 0 0 completed 1.00 volume rebalance: www: success:
IP-Adresse behalten
In diesem Szenario ist der Server web03 mit der IP-Adresse 192.168.0.3 abgestürzt und kann nicht wiederhergestellt werden.
Zur Wiederherstellung erstellen Sie einen neuen Server mit derselben IP-Adresse , präsentieren Sie es GlusterFS als ausgefallenen Server und lassen Sie es sich selbst reparieren. Sie gleichen dann die Lautstärke in GlusterFS neu aus.
Informationen zum Erstellen und Konfigurieren des Ersatzservers finden Sie in den vorherigen Artikeln.
Den neuen web03-Server als den ausgefallenen Server tarnen
-
Erstellen Sie den neuen Server, installieren Sie GlusterFS darauf und bereiten Sie die Festplatte für den Baustein vor.
-
Geben Sie dem Server die Peer-UUID des ausgefallenen Servers. Um die UUID abzurufen, führen Sie den folgenden Befehl auf einem der laufenden Server (z. B. web01) aus:
root@web01:~# grep 192.168.0.3 /var/lib/glusterd/peers/*/var/lib/glusterd/peers/ba502dc2-447f-466a-a732-df989e71b551:hostname1=192.168.0.3
-
Kopieren Sie den Dateinamen (der die ursprüngliche Web03-UUID ist). Im vorherigen Beispiel ist es:
ba502dc2-447f-466a-a732-df989e71b551
. -
Weisen Sie dem neuen Server die UUID des ausgefallenen Servers zu.
-
Stoppen Sie den Gluster-Daemon:
root@web03:~# service glusterfs-server stop glusterfs-server stop/waiting
-
Ersetzen Sie die generierte Knoten-UUID durch die kopierte in der
glusterd
Konfigurationsdatei:root@web03:~# UUID=ba502dc2-447f-466a-a732-df989e71b551 root@web03:~# sed -i "s/\(UUID\)=\(.*\)/\1=$UUID/g" /var/lib/glusterd/glusterd.info root@web03:~# cat /var/lib/glusterd/glusterd.info UUID=ba502dc2-447f-466a-a732-df989e71b551 operating-version=2
Hinweis: Der
ba502dc2-447f-466a-a732-df989e71b551
UUID ist eine Beispiel-UUID; Sie müssen es durch die UUID Ihres ausgefallenen Servers ersetzen (wie von web01 gespeichert). -
-
Starten Sie den Server erneut:
root@web03:~# service glusterfs-server start glusterfs-server start/running, process 10732
Konfigurieren Sie die Peer-Server neu
-
Prüfen Sie auf dem neuen Server, ob die anderen Server sichtbar sind:
root@web03:~# gluster peer status peer status: No peers present
-
Wenn die Peer-Server nicht sichtbar sind, müssen Sie sie explizit hinzufügen:
root@web03:~# gluster peer probe 192.168.0.1 peer probe: success root@web03:~# gluster peer probe 192.168.0.2 peer probe: success root@web03:~# gluster peer probe 192.168.0.4 peer probe: success
-
Führen Sie den
gluster peer status
aus Befehl erneut auf web03. Die Antwort sollte lauten:State: Accepted peer request (Connected)
-
Starten Sie den Daemon noch einmal neu, und die Peer-Server sollten sichtbar sein:
root@web03:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 9123 root@web03:~# gluster peer status Number of Peers: 3 Hostname: 192.168.0.2 Uuid: 177cd473-9421-4651-8d6d-18be3a7e1990 State: Peer in Cluster (Connected) Hostname: 192.168.0.1 Uuid: 8555eac6-de14-44f6-babe-f955ebc16646 State: Peer in Cluster (Connected) Hostname: 192.168.0.4 Uuid: 1681b266-dc31-42e1-ab82-4e220906eda1 State: Peer in Cluster (Connected)
Synchronisieren Sie die Volumes
-
Überprüfen Sie den Lautstärkestatus:
root@web03:~# gluster volume status No volumes present
-
Holen Sie sich die Volumes von einem Peer-Server:
root@web03:~# gluster volume sync 192.168.0.2 all Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y volume sync: success
-
Bringen Sie das Dateisystem für den Baustein in Ordnung. Im folgenden Beispiel wird der Brick in /srv/.bricks/www gespeichert :
root@web03:~# mkdir /srv/.bricks/www
-
Gehen Sie zu einem der laufenden Server und installieren Sie
attr
und erhalten Sie die richtige Volume-ID.root@web02:~# apt-get install attr -y ... root@web02:~# getfattr -n trusted.glusterfs.volume-id /srv/.bricks/www getfattr: Removing leading '/' from absolute path names # file: srv/.bricks/www trusted.glusterfs.volume-id=0s42V5HW+LSuyzqotW1jgAhA==
-
Kopieren Sie die Volume-ID-Zeichenfolge in Ihre Zwischenablage. Im Beispiel ist es
0s42V5HW+LSuyzqotW1jgAhA==
. -
Wenden Sie auf dem Ersatzserver dieses erweiterte Attribut an:
root@web03:~# apt-get install attr -y ... root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
-
Starten Sie den Server neu und heilen Sie dann das System:
root@matt:~# service glusterfs-server restart glusterfs-server stop/waiting glusterfs-server start/running, process 13318 root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Erhalte Informationen über den Fortschritt der
heal
Betrieb. Der neue Server sollte wie erwartet laufen.root@matt:~# gluster volume heal www info Gathering Heal info on volume www has been successful Brick 192.168.0.1:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.2:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.3:/srv/.bricks/www Number of entries: 0 Brick 192.168.0.4:/srv/.bricks/www Number of entries: 0
Schlussfolgerung
Sie haben jetzt gelernt, wie Sie einen ausgefallenen Server in einem GlusterFS-Array wiederherstellen können.