Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Solución de problemas de escalar
Esta sección es relevante para los clústeres que se instalaron con AWS ParallelCluster la versión 3.0.0 y versiones posteriores con Slurm programador de tareas. Para obtener más información acerca de la configuración de colas de consultas, consulte Configuración de varias colas.
Si uno de sus clústeres en ejecución tiene problemas, coloque el clúster en ese STOPPED
estado ejecutando el siguiente comando antes de empezar a solucionar el problema. Esto evita incurrir en costes inesperados.
$
pcluster update-compute-fleet --cluster-name
mycluster
\ --status STOP_REQUESTED
Puede enumerar los flujos de registro disponibles en los nodos del clúster mediante el pcluster list-cluster-log-streams comando y filtrarlos mediante uno private-dns-name
de los nodos que fallan o el nodo principal:
$
pcluster list-cluster-log-streams --cluster-name
mycluster
--regioneu-west-1
\ --filters 'Name=private-dns-name,Values=ip-10-0-0-101'
A continuación, puede recuperar el contenido del flujo de registro para analizarlo mediante el pcluster get-cluster-log-events comando y pasar el --log-stream-name
correspondiente a uno de los registros clave que se mencionan en la siguiente sección:
$
pcluster get-cluster-log-events --cluster-name
mycluster
\ --regioneu-west-1
--log-stream-nameip-10-0-0-13.i-04e91cc1f4ea796fe.cfn-init
AWS ParallelCluster crea flujos de CloudWatch registro de clústeres en grupos de registros. Puede ver estos registros en los paneles personalizados de la CloudWatch consola o en los grupos de registros. Para obtener más información, consulte Integración con Amazon CloudWatch Logs y CloudWatch Panel de control de Amazon.
Temas
- Registros clave para la depuración
- Visualización de un error de InsufficientInstanceCapacity en slurm_resume.log cuando no puedo ejecutar un trabajo o en clustermgtd.log cuando no puedo crear un clúster
- Solución de problemas de inicialización de nodos
- Solución de problemas de sustituciones y terminaciones inesperadas de nodos
- Reemplazar, terminar o apagar instancias y nodos problemáticos
- Estado de la cola (partición) Inactive
- Solución de otros problemas de nodos y trabajos conocidos
Registros clave para la depuración
En la siguiente tabla se proporciona una descripción general de los registros clave del nodo principal:
-
/var/log/cfn-init.log
- Este es el registro de AWS CloudFormation inicio. Contiene todos los comandos que se ejecutaron al configurar una instancia. Se usa para solucionar problemas de inicialización. -
/var/log/chef-client.log
- Este es el registro del cliente de Chef. Contiene todos los comandos que se ejecutaron a través de CINC Chef/. Se usa para solucionar problemas de inicialización. -
/var/log/parallelcluster/slurm_resume.log
- Es unResumeProgram
registro. Lanza instancias para nodos dinámicos. Se usa para solucionar problemas de lanzamiento de nodos dinámicos. -
Este es el registro de . Se llama cuando se terminan las instancias de los nodos dinámicos. Se usa para solucionar problemas de terminación de nodos dinámicos. Cuando revise este registro, también debe comprobar el registro de
clustermgtd
. -
Este es el registro de . Se ejecuta como el daemon centralizado que gestiona la mayoría de las acciones operativas del clúster. Se usa para solucionar cualquier problema de inicio, finalización o funcionamiento del clúster.
-
/var/log/slurmctld.log
- Este es el Slurm registro de demonios de control. AWS ParallelCluster no toma decisiones de escalado. Más bien, solo intenta lanzar recursos para satisfacer las Slurm requisitos. Es útil para problemas de escalado y asignación, problemas relacionados con el trabajo y cualquier problema de lanzamiento y finalización relacionado con el programador. -
/var/log/parallelcluster/compute_console_output
- Este registro registra la salida de la consola de un subconjunto de ejemplos de nodos de cómputo estáticos que han terminado inesperadamente. Utilice este registro si los nodos de cómputo estáticos terminan y los registros de los nodos de cómputo no están disponibles en CloudWatch. Elcompute_console_output log
contenido que recibes es el mismo cuando utilizas la EC2 consola de Amazon o AWS CLI cuando recuperas el resultado de la consola de la instancia.
Estos son los registros clave de los nodos de cómputo:
-
Este es el registro init del archivo . Contiene todos los comandos que se ejecutaron al configurar una instancia. Se usa para solucionar problemas de inicialización.
-
Este es el registro de . Se ejecuta en cada nodo de cómputo para monitorizarlo en el raro caso de que el
clustermgtd
daemon del nodo principal esté desconectado. Se usa para solucionar problemas de terminación inesperados. -
/var/log/slurmd.log
- Este es el Slurm computar el registro daemon. Se usa para solucionar problemas de inicialización y errores de computación.
Visualización de un error de InsufficientInstanceCapacity
en slurm_resume.log
cuando no puedo ejecutar un trabajo o en clustermgtd.log
cuando no puedo crear un clúster
Si el clúster usa un Slurm programador, tiene un problema de capacidad insuficiente. Si no hay suficientes instancias disponibles cuando se realiza la solicitud, se devuelve un error InsufficientInstanceCapacity
.
Para la capacidad de las instancias estáticas, puede encontrar el error en el registro de clustermgtd
en /var/log/parallelcluster/clustermgtd
.
En cuanto a la capacidad dinámica de las instancias, puede encontrar el error en el registro de ResumeProgram
en /var/log/parallelcluster/slurm_resume.log
.
El ARN de tema tiene un aspecto similar al del ejemplo siguiente:
An error occurred (InsufficientInstanceCapacity) when calling the RunInstances/CreateFleet operation...
Según su caso de uso, considere la posibilidad de utilizar uno de los siguientes métodos para evitar recibir este tipo de mensajes de error:
-
Deshabilite el grupo de ubicación si está activado. Para obtener más información, consulte Problemas con los grupos de ubicación y el lanzamiento de instancias.
-
Reserve capacidad para las instancias y láncelas con ODCR (reservas de capacidad bajo demanda). Para obtener más información, consulte Lance instancias con reservas de capacidad bajo demanda (ODCR).
-
Configure varios recursos informáticos con distintos tipos de instancias. Si su carga de trabajo no requiere un tipo de instancia específico, puede aprovechar la conmutación por error rápida y con capacidad insuficiente con varios recursos informáticos. Para obtener más información, consulte Conmutación por error rápida de capacidad insuficiente en el clúster de Slurm.
-
Configura varios tipos de instancias en el mismo recurso informático y aprovecha la asignación de varios tipos de instancias. Para obtener más información sobre la configuración de varias instancias, consulte Asignación de varios tipos de instancias con Slurm y Scheduling/SlurmQueues/ComputeResources/Instances.
-
Mueva la cola a una zona de disponibilidad diferente cambiando el ID de subred en la configuración del clúster Scheduling//SlurmQueues/Networking. SubnetIds
-
Si su carga de trabajo no está estrechamente vinculada, distribuya la cola entre distintas zonas de disponibilidad. Para obtener más información acerca de la configuración de las subredes, consulte .
Solución de problemas de inicialización de nodos
En esta sección, se explica cómo solucionar los problemas de inicialización de los nodos. Esto incluye los problemas en los que el nodo no puede iniciar, encender o unirse a un clúster.
Nodo principal
Registros aplicables:
-
/var/log/cfn-init.log
-
/var/log/chef-client.log
-
/var/log/parallelcluster/clustermgtd
-
/var/log/parallelcluster/slurm_resume.log
-
/var/log/slurmctld.log
Compruebe los /var/log/chef-client.log
registros /var/log/cfn-init.log
y o los flujos de registro correspondientes. Estos registros contienen todas las acciones que se ejecutaron cuando se configuró el nodo principal. La mayoría de los errores que se producen durante la configuración deberían incluir mensajes de error en el /var/log/chef-client.log
registro. Si OnNodeStart
se especifican OnNodeConfigured
scripts en la configuración del clúster, compruebe que el script se ejecute correctamente a través de los mensajes de registro.
Cuando se crea un clúster, el nodo principal debe esperar a que los nodos de procesamiento se unan al clúster antes de poder unirse al clúster. Por este motivo, si los nodos informáticos no se unen al clúster, el nodo principal también falla. Puede seguir uno de estos procedimientos, dependiendo del tipo de notas de computación que utilice para solucionar problemas de este tipo:
Nodos de computación
-
Registros aplicables:
-
/var/log/cloud-init-output.log
-
/var/log/slurmd.log
-
-
Si se lanza un nodo de cómputo
/var/log/cloud-init-output.log
, compruebe primero que contenga los registros de configuración similares al/var/log/chef-client.log
registro del nodo principal. La mayoría de los errores que se producen durante la configuración deberían tener mensajes de error ubicados en el registro de/var/log/cloud-init-output.log
. Si se especifican scripts previos o posteriores a la instalación en la configuración del clúster, compruebe que se hayan ejecutado correctamente. -
Si utiliza una versión personalizada AMI con modificaciones en la Slurm configuración, entonces puede haber una Slurmrelacionado con un error que impide que el nodo de cómputo se una al clúster. Para ver los errores relacionados con el programador, consulte el registro.
/var/log/slurmd.log
Nodos de computación dinámicos:
-
Busque en el registro de
ResumeProgram
(/var/log/parallelcluster/slurm_resume.log
) el nombre de su nodo de computación para ver si alguna vez se llamó aResumeProgram
con el nodo. (SiResumeProgram
nunca se llamó, puede comprobar elslurmctld
registro (/var/log/slurmctld.log
) para determinar si Slurm alguna vez intentó llamarResumeProgram
con el nodo). -
Tenga en cuenta que los permisos incorrectos activados en
ResumeProgram
pueden provocar un error silencioso enResumeProgram
. Si utilizas una configuración personalizada AMI con modificaciones en laResumeProgram
configuración, comprueba queResumeProgram
sea propiedad delslurm
usuario y que tenga el permiso744
(rwxr--r--
). -
Si se llama a
ResumeProgram
, compruebe si se ha lanzado una instancia para el nodo. Si no se lanzó ninguna instancia, verás un mensaje de error que describe el error de lanzamiento. -
Si se lanza la instancia, es posible que haya habido un problema durante el proceso de configuración. Debería ver la dirección IP privada y el ID de instancia correspondientes en el registro de
ResumeProgram
. Además, puede consultar los registros de configuración correspondientes a la instancia específica. Para obtener más información acerca de la solución de problemas relacionados con un nodo de computación, consulte la siguiente sección.
Nodos de computación estáticos:
-
Compruebe el registro
clustermgtd
(/var/log/parallelcluster/clustermgtd
) para ver si se han lanzado instancias para el nodo. Si no se lanzaron, debería haber un mensaje de error claro que detalle el error de lanzamiento. -
Si se lanza la instancia, hay algún problema durante el proceso de configuración. Debería ver la dirección IP privada y el ID de instancia correspondientes en el registro de
ResumeProgram
. Además, puede consultar los registros de configuración correspondientes a la instancia específica.
Nodos de computación respaldados por instancias de spot:
-
Si es la primera vez que utiliza instancias de spot y el trabajo permanece en estado de PD (pendiente), compruebe el
/var/log/parallelcluster/slurm_resume.log
archivo. Probablemente encuentre un error como el siguiente: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.
Al utilizar instancias de spot, en la cuenta se debe incluir un rol vinculado a un servicio
AWSServiceRoleForEC2Spot
. Para crear este rol en tu cuenta mediante el AWS CLI, ejecuta el siguiente comando:$
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
Para obtener más información, consulte Uso de instancias de spot la Guía del AWS ParallelCluster usuario y la función vinculada al servicio para las solicitudes de instancias puntuales de la Guía EC2del usuario de Amazon.
Solución de problemas de sustituciones y terminaciones inesperadas de nodos
En esta sección se continúa analizando cómo puede solucionar problemas relacionados con los nodos, específicamente cuando un nodo se reemplaza o se cierra inesperadamente.
-
Registros aplicables:
-
/var/log/parallelcluster/clustermgtd
(nodo principal) -
/var/log/slurmctld.log
(nodo principal) -
/var/log/parallelcluster/computemgtd
(nodo de computación)
-
Nodos sustituidos o finalizados de forma inesperada:
-
Para comprobar si
clustermgtd
ha sustituido o finalizado un nodo, compruebe el registro . Tenga en cuenta queclustermgtd
gestiona todas las acciones normales de mantenimiento del nodo. -
Si
clustermgtd
se reemplaza o se cierra el nodo, debería haber un mensaje que detalle por qué se realizó esta acción en el nodo. Si el motivo está relacionado con el programador (por ejemplo, el nodo está enDOWN
), consulte el registroslurmctld
para obtener más detalles. Si el motivo está EC2 relacionado con Amazon, debería haber un mensaje informativo que detalle el problema EC2 relacionado con Amazon que requirió el reemplazo. -
Si
clustermgtd
no canceló el nodo, compruebe primero si se trataba de una terminación prevista por parte de AmazonEC2, más específicamente, de una terminación puntual.computemgtd
, que se ejecuta en un nodo de cómputo, también puede cerrar un nodo siclustermgtd
se determina que está en mal estado. Compruebe el registro decomputemgtd
(/var/log/parallelcluster/computemgtd
) para ver sicomputemgtd
ha terminado el nodo.
Los nodos fallaron
-
Compruebe el registro de
slurmctld
(/var/log/slurmctld.log
) para ver por qué ha fallado un trabajo o un nodo. Tenga en cuenta que los trabajos se vuelven a poner en cola automáticamente si se produce un error en un nodo. -
Si
slurm_resume
informa de que el nodo se ha lanzado y, después de varios minutos,clustermgtd
informa de que no hay ninguna instancia correspondiente en Amazon EC2 para ese nodo, es posible que el nodo produzca un error durante la configuración. Para recuperar el registro de un compute (/var/log/cloud-init-output.log
), siga estos pasos:-
Envía un trabajo para alquilarlo Slurm crea un nuevo nodo.
-
Espere a que se inicie el nodo de cómputo.
-
Modifique el comportamiento de cierre iniciado por la instancia para que un nodo de cómputo que falle se detenga en lugar de terminar.
$
aws ec2 modify-instance-attribute \ --instance-id
i-1234567890abcdef0
\ --instance-initiated-shutdown-behavior "{\"Value\": \"stop\"}" -
Habilite la protección de terminación.
$
aws ec2 modify-instance-attribute \ --instance-id
i-1234567890abcdef0
\ --disable-api-termination -
Etiquete el nodo para que sea fácilmente identificable.
$
aws ec2 create-tags \ --resources
i-1234567890abcdef0
\ --tags Key=Name,Value=QUARANTINED-Compute -
Separe el nodo del clúster cambiando la
parallelcluster:cluster-name
etiqueta.$
aws ec2 create-tags \ --resources
i-1234567890abcdef0
\ --tags Key=parallelcluster:clustername,Value=QUARANTINED-ClusterName -
Recupere la salida de la consola del nodo con este comando.
$
aws ec2 get-console-output --instance-id
i-1234567890abcdef0
--output text
-
Reemplazar, terminar o apagar instancias y nodos problemáticos
-
Registros aplicables:
-
/var/log/parallelcluster/clustermgtd
(nodo principal) -
/var/log/parallelcluster/slurm_suspend.log
(nodo principal)
-
-
En la mayoría,
clustermgtd
administra todas las acciones de finalización de instancias esperadas. Consulte el registroclustermgtd
para ver por qué no se ha podido sustituir o finalizar un nodo. -
En el caso de los nodos dinámicos que no superan el Propiedades de SlurmSettings, consulte el registro de
SuspendProgram
para ver si lo llamóslurmctld
con el nodo específico como argumento. Tenga en cuenta queSuspendProgram
no realiza ninguna acción específica. Más bien, solo se encarga de registrar cuando se le llama. La terminación de todas las instancias y el restablecimiento deNodeAddr
los realizaclustermgtd
. Slurm devuelve los nodos a unPOWER_SAVING
estado posteriorSuspendTimeout
automáticamente. -
Si los nodos de cómputo fallan continuamente debido a errores de arranque, compruebe si se están iniciando con la tecla Enabled. Modo protegido de clúster Slurm Si el modo protegido no está activado, modifique la configuración del modo protegido para activarlo. Solucione los problemas y corrija el script de arranque.
Estado de la cola (partición) Inactive
Si ejecuta sinfo
y el resultado muestra colas con el AVAIL
estado deinact
, es posible que su clúster Modo protegido de clúster Slurm esté habilitado y que la cola se haya establecido en ese INACTIVE
estado durante un período de tiempo predefinido.
Solución de otros problemas de nodos y trabajos conocidos
Otro tipo de problema conocido es que es AWS ParallelCluster posible que no se puedan asignar las tareas ni tomar decisiones de escalado. Con este tipo de problema, AWS ParallelCluster solo se lanzan, finalizan o mantienen los recursos de acuerdo con Slurm instrucciones. En el caso de estos problemas, consulte el slurmctld
registro para solucionarlos.