In mijn vorige artikel over ‘Inleiding tot GlusterFS (bestandssysteem) en installatie - deel 1' was slechts een kort overzicht van het bestandssysteem en de voordelen ervan met een beschrijving van enkele basiscommando's. Het is het vermelden waard over de twee belangrijke kenmerken, Zelfgenezing en Opnieuw in evenwicht brengen, in dit artikel zonder welke uitleg over GlusterFS zal geen nut hebben. Laten we vertrouwd raken met de voorwaarden Zelfgenezing en Opnieuw in evenwicht brengen.
Deze functie is beschikbaar voor gerepliceerde volumes. Stel dat we een gerepliceerd volume hebben [minimaal aantal replica's 2]. Stel dat als gevolg van een aantal storingen een of meer stenen onder de replicastenen een tijdje naar beneden gaan en dat de gebruiker een bestand verwijdert van het koppelpunt dat alleen op de online steen wordt beïnvloed.
Wanneer de offline steen op een later tijdstip online komt, is het noodzakelijk om dat bestand ook van deze steen te laten verwijderen, d.w.z. er moet een synchronisatie tussen de replicastenen, genaamd healing, worden gedaan. Hetzelfde is het geval met het maken/wijzigen van bestanden op offline stenen. GlusterFS heeft een ingebouwde zelfgenezende daemon om voor deze situaties te zorgen wanneer de stenen online komen.
Overweeg een gedistribueerd volume met slechts één steen. wij bijvoorbeeld maak 10 bestanden op het volume via het koppelpunt. Nu bevinden alle bestanden zich op dezelfde steen omdat er alleen steen in het volume zit. Als we nog een steen aan het volume toevoegen, moeten we mogelijk het totale aantal bestanden over de twee stenen opnieuw in evenwicht brengen. Als een volume wordt vergroot of verkleind in GlusterFS, moeten de gegevens opnieuw worden gebalanceerd tussen de verschillende stenen in het volume.
1. Maak een gerepliceerd volume met de volgende opdracht.
$ gluster volume maak vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/b
Opmerking: Het maken van een gerepliceerd volume met stenen op dezelfde server kan een waarschuwing opleveren waarvoor u deze moet negeren.
2. Start en koppel het volume.
$ glustervolume start vol. $ mount -t glusterfs 192.168.1.16:/vol /mnt/
3. Maak een bestand vanaf het koppelpunt.
$ raak /mnt/foo
4. Controleer hetzelfde op twee replicastenen.
$ ls /home/a/ foo. $ ls /home/b/ foo
5. Stuur nu een van de stenen offline door de bijbehorende glusterfs-daemon te doden met de PID verkregen uit volumestatusinformatie.
$ gluster volume status vol
Status van het volume: vol. Glusterproces Poort Online Pid Brick 192.168.1.16:/home/a 49152 Y 3799 Brick 192.168.1.16:/home/b 49153 Y 3810 NFS Server op localhost 2049 Y 3824 Self-heal Daemon op localhost N.v.t. J 3829
Opmerking: Zie de aanwezigheid van zelfherstellende daemon op de server.
$ dood 3810
$ gluster volume status vol
Status van volume: vol Glusterproces Poort Online Pid Brick 192.168.1.16:/home/a 49152 Y 3799 Brick 192.168.1.16:/home/b Nvt N Nvt NFS-server op localhost 2049 J 3824 Self-heal Daemon op localhost Nvt 3829
Nu is de tweede steen offline.
6. Verwijder het bestand foo vanaf het montagepunt en controleer de inhoud van de steen.
$ rm -f /mnt/foo. $ ls /thuis/a. $ ls /thuis/b. foo
Zie je foo zit er nog in de tweede steen.
7. Breng de steen nu online terug.
$ gluster volume start vol kracht. $ gluster volume status vol
Status van volume: vol Glusterproces Poort Online Pid Brick 192.168.1.16:/home/a 49152 Y 3799 Brick 192.168.1.16:/home/b 49153 Y 4110 NFS Server op localhost 2049 Y 4122 Self-heal Daemon op localhost N.v.t. 4129
Nu staat de steen online.
8. Controleer de inhoud van stenen.
$ ls /home/a/ $ ls /home/b/
Bestand is verwijderd uit de tweede steen door de zelfgenezende daemon.
Opmerking: Bij grotere bestanden kan het even duren voordat de zelfhersteloperatie is uitgevoerd. U kunt de genezingsstatus controleren met de volgende opdracht.
$ gluster volume genezen vol info
1. Maak een gedistribueerd volume.
$ gluster volume creëren distribueren 192.168.1.16:/home/c
2. Start en koppel het volume.
$ glustervolume start distribueren. $ mount -t glusterfs 192.168.1.16:/distribute /mnt/
3. Maak 10 bestanden.
$ raak /mnt/bestand{1..10} aan $ ls /mnt/ bestand1 bestand10 bestand2 bestand3 bestand4 bestand5 bestand6 bestand7 bestand8 bestand9 $ ls /home/c. bestand1 bestand10 bestand2 bestand3 bestand4 bestand5 bestand6 bestand7 bestand8 bestand9
4. Voeg nog een steen toe aan volume distribueren.
$ gluster volume add-brick distribueren 192.168.1.16:/home/d. $ ls /home/d
5. Herbalanceren.
$ gluster volume herbalanceren distribueren start volume herbalanceren: distribueren: succes: Het starten van herbalancering op volumedistributie is succesvol geweest.
6. Controleer de inhoud.
$ ls /home/c. bestand1 bestand2 bestand5 bestand6 bestand8 $ ls /home/d. bestand10 bestand3 bestand4 bestand7 bestand9
Bestanden zijn opnieuw gebalanceerd.
Opmerking: U kunt de herbalanceringsstatus controleren door de volgende opdracht te geven.
$ gluster volume herbalanceren status distribueren
Knooppunt Opnieuw gebalanceerde bestandsgrootte gescande fouten overgeslagen status runtime in seconden localhost 5 0Bytes 15 0 0 voltooid 1.00 herbalancering volume: distribueren: succes:
Hiermee ben ik van plan deze serie over GlusterFS af te sluiten. Voel je vrij om hier commentaar te geven met je twijfels over de Self-heal en Re-balance functies.