Parcheo de AMI y reemplazo 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 reemplazo de instancias de EC2

Para garantizar que todos los nodos de procesamiento del clúster lanzados dinámicamente se comporten de manera 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 deAWS ParallelCluster AMI para cada versiónAWS ParallelCluster y su CLI asociada. Este conjunto específico de AMI permanece sin cambios y solo son compatibles con laAWS 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 alinea con el modelo de responsabilidadAWS ParallelCluster compartida.

Para ver el conjunto específico deAWS ParallelCluster AMI que admite la versión deAWS ParallelCluster CLI que está utilizando actualmente, ejecute:

$ pcluster version

A continuación, vea amis.txt enAWS ParallelCluster el GitHub repositorio.

El nodoAWS ParallelCluster principal es una instancia estática y se puede actualizar manualmente. El reinicio y el reinicio del nodo principal son totalmente compatibles a partir de laAWS ParallelCluster versión 2.11, si el tipo de instancia no tiene un almacén de instancias. Para obtener más información, consulte Tipos de instancias con volúmenes de almacén de instancias en la Guía del usuario de Amazon EC2 para instancias de Linux. No puede actualizar una AMI de un clúster existente.

A partir de laAWS ParallelCluster versión 3.0.0, se admite totalmente el reinicio del nodo principal y el reinicio con actualizaciones de AMI de las instancias informáticas del clúster. Considere la posibilidad de actualizar a la versión más reciente, la 3.5.0, para utilizar estas funciones.

Actualización o reemplazo de la instancia del nodo principal

En algunas circunstancias, es posible que deba reiniciar o reiniciar el nodo principal. Por ejemplo, esto es obligatorio cuando se actualiza manualmente el sistema operativo o cuando hay una retirada programada de laAWS instancia que impone el reinicio de la instancia del nodo principal.

Si la instancia no tiene unidades efímeras, puede detenerla y volver a comenzarla en cualquier momento. En caso de una retirada programada, al iniciar la instancia detenida, se migra para utilizar el hardware nuevo.

Del mismo modo, puedes detener e iniciar manualmente una instancia que no tenga almacenes de instancias. Para este caso y para otros casos de instancias sin volúmenes efímeros, continúe conDetenga e inicie el nodo director de un clúster.

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

En las siguientes secciones se describen las limitaciones del uso de instancias con volúmenes de almacén de instancias.

Limitaciones del almacén de instancias

Las limitaciones para usar laAWS ParallelCluster versión 2.11 y los tipos de instancias con un almacén de instancias son las siguientes:

  • Cuando las unidades efímeras no están cifradas (el encrypted_ephemeralparámetro está establecido enfalse o no), unaAWS ParallelCluster instancia no puede arrancar después de una parada de instancia. Esto se debe a que se incluye información sobre objetos efímeros antiguos e inexistentesfstab y el sistema operativo intenta montar un almacenamiento inexistente.

  • Cuando las unidades efímeras están cifradas (el encrypted_ephemeralparámetro está establecido entrue), se puede iniciar unaAWS ParallelCluster instancia después de una parada, pero las nuevas unidades efímeras no están configuradas, montadas ni disponibles.

  • Cuando se cifran las unidades efímeras, se puede reiniciar unaAWS ParallelCluster instancia, pero no se puede acceder a las unidades efímeras antiguas (que sobreviven al reinicio de la instancia) porque la clave de cifrado se crea en la memoria que se pierde al reiniciar.

El único caso admitido es el reinicio de la instancia, cuando las unidades efímeras no están cifradas. Esto se debe a que la unidad sobrevive al reinicio y se vuelve a montar debido a la entrada escrita en ellafstab.

Soluciones alternativas a las limitaciones del almacén de instancias

Primero, guarda tus datos. Para comprobar si tiene datos que deben conservarse, consulte el contenido de laephemeral_dir carpeta (de forma/scratch predeterminada). Puede transferir los datos al volumen raíz o a los sistemas de almacenamiento compartido conectados al clúster, como Amazon FSx, Amazon EFS o Amazon EBS. Tenga en cuenta que la transferencia de datos al almacenamiento remoto puede generar costes adicionales.

La causa principal de las limitaciones está en la lógica que seAWS ParallelCluster utiliza para formatear y montar los volúmenes del almacén de instancias. La lógica añade una entrada/etc/fstab al formulario:

$ /dev/vg.01/lv_ephemeral ${ephemeral_dir} ext4 noatime,nodiratime 0 0

${ephemeral_dir}es el valor delephemeral_dir parámetro del archivo de configuración de pcluster (el valor predeterminado es/scratch).

Esta línea se añade para que, si se reinicia un nodo o cuando se reinicie, los volúmenes del almacén de instancias se vuelvan a montar automáticamente. Esto es deseable porque los datos de las unidades efímeras persisten durante el reinicio. Sin embargo, los datos de las unidades efímeras no persisten durante un ciclo de inicio o parada. Esto significa que están formateados y montados sin datos.

El único caso admitido es el reinicio de la instancia cuando las unidades efímeras no están cifradas. Esto se debe a que la unidad sobrevive al reinicio y se monta de nuevo porque está escritafstab.

Para conservar los datos en todos los demás casos, debe eliminar la entrada del volumen lógico antes de detener la instancia. Por ejemplo, elimina/dev/vg.01/lv_ephemeral de/etc/fstab antes de detener la instancia. Después de hacer esto, inicia la instancia sin montar los volúmenes efímeros. Sin embargo, el soporte del almacén de instancias no volverá a estar disponible después de detener o iniciar la instancia.

Después de guardar los datos y eliminar lafstab entrada, continúe con la siguiente sección.

Detenga e inicie el nodo director de un clúster

nota

A partir deAWS ParallelCluster la versión 2.11, la parada y el inicio del nodo principal solo se admiten si el tipo de instancia no tiene un almacén de instancias.

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

    Cuando utilices unSlurm planificador:

    • Si no se especifica lasbatch--no-requeue opción, se ponen en cola los trabajos en ejecución.

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

  2. Solicite una parada de la flota de cómputos en clúster:

    $ pcluster stop cluster-name Compute fleet status is: RUNNING. Submitting status change request. Request submitted successfully. It might take a while for the transition to complete. Please run 'pcluster status' if you need to check compute fleet status
  3. Espere hasta que el estado de la flota de cómputos seaSTOPPED:

    $ pcluster status cluster-name ... ComputeFleetStatus: STOP_REQUESTED $ pcluster status cluster-name ... ComputeFleetStatus: STOPPED
  4. Para las actualizaciones manuales con un reinicio del sistema operativo o un reinicio de instancia, puede utilizarAWS Management Console oAWS CLI. El siguiente es un ejemplo del uso deAWS CLI.

    $ 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 cómputos del clúster:

    $ pcluster start cluster-name Compute fleet status is: STOPPED. Submitting status change request. Request submitted successfully. It might take a while for the transition to complete. Please run 'pcluster status' if you need to check compute fleet status