Kuidas teha enesetervendamise ja tasakaalustamise toiminguid Glusteri failisüsteemis - 2. osa


Minu eelmises artiklis „Sissejuhatus GlusterFS-i (failisüsteem) ja installimine - 1. osa” oli vaid lühike ülevaade failisüsteemist ja selle eelistest, kirjeldades mõningaid põhikäske. Selles artiklis tasub mainida kahte olulist omadust - enesetervendamine ja uuesti tasakaalustamine -, ilma milleta GlusterFS-i selgitustest pole kasu. Tutvume terminitega Enesetervendamine ja Tasakaalu taastamine.

See funktsioon on saadaval paljundatud köidete jaoks. Oletame, et meil on kopeeritud maht [koopiate minimaalne arv 2]. Oletame, et mõne tõrke tõttu langeb üks või mitu telliskivi tellistest mõnda aega alla ja kasutaja kustutab ühenduspunktist faili, mida mõjutab ainult veebitellis.

Kui võrguühenduseta tellis on võrgus hilisemal ajal, on vajalik, et see fail sellest tellistest eemaldataks, st tuleb teha sünkroniseerimine tervendamiseks kutsutavate koopiatelliste vahel. Sama kehtib ka võrguühenduseta tellistega failide loomise/muutmise kohta. GlusterFS-is on sisseehitatud enesetervendamise deemon, mis hoolitseb nende olukordade eest alati, kui tellised võrku satuvad.

Mõelge ainult ühe tellisega jaotatud mahule. Näiteks loome helitugevusele liitumispunkti kaudu 10 faili. Nüüd asuvad kõik failid samal tellisel, kuna köites on ainult tellised. Kui lisate köitele veel ühe tellise, peame kahe taseme vahel failide koguarvu uuesti tasakaalustama. Kui köidet laiendatakse või vähendatakse rakenduses GlusterFS, tuleb andmed mahtude erinevate telliste vahel uuesti tasakaalustada.

Eneseparanemise teostamine GlusterFS-is

1. Looge järgmise käsuga paljundatud köide.

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

Märkus. Replikeeritud köite loomine tellistega samas serveris võib tekitada hoiatuse, mille puhul peate jätkama sama ignoreerimist.

2. Käivitage ja kinnitage helitugevus.

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

3. Looge fail liitmiskohast.

$ touch /mnt/foo

4. Kontrollige sama kahel koopiatellisel.

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

5. Nüüd saatke üks tellistest võrguühenduseta, tappes vastava glusterfsi deemoni, kasutades helitugevuse teabe põhjal saadud PID-d.

$ 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

Märkus. Vaadake isetervendamise deemoni olemasolu serveris.

$ 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

Nüüd on teine tellis võrguühenduseta.

6. Kustutage fail foo liitumispunktist ja kontrollige tellise sisu.

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

Näete, et foo on endiselt teisel kohal.

7. Nüüd tooge tellis tagasi veebis.

$ 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

Nüüd on tellis võrgus.

8. Kontrollige telliste sisu.

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

Isetervendamise deemon eemaldas faili teisest tellisest.

Märkus. Suuremate failide korral võib isetervendamise operatsiooni edukaks sooritamiseks kuluda veidi aega. Parandamise olekut saate kontrollida järgmise käsu abil.

$ gluster volume heal vol info

Re-balance'i sooritamine GlusterFS-is

1. Looge hajutatud köide.

$ gluster create volume distribute 192.168.1.16:/home/c

2. Käivitage ja kinnitage helitugevus.

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

3. Looge 10 faili.

$ 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. Lisage teine tellis köite levitamiseks .

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

5. Tehke uuesti tasakaal.

$ gluster volume rebalance distribute start

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

6. Kontrollige sisu.

$ ls /home/c
file1  file2  file5  file6  file8 

$ ls /home/d
file10  file3  file4  file7  file9

Failid on uuesti tasakaalustatud.

Märkus. Uue tasakaalu olekut saate kontrollida järgmise käsu väljastamisega.

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

Sellega kavatsen selle sarja GlusterFS-is lõpetada. Kommenteerige siin julgelt oma kahtlusi Isetervendamise ja Tasakaalu taastamise funktsioonide osas.