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.