4.8. Configuration des clôtures
La configuration de la clôture permet d'isoler automatiquement un nœud défaillant de votre cluster AWS, ce qui empêche le nœud de consommer les ressources du cluster ou d'en compromettre la fonctionnalité.
Vous pouvez configurer la clôture sur un cluster AWS à l'aide de plusieurs méthodes. Cette section fournit les informations suivantes :
- Une procédure standard pour la configuration par défaut.
- Une procédure de configuration alternative pour une configuration plus avancée, axée sur l'automatisation.
Procédure standard
Saisissez la requête de métadonnées AWS suivante pour obtenir l'ID d'instance de chaque nœud. Vous avez besoin de ces identifiants pour configurer le dispositif de clôture. Voir Métadonnées d'instance et données utilisateur pour plus d'informations.
# echo $(curl -s http://169.254.169.254/latest/meta-data/instance-id)
Exemple :
[root@ip-10-0-0-48 ~]# echo $(curl -s http://169.254.169.254/latest/meta-data/instance-id) i-07f1ac63af0ec0ac6
Entrez la commande suivante pour configurer le périphérique de clôture. Utilisez la commande
pcmk_host_map
pour faire correspondre le nom d'hôte RHEL à l'ID d'instance. Utilisez la clé d'accès AWS et la clé d'accès secrète AWS que vous avez configurées précédemment.# pcs stonith \ create <name> fence_aws access_key=access-key secret_key=<secret-access-key> \ region=<region> pcmk_host_map="rhel-hostname-1:Instance-ID-1;rhel-hostname-2:Instance-ID-2;rhel-hostname-3:Instance-ID-3" \ power_timeout=240 pcmk_reboot_timeout=480 pcmk_reboot_retries=4
Exemple :
[root@ip-10-0-0-48 ~]# pcs stonith \ create clusterfence fence_aws access_key=AKIAI123456MRMJA secret_key=a75EYIG4RVL3hdsdAslK7koQ8dzaDyn5yoIZ/ \ region=us-east-1 pcmk_host_map="ip-10-0-0-48:i-07f1ac63af0ec0ac6;ip-10-0-0-46:i-063fc5fe93b4167b2;ip-10-0-0-58:i-08bd39eb03a6fd2c7" \ power_timeout=240 pcmk_reboot_timeout=480 pcmk_reboot_retries=4
Procédure alternative
Obtenez l'ID VPC du cluster.
# aws ec2 describe-vpcs --output text --filters "Name=tag:Name,Values=clustername-vpc" --query 'Vpcs[*].VpcId' vpc-06bc10ac8f6006664
En utilisant l'ID VPC du cluster, obtenez les instances VPC.
$ aws ec2 describe-instances --output text --filters "Name=vpc-id,Values=vpc-06bc10ac8f6006664" --query 'Reservations[*].Instances[*].{Name:Tags[? Key==
Name
]|[0].Value,Instance:InstanceId}' | grep "\-node[a-c]" i-0b02af8927a895137 clustername-nodea-vm i-0cceb4ba8ab743b69 clustername-nodeb-vm i-0502291ab38c762a5 clustername-nodec-vmUtilisez les identifiants d'instance obtenus pour configurer la clôture sur chaque nœud du cluster. Par exemple :
[root@nodea ~]# CLUSTER=clustername && pcs stonith create fence${CLUSTER} fence_aws access_key=XXXXXXXXXXXXXXXXXXXX pcmk_host_map=$(for NODE \ in node{a..c}; do ssh ${NODE} "echo -n \${HOSTNAME}:\$(curl -s http://169.254.169.254/latest/meta-data/instance-id)\;"; done) \ pcmk_reboot_retries=4 pcmk_reboot_timeout=480 power_timeout=240 region=xx-xxxx-x secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [root@nodea ~]# pcs stonith config fence${CLUSTER} Resource: clustername (class=stonith type=fence_aws) Attributes: access_key=XXXXXXXXXXXXXXXXXXXX pcmk_host_map=nodea:i-0b02af8927a895137;nodeb:i-0cceb4ba8ab743b69;nodec:i-0502291ab38c762a5; pcmk_reboot_retries=4 pcmk_reboot_timeout=480 power_timeout=240 region=xx-xxxx-x secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX Operations: monitor interval=60s (clustername-monitor-interval-60s)
Vérification
Testez l'agent de clôture pour l'un des nœuds de la grappe.
# pcs stonith fence awsnodename
NoteLa réponse à la commande peut mettre plusieurs minutes à s'afficher. Si vous observez la session de terminal active pour le nœud clôturé, vous constaterez que la connexion de terminal est immédiatement interrompue après la saisie de la commande de clôture.
Exemple :
[root@ip-10-0-0-48 ~]# pcs stonith fence ip-10-0-0-58 Node: ip-10-0-0-58 fenced
Vérifier l'état pour s'assurer que le nœud est clôturé.
# pcs status
Exemple :
[root@ip-10-0-0-48 ~]# pcs status Cluster name: newcluster Stack: corosync Current DC: ip-10-0-0-46 (version 1.1.18-11.el7-2b07d5c5a9) - partition with quorum Last updated: Fri Mar 2 19:55:41 2018 Last change: Fri Mar 2 19:24:59 2018 by root via cibadmin on ip-10-0-0-46 3 nodes configured 1 resource configured Online: [ ip-10-0-0-46 ip-10-0-0-48 ] OFFLINE: [ ip-10-0-0-58 ] Full list of resources: clusterfence (stonith:fence_aws): Started ip-10-0-0-46 Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled
Démarrez le nœud qui a été clôturé à l'étape précédente.
# pcs cluster start awshostname
Vérifier l'état pour s'assurer que le nœud a démarré.
# pcs status
Exemple :
[root@ip-10-0-0-48 ~]# pcs status Cluster name: newcluster Stack: corosync Current DC: ip-10-0-0-46 (version 1.1.18-11.el7-2b07d5c5a9) - partition with quorum Last updated: Fri Mar 2 20:01:31 2018 Last change: Fri Mar 2 19:24:59 2018 by root via cibadmin on ip-10-0-0-48 3 nodes configured 1 resource configured Online: [ ip-10-0-0-46 ip-10-0-0-48 ip-10-0-0-58 ] Full list of resources: clusterfence (stonith:fence_aws): Started ip-10-0-0-46 Daemon Status: corosync: active/disabled pacemaker: active/disabled pcsd: active/enabled