View a markdown version of this page

Parcheo de AMI y sustitución de instancias de Amazon EC2 - AWS ParallelCluster

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.

Parcheo de AMI y sustitución de instancias de Amazon EC2

Para garantizar que todos los nodos de cómputo de clúster lanzados dinámicamente se comporten de forma coherente, AWS ParallelCluster desactiva las actualizaciones automáticas del sistema operativo de las instancias del clúster. Además, se crea un conjunto específico de AWS ParallelCluster AMI para cada versión AWS ParallelCluster y su CLI asociada. Este conjunto específico de AMI permanece inalterado y solo es compatible con la AWS ParallelCluster versión para la que se crearon. AWS ParallelCluster Las AMI de las versiones publicadas no se actualizan.

Sin embargo, debido a problemas de seguridad emergentes, es posible que los clientes deseen añadir parches a estas AMI y, a continuación, actualizar sus clústeres con la AMI parcheada. Esto se ajusta al modelo de responsabilidad compartida de AWS ParallelCluster.

Para ver el conjunto específico de AWS ParallelCluster AMI compatibles con la versión de AWS ParallelCluster CLI que está utilizando actualmente, ejecute:

$ pcluster version $ pcluster list-official-images

El nodo AWS ParallelCluster principal es una instancia estática y puede actualizarla manualmente. El reinicio y el reinicio del nodo principal son totalmente compatibles a partir de la AWS ParallelCluster versión 3.0.0.

Si sus instancias tienen almacenes de instancias efímeros, no olvide guardar los datos del almacén de instancias antes de llevar a cabo las actualizaciones manuales. Para obtener más información, consulte la configuración del clúster HeadNode/LocalStorage/EphemeralVolume e Instance types with instance store volumes en la Guía del usuario de Amazon EC2 para instancias de Linux.

Los nodos de computación son instancias efímeras. De forma predeterminada, solo se puede acceder a ellos desde el nodo principal. A partir de la AWS ParallelCluster versión 3.0.0, puede actualizar la AMI asociada a las instancias de procesamiento modificando el CustomAmiparámetro Scheduling/SlurmQueues/Image/y ejecutando el pcluster update-cluster comando, después de detener la flota de procesamiento conpcluster update-compute-fleet:

$ pcluster update-compute-fleet-status --status STOP_REQUESTED

Es posible automatizar la creación de una AMI personalizada actualizada para los nodos de computación mediante uno de los siguientes métodos:

Actualización o sustitución de la instancia del nodo principal

En algunas circunstancias, es posible que tenga que reiniciar el nodo principal. Por ejemplo, es necesario cuando actualiza manualmente el sistema operativo o cuando hay una retirada programada de una instancia de AWS que impone el reinicio de la instancia del nodo principal.

Si la instancia no tiene unidades efímeras, puede detenerla e iniciarla de nuevo en cualquier momento. En el caso de una retirada programada, al iniciar la instancia detenida, se realiza una migración para usar el nuevo hardware.

Del mismo modo, puede detener e iniciar manualmente una instancia que no tenga almacenes de instancias. En este caso y en otros casos de instancias sin volúmenes efímeros, continúe hasta Detención e inicio del nodo principal de un clúster.

Si la instancia tiene unidades efímeras y se ha detenido, se perderán los datos del almacén de instancias. Puede determinar si el tipo de instancia utilizado para el nodo principal tiene almacenes de instancias a partir de la tabla que se encuentra en Volúmenes de almacenes de instancias.

Guarde los datos de unidades efímeras

A partir de AWS ParallelCluster la versión 3.0.0, el reinicio y el reinicio del nodo principal son totalmente compatibles con todos los tipos de instancias. Sin embargo, si las instancias tienen una unidad efímera, se perderán sus datos. Siga los siguientes pasos para conservar los datos antes de que se reinicie el nodo principal.

Para comprobar si tiene datos que deba conservar, consulte el contenido de la carpeta EphemeralVolume/MountDir (/scratch de forma predeterminada).

Puede transferir los datos al volumen raíz o a los sistemas de almacenamiento compartido asociados al clúster, como Amazon FSx, Amazon EFS o Amazon EBS. Tenga en cuenta que la transferencia de datos al almacenamiento remoto puede conllevar costes adicionales.

Después de guardar los datos, continúe hasta Detención e inicio del nodo principal de un clúster.

Detención e inicio del nodo principal de un clúster

  1. Compruebe que no haya ningún trabajo en ejecución en el clúster.

    Cuando utilice un programador Slurm:

    • Si no se especifica la opción --no-requeue de sbatch, los trabajos en ejecución se vuelven a poner en cola.

    • Si se especifica la opción --no-requeue, se produce un error en los trabajos en ejecución.

  2. Solicite la detención de la flota de computación de un clúster:

    $ pcluster update-compute-fleet --cluster-name cluster-name --status STOP_REQUESTED { "status": "STOP_REQUESTED", ... }
  3. Espere hasta que el estado de la flota de computación sea STOPPED:

    $ pcluster update-compute-fleet --cluster-name cluster-name --status STOP_REQUESTED { "status": "STOPPED", ... }
  4. Para las actualizaciones manuales con un reinicio del sistema operativo o un reinicio de la instancia, puedes usar la tecla Consola de administración de AWS o AWS CLI. A continuación, se muestra un ejemplo de cómo se utiliza AWS CLI.

    # Retrieve head node instance id $ pcluster describe-cluster --cluster-name cluster-name --status STOP_REQUESTED { "headNode": { "instanceId": "i-1234567890abcdef0", ... }, ... } # stop and start the instance $ aws ec2 stop-instances --instance-ids 1234567890abcdef0 { "StoppingInstances": [ { "CurrentState": { "Name": "stopping" ... }, "InstanceId": "i-1234567890abcdef0", "PreviousState": { "Name": "running" ... } } ] } $ aws ec2 start-instances --instance-ids 1234567890abcdef0 { "StartingInstances": [ { "CurrentState": { "Name": "pending" ... }, "InstanceId": "i-1234567890abcdef0", "PreviousState": { "Name": "stopped" ... } } ] }
  5. Inicie la flota de computación del clúster:

    $ pcluster update-compute-fleet --cluster-name cluster-name --status START_REQUESTED { "status": "START_REQUESTED", ... }