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.