10.4. Test d'un dispositif de clôture
La clôture est une partie fondamentale de l'infrastructure Red Hat Cluster et il est important de valider ou de tester le bon fonctionnement de la clôture.
Procédure
Utilisez la procédure suivante pour tester un dispositif de clôture.
Utilisez ssh, telnet, HTTP ou tout autre protocole à distance utilisé pour vous connecter au dispositif afin de vous connecter manuellement et de tester le dispositif de clôture ou de voir les résultats obtenus. Par exemple, si vous allez configurer la clôture pour un périphérique IPMI, essayez de vous connecter à distance à l'aide de
ipmitool. Prenez note des options utilisées lors de la connexion manuelle, car ces options peuvent être nécessaires lors de l'utilisation de l'agent de clôture.Si vous ne parvenez pas à vous connecter au dispositif de clôture, vérifiez que le dispositif est pingable, qu'aucune configuration de pare-feu, par exemple, n'empêche l'accès au dispositif de clôture, que l'accès à distance est activé sur le dispositif de clôture et que les informations d'identification sont correctes.
Exécutez l'agent de clôture manuellement, à l'aide du script de l'agent de clôture. Il n'est pas nécessaire que les services du cluster soient en cours d'exécution, vous pouvez donc effectuer cette étape avant que le périphérique ne soit configuré dans le cluster. Cela permet de s'assurer que le dispositif de clôture répond correctement avant de poursuivre.
NoteCes exemples utilisent le script de l'agent de clôture
fence_ipmilanpour un périphérique iLO. L'agent de clôture que vous utiliserez et la commande qui appelle cet agent dépendent du matériel de votre serveur. Vous devez consulter la page de manuel de l'agent de clôture que vous utilisez pour déterminer les options à spécifier. Vous devrez généralement connaître le nom d'utilisateur et le mot de passe du périphérique de clôture, ainsi que d'autres informations relatives au périphérique de clôture.L'exemple suivant montre le format à utiliser pour exécuter le script de l'agent de clôture
fence_ipmilanavec le paramètre-o statusafin de vérifier l'état de l'interface du dispositif de clôture sur un autre nœud sans le clôturer. Cela vous permet de tester le dispositif et de le faire fonctionner avant de tenter de redémarrer le nœud. Lors de l'exécution de cette commande, vous devez spécifier le nom et le mot de passe d'un utilisateur iLO disposant d'autorisations de mise sous tension et hors tension pour le dispositif iLO.fence_ipmilan -a ipaddress -l username -p password -o status
# fence_ipmilan -a ipaddress -l username -p password -o statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow L'exemple suivant présente le format à utiliser pour exécuter le script de l'agent de clôture
fence_ipmilanavec le paramètre-o reboot. L'exécution de cette commande sur un nœud redémarre le nœud géré par ce dispositif iLO.fence_ipmilan -a ipaddress -l username -p password -o reboot
# fence_ipmilan -a ipaddress -l username -p password -o rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si l'agent de clôture n'a pas réussi à effectuer correctement une action d'état, d'arrêt, de mise en marche ou de redémarrage, vous devez vérifier le matériel, la configuration du dispositif de clôture et la syntaxe de vos commandes. En outre, vous pouvez exécuter le script de l'agent de clôture avec la sortie de débogage activée. La sortie de débogage est utile pour certains agents de clôture afin de voir où, dans la séquence des événements, le script de l'agent de clôture échoue lors de la connexion au dispositif de clôture.
fence_ipmilan -a ipaddress -l username -p password -o status -D /tmp/$(hostname)-fence_agent.debug
# fence_ipmilan -a ipaddress -l username -p password -o status -D /tmp/$(hostname)-fence_agent.debugCopy to Clipboard Copied! Toggle word wrap Toggle overflow Lorsque vous diagnostiquez une défaillance, vous devez vous assurer que les options que vous avez spécifiées lors de la connexion manuelle au dispositif de clôture sont identiques à celles que vous avez transmises à l'agent de clôture à l'aide du script de l'agent de clôture.
Pour les agents de clôture qui prennent en charge une connexion cryptée, vous pouvez voir une erreur due à l'échec de la validation du certificat, ce qui nécessite que vous fassiez confiance à l'hôte ou que vous utilisiez le paramètre
ssl-insecurede l'agent de clôture. De même, si SSL/TLS est désactivé sur le périphérique cible, vous devrez peut-être en tenir compte lors de la définition des paramètres SSL pour l'agent de clôture.NoteSi l'agent de clôture testé est
fence_drac,fence_iloou un autre agent de clôture pour un dispositif de gestion des systèmes qui continue d'échouer, essayez de nouveaufence_ipmilan. La plupart des cartes de gestion des systèmes prennent en charge la connexion à distance IPMI et le seul agent de clôture pris en charge estfence_ipmilan.Une fois que le dispositif de clôture a été configuré dans le cluster avec les mêmes options que celles qui ont fonctionné manuellement et que le cluster a été démarré, testez la clôture avec la commande
pcs stonith fenceà partir de n'importe quel nœud (ou même plusieurs fois à partir de différents nœuds), comme dans l'exemple suivant. La commandepcs stonith fencelit la configuration du cluster à partir de la CIB et appelle l'agent fence tel qu'il est configuré pour exécuter l'action de clôture. Cela permet de vérifier que la configuration de la grappe est correcte.pcs stonith fence node_name
# pcs stonith fence node_nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow Si la commande
pcs stonith fencefonctionne correctement, cela signifie que la configuration de clôture de la grappe devrait fonctionner lorsqu'un événement de clôture se produit. Si la commande échoue, cela signifie que la gestion de la grappe ne peut pas invoquer le dispositif de clôture par le biais de la configuration qu'elle a récupérée. Vérifiez les points suivants et mettez à jour la configuration de votre cluster si nécessaire.- Vérifiez la configuration de votre clôture. Par exemple, si vous avez utilisé une carte d'hôte, vous devez vous assurer que le système peut trouver le nœud à l'aide du nom d'hôte que vous avez fourni.
- Vérifiez si le mot de passe et le nom d'utilisateur du périphérique contiennent des caractères spéciaux susceptibles d'être mal interprétés par l'interpréteur de commandes bash. Veiller à ce que les mots de passe et les noms d'utilisateur soient entourés de guillemets peut résoudre ce problème.
-
Vérifiez que vous pouvez vous connecter à l'appareil en utilisant l'adresse IP ou le nom d'hôte exact que vous avez spécifié dans la commande
pcs stonith. Par exemple, si vous indiquez le nom d'hôte dans la commande stonith mais que vous testez en utilisant l'adresse IP, il ne s'agit pas d'un test valide. Si le protocole utilisé par le dispositif de clôture vous est accessible, utilisez ce protocole pour essayer de vous connecter au dispositif. Par exemple, de nombreux agents utilisent ssh ou telnet. Vous devez essayer de vous connecter au dispositif avec les informations d'identification que vous avez fournies lors de la configuration du dispositif, pour voir si vous obtenez une invite valide et si vous pouvez vous connecter au dispositif.
Si vous déterminez que tous vos paramètres sont appropriés mais que vous avez toujours des difficultés à vous connecter à votre dispositif de clôture, vous pouvez vérifier la journalisation sur le dispositif de clôture lui-même, si le dispositif le permet, qui montrera si l'utilisateur s'est connecté et quelle commande l'utilisateur a émise. Vous pouvez également rechercher dans le fichier
/var/log/messagesles occurrences de stonith et d'error, qui peuvent donner une idée de ce qui se passe, mais certains agents peuvent fournir des informations supplémentaires.
Une fois que les tests du dispositif de clôture fonctionnent et que la grappe est opérationnelle, testez une défaillance réelle. Pour ce faire, effectuez une action dans le cluster qui devrait déclencher une perte de jeton.
Démonter un réseau. La manière dont vous démontez un réseau dépend de votre configuration spécifique. Dans de nombreux cas, vous pouvez retirer physiquement les câbles réseau ou d'alimentation de l'hôte. Pour plus d'informations sur la simulation d'une panne de réseau, voir Quelle est la bonne façon de simuler une panne de réseau sur un cluster RHEL ?
NoteIl n'est pas recommandé de désactiver l'interface réseau de l'hôte local plutôt que de déconnecter physiquement le réseau ou les câbles d'alimentation pour tester les clôtures, car cela ne simule pas avec précision une défaillance typique dans le monde réel.
Bloquer le trafic corosync entrant et sortant à l'aide du pare-feu local.
L'exemple suivant bloque corosync, en supposant que le port par défaut de corosync est utilisé, que
firewalldest utilisé comme pare-feu local et que l'interface réseau utilisée par corosync se trouve dans la zone de pare-feu par défaut :firewall-cmd --direct --add-rule ipv4 filter OUTPUT 2 -p udp --dport=5405 -j DROP firewall-cmd --add-rich-rule='rule family="ipv4" port port="5405" protocol="udp" drop
# firewall-cmd --direct --add-rule ipv4 filter OUTPUT 2 -p udp --dport=5405 -j DROP # firewall-cmd --add-rich-rule='rule family="ipv4" port port="5405" protocol="udp" dropCopy to Clipboard Copied! Toggle word wrap Toggle overflow Simulez un crash et faites paniquer votre machine avec
sysrq-trigger. Notez toutefois que le déclenchement d'une panique du noyau peut entraîner une perte de données ; il est recommandé de désactiver d'abord les ressources de votre cluster.echo c > /proc/sysrq-trigger
# echo c > /proc/sysrq-triggerCopy to Clipboard Copied! Toggle word wrap Toggle overflow