Kako izvesti samozdravljenje in ponovno uravnoteženje v datotečnem sistemu Gluster - 2. del


V mojem prejšnjem članku o "Uvodu v GlusterFS (datotečni sistem) in namestitev - 1. del" je bil le kratek pregled datotečnega sistema in njegovih prednosti, ki opisujejo nekatere osnovne ukaze. Omeniti velja dve pomembni značilnosti, samozdravljenje in ponovno uravnoteženje, v tem članku, brez katerih razlaga o GlusterFS ne bo koristna. Spoznajmo izraza Samozdravljenje in ponovno uravnoteženje.

Ta funkcija je na voljo za podvojene zvezke. Recimo, da imamo repliciran volumen [najmanjše število kopij 2]. Predpostavimo, da se zaradi nekaterih napak ena ali več opek med kopijami replike za nekaj časa spusti in uporabnik iz točke vpetja izbriše datoteko, ki bo prizadeta samo na spletni opeki.

Ko se opeka brez povezave pozneje poveže, je treba odstraniti to datoteko iz te opeke, tj.sinhronizirati je treba kopije opek, ki se imenujejo celjenje. Enako velja za ustvarjanje/spreminjanje datotek na opekah brez povezave. GlusterFS ima vgrajen demon za samozdravljenje, ki poskrbi za te situacije, kadar opeke postanejo povezane.

Razmislite o porazdeljeni količini samo z eno opeko. Na primer, ustvarimo 10 datotek na nosilcu skozi točko priklopa. Zdaj so vse datoteke na isti opeki, saj je v obsegu samo opeka. Ko v volumen dodamo še eno opeko, bomo morda morali ponovno uravnotežiti skupno število datotek med dvema opekama. Če je volumen razširjen ali skrčen v GlusterFS, je treba podatke znova uravnotežiti med različnimi opekami, vključenimi v zvezek.

Izvajanje samozdravljenja v GlusterFS

1. Z naslednjim ukazom ustvarite podvojeni nosilec.

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

Opomba: Ustvarjanje repliciranega zvezka z opekami na istem strežniku lahko sproži opozorilo, pri katerem morate ignorirati istega.

2. Zaženite in namestite glasnost.

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

3. Ustvarite datoteko iz točke pritrditve.

$ touch /mnt/foo

4. Enako preverite na dveh kopijah replike.

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

5. Zdaj pošljite eno od opek brez povezave, tako da ubijete ustrezni demon glusterfs z uporabo PID-a, pridobljenega iz informacij o stanju nosilca.

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

Opomba: Oglejte si prisotnost demona za samozdravljenje na strežniku.

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

Zdaj je druga opeka brez povezave.

6. Izbrišite datoteko foo s točke namestitve in preverite vsebino opeke.

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

Veste, foo je še vedno tam v drugi opeki.

7. Zdaj vrnite opeko na spletu.

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

Zdaj je opeka na spletu.

8. Preverite vsebino opeke.

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

Datoteko je z druge opeke odstranil demon za samozdravljenje.

Opomba: V primeru večjih datotek lahko traja nekaj časa, da se operacija samozdravljenja uspešno izvede. Stanje zdravljenja lahko preverite z naslednjim ukazom.

$ gluster volume heal vol info

Izvajanje ponovnega ravnotežja v GlusterFS

1. Ustvarite porazdeljeni nosilec.

$ gluster create volume distribute 192.168.1.16:/home/c

2. Zaženite in namestite glasnost.

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

3. Ustvarite 10 datotek.

$ 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 še eno opeko v zvezek distribuiraj .

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

5. Naredite ravnotežje.

$ gluster volume rebalance distribute start

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

6. Preverite vsebino.

$ ls /home/c
file1  file2  file5  file6  file8 

$ ls /home/d
file10  file3  file4  file7  file9

Datoteke so bile ponovno uravnotežene.

Opomba: Stanje ponovnega ravnotežja lahko preverite z izdajo naslednjega ukaza.

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

S tem nameravam zaključiti to serijo o GlusterFS. Tukaj lahko komentirate svoje dvome glede funkcij samozdravljenja in ponovnega ravnotežja.