Cet article décrit comment ajouter et supprimer des serveurs GlusterFS de votre baie de serveurs.
Créer un nouveau serveur
Utiliser le nova boot
commande de l'article précédent pour créer un serveur appelé web3 :
nova boot --image bb02b1a3-bc77-4d17-ab5b-421d89850fca --flavor performance1-4 web3
Vous pouvez également utiliser le panneau de configuration Rackspace Cloud pour créer le nouveau serveur.
Ajouter le serveur au réseau personnalisé Rackspace
Dans l'article précédent, vous avez ajouté un réseau personnalisé Rackspace.
-
Obtenez l'identifiant unique universel (UUID) du réseau en utilisant le
nova
suivant commande :nova network-list
-
Une fois que vous avez l'UUID, associez-lui le nouvel hôte.
Remplacer
UUID
dans la commande suivante avec l'UUID réel (par exemple,5492de89-1497-4aa0-96eb-bcdd55e1195c1
).web03
est le nom d'hôte du serveur que vous souhaitez ajouter.nova network-associate-host UUID web03
Vous pouvez également utiliser le panneau Rackspace Cloud Control pour associer un serveur à votre réseau existant.
Lorsque vous avez terminé, le nouveau serveur doit avoir l'adresse IP 192.168.0.3 sur l'interface /dev/eth3
. C'est l'adresse que GlusterFS utilise pour communiquer avec l'autre serveur.
Formater la partition et installer GlusterFS
Utilisez les étapes suivantes pour formater la partition du serveur et installer GlusterFS :
-
Utilisez Secure Shell (SSH) pour vous connecter au serveur.
-
En suivant les instructions de l'article précédent, installez GlusterFS et formatez les
bricks
partitionner comme suit :apt-get update apt-get install -y glusterfs-server glusterfs-client apt-get install -y xfsprogs mkfs.xfs /dev/xvde1 mkdir /srv/.bricks echo /dev/xvde1 /srv/.bricks xfs rw 0 1 >> /etc/fstab mount /srv/.bricks ufw allow in on eth2
Incorporer la nouvelle brique dans le volume Gluster
-
Utilisez SSH pour vous connecter à
web01
ouweb02
. -
La commande suivante indique au volume GlusterFS de faire confiance au nouveau serveur :
root@web02 :~# gluster peer probe 192.168.0.3 peer probe: success
-
Ajoutez la brique dans le volume en utilisant les commandes suivantes :
root@web02 :~# gluster volume add-brick www replica 3 192.168.0.3:/srv/.bricks/www volume add-brick: success
La commande comprend les parties suivantes :
gluster
- La commande est pour GlusterFS.volume
- La commande est liée à un volume.add-brick
- Vous ajoutez une brique au volume.www
- C'est le nom du volume.replica 3
- Après avoir ajouté cette brique, le volume conserve au moins trois copies de chaque fichier, une copie par brique, et dans ce cas, une copie par serveur (car il n'y a qu'une seule brique sur chaque serveur).192.168.0.3:/srv/.bricks/www
- Cette partie de la commande est l'adresse IP du serveur Gluster, suivie du chemin absolu vers l'endroit où les données de la brique sont stockées.
Stratégies de stockage de volume
GlusterFS propose les types de stratégies de stockage de volume suivants :
- Distribué - Un fichier est sur une brique et le fichier suivant est sur la brique suivante. Cette stratégie vous donne plus d'espace car votre volume est la somme de toutes les briques.
- Répliqué (Recommandé ) - Chaque fichier est copié sur chaque serveur.
- Rayé - Les fichiers sont découpés en morceaux, et un morceau est écrit sur la première brique, un morceau est écrit sur la deuxième brique, et ainsi de suite.
Vous pouvez également combiner des stratégies, par exemple répliquées et distribuées, comme illustré dans l'exemple suivant :
gluster volume create www replica 2 transport tcp
192.168.0.1:/srv/.bricks/www 192.168.0.2:/srv/.bricks/www
192.168.0.3:/srv/.bricks/www 192.168.0.4:/srv/.bricks/www
Le numéro de réplique est le nombre de briques qui composent un jeu de répliques, c'est-à-dire qui contiennent une copie complète des fichiers. Dans l'exemple précédent 192.168.0.1
et 192.168.0.2
détenir une copie complète des fichiers, comme le font 192.168.0.3
et 192.168.0.4
. L'ordre des briques est important. Si vous l'avez commandé 1,3,2,4, alors 1 et 3 et 2 et 4 contiendraient les fichiers complets. Si 1 et 2 tombaient en panne, vous perdriez la moitié de vos fichiers et auriez deux copies de l'autre moitié.
La combinaison d'un volume répliqué et distribué vous donne un peu plus de vitesse et plus d'espace en échange de la sécurité des données.
Une combinaison de volumes entrelacés et répliqués est recommandée uniquement lorsque vous avez des fichiers plus gros qu'une brique ou de nombreux fichiers volumineux qui subissent de nombreuses opérations d'E/S.
Afficher l'état des serveurs
Les commandes suivantes vous aident à en savoir plus sur ce qui se passe dans votre cluster. Vous utiliserez ces commandes dans les articles ultérieurs de GlusterFS.
statut de pair
Si vous exécutez la commande suivante à partir de n'importe quel serveur, elle affiche tous les serveurs homologues qu'elle connaît :
root@web01:~# gluster peer status
Number of Peers: 2
Hostname: 192.168.0.3
Uuid: ba502dc2-447f-466a-a732-df989e71b551
State: Peer in Cluster (Connected)
Hostname: 192.168.0.2
Uuid: 56e02356-d2c3-4787-ae25-6b46e867751a
State: Peer in Cluster (Connected)
état du volume
La commande suivante est une commande de dépannage utile. Il donne des informations sur tous les volumes et tâches GlusterFS en file d'attente et en cours.
root@web03:~# gluster volume status
Status of volume: www
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 192.168.0.2:/srv/.bricks/www 49152 Y 13673
Brick 192.168.0.1:/srv/.bricks/www 49152 Y 10249
Brick 192.168.0.3:/srv/.bricks/www 49153 Y 13783
NFS Server on localhost 2049 Y 13793
Self-heal Daemon on localhost N/A Y 13800
NFS Server on 192.168.0.2 2049 Y 13900
Self-heal Daemon on 192.168.0.2 N/A Y 13907
NFS Server on 192.168.0.1 2049 Y 10286
Self-heal Daemon on 192.168.0.1 N/A Y 10293
There are no active volume tasks
Retirer une brique
Vous pouvez réduire les volumes selon vos besoins pendant que le cluster est en ligne et disponible. Utilisez la commande suivante pour supprimer une brique :
# gluster volume remove-brick <volName> <brickName> start
Exécution de remove-brick
avec le start
déclenche automatiquement une opération de rééquilibrage pour migrer les données des briques supprimées vers le reste du volume.
L'exemple suivant supprime la brique 2 :
root@web01:~# gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www start
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success
Cette commande indique à GlusterFS que le www
volume ne conservera désormais que 2 copies de chaque fichier. Il vous avertit que vous risquez de perdre des données et vous invite à continuer.
Si vous souhaitez supprimer une brique sur un volume distribué, vous devez plutôt exécuter la commande suivante :
root@web01:~# gluster volume remove-brick www 192.168.0.2:/srv/.bricks/www start
Vous pouvez voir l'état de la remove-brick
opération à l'aide de la commande suivante :
root@web01:~# watch gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www status
Rajouter une brique
Cette section explique comment rajouter une brique.
Essayez de rajouter web02 dans le volume, comme suit :
root@web02:~# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: failed:
Ça a échoué. Consultez les journaux sur web02 pour voir pourquoi la commande a échoué :
root@web02:/srv/.bricks# tail /var/log/glusterfs/*log -f | grep E
[2014-05-25 00:19:04.954410] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:19:12.958620] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:40:46.923747] E [glusterd-utils.c:5377:glusterd_is_path_in_use] 0-management: /srv/.bricks/www or a prefix of it is already part of a volume
[2014-05-25 00:40:46.923789] E [glusterd-op-sm.c:3719:glusterd_op_ac_stage_op] 0-management: Stage failed on operation 'Volume Add brick', Status : -1
Le problème est que /srv/.bricks/www
contient toujours les données de l'époque où web02 était membre du volume.
Vous avez besoin d'un endroit propre pour stocker les données. Le moyen le plus simple de nettoyer consiste simplement à supprimer toutes les données à l'aide de la commande suivante :
root@web02:~# rm -rf /srv/.bricks/www
Avertissement :Veillez à effectuer cette action sur le bon hôte (web02, qui est actuellement hors volume). Si vous faites une erreur, le prochain article vous montre comment récupérer. Les actions alternatives consistent à déplacer le www
répertoire à l'écart, ou pour ajouter la brique en utilisant un autre répertoire, tel que www2
.
Maintenant que vous disposez d'un emplacement propre pour stocker la brique, l'ajout de la brique est réussi :
root@web01:/srv# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: success
Étapes suivantes
- Comment récupérer d'un serveur défaillant dans une baie GlusterFS