Zoeken op website

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.