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.
Résolution des problèmes de dimensionnement
Cette section concerne les clusters installés à l'aide de la AWS ParallelCluster version 3.0.0 et ultérieure avec le planificateur de Slurm tâches. Pour plus d'informations sur la configuration de plusieurs files d'attente, consultezConfiguration de plusieurs files d'attente.
Si l'un de vos clusters en cours d'exécution rencontre des problèmes, mettez-le dans un STOPPED état en exécutant la commande suivante avant de commencer à résoudre les problèmes. Cela permet d'éviter des coûts imprévus.
$pcluster update-compute-fleet --cluster-namemycluster\ --status STOP_REQUESTED
Vous pouvez répertorier les flux de journaux disponibles depuis les nœuds du cluster à l'aide de la pcluster list-cluster-log-streams commande et en filtrant à l'aide private-dns-name de celui de l'un des nœuds défaillants ou du nœud principal :
$pcluster list-cluster-log-streams --cluster-namemycluster--regioneu-west-1\ --filters 'Name=private-dns-name,Values=ip-10-0-0-101'
Ensuite, vous pouvez récupérer le contenu du flux de journaux pour l'analyser en utilisant la pcluster get-cluster-log-events commande et en transmettant le contenu --log-stream-name correspondant à l'un des journaux clés mentionnés dans la section suivante :
$pcluster get-cluster-log-events --cluster-namemycluster\ --regioneu-west-1--log-stream-nameip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init
AWS ParallelCluster crée des flux de CloudWatch journaux de cluster dans des groupes de journaux. Vous pouvez consulter ces journaux dans les tableaux de bord personnalisés ou les groupes de journaux de la CloudWatch console. Pour plus d’informations, consultez Intégration à Amazon CloudWatch Logs et Tableau de CloudWatch bord Amazon.
Rubriques
Journaux clés pour le débogage
Le tableau suivant fournit une vue d'ensemble des journaux de clés pour le nœud principal :
-
/var/log/cfn-init.log- C'est le journal CloudFormation d'initialisation. Il contient toutes les commandes qui ont été exécutées lors de la configuration d'une instance. Utilisez-le pour résoudre les problèmes d'initialisation. -
/var/log/chef-client.log- Il s'agit du journal du client Chef. Il contient toutes les commandes qui ont été exécutées Chef/CINC. Utilisez-le pour résoudre les problèmes d'initialisation. -
/var/log/parallelcluster/slurm_resume.log- C'est unResumeProgramjournal. Il lance des instances pour les nœuds dynamiques. Utilisez-le pour résoudre les problèmes de lancement de nœuds dynamiques. -
/var/log/parallelcluster/slurm_suspend.log- Voici leSuspendProgramjournal. Il est appelé lorsque les instances sont terminées pour les nœuds dynamiques. Utilisez-le pour résoudre les problèmes de terminaison des nœuds dynamiques. Lorsque vous consultez ce journal, vous devez également consulter leclustermgtdjournal. -
/var/log/parallelcluster/clustermgtd- Voici leclustermgtdjournal. Il s'exécute en tant que démon centralisé qui gère la plupart des actions opérationnelles du cluster. Utilisez-le pour résoudre tout problème de lancement, de terminaison ou de fonctionnement du cluster. -
/var/log/slurmctld.log- Il s'agit du journal du démon de Slurm contrôle. AWS ParallelCluster ne prend pas de décisions de dimensionnement. Au contraire, il tente uniquement de lancer des ressources pour répondre aux Slurm exigences. Il est utile pour les problèmes de dimensionnement et d'allocation, les problèmes liés aux tâches et tout problème de lancement et de résiliation lié au planificateur. -
/var/log/parallelcluster/compute_console_output- Ce journal enregistre la sortie de console d'un sous-ensemble d'exemples de nœuds de calcul statiques qui se sont arrêtés de manière inattendue. Utilisez ce journal si les nœuds de calcul statiques se terminent et que les journaux des nœuds de calcul ne sont pas disponibles dans CloudWatch. Lecompute_console_output logcontenu que vous recevez est le même lorsque vous utilisez la console Amazon EC2 ou AWS CLI pour récupérer la sortie de la console d'instance.
Voici les journaux de clés pour les nœuds de calcul :
-
/var/log/cloud-init-output.log- Il s'agit du journal d'initialisation du cloud. Il contient toutes les commandes qui ont été exécutées lors de la configuration d'une instance. Utilisez-le pour résoudre les problèmes d'initialisation. -
/var/log/parallelcluster/computemgtd- Voici lecomputemgtdjournal. Il s'exécute sur chaque nœud de calcul pour surveiller le nœud dans le cas rare où leclustermgtddémon du nœud principal serait hors ligne. Utilisez-le pour résoudre les problèmes de résiliation imprévus. -
/var/log/slurmd.log- Il s'agit du journal du démon de Slurm calcul. Utilisez-le pour résoudre les problèmes d'initialisation et de panne de calcul.
Affichage d'InsufficientInstanceCapacityune erreur dans slurm_resume.log lorsque je ne parviens pas à gérer un travail, ou dans clustermgtd.log quand je ne parviens pas à créer un cluster
Si le cluster utilise un Slurm planificateur, cela signifie que vous rencontrez un problème de capacité insuffisante. S'il n'y a pas assez d'instances disponibles lorsqu'une demande de lancement d'instance est effectuée, une InsufficientInstanceCapacity erreur est renvoyée.
Pour ce qui est de la capacité d'instance statique, vous pouvez trouver l'erreur dans le clustermgtd journal à l'adresse/var/log/parallelcluster/clustermgtd.
Pour ce qui est de la capacité dynamique des instances, vous pouvez trouver l'erreur dans le ResumeProgram journal à l'adresse/var/log/parallelcluster/slurm_resume.log.
Le message ressemble à l'exemple suivant :
An error occurred (InsufficientInstanceCapacity) when calling the RunInstances/CreateFleet operation...
Selon votre cas d'utilisation, envisagez d'utiliser l'une des méthodes suivantes pour éviter de recevoir ce type de messages d'erreur :
-
Désactivez le groupe de placement s'il est activé. Pour de plus amples informations, veuillez consulter Groupes de placement et problèmes de lancement d'instance.
-
Réservez de la capacité pour les instances et lancez-les avec ODCR (On-Demand Capacity Reservations). Pour de plus amples informations, veuillez consulter Instances de lancement avec réservations On-Demand de capacité (ODCR).
-
Configurez plusieurs ressources de calcul avec différents types d'instances. Si votre charge de travail ne nécessite pas un type d'instance spécifique, vous pouvez tirer parti d'un basculement rapide en cas d'insuffisance de capacité en utilisant plusieurs ressources de calcul. Pour de plus amples informations, veuillez consulter Slurmbasculement rapide d'une capacité insuffisante du cluster.
-
Configurez plusieurs types d'instances dans la même ressource de calcul et tirez parti de l'allocation de plusieurs types d'instances. Pour plus d'informations sur la configuration de plusieurs instances, consultez Allocation de plusieurs types d'instances avec Slurm et Scheduling/SlurmQueues/ComputeResources/Instances.
-
Déplacez la file d'attente vers une autre zone de disponibilité en modifiant l'ID de sous-réseau dans la configuration du cluster Scheduling/SlurmQueues/Networking/SubnetIds.
-
Si votre charge de travail n'est pas étroitement liée, répartissez la file d'attente sur différentes zones de disponibilité. Pour plus d'informations sur la configuration de plusieurs sous-réseaux, consultez Scheduling//SlurmQueuesNetworking/SubnetIds.
Résolution des problèmes d'initialisation des nœuds
Cette section explique comment résoudre les problèmes d'initialisation des nœuds. Cela inclut les problèmes où le nœud ne parvient pas à démarrer, à démarrer ou à rejoindre un cluster.
Rubriques
Nœud principal
Journaux applicables :
-
/var/log/cfn-init.log -
/var/log/chef-client.log -
/var/log/parallelcluster/clustermgtd -
/var/log/parallelcluster/slurm_resume.log -
/var/log/slurmctld.log
Vérifiez les /var/log/chef-client.log journaux /var/log/cfn-init.log et ou les flux de journaux correspondants. Ces journaux contiennent toutes les actions qui ont été exécutées lors de la configuration du nœud principal. La plupart des erreurs qui se produisent lors de l'installation doivent comporter des messages d'erreur dans le /var/log/chef-client.log journal. Si OnNodeStart des OnNodeConfigured scripts sont spécifiés dans la configuration du cluster, vérifiez que le script s'exécute correctement via les messages du journal.
Lorsqu'un cluster est créé, le nœud principal doit attendre que les nœuds de calcul rejoignent le cluster avant de pouvoir rejoindre le cluster. De ce fait, si les nœuds de calcul ne parviennent pas à rejoindre le cluster, le nœud principal échoue également. Vous pouvez suivre l'un des ensembles de procédures suivants, en fonction du type de notes de calcul que vous utilisez, pour résoudre ce type de problème :
Nœuds de calcul
-
Journaux applicables :
-
/var/log/cloud-init-output.log -
/var/log/slurmd.log
-
-
Si un nœud de calcul est lancé, vérifiez d'abord
/var/log/cloud-init-output.log, qui doit contenir des journaux de configuration similaires à ceux du nœud principal./var/log/chef-client.logLa plupart des erreurs qui se produisent lors de l'installation doivent comporter des messages d'erreur dans le/var/log/cloud-init-output.logjournal. Si des scripts de pré-installation ou de post-installation sont spécifiés dans la configuration du cluster, vérifiez qu'ils se sont correctement exécutés. -
Si vous utilisez une AMI personnalisée dont la Slurm configuration est modifiée, il se peut qu'une Slurm erreur associée empêche le nœud de calcul de rejoindre le cluster. Pour les erreurs liées au planificateur, consultez le journal.
/var/log/slurmd.log
Nœuds de calcul dynamiques :
-
Recherchez le nom de votre nœud de calcul dans le
ResumeProgramjournal (/var/log/parallelcluster/slurm_resume.log) pour voir s'ilResumePrograma déjà été appelé avec ce nœud. (Si vousResumeProgramn'avez jamais été appelé, vous pouvez consulter leslurmctldjournal (/var/log/slurmctld.log) pour déterminer si vous avez Slurm déjà essayé d'appelerResumeProgramavec le nœud). -
Notez que des autorisations incorrectes
ResumeProgrampeuventResumeProgramentraîner un échec silencieux. Si vous utilisez une AMI personnalisée dont laResumeProgramconfiguration a été modifiée, vérifiez qu'elleResumeProgramappartient à l'slurmutilisateur et qu'elle possède l'autorisation744(rwxr--r--). -
S'
ResumeProgramil est appelé, vérifiez si une instance est lancée pour le nœud. Si aucune instance n'a été lancée, vous pouvez voir un message d'erreur décrivant l'échec du lancement. -
Si l'instance est lancée, il se peut qu'un problème soit survenu lors du processus de configuration. L'adresse IP privée et l'ID d'instance correspondants devraient apparaître dans le
ResumeProgramjournal. De plus, vous pouvez consulter les journaux de configuration correspondants pour l'instance spécifique. Pour plus d'informations sur la résolution d'une erreur de configuration avec un nœud de calcul, consultez la section suivante.
Nœuds de calcul statiques :
-
Consultez le journal
clustermgtd(/var/log/parallelcluster/clustermgtd) pour voir si des instances ont été lancées pour le nœud. S'ils n'ont pas été lancés, un message d'erreur clair détaillant l'échec du lancement devrait apparaître. -
Si l'instance est lancée, un problème survient lors du processus de configuration. L'adresse IP privée et l'ID d'instance correspondants devraient apparaître dans le
ResumeProgramjournal. De plus, vous pouvez consulter les journaux de configuration correspondants pour l'instance spécifique.
Nœuds de calcul soutenus par des instances Spot :
-
Si c'est la première fois que vous utilisez Spot Instances et que la tâche reste dans un PDF (état en attente), vérifiez le
/var/log/parallelcluster/slurm_resume.logfichier. Vous trouverez probablement une erreur comme celle-ci :2022-05-20 13:06:24,796 - [slurm_plugin.common:add_instances_for_nodes] - ERROR - Encountered exception when launching instances for nodes (x1) ['spot-dy-t2micro-2']: An error occurred (AuthFailure.ServiceLinkedRoleCreationNotPermitted) when calling the RunInstances operation: The provided credentials do not have permission to create the service-linked role for Amazon EC2 Spot Instances.Lorsque vous utilisez des instances Spot, un rôle
AWSServiceRoleForEC2Spotlié à un service doit exister dans votre compte. Pour créer ce rôle dans votre compte à l'aide de AWS CLI, exécutez la commande suivante :$aws iam create-service-linked-role --aws-service-name spot.amazonaws.com.rproxy.govskope.caPour plus d'informations, consultez Utilisation de instances Spot le Guide de l' AWS ParallelCluster utilisateur et le Service-linked rôle des demandes d'instance Spot dans le Guide de l'utilisateur Amazon EC2.
Résolution des problèmes de remplacement et de terminaison inattendus de nœuds
Cette section continue à explorer la manière dont vous pouvez résoudre les problèmes liés aux nœuds, en particulier lorsqu'un nœud est remplacé ou arrêté de manière inattendue.
-
Journaux applicables :
-
/var/log/parallelcluster/clustermgtd(nœud principal) -
/var/log/slurmctld.log(nœud principal) -
/var/log/parallelcluster/computemgtd(nœud de calcul)
-
Nœuds remplacés ou arrêtés de façon inattendue
-
Consultez le
clustermgtdjournal (/var/log/parallelcluster/clustermgtd) pour voir si un nœud a étéclustermgtdremplacé ou supprimé. Notez qu'ilclustermgtdgère toutes les actions de maintenance normales des nœuds. -
En cas de
clustermgtdremplacement ou d'arrêt du nœud, un message doit apparaître pour expliquer pourquoi cette action a été effectuée sur le nœud. Si la raison est liée au planificateur (par exemple, parce que le nœud est activéDOWN), consultez leslurmctldjournal pour plus d'informations. Si la raison est liée à Amazon EC2, un message d'information détaillant le problème lié à Amazon EC2 nécessitant le remplacement devrait apparaître. -
Si vous
clustermgtdn'avez pas résilié le nœud, vérifiez d'abord s'il s'agissait d'une résiliation prévue par Amazon EC2, plus précisément d'une résiliation ponctuelle.computemgtd, qui s'exécute sur un nœud de calcul, peut également mettre fin à un nœud s'ilclustermgtdest déterminé comme étant défectueux. Vérifiezcomputemgtdlog (/var/log/parallelcluster/computemgtd) pour voir si lecomputemgtdnœud a été arrêté.
Les nœuds ont échoué
-
Consultez
slurmctldlog (/var/log/slurmctld.log) pour savoir pourquoi une tâche ou un nœud a échoué. Notez que les tâches sont automatiquement mises en file d'attente en cas de défaillance d'un nœud. -
Si
slurm_resumele nœud est lancé et qu'ilclustermgtdindique au bout de quelques minutes qu'il n'existe aucune instance correspondante dans Amazon EC2 pour ce nœud, il est possible que le nœud échoue lors de la configuration. Pour récupérer le journal à partir d'un compute (/var/log/cloud-init-output.log), procédez comme suit :-
Soumettez une tâche pour Slurm faire démarrer un nouveau nœud.
-
Attendez que le nœud de calcul démarre.
-
Modifiez le comportement d'arrêt initié par l'instance afin qu'un nœud de calcul défaillant soit arrêté plutôt que fermé.
$aws ec2 modify-instance-attribute \ --instance-idi-1234567890abcdef0\ --instance-initiated-shutdown-behavior "{\"Value\": \"stop\"}" -
Activer la protection de la résiliation.
$aws ec2 modify-instance-attribute \ --instance-idi-1234567890abcdef0\ --disable-api-termination -
Marquez le nœud pour qu'il soit facilement identifiable.
$aws ec2 create-tags \ --resourcesi-1234567890abcdef0\ --tags Key=Name,Value=QUARANTINED-Compute -
Détachez le nœud du cluster en modifiant la
parallelcluster:cluster-namebalise.$aws ec2 create-tags \ --resourcesi-1234567890abcdef0\ --tags Key=parallelcluster:clustername,Value=QUARANTINED-ClusterName -
Récupérez la sortie de console depuis le nœud à l'aide de cette commande.
$aws ec2 get-console-output --instance-idi-1234567890abcdef0--output text
-
Remplacement, arrêt ou mise hors tension des instances et des nœuds problématiques
-
Journaux applicables :
-
/var/log/parallelcluster/clustermgtd(nœud principal) -
/var/log/parallelcluster/slurm_suspend.log(nœud principal)
-
-
Dans la plupart des cas,
clustermgtdgère toutes les actions de terminaison d'instance attendues. Consultez leclustermgtdjournal pour savoir pourquoi il n'a pas réussi à remplacer ou à mettre fin à un nœud. -
En cas de défaillance d'un nœud dynamiqueSlurmSettingsPropriétés, consultez le
SuspendProgramjournal pour voir s'ilSuspendPrograma été appelé parslurmctldavec le nœud en question comme argument. Notez qu'SuspendProgramil n'effectue aucune action. Au contraire, il ne se connecte que lorsqu'il est appelé. L'arrêt et laNodeAddrréinitialisation de toutes les instances sont effectués parclustermgtd. SlurmremetSuspendTimeoutautomatiquement les nœuds dans leurPOWER_SAVINGétat d'origine. -
Si les nœuds de calcul échouent continuellement en raison d'échecs d'amorçage, vérifiez s'ils sont lancés avec Slurm mode protégé par cluster activé. Si le mode protégé n'est pas activé, modifiez les paramètres du mode protégé pour activer le mode protégé. Résolvez et corrigez le script d'amorçage.
État inactif de la file d'attente (partition)
Si vous exécutez sinfo et que la sortie affiche des files d'attente AVAIL dont l'état est égal àinact, votre cluster a peut-être été Slurm mode protégé par cluster activé et la file d'attente a été réglée sur INACTIVE cet état pendant une période prédéfinie.
Résolution d'autres problèmes connus liés aux nœuds et aux tâches
Un autre type de problème connu est l'impossibilité AWS ParallelCluster d'attribuer les tâches ou de prendre des décisions de dimensionnement. Dans ce type de problème, les ressources AWS ParallelCluster ne sont lancées, interrompues ou gérées que conformément aux Slurm instructions. Pour ces problèmes, consultez le slurmctld journal pour les résoudre.