Résoudre les problèmes liés aux pools en cluster
Les pools XenServer qui utilisent GFS2 pour provisionner finement leur stockage de blocs partagés sont mis en cluster. Ces pools se comportent différemment des pools qui utilisent le stockage basé sur des fichiers partagés ou LVM avec le stockage par blocs partagés. Par conséquent, certains problèmes spécifiques peuvent survenir dans les pools en cluster XenServer et les environnements GFS2.
Utilisez les informations suivantes pour résoudre les problèmes mineurs qui peuvent survenir lors de l’utilisation de cette fonctionnalité.
Tous mes hôtes peuvent s’envoyer des pings les uns les autres, mais je ne peux pas créer de cluster. Pourquoi?
Le mécanisme de clustering utilise des ports spécifiques. Si vos hôtes ne peuvent pas communiquer sur ces ports (même s’ils peuvent communiquer sur d’autres ports), vous ne pouvez pas activer le clustering pour le pool.
Assurez-vous que les hôtes du pool peuvent communiquer sur les ports suivants :
- TCP : 8892, 8896, 21064
- UDP : 5404, 5405 (non multidiffusion)
S’il existe des pare-feu ou des pare-feu similaires entre les hôtes du pool, assurez-vous que ces ports sont ouverts.
Si vous avez déjà configuré HA dans le pool, désactivez-le avant d’activer le clustering.
Pourquoi est-ce que je reçois une erreur lorsque j’essaie de joindre un nouvel hôte à un pool en cluster existant ?
Lorsque le clustering est activé sur un pool, chaque modification d’appartenance au pool doit être approuvée par chaque membre du cluster pour qu’elle puisse réussir. Si un membre du cluster n’est pas joignable, les opérations qui modifient l’appartenance au cluster (telles que l’ajout ou la suppression d’hôtes) échouent.
Pour ajouter votre nouvel hôte au pool en cluster :
-
Assurez-vous que tous vos hôtes sont en ligne et peuvent être contactés.
-
Assurez-vous que les hôtes du pool peuvent communiquer sur les ports suivants :
- TCP : 8892, 8896, 21064
- UDP : 5404, 5405 (non multidiffusion)
-
Assurez-vous que l’hôte de jonction dispose d’une adresse IP allouée sur la carte réseau qui rejoint le réseau de cluster du pool.
-
Assurez-vous qu’aucun hôte du pool n’est hors ligne lorsqu’un nouvel hôte tente de rejoindre le pool en cluster.
-
Si un hôte hors ligne ne peut pas être récupéré, marquez-le comme mort pour le supprimer du cluster. Pour plus d’informations, consultez Un hôte de mon pool en cluster est hors ligne et je ne peux pas le récupérer. Comment supprimer l’hôte de mon cluster ?
Que dois-je faire si certains membres du pool cluster ne rejoignent pas automatiquement le cluster ?
Ce problème peut être dû au fait que les membres du pool cluster perdent la synchronisation.
Pour resynchroniser les membres du pool en cluster, utilisez la commande suivante :
xe cluster-pool-resync cluster-uuid=<cluster_uuid>
Si le problème persiste, vous pouvez essayer de rattacher le GFS2 SR. Vous pouvez effectuer cette tâche à l’aide de l’interface de ligne de commande xe ou via XenCenter.
Reconnectez le GFS2 SR à l’aide de l’interface de ligne de commande xe :
-
Détachez le GFS2 SR de la piscine. Sur chaque hôte, exécutez la commande xe CLI
xe pbd-unplug uuid=<uuid_of_pbd>. -
Désactivez le pool en cluster à l’aide de la commande
xe cluster-pool-destroy cluster-uuid=<cluster_uuid>Si la commande précédente échoue, vous pouvez désactiver de force un pool en cluster en exécutant
xe cluster-host-force-destroy uuid=<cluster_host>sur chaque hôte du pool. -
Réactivez le pool en cluster à l’aide de la commande
xe cluster-pool-create network-uuid={\[--lt--]}network_uuid> [pile de cluster=cluster_stack\] \[token-timeout=token_timeout\] [coefficient-timeout-token=token_timeout_coefficient] -
Rattachez le GFS2 SR en exécutant la commande
xe pbd-plug uuid=<uuid_of_pbd>sur chaque hôte.
Vous pouvez également utiliser XenCenter pour reconnecter le GFS2 SR :
- Dans la piscine Stockage , faites un clic droit sur le GFS2 SR et sélectionnez Détacher….
- Dans la barre d’outils, sélectionnez Mare > Propriétés.
- Dans le Clustering Tab, désélectionnez Activer le clustering.
- Cliquer D’ACCORD pour appliquer votre modification.
- Dans la barre d’outils, sélectionnez Mare > Propriétés.
- Dans le Clustering , sélectionnez Activer le clustering et choisissez le réseau à utiliser pour le clustering.
- Cliquer D’ACCORD pour appliquer votre modification.
- Dans la piscine Stockage , faites un clic droit sur le GFS2 SR et sélectionnez Réparer.
Comment savoir si mon hôte s’est auto-clôturé ?
Si votre hôte s’est auto-isolé, il se peut qu’il ait rejoint le cluster lors de son redémarrage. Pour voir si un hôte s’est auto-clôturé et s’est rétabli, vous pouvez consulter le /var/opt/xapi-clusterd/boot-times pour voir les heures de démarrage de l’hôte. S’il y a des heures de début dans le fichier que vous ne vous attendiez pas à voir, l’hôte s’est auto-clôturé.
Pourquoi mon hôte est-il hors ligne ? Comment puis-je le récupérer ?
Il existe de nombreuses raisons possibles pour qu’un hôte se déconnecte. Selon la raison, l’hôte peut être récupéré ou non.
Les raisons suivantes pour lesquelles un hôte est hors ligne sont plus courantes et peuvent être résolues en récupérant l’hôte :
- Arrêt propre
- Arrêt forcé
- Panne de courant temporaire
- Redémarrer
Les raisons suivantes pour lesquelles un hôte est hors ligne sont moins courantes :
- Défaillance matérielle permanente de l’hôte
- Panne permanente de l’alimentation de l’hôte
- Partition réseau
- Défaillance du commutateur réseau
Ces problèmes peuvent être résolus en remplaçant le matériel ou en marquant les hôtes défaillants comme morts.
Un hôte de mon pool en cluster est hors ligne et je ne peux pas le récupérer. Comment supprimer l’hôte de mon cluster ?
Vous pouvez demander au cluster d’oublier l’hôte. Cette action supprime définitivement l’hôte du cluster et diminue le nombre d’hôtes actifs requis pour le quorum.
Pour supprimer un hôte irrécupérable, utilisez la commande suivante :
xe host-forget uuid=<host_uuid>
Cette commande supprime définitivement l’hôte du cluster et diminue le nombre d’hôtes actifs requis pour le quorum.
Remarque :
Si l’hôte n’est pas hors ligne, cette commande peut entraîner une perte de données. Vous êtes invité à confirmer que vous êtes sûr avant de poursuivre la commande.
Une fois qu’un hôte est oublié, il ne peut pas être rajouté au cluster. Pour ajouter à nouveau cet hôte au cluster, vous devez effectuer une nouvelle installation de XenServer sur l’hôte.
J’ai réparé un hôte qui était marqué comme mort. Comment puis-je le rajouter à mon cluster ?
Un hôte XenServer marqué comme mort ne peut pas être rajouté au cluster. Pour rajouter ce système dans le cluster, vous devez effectuer une nouvelle installation de XenServer. Cette nouvelle installation apparaît au cluster en tant que nouvel hôte.
Que dois-je faire si mon cluster continue de perdre le quorum et que ses hôtes continuent de se clôturer ?
Si un ou plusieurs hôtes XenServer du cluster entrent dans une boucle de clôture en raison d’une perte continue de quorum, vous pouvez démarrer l’hôte avec l’argument de ligne de commande nocluster dom0. Connectez-vous à la console physique ou série de l’hôte et sur la ligne de commande dom0, exécutez la commande suivante : /opt/xensource/libexec/xen-cmdline --set-dom0 nocluster. La prochaine fois que l’hôte redémarre, il ne tente pas de rejoindre le cluster.
Après avoir diagnostiqué et résolu le problème avec l’hôte, vous pouvez activer le clustering en supprimant l’argument nocluster . Pour ce faire, exécutez la commande suivante : /opt/xensource/libexec/xen-cmdline --remove-dom0 nocluster. Redémarrez votre hôte pour que la modification prenne effet.
Pour plus d’informations sur l’accès aux hôtes via la console série et la modification de la ligne de commande Xen, consultez Dépannage avancé.
Que se passe-t-il lorsque le coordinateur de pool est redémarré dans un pool en cluster ?
Dans la plupart des cas, le comportement lorsque le coordinateur de pool est arrêté ou redémarré dans un pool en cluster est le même que celui lorsqu’un autre membre du pool s’arrête ou redémarre.
La façon dont l’hôte est arrêté ou redémarré peut affecter le quorum du pool en cluster. Pour plus d’informations sur le quorum, voir Quorum.
La seule différence de comportement dépend de l’activation ou non de HA dans votre pool :
- Si HA est activé, un nouveau coordinateur est sélectionné et le service général est maintenu.
- Si HA n’est pas activé, il n’y a pas de coordinateur pour le pool. Les machines virtuelles en cours d’exécution sur les hôtes restants continuent de s’exécuter. La plupart des opérations administratives ne sont pas disponibles tant que le coordinateur n’a pas redémarré.
Pourquoi mon pool a-t-il disparu après qu’un hôte du pool en cluster a été forcé de s’arrêter ?
Si vous arrêtez un hôte normalement (et non de force), il est temporairement supprimé des calculs de quorum jusqu’à ce qu’il soit réactivé. Toutefois, si vous forcez l’arrêt d’un hôte ou s’il perd de l’alimentation, cet hôte est toujours pris en compte dans le calcul du quorum. Par exemple, si vous aviez un groupe de 3 hôtes et que vous en avez fermé de force 2, l’hôte restant clôture parce qu’il n’a plus de quorum.
Essayez de toujours arrêter proprement les hôtes d’un pool en cluster. Pour plus d’informations, consultez Gérer votre pool en cluster.
Pourquoi tous les hôtes du pool en cluster ont-ils redémarré en même temps ?
Tous les hôtes d’un cluster actif sont considérés comme ayant perdu le quorum lorsque le nombre d’hôtes contactables dans le pool est inférieur aux valeurs suivantes :
- Pour un pool avec un nombre pair d’hôtes : n/2
- Pour un pool avec un nombre impair d’hôtes : (n+1)/2
La lettre n indique le nombre total d’hôtes dans le pool en cluster. Pour plus d’informations sur le quorum, voir Quorum.
Dans ce cas, tous les hôtes se clôturent eux-mêmes et vous voyez tous les hôtes redémarrer.
Pour déterminer pourquoi le pool a perdu le quorum, les informations suivantes peuvent être utiles :
- Dans XenCenter, vérifiez l’icône Notifications pour l’heure du problème afin de voir s’il y a eu auto-clôture.
- Sur les hôtes du cluster, cochez
/var/opt/xapi-clusterd/boot-timespour voir si un redémarrage a eu lieu à un moment inattendu. - Dans
Crit.log, vérifiez si des messages d’auto-clôture sont affichés. -
Examinez le
dlm_tool statutsortie de commande pour les informations sur les clôtures.Exemple
dlm_tool statutsortie:dlm_tool status cluster nodeid 1 quorate 1 ring seq 8 8 daemon now 4281 fence_pid 0 node 1 M add 3063 rem 0 fail 0 fence 0 at 0 0 node 2 M add 3066 rem 0 fail 0 fence 0 at 0 0 <!--NeedCopy-->
Lors de la collecte des journaux pour le débogage, collectez des informations de diagnostic à partir de tous les hôtes du cluster. Dans le cas où un seul hôte s’est auto-clôturé, les autres hôtes du cluster sont plus susceptibles de disposer d’informations utiles.
Collectez des rapports complets sur l’état du serveur pour les hôtes de votre pool en cluster. Pour plus d’informations, consultez Rapports d’état du serveur XenServer.
Pourquoi ne puis-je pas récupérer mon pool cluster lorsque j’ai le quorum ?
Si vous disposez d’un pool en cluster avec un nombre pair d’hôtes, le nombre d’hôtes requis pour accomplir quorum est supérieur d’un au nombre d’hôtes requis pour retenir quorum. Pour plus d’informations sur le quorum, voir Quorum.
Si vous vous trouvez dans un pool pair et que vous avez récupéré la moitié des hôtes, vous devez récupérer un autre hôte avant de pouvoir récupérer le cluster.
Vous pouvez vérifier si votre cluster dispose du quorum en exécutant la commande suivante :
xe cluster-list params=is-quorate uuid=<cluster_id>
Pourquoi est-ce que je vois un Jeton non valide Erreur lors de la modification des paramètres du cluster ?
Lors de la mise à jour de la configuration de votre cluster, vous pouvez recevoir le message d’erreur suivant concernant un jeton non valide (« [[\"InternalError\ »,\"Jeton invalide\"]] »).
Vous pouvez résoudre ce problème en procédant comme suit :
-
(Facultatif) Sauvegardez la configuration actuelle du cluster en collectant un rapport d’état du serveur qui inclut les journaux xapi-clusterd et système.
-
Utilisez XenCenter pour détacher le SR GFS2 du pool en cluster.
Dans la piscine Stockage , faites un clic droit sur le GFS2 SR et sélectionnez Détacher….
-
Sur n’importe quel hôte du cluster, exécutez cette commande pour forcer la destruction du cluster :
xe cluster-pool-force-destroy cluster-uuid=<uuid> -
Utilisez XenCenter pour réactiver le clustering sur votre pool.
- Dans la barre d’outils, sélectionnez Mare > Propriétés.
- Dans le Clustering , sélectionnez Activer le clustering et choisissez le réseau à utiliser pour le clustering.
- Cliquer D’ACCORD pour appliquer votre modification
-
Utilisez XenCenter pour rattacher le GFS2 SR au pool
Dans la piscine Stockage , faites un clic droit sur le GFS2 SR et sélectionnez Réparer.
Dans cet article
- Tous mes hôtes peuvent s’envoyer des pings les uns les autres, mais je ne peux pas créer de cluster. Pourquoi?
- Pourquoi est-ce que je reçois une erreur lorsque j’essaie de joindre un nouvel hôte à un pool en cluster existant ?
- Que dois-je faire si certains membres du pool cluster ne rejoignent pas automatiquement le cluster ?
- Comment savoir si mon hôte s’est auto-clôturé ?
- Pourquoi mon hôte est-il hors ligne ? Comment puis-je le récupérer ?
- Un hôte de mon pool en cluster est hors ligne et je ne peux pas le récupérer. Comment supprimer l’hôte de mon cluster ?
- J’ai réparé un hôte qui était marqué comme mort. Comment puis-je le rajouter à mon cluster ?
- Que dois-je faire si mon cluster continue de perdre le quorum et que ses hôtes continuent de se clôturer ?
- Que se passe-t-il lorsque le coordinateur de pool est redémarré dans un pool en cluster ?
- Pourquoi mon pool a-t-il disparu après qu’un hôte du pool en cluster a été forcé de s’arrêter ?
- Pourquoi tous les hôtes du pool en cluster ont-ils redémarré en même temps ?
- Pourquoi ne puis-je pas récupérer mon pool cluster lorsque j’ai le quorum ?
- Pourquoi est-ce que je vois un Jeton non valide Erreur lors de la modification des paramètres du cluster ?