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.