Sådan udføres selvhelbredelse og genbalancering i Gluster File System - Del 2


I min tidligere artikel om 'Introduktion til GlusterFS (filsystem) og installation - del 1' var der kun en kort oversigt over filsystemet og dets fordele, der beskriver nogle grundlæggende kommandoer. Det er værd at nævne om de to vigtige funktioner, Self-heal og Re-balance, i denne artikel, uden hvilken forklaring på GlusterFS ikke nytter. Lad os blive fortrolige med begreberne Selvhelbredelse og Re-balance.

Denne funktion er tilgængelig for replikerede diskenheder. Antag, at vi har et replikeret volumen [minimum replikaantal 2]. Antag, at på grund af nogle fejl går en eller flere mursten blandt repliksten ned i et stykke tid, og brugeren tilfældigvis sletter en fil fra monteringspunktet, som kun påvirkes på online mursten.

Når offline mursten kommer online på et senere tidspunkt, er det nødvendigt at fjerne den fil fra denne mursten også, dvs. at der skal udføres en synkronisering mellem de replikklodser, der kaldes som helbredelse. Det samme er tilfældet med oprettelse/ændring af filer på offline mursten. GlusterFS har en indbygget selvhelbredende dæmon, der tager sig af disse situationer, når murstenene bliver online.

Overvej et distribueret volumen med kun en mursten. For eksempel opretter vi 10 filer på lydstyrken gennem monteringspunktet. Nu findes alle filerne på den samme mursten, da der kun er mursten i lydstyrken. Når vi tilføjer endnu en mursten til lydstyrken, skal vi muligvis genbalancere det samlede antal filer blandt de to klodser. Hvis et volumen udvides eller formindskes i GlusterFS, skal dataene afbalanceres mellem de forskellige klodser, der er inkluderet i disken.

Udfører selvhelbredelse i GlusterFS

1. Opret en replikeret lydstyrke ved hjælp af følgende kommando.

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

Bemærk: Oprettelse af en replikeret lydstyrke med klodser på den samme server kan medføre en advarsel, som du skal fortsætte med at ignorere den samme.

2. Start og monter lydstyrken.

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

3. Opret en fil fra monteringspunktet.

$ touch /mnt/foo

4. Kontroller det samme på to replika mursten.

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

5. Send nu en af murstenene offline ved at dræbe den tilsvarende glusterfs-dæmon ved hjælp af PID fra volumenstatusoplysninger.

$ 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

Bemærk: Se tilstedeværelsen af en selvhelbredende dæmon på serveren.

$ 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

Nu er den anden mursten offline.

6. Slet filen foo fra monteringspunktet, og kontroller indholdet af murstenen.

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

Du ser foo er der stadig i anden mursten.

7. Bring nu mursten tilbage online.

$ 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

Nu er mursten online.

8. Kontroller indholdet af mursten.

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

Filen er fjernet fra den anden mursten af den selvhelbredende dæmon.

Bemærk: I tilfælde af større filer kan det tage et stykke tid, før selvhelbredelsen er udført med succes. Du kan kontrollere helbredelsesstatus ved hjælp af følgende kommando.

$ gluster volume heal vol info

Udfører genbalance i GlusterFS

1. Opret et distribueret volumen.

$ gluster create volume distribute 192.168.1.16:/home/c

2. Start og monter lydstyrken.

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

3. Opret 10 filer.

$ 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. Føj en anden mursten til volumen distribuer .

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

5. Gør balance igen.

$ gluster volume rebalance distribute start

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

6. Kontroller indholdet.

$ ls /home/c
file1  file2  file5  file6  file8 

$ ls /home/d
file10  file3  file4  file7  file9

Filer er blevet afbalanceret igen.

Bemærk: Du kan kontrollere status for genbalance ved at udstede følgende kommando.

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

Med dette planlægger jeg at afslutte denne serie på GlusterFS. Du er velkommen til at kommentere her med din tvivl om funktionerne Selvhelbredelse og Re-balance.