AMI 补丁和 EC2 实例替换 - AWS ParallelCluster

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AMI 补丁和 EC2 实例替换

为确保所有动态启动的集群计算节点以一致的方式运行,请AWS ParallelCluster禁用集群实例自动操作系统更新。此外,还为的每个版本AWS ParallelCluster及其相关的 CLI 构建了一组特定的AWS ParallelCluster AMI。这组特定的 AMI 保持不变,它们仅受其构建AWS ParallelCluster版本的支持。 AWS ParallelCluster已发布版本的 AMI 未更新。

但是,由于紧急的安全问题,客户可能希望向这些 AMI 添加补丁,然后使用已修补的 AMI 更新集群。这与AWS ParallelCluster分担责任模式一致。

要查看您当前使用的AWS ParallelCluster CLI 版本支持的一组特定AWS ParallelCluster AMI,请运行:

$ pcluster version $ pcluster list-official-images

AWS ParallelCluster头节点是一个静态实例,你可以手动更新它。从 3.0.0AWS ParallelCluster 版开始,完全支持重启和重启头节点。

如果您的实例具有临时实例存储,则必须记住在手动更新之前保存实例存储数据。有关更多信息,请参阅 Amazon EC2 Linux 实例用户指南中的HeadNodeLocalStorage LocalStorage//EphemeralVolume集群配置和带有实例存储卷的实例类型

计算节点是临时实例。默认情况下,您只能从头节点访问它们。从AWS ParallelCluster版本 3.0.0 开始,您可以通过修改 Scheduling//SlurmQueuesImage/CustomAmi参数并运行命令来更新与计算实例关联的 AMI,然后使用以下pcluster update-cluster命令停止计算队列pcluster update-compute-fleet

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

可以使用以下方法之一为计算节点自动创建更新的自定义 AMI:

头节点实例更新或替换

在某些情况下,可能需要重新启动或重新启动头节点。例如,当您手动更新操作系统或计划停用强制重启头节点AWS实例时,这是必需的。

如果实例尚未停止实例,您可以停止实例。在计划停用的情况下,启动已停止的实例会将其迁移到使用新硬件。

同样,您可以手动停止和启动没有实例存储的实例。对于这种情况和其他没有临时卷的实例,请继续停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止

如果实例的数据停止实例,如果实例停止实例,将丢实例。您可以从实例存储卷中的表中确定用于头节点的实例类型是否具有实例存储

保存临时驱动器中的数据

从AWS ParallelCluster版本 3.0.0 开始,所有实例类型都完全支持头节点重启和重启。但是,如果实例有临时驱动器,则其数据将丢失。在头节点重新启动或重新启动之前,请按照以下步骤保留您的数据。

要检查是否有需要保留的数据,请查看 EphemeralVolume/MountDir文件夹中的内容(默/scratch认)。

您可以将数据传输到根卷或连接到集群的共享存储系统,例如 Amazon FSx、Amazon EFS 或 Amazon EBS。请注意,将数据传输到远程存储可能会产生额外费用。

保存数据后,继续停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止

停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止停止

  1. 验证集群中没有任何正在运行的任务。

    使用Slurm调度程序时:

    • 如果未指定该sbatch--no-requeue选项,则会对正在运行的作业进行排队。

    • 如果指定了该--no-requeue选项,则运行作业将失败。

  2. 请求集群计算队列停止:

    $ pcluster update-compute-fleet --cluster-name cluster-name --status STOP_REQUESTED { "status": "STOP_REQUESTED", ... }
  3. 等到计算队列状态为STOPPED

    $ pcluster update-compute-fleet --cluster-name cluster-name --status STOP_REQUESTED { "status": "STOPPED", ... }
  4. 对于操作系统重启或实例重启时的手动更新,您可以使用AWS Management Console或AWS CLI。以下是使用示例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. 启动集群计算队列:

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