Kā veikt pašārstēšanos un atkārtotu līdzsvarošanu operācijās Gluster failu sistēmā - 2. daļa


Manā iepriekšējā rakstā “Ievads GlusterFS (failu sistēma) un instalēšana - 1. daļa” bija tikai īss failu sistēmas un tās priekšrocību pārskats, aprakstot dažas pamata komandas. Šajā rakstā ir vērts pieminēt divas svarīgās iezīmes - pašārstēšanos un līdzsvara atjaunošanu. Bez kurām skaidrojums par GlusterFS nederēs. Ļaujiet mums iepazīties ar terminiem Pašārstēties un Atkārtot līdzsvaru.

Šī funkcija ir pieejama atkārtotajiem sējumiem. Pieņemsim, ka mums ir kopēts apjoms [minimālais kopiju skaits 2]. Pieņemsim, ka dažu kļūmju dēļ viens vai vairāki ķieģeļi starp replikas ķieģeļiem uz brīdi pazeminās un lietotājs nejauši izdzēš failu no pievienošanas punkta, kuru ietekmēs tikai tiešsaistes ķieģelis.

Kad bezsaistes ķieģelis ir tiešsaistē vēlāk, ir nepieciešams, lai šis fails tiktu noņemts arī no šī ķieģeļa, t.i., jāveic sinhronizācija starp kopiju ķieģeļiem, kurus sauc par dziedināšanu. Tas pats attiecas uz failu izveidošanu/pārveidošanu bezsaistes ķieģeļos. GlusterFS ir iebūvēts pašārstēšanās dēmons, kas rūpējas par šīm situācijām ikreiz, kad ķieģeļi kļūst tiešsaistē.

Apsveriet izplatīto tilpumu tikai ar vienu ķieģeļu. Piemēram, mēs izveidojam 10 failus sējumā, izmantojot stiprinājuma punktu. Tagad visi faili atrodas vienā ķieģelī, jo sējumā ir tikai ķieģeļi. Pievienojot sējumam vēl vienu ķieģeļu, mums var nākties līdzsvarot kopējo failu skaitu starp abiem ķieģeļiem. Ja sējums tiek paplašināts vai samazināts GlusterFS, dati ir jālīdzsvaro starp dažādiem sējumā iekļautajiem ķieģeļiem.

Veicot pašārstēšanos GlusterFS

1. Izveidojiet atkārtotu sējumu, izmantojot šādu komandu.

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

Piezīme. Izveidojot atkārtotu sējumu ar ķieģeļiem tajā pašā serverī, var tikt parādīts brīdinājums, par kuru jums jāturpina to pašu ignorēt.

2. Sāciet un uzstādiet skaļumu.

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

3. Izveidojiet failu no pievienošanas punkta.

$ touch /mnt/foo

4. Pārbaudiet to pašu uz diviem replikas ķieģeļiem.

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

5. Tagad nosūtiet vienu no ķieģeļiem bezsaistē, nogalinot atbilstošo glusterfs dēmonu, izmantojot PID, kas iegūts no skaļuma statusa informācijas.

$ 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

Piezīme. Skatiet servera pašārstēšanās dēmona klātbūtni.

$ 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

Tagad otrais ķieģelis ir bezsaistē.

6. Izdzēsiet failu foo no pievienošanas punkta un pārbaudiet ķieģeļa saturu.

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

Redzat, ka foo joprojām atrodas otrajā ķieģelī.

7. Tagad atgrieziet ķieģeļu tiešsaistē.

$ 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

Tagad ķieģelis ir tiešsaistē.

8. Pārbaudiet ķieģeļu saturu.

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

Fails ir noņemts no otrā ķieģeļa ar pašārstēšanās dēmonu.

Piezīme. Lielāku failu gadījumā var paiet zināms laiks, līdz pašārstēšanās darbība tiek veiksmīgi veikta. Dzēšanas statusu var pārbaudīt, izmantojot šādu komandu.

$ gluster volume heal vol info

Veicot atkārtotu līdzsvarošanu GlusterFS

1. Izveidojiet izplatītu sējumu.

$ gluster create volume distribute 192.168.1.16:/home/c

2. Sāciet un uzstādiet skaļumu.

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

3. Izveidojiet 10 failus.

$ 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. Pievienojiet vēl vienu ķieģeļu apjomam izplatīt .

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

5. Veiciet līdzsvarošanu.

$ gluster volume rebalance distribute start

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

6. Pārbaudiet saturu.

$ ls /home/c
file1  file2  file5  file6  file8 

$ ls /home/d
file10  file3  file4  file7  file9

Faili ir līdzsvaroti.

Piezīme. Atkārtotas bilances statusu var pārbaudīt, izsniedzot šādu komandu.

$ 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:

Ar to es plānoju pabeigt šo sēriju vietnē GlusterFS. Nekautrējieties šeit komentēt savas šaubas par pašārstēšanās un līdzsvara atjaunošanas funkcijām.