Zelfherstel- en evenwichtsoperaties uitvoeren in het Gluster-bestandssysteem - Deel 2
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, waarin enkele basisopdrachten werden beschreven. Het is de moeite waard om in dit artikel de twee belangrijke kenmerken te vermelden, Zelfherstel en Herbalanceren, zonder welke uitleg over GlusterFS van belang zal zijn geen gebruik. Laten we vertrouwd raken met de termen Zelfgenezing en Herbalanceren.
Wat bedoelen we met zelfherstel op gerepliceerde volumes?
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 fouten een of meer stenen van de replicastenen een tijdje uitvallen en dat de gebruiker toevallig een bestand van het koppelpunt verwijdert, wat 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 plaatsvinden tussen de replicastenen, ook wel healing genoemd. Hetzelfde is het geval met het maken/wijzigen van bestanden op offline stenen. GlusterFS heeft een ingebouwde zelfherstellende daemon om voor deze situaties te zorgen wanneer de stenen online komen.
Wat bedoelen we met Opnieuw in balans komen?
Beschouw een verdeeld volume met slechts één steen. We maken bijvoorbeeld 10 bestanden op het volume via het koppelpunt. Nu bevinden alle bestanden zich op dezelfde steen, omdat er alleen maar 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 uitgebreid of verkleind in GlusterFS, moeten de gegevens opnieuw worden gebalanceerd tussen de verschillende bouwstenen die in het volume zijn opgenomen.
Zelfherstel uitvoeren in GlusterFS
1. Maak een gerepliceerd volume met de volgende opdracht.
gluster volume create 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.
gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/
3. Maak een bestand vanaf het koppelpunt.
touch /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 corresponderende glusterfs-daemon te doden met behulp van de PID verkregen uit volumestatusinformatie.
gluster volume status vol
Voorbeelduitvoer
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
Opmerking: bekijk de aanwezigheid van een zelfherstellende daemon op de server.
kill 3810
gluster volume status vol
Voorbeelduitvoer
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 is de tweede steen offline.
6. Verwijder het bestand foo van het koppelpunt en controleer de inhoud van de steen.
rm -f /mnt/foo
ls /home/a
ls /home/b
foo
Je ziet dat foo er nog steeds is in de tweede steen.
7. Breng de steen nu weer online.
gluster volume start vol force
gluster volume status vol
Voorbeelduitvoer
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 staat de steen online.
8. Controleer de inhoud van stenen.
ls /home/a/
ls /home/b/
Het bestand is door de zelfherstel-daemon van de tweede steen verwijderd.
Opmerking: bij grotere bestanden kan het enige tijd duren voordat de zelfhersteloperatie succesvol is uitgevoerd. U kunt de genezingsstatus controleren met behulp van de volgende opdracht.
gluster volume heal vol info
Herbalancering uitvoeren in GlusterFS
1. Maak een gedistribueerd volume.
gluster create volume distribute 192.168.1.16:/home/c
2. Start en koppel het volume.
gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/
3. Maak 10 bestanden.
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. Voeg nog een steen toe om het volume te verdelen.
gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d
5. Breng het evenwicht opnieuw in evenwicht.
gluster volume rebalance distribute start
volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.
6. Controleer de inhoud.
ls /home/c
file1 file2 file5 file6 file8
ls /home/d
file10 file3 file4 file7 file9
Bestanden zijn opnieuw gebalanceerd.
Opmerking: u kunt de status van het opnieuw in evenwicht brengen controleren door de volgende opdracht te geven.
gluster volume rebalance distribute status
Voorbeelduitvoer
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:
Hiermee ben ik van plan deze serie over GlusterFS af te sluiten. Voel je vrij om hier commentaar te geven als je twijfels hebt over de functies Self-heal en Re-balance.