Kaip atlikti savigydos ir subalansavimo operacijas Gluster failų sistemoje – 2 dalis


Ankstesniame mano straipsnyje „Įvadas į GlusterFS (failų sistemą) ir diegimas – 1 dalis“ buvo tik trumpa failų sistemos ir jos pranašumų apžvalga, aprašant kai kurias pagrindines komandas. Šiame straipsnyje verta paminėti dvi svarbias funkcijas Savęs išgydymas ir Atkurti pusiausvyrą, be kurių bus paaiškinta apie GlusterFS. jokios naudos. Susipažinkime su terminais Savęs išgydymas ir Atkurti pusiausvyrą.

Ką reiškia savęs išgydymas pakartotiniuose tomuose?

Ši funkcija pasiekiama pakartotiems tomams. Tarkime, turime pakartotą tomą [minimalus replikų skaičius 2]. Tarkime, kad dėl tam tikrų gedimų viena ar kelios plytelės tarp kopijų blokų kurį laiką sugenda ir vartotojas atsitiktinai ištrina failą iš prijungimo taško, kuris bus paveiktas tik internetinėje plytoje.

Kai neprisijungus naudojama plytelė prisijungia vėliau, tą failą taip pat reikia pašalinti iš šios plytelės, t. y. reikia atlikti sinchronizavimą tarp kopijų plytų, vadinamų gydymu. Tas pats pasakytina apie failų kūrimą/keitimą neprisijungus veikiančiose plytose. „GlusterFS“ turi įmontuotą savaiminio gydymo demoną, kad pasirūpintų tokiomis situacijomis, kai blokai prisijungia.

Ką turime omenyje sakydami iš naujo subalansuoti?

Apsvarstykite paskirstytą tūrį tik su viena plyta. Pavyzdžiui, sukuriame 10 failų tome per prijungimo tašką. Dabar visi failai yra toje pačioje plytoje, nes tome yra tik plyta. Pridėjus dar vieną plytą prie tomo, gali tekti iš naujo subalansuoti bendrą failų skaičių tarp dviejų plytų. Jei „GlusterFS“ apimtis išplečiama arba sumažinama, duomenis reikia iš naujo subalansuoti tarp įvairių į tomą įtrauktų elementų.

Savęs gydymas GlusterFS

1. Sukurkite pakartotą tomą naudodami šią komandą.

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

Pastaba: tame pačiame serveryje sukūrus pakartotą tomą su plytelėmis, gali atsirasti įspėjimas, dėl kurio turite tęsti, nepaisydami to.

2. Paleiskite ir prijunkite garsą.

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

3. Sukurkite failą iš prijungimo taško.

touch /mnt/foo

4. Tą patį patikrinkite dviejose kopijose.

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

5. Dabar išsiųskite vieną iš blokų neprisijungę, nužudydami atitinkamą glusterfs demoną naudodami PID, gautą iš apimties būsenos informacijos.

gluster volume status vol
Pavyzdžio išvestis
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

Pastaba: pažiūrėkite, ar serveryje yra savaiminio gydymo demonas.

kill 3810
gluster volume status vol
Pavyzdžio išvestis
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

Dabar antroji plyta neprisijungusi.

6. Ištrinkite failą foo iš prijungimo taško ir patikrinkite plytelės turinį.

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

Matote, kad foo vis dar yra antroje juostoje.

7. Dabar grąžinkite plytą internetu.

gluster volume start vol force
gluster volume status vol
Pavyzdžio išvestis
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

Dabar plyta yra internete.

8. Patikrinkite plytų turinį.

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

Failą iš antrosios plytos pašalino savaiminio gydymo demonas.

Pastaba: jei failai didesni, gali praeiti šiek tiek laiko, kol savaiminio gydymo operacija bus sėkmingai atlikta. Galite patikrinti gydymo būseną naudodami šią komandą.

gluster volume heal vol info

Atkuria balansą GlusterFS

1. Sukurkite paskirstytą tomą.

gluster create volume distribute 192.168.1.16:/home/c

2. Paleiskite ir prijunkite garsą.

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

3. Sukurkite 10 failų.

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. Pridėkite kitą plytelę prie tomo paskirstymo.

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

5. Iš naujo subalansuokite.

gluster volume rebalance distribute start

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

6. Patikrinkite turinį.

ls /home/c
file1  file2  file5  file6  file8 

ls /home/d
file10  file3  file4  file7  file9

Failai buvo iš naujo subalansuoti.

Pastaba: galite patikrinti balanso būseną išduodami šią komandą.

gluster volume rebalance distribute status
Pavyzdžio išvestis
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:

Tuo planuoju užbaigti šią GlusterFS seriją. Nedvejodami pakomentuokite čia, jei turite abejonių dėl savęs išgydymo ir atkūrimo funkcijų.