Comment effectuer des opérations d’auto-réparation et de rééquilibrage dans le système de fichiers Gluster - Partie 2
Dans mon article précédent sur 'Introduction à GlusterFS (système de fichiers) et installation – Partie 1', nous n’avions qu’un bref aperçu du système de fichiers et de ses avantages, décrivant quelques commandes de base. Il convient de mentionner les deux fonctionnalités importantes, l’auto-guérison et le rééquilibrage, dans cet article sans quoi une explication sur GlusterFS ne sera d’aucune utilité. Familiarisons-nous avec les termes « auto-guérison » et « rééquilibrage ».
Qu’entendons-nous par auto-réparation sur les volumes répliqués ?
Cette fonctionnalité est disponible pour les volumes répliqués. Supposons que nous ayons un volume répliqué [nombre minimum de réplicas 2]. Supposons qu’en raison de certaines défaillances, une ou plusieurs briques parmi les briques de réplique tombent en panne pendant un certain temps et que l’utilisateur supprime un fichier du point de montage qui ne sera affecté que sur la brique en ligne.
Lorsque la brique hors ligne est mise en ligne ultérieurement, il est nécessaire de faire supprimer ce fichier de cette brique également, c’est-à-dire qu’une synchronisation entre les briques de réplique appelée comme réparation doit être effectuée. Il en est de même pour la création/modification de fichiers sur des briques hors ligne. GlusterFS dispose d’un démon d’auto-réparation intégré pour s’occuper de ces situations chaque fois que les briques sont en ligne.
Qu’entendons-nous par rééquilibrage ?
Considérons un volume distribué avec une seule brique. Par exemple, nous créons 10 fichiers sur le volume via le point de montage. Maintenant, tous les fichiers résident sur la même brique puisqu’il n’y a que de la brique dans le volume. En ajoutant une brique supplémentaire au volume, nous devrons peut-être rééquilibrer le nombre total de fichiers entre les deux briques. Si un volume est agrandi ou réduit dans GlusterFS, les données doivent être rééquilibrées entre les différentes briques incluses dans le volume.
Effectuer l’auto-réparation dans GlusterFS
1. Créez un volume répliqué à l’aide de la commande suivante.
$ gluster volume create vol replica 2 192.168.1.16:/home/a 192.168.1.16:/home/bRemarque : La création d’un volume répliqué avec des briques sur le même serveur peut déclencher un avertissement pour lequel vous devez continuer en ignorant le même.
2. Démarrez et montez le volume.
$ gluster volume start vol
mount -t glusterfs 192.168.1.16:/vol /mnt/3. Créez un fichier à partir du point de montage.
$ touch /mnt/foo4. Vérifiez la même chose sur deux briques répliques.
$ ls /home/a/
foo
ls /home/b/
foo5. Maintenant, envoyez l’une des briques hors ligne en tuant le démon glusterfs correspondant à l’aide du PID obtenu à partir des informations d’état du volume.
$ gluster volume status volExemple de sortie
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 3829Remarque : Voir la présence du démon d’auto-guérison sur le serveur.
$ kill 3810$ gluster volume status volExemple de sortie
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 3829Maintenant, la deuxième brique est hors ligne.
6. Supprimez le fichier foo du point de montage et vérifiez le contenu de la brique.
$ rm -f /mnt/foo
ls /home/a
ls /home/b
fooVous voyez, foo est toujours là dans la deuxième brique.
7. Maintenant, ramenez la brique en ligne.
$ gluster volume start vol force
gluster volume status volExemple de sortie
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 4129Maintenant, la brique est en ligne.
8. Vérifiez le contenu des briques.
$ ls /home/a/
ls /home/b/La lime a été retirée de la deuxième brique par le démon d’auto-guérison.
Remarque : Dans le cas de fichiers plus volumineux, cela peut prendre un certain temps pour que l’opération d’auto-réparation soit effectuée avec succès. Vous pouvez vérifier l’état de la correction à l’aide de la commande suivante.
$ gluster volume heal vol infoEffectuer un rééquilibrage dans GlusterFS
1. Créez un volume distribué.
$ gluster create volume distribute 192.168.1.16:/home/c2. Démarrez et montez le volume.
$ gluster volume start distribute
mount -t glusterfs 192.168.1.16:/distribute /mnt/3. Créez 10 fichiers.
$ 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 file94. Ajoutez une autre brique à la distribution de volume.
$ gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d5. Rééquilibrez-vous.
$ gluster volume rebalance distribute start
volume rebalance: distribute: success: Starting rebalance on volume distribute has been successful.6. Vérifiez le contenu.
$ ls /home/c
file1 file2 file5 file6 file8
ls /home/d
file10 file3 file4 file7 file9Les fichiers ont été rééquilibrés.
Remarque : Vous pouvez vérifier l’état de rééquilibrage en exécutant la commande suivante.
$ gluster volume rebalance distribute statusExemple de sortie
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:C’est avec cela que je prévois de conclure cette série sur GlusterFS. N’hésitez pas à commenter ici avec vos doutes concernant les fonctionnalités d’auto-guérison et de rééquilibrage.

