Hvordan utføre selvhelbredelse og re-balanse operasjoner i Gluster File System - Del 2


I min forrige artikkel om 'Introduksjon til GlusterFS (filsystem) og installasjon - del 1' var bare en kort oversikt over filsystemet og dets fordeler som beskrev noen grunnleggende kommandoer. Det er verdt å nevne om de to viktige funksjonene, Self-heal og Re-balance, i denne artikkelen uten hvilke forklaringer på GlusterFS vil være til nytte. La oss bli kjent med begrepene Self-heal og Re-balance.

Denne funksjonen er tilgjengelig for replikerte volumer. Anta at vi har et replikert volum [minimum replikatall 2]. Anta at på grunn av noen feil går en eller flere klosser blant kopi-klossene ned en stund og brukeren tilfeldigvis sletter en fil fra monteringspunktet som vil bli påvirket bare på nettklossen.

Når den frakoblede klossen kommer online på et senere tidspunkt, er det nødvendig å få den filen fjernet fra denne klossen også, det vil si at en synkronisering mellom replika-klossene kalt healing må gjøres. Det samme er tilfellet med opprettelse/modifisering av filer på offline-klosser. GlusterFS har en innebygd selvhelbredende demon for å ta seg av disse situasjonene når klossene blir online.

Tenk på et distribuert volum med bare én murstein. For eksempel lager vi 10 filer på volumet gjennom monteringspunktet. Nå ligger alle filene på samme kloss siden det bare er klosser i volumet. Når vi legger til en murstein til volumet, må vi kanskje rebalansere det totale antallet filer mellom de to klossene. Hvis et volum utvides eller krympes i GlusterFS, må dataene balanseres på nytt mellom de forskjellige klossene som er inkludert i volumet.

Utføre selvhelbredelse i GlusterFS

1. Lag et replikert volum ved å bruke følgende kommando.

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

Merk: Oppretting av et replikert volum med klosser på samme server kan gi en advarsel som du må fortsette å ignorere for.

2. Start og monter volumet.

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

3. Lag en fil fra monteringspunktet.

$ touch /mnt/foo

4. Bekreft det samme på to kopiklosser.

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

5. Send nå en av klossene offline ved å drepe den tilsvarende glusterfs-demonen ved å bruke PID-en fra volumstatusinformasjon.

$ 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

Merk: Se tilstedeværelsen av selvhelbredende daemon 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

Nå er den andre klossen offline.

6. Slett filen foo fra monteringspunktet og sjekk innholdet i klossen.

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

Du ser at foo fortsatt er der i andre kloss.

7. Ta nå tilbake klossen 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

Nå er mursteinen på nett.

8. Sjekk innholdet i murstein.

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

Filen har blitt fjernet fra den andre klossen av selvhelbredende daemon.

Merk: Ved større filer kan det ta en stund før selvhelbredelsesoperasjonen er vellykket utført. Du kan sjekke helbredelsesstatusen ved å bruke følgende kommando.

$ gluster volume heal vol info

Utføre re-balanse i GlusterFS

1. Lag et distribuert volum.

$ gluster create volume distribute 192.168.1.16:/home/c

2. Start og monter volumet.

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

3. Lag 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. Legg til en annen kloss til volumet distribuer.

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

5. Gjør re-balanse.

$ gluster volume rebalance distribute start

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

6. Sjekk innholdet.

$ ls /home/c
file1  file2  file5  file6  file8 

$ ls /home/d
file10  file3  file4  file7  file9

Filene har blitt balansert på nytt.

Merk: Du kan sjekke rebalanseringsstatusen ved å gi 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 planlegger jeg å avslutte denne serien på GlusterFS. Kommenter gjerne her med dine tvil angående funksjonene for selvhelbredelse og rebalansering.