Vyhledávání na webu

Jak provádět operace samoléčení a obnovení rovnováhy v systému souborů Gluster – část 2


V mém předchozím článku „Úvod do GlusterFS (souborový systém) a instalace – část 1“ byl jen stručný přehled souborového systému a jeho výhod popisující některé základní příkazy. V tomto článku stojí za zmínku o dvou důležitých funkcích, Self-heal a Re-balance, bez nichž bude vysvětlení o GlusterFS k ničemu. Pojďme se seznámit s pojmy Self-heal a Re-balance.

Co rozumíme pod pojmem Self-heal na replikovaných svazcích?

Tato funkce je dostupná pro replikované svazky. Předpokládejme, že máme replikovaný svazek [minimální počet replik 2]. Předpokládejme, že kvůli některým selháním jedna nebo více cihel mezi replikami na chvíli spadne a uživatel smaže soubor z bodu připojení, který bude ovlivněn pouze online cihelnou.

Když se offline kostka připojí později, je nutné nechat tento soubor odstranit také z této kostky, tj. musí být provedena synchronizace mezi replikovými kostkami nazývaná jako léčení. Totéž platí pro vytváření/úpravu souborů na offline cihlách. GlusterFS má vestavěného démona self-heal, který se o tyto situace postará, kdykoli se kostky stanou online.

Co rozumíme pod pojmem Re-balance?

Zvažte distribuovaný objem pouze s jednou cihlou. Například vytvoříme 10 souborů na svazku prostřednictvím přípojného bodu. Nyní jsou všechny soubory umístěny na stejné cihle, protože ve svazku je pouze cihla. Po přidání jedné další cihly do svazku možná budeme muset znovu vyvážit celkový počet souborů mezi dvěma cihlami. Pokud je svazek rozšířen nebo zmenšen v GlusterFS, je třeba data znovu vyvážit mezi různými bloky obsaženými ve svazku.

Provádění Self-heal v GlusterFS

1. Vytvořte replikovaný svazek pomocí následujícího příkazu.

gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b

Poznámka: Vytvoření replikovaného svazku s kostkami na stejném serveru může vyvolat varování, pro které budete muset totéž ignorovat.

2. Spusťte a připojte svazek.

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

3. Vytvořte soubor z bodu připojení.

touch /mnt/foo

4. Ověřte totéž na dvou replikách cihel.

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

5. Nyní odešlete jednu z kostek offline tím, že zabijete odpovídajícího démona glusterfs pomocí PID získaného z informací o stavu svazku.

gluster volume status vol
Ukázkový výstup
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

Poznámka: Podívejte se na přítomnost démona self-heal na serveru.

kill 3810
gluster volume status vol
Ukázkový výstup
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

Nyní je druhá cihla offline.

6. Smažte soubor foo z bodu připojení a zkontrolujte obsah kostky.

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

Vidíte, že foo je stále tam ve druhé cihle.

7. Nyní přiveďte kostku zpět online.

gluster volume start vol force
gluster volume status vol
Ukázkový výstup
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

Nyní je cihla online.

8. Zkontrolujte obsah kostek.

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

Soubor byl odstraněn z druhé cihly samoléčivým démonem.

Poznámka: V případě větších souborů může chvíli trvat, než bude operace samoopravy úspěšně provedena. Stav léčení můžete zkontrolovat pomocí následujícího příkazu.

gluster volume heal vol info

Provádění Re-balance v GlusterFS

1. Vytvořte distribuovaný svazek.

gluster create volume distribute 192.168.1.16:/home/c

2. Spusťte a připojte svazek.

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

3. Vytvořte 10 souborů.

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. Přidejte další kostku do distribuce objemu.

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

5. Znovu vyvažte.

gluster volume rebalance distribute start

volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.

6. Zkontrolujte obsah.

ls /home/c
file1  file2  file5  file6  file8 

ls /home/d
file10  file3  file4  file7  file9

Soubory byly znovu vyváženy.

Poznámka: Stav opětovného vyrovnání můžete zkontrolovat zadáním následujícího příkazu.

gluster volume rebalance distribute status
Ukázkový výstup
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:

Tímto plánuji uzavřít tuto sérii na GlusterFS. Neváhejte se zde vyjádřit se svými pochybnostmi ohledně funkcí Self-heal a Re-balance.