View a markdown version of this page

Essayer de mettre à jour un cluster - AWS ParallelCluster

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Essayer de mettre à jour un cluster

La section suivante propose des solutions de résolution des problèmes susceptibles de se produire lorsque vous essayez de mettre à jour un cluster.

pcluster update-clusterla commande ne s'exécute pas localement

Consultez le fichier ~/.parallelcluster/pcluster-cli.log de votre système de fichiers local pour obtenir des informations sur les défaillances.

Voir clusterStatus c'est UPDATE_FAILED avec pcluster describe-cluster commande

Provoquant les racines

Pour identifier la cause première de la défaillance, il faut commencer par examiner les événements liés à la pile de clusters et /var/log/chef-client.log au nœud principal.

Cela peut être dû au fait qu'au moins un nœud du cluster n'a pas appliqué la mise à jour. Vous pouvez récupérer la liste des nœuds qui n'ont pas pu être mis à jour /var/log/chef-client.log dans le nœud principal en recherchant Check cluster readiness dans le journal.

Vérifiez si votre problème est mentionné dans la section Problèmes GitHub connus AWS ParallelCluster sur on GitHub.

Prévenir

La mise à jour d'un cluster peut échouer si au moins un nœud du cluster n'a pas correctement appliqué la mise à jour. Pour réduire le risque d'échec de la mise à jour du cluster, nous vous recommandons de mettre fin aux nœuds défectueux avant de lancer la mise à jour. Les nœuds de calcul bloqués plus longtemps que la durée d'épilogue prévue constituent COMPLETING un exemple de nœuds susceptibles d'être cassés. Pour détecter ces nœuds, vous pouvez exécuter la commande suivante en adaptant la threshold valeur à vos besoins (la valeur doit être supérieure à la durée maximale prévue pour vos epilogs).

$ scontrol show nodes --json | jq -r --argjson threshold 60 ' .nodes[] | select(.state | index("COMPLETING")) | select((now - .last_busy.number) > $threshold) | .name '

Récupération

En cas d'échec de la mise à jour, le rollback est le mécanisme censé rétablir l'état du cluster.

Si le rollback échoue, l'état du cluster n'est pas déterministe. Dans ce cas, il se peut que cela clustermgtd ait été arrêté pour éviter l'amplification des défaillances. Nous vous recommandons de le démarrer en exécutant la commande suivante sur le nœud principal. Adaptez la version de Python à celle livrée avec votre AWS ParallelCluster version :

$ /opt/parallelcluster/pyenv/versions/3.12.11/envs/cookbook_virtualenv/bin/supervisorctl start clustermgtd

Le délai de mise à jour du cluster a expiré

Il peut s'agir d'un problème lié à l'cfn-hupinexécution. Si le cfn-hup démon est arrêté pour une cause externe, il n'est pas redémarré automatiquement. S'il cfn-hup n'est pas en cours d'exécution, lors d'une mise à jour du cluster, la CloudFormation pile lance le processus de mise à jour comme prévu, mais la procédure de mise à jour n'est pas activée sur le nœud principal et le déploiement de la pile finit par expirer. Pour plus d'informations, consultez Résolution d'un délai d'expiration de mise à jour du cluster en cas cfn-hup d'inexécution la section pour résoudre le problème et résoudre le problème.