Parcheo de AMI y sustitución de instancias de 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 EC2

Para garantizar que todos los nodos de computación de clúster lanzados dinámicamente se comporten de forma coherente, AWS ParallelCluster desactiva las actualizaciones automáticas del sistema operativo de las instancias de clúster. Además, se crea un conjunto específico de AMI de AWS ParallelCluster para cada versión de AWS ParallelCluster y su CLI asociada. Este conjunto específico de AMI permanece inalterado y solo es compatible con la versión AWS ParallelCluster 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 AMI de AWS ParallelCluster compatibles con la versión de CLI de AWS ParallelCluster que está utilizando actualmente, ejecute:

$ pcluster version $ pcluster list-official-images

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

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 y los tipos de instancias con volúmenes del almacén de instancias 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 versión 3.0.0 de AWS ParallelCluster, puede actualizar la AMI asociada a las instancias de computación modificando el parámetro Scheduling/SlurmQueues/Image/CustomAmi y ejecutando el comando pcluster update-cluster, después de detener la flota de computación con pcluster 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 los volúmenes de almacenes de instancias.

Guarde los datos de unidades efímeras

A partir de la versión 3.0.0 de AWS ParallelCluster, el reinicio del nodo principal es totalmente compatible 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, puede usar la AWS Management Console o la 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", ... }