Kako izvršiti operacije samoizlječenja i ponovnog balansiranja u sistemu datoteka Gluster - 2. dio


U mom prethodnom članku o „Uvod u GlusterFS (sistem datoteka) i instalaciju – prvi dio“ bio je samo kratak pregled sistema datoteka i njegovih prednosti opisujući neke osnovne naredbe. Vrijedi spomenuti dvije važne karakteristike, Samoizlječenje i Ponovno balansiranje, u ovom članku bez kojih će objašnjenje o GlusterFS biti nema koristi. Upoznajmo se sa pojmovima Samoizliječenje i Ponovni balans.

Šta podrazumijevamo pod samoizlječenjem na repliciranim volumenima?

Ova funkcija je dostupna za replicirane volumene. Pretpostavimo da imamo replicirani volumen [minimalni broj replika 2]. Pretpostavimo da se zbog nekih kvarova jedna ili više kockica među replikama kockica spušta na neko vrijeme i korisniku se desi da izbriše datoteku iz tačke montiranja koja će biti pogođena samo na online kockici.

Kada se vanmrežna cigla kasnije uključi u mrežu, potrebno je i taj fajl ukloniti iz ove kocke, tj. mora se izvršiti sinhronizacija između replika kockica koja se zove iscjeljivanje. Isti je slučaj sa kreiranjem/izmjenom datoteka na offline kockama. GlusterFS ima ugrađen demon za samoiscjeljivanje koji će se pobrinuti za ove situacije kad god cigle postanu online.

Šta podrazumevamo pod rebalansom?

Razmislite o distribuiranom volumenu sa samo jednom ciglom. Na primjer, mi kreiramo 10 fajlova na volumenu preko tačke montiranja. Sada se svi fajlovi nalaze na istoj kocki jer postoji samo cigla u volumenu. Kada dodamo još jednu kocku volumenu, možda ćemo morati ponovo izbalansirati ukupan broj datoteka između dvije cigle. Ako se volumen proširi ili smanji u GlusterFS-u, podaci moraju biti ponovo izbalansirani između različitih blokova uključenih u volumen.

Izvođenje samoiscjeljenja u GlusterFS

1. Kreirajte replicirani volumen koristeći sljedeću naredbu.

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

Napomena: Kreiranje repliciranog volumena sa blokovima na istom serveru može izazvati upozorenje za koje morate nastaviti ignorirajući isto.

2. Pokrenite i montirajte volumen.

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

3. Kreirajte datoteku iz točke montiranja.

touch /mnt/foo

4. Potvrdite isto na dvije replike cigle.

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

5. Sada pošaljite jednu od kockica van mreže tako što ćete ubiti odgovarajući glusterfs demon koristeći PID dobijen iz informacija o statusu volumena.

gluster volume status vol
Sample Output
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

Napomena: Pogledajte prisustvo demona za samoiscjeljivanje na serveru.

kill 3810
gluster volume status vol
Sample Output
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

Sada je druga cigla van mreže.

6. Izbrišite datoteku foo sa tačke montiranja i proverite sadržaj kocke.

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

Vidite da je foo još uvijek tu u drugoj cigli.

7. Sada vratite ciglu na mrežu.

gluster volume start vol force
gluster volume status vol
Sample Output
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

Sada je cigla na mreži.

8. Provjerite sadržaj cigli.

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

Datoteka je uklonjena iz druge cigle od strane demona samoizlječenja.

Napomena: U slučaju većih datoteka može potrajati neko vrijeme da se operacija samoizlječenja uspješno obavi. Možete provjeriti status ozdravljenja koristeći sljedeću naredbu.

gluster volume heal vol info

Izvođenje ponovnog balansa u GlusterFS

1. Kreirajte distribuirani volumen.

gluster create volume distribute 192.168.1.16:/home/c

2. Pokrenite i montirajte volumen.

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

3. Kreirajte 10 fajlova.

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. Dodajte još jednu ciglu u volumen distribucije.

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

5. Ponovo balansirajte.

gluster volume rebalance distribute start

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

6. Provjerite sadržaj.

ls /home/c
file1  file2  file5  file6  file8 

ls /home/d
file10  file3  file4  file7  file9

Fajlovi su ponovo balansirani.

Napomena: Status rebalansa možete provjeriti izdavanjem sljedeće naredbe.

gluster volume rebalance distribute status
Sample Output
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:

Ovim planiram da zaključim ovu seriju na GlusterFS-u. Slobodno komentirajte ovdje sa svojim nedoumicama u vezi sa funkcijama samoizlječenja i ponovnog balansiranja.