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.