Předchozí sekce
Přidat a odebrat servery GlusterFS
Tento článek ukazuje následující způsoby obnovení v případě selhání jednoho serveru:
-
Přidejte nový server s novou IP adresou, aby zaujal jeho místo (oprava méně náročná na práci).
-
Přidejte nový server, ale ponechte IP adresu neúspěšného serveru (pracně náročnější oprava).
Po dokončení předchozího článku byste měli mít pole GlusterFS s alespoň dvěma uzly a vědět, jak přidávat a odstraňovat uzly.
Předpoklady
Pro účely tohoto článku musíte používat čtyřuzlový, plně replikovaný svazek Gluster.
Naplňte své pole GlusterFS falešnými daty pro testování.
Přidat náhradní server
V tomto scénáři web03 selže, ale přidáte nový uzel s IP adresou 192.168.0.5, abyste jej nahradili. Tato metoda je jednodušší než přidávání nového serveru se stejnou IP adresou, jako má server, který selhal.
Tento článek ukáže dvě formy zotavení po havárii:
- Jeden uzel selhal a na jeho místo přidáváte nový uzel.
- Jeden uzel selhal, byl přestavěn a ponechal si IP – ukázalo se, že s opravou bude více práce
Přidat náhradní uzel
V tomto scénáři web03 opět přestane fungovat, ale přidáte nový uzel na 192.168.0.5, který jej nahradí. Tato metoda je mnohem jednodušší.
-
Pomocí jednoho ze spuštěných serverů přidejte nový server do clusteru:
root@matt:~# gluster peer probe 192.168.0.5 peer probe: success
-
Vyměňte neúspěšnou kostku za novou:
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
-
Uzdravte systém:
root@matt:~# gluster volume heal www full Launching Heal operation on volume www has been successful Use heal info commands to check status
-
Získejte informace o průběhu
heal
operace: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
-
Pokud jste provozovali distribuovaný systém, spusťte následující příkazy:
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:
Ponechte IP adresu
V tomto scénáři server web03 s IP adresou 192.168.0.3 selhal a je zcela neobnovitelný.
Chcete-li obnovit, vytvořte nový server se stejnou IP adresou , prezentujte jej GlusterFS jako neúspěšný server a nechte jej samoléčit. Poté znovu vyrovnáte objem do GlusterFS.
Informace o sestavení a konfiguraci náhradního serveru naleznete v předchozích článcích.
Zamaskujte nový server web03 jako neúspěšný server
-
Sestavte nový server, nainstalujte na něj GlusterFS a připravte disk pro kostku.
-
Přidělte serveru UUID partnera, který selhal. Chcete-li získat UUID, spusťte následující příkaz na jednom ze spuštěných serverů (například web01):
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
-
Zkopírujte název souboru (což je původní Web03 UUID). V předchozím příkladu je to:
ba502dc2-447f-466a-a732-df989e71b551
. -
Přiřaďte UUID neúspěšného serveru novému serveru.
-
Zastavte démona Gluster:
root@web03:~# service glusterfs-server stop glusterfs-server stop/waiting
-
Nahraďte vygenerované UUID uzlu zkopírovaným v
glusterd
konfigurační soubor: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
Poznámka:
ba502dc2-447f-466a-a732-df989e71b551
UUID je příklad UUID; musíte jej nahradit UUID z vašeho neúspěšného serveru (jak si pamatuje web01). -
-
Spusťte znovu server:
root@web03:~# service glusterfs-server start glusterfs-server start/running, process 10732
Překonfigurujte rovnocenné servery
-
Na novém serveru zkontrolujte, zda jsou ostatní servery viditelné:
root@web03:~# gluster peer status peer status: No peers present
-
Pokud partnerské servery nejsou viditelné, musíte je přidat explicitně:
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
-
Spusťte
gluster peer status
příkaz znovu na web03. Odpověď by měla být:State: Accepted peer request (Connected)
-
Restartujte démona ještě jednou a partnerské servery by měly být viditelné:
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)
Synchronizovat svazky
-
Zkontrolujte stav hlasitosti:
root@web03:~# gluster volume status No volumes present
-
Získejte svazky z peer serveru:
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
-
Nastavte souborový systém pro cihlu do pořádku. V následujícím příkladu je cihla uložena v /srv/.bricks/www :
root@web03:~# mkdir /srv/.bricks/www
-
Přejděte na jeden ze spuštěných serverů a nainstalujte
attr
a získejte správné ID svazku.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==
-
Zkopírujte řetězec ID svazku do schránky. V příkladu je to
0s42V5HW+LSuyzqotW1jgAhA==
. -
Na náhradním serveru použijte tento rozšířený atribut:
root@web03:~# apt-get install attr -y ... root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
-
Restartujte server a poté uzdravte systém:
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
-
Získejte informace o průběhu
heal
úkon. Nový server by měl běžet podle očekávání.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
Závěr
Nyní jste se naučili, jak se zotavit ze selhání serveru v poli GlusterFS.