Recherche de site Web

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/b

Remarque : 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/foo

4. Vérifiez la même chose sur deux briques répliques.

$ ls /home/a/
foo
ls /home/b/
foo

5. 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 vol
Exemple 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	3829

Remarque : Voir la présence du démon d’auto-guérison sur le serveur.

$ kill 3810
$ gluster volume status vol
Exemple 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	3829

Maintenant, 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
foo

Vous 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 vol
Exemple 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	4129

Maintenant, 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 info

Effectuer un rééquilibrage dans GlusterFS

1. Créez un volume distribué.

$ gluster create volume distribute 192.168.1.16:/home/c

2. 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  file9

4. Ajoutez une autre brique à la distribution de volume.

$ gluster volume add-brick distribute 192.168.1.16:/home/d
ls /home/d

5. 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  file9

Les 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 status
Exemple 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.

Articles connexes: