AMI 补丁和 EC2 实例更换 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

AMI 补丁和 EC2 实例更换

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

但是,由于突发的安全问题,客户可能希望向这些 AMI 添加补丁,然后使用已修补的 AMI 更新集群。这与Amazon ParallelCluster责任共担模式.

要查看特定的集合Amazon ParallelCluster支持的 AMIAmazon ParallelCluster您当前正在使用的 CLI 版本,请运行:

$ pcluster version

然后查看amis.txt在Amazon ParallelCluster's GitHub 存储库。

这些区域有:Amazon ParallelCluster头节点是一个静态实例,你可以手动更新它。完全支持重启和重启头节点Amazon ParallelCluster版本 2.11,如果实例类型没有实例存储。有关更多信息,请参阅实例类型与实例存储卷适用于用户的 Amazon EC2 用户指南. 您无法更新现有集群的 AMI。

从开始,完全支持使用集群计算实例的 AMI 更新重启和重启头节点Amazon ParallelCluster版本 3.0.0 考虑升级到最新版本 3.2.1 以使用这些功能。

更新或替换头节点实例

在某些情况下,可能需要重新启动或重新启动头节点。例如,当你手动更新操作系统或出现操作系统时,这是必需的Amazon实例预定引退这会强制重启头节点实例。

如果实例没有临时驱动器,您可随时重新启动它。启动停止的实例会将其迁移为使用新硬件。

同样,您可以手动停止和启动没有实例存储的实例。对于这个案例以及其他没有临时交易量的实例,请继续停止并启动集群的头节点.

如果实例有临时驱动器且已停止运行,实例存储中的数据会丢失。您可以从中找到的表中确定用于头节点的实例类型是否包含实例存储实例存储卷.

以下各节描述了使用带有实例存储卷的实例的限制。

实例存储限制

使用的局限性Amazon ParallelCluster版本 2.11 和带有实例存储的实例类型如下所示:

  • 当临时驱动器未加密时 (encrypted_ephemeral参数设置为false或未设置),Amazon ParallelCluster实例停止后实例无法启动。这是因为关于旧的不存在的临时物品的信息被写入了fstab操作系统尝试装载不存在的存储。

  • 当临时驱动器被加密时 (encrypted_ephemeral参数设置为true),一个Amazon ParallelCluster实例可以在停止后启动,但新的临时驱动器未设置、安装或不可用。

  • 对临时驱动器进行加密后,Amazon ParallelCluster实例可以重新启动,但无法访问旧的临时驱动器(在实例重启后仍然存在),因为加密密钥是在重启时丢失的内存中创建的。

唯一支持的情况是实例重启,即临时驱动器未加密。这是因为驱动器在重启后仍能存活下来,并且由于写入的条目而被装回去fstab.

实例存储限制变通方法

首先,保存您的数据。要检查是否有需要保留的数据,请查看ephemeral_dir文件夹 (/scratch默认值)。您可以将数据传输到根卷或连接到集群的共享存储系统,例如 Amazon FSx、Amazon EFS 或 Amazon EBS。请注意,将数据传输到远程存储可能会产生额外费用。

限制的根本原因在于这样的逻辑Amazon ParallelCluster用于格式化和挂载实例存储卷。该逻辑将条目添加到/etc/fstab形式:

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

${ephemeral_dir}是的值ephemeral_dirpcluster 配置文件中的参数(默认为/scratch)。

添加此行是为了在节点重启时或重启时,实例存储卷会自动重新装载。这是可取的,因为临时驱动器中的数据在重新启动后会保留。但是,临时驱动器上的数据不会在启动或停止周期内保存。这意味着它们是在没有数据的情况下格式化和安装的。

唯一支持的情况是在临时驱动器未加密时重启实例。这是因为驱动器在重启后仍能存活下来,并且由于已写入而装回去fstab.

要在所有其他情况下保留数据,您必须在停止实例之前删除逻辑卷条目。例如,删除/dev/vg.01/lv_ephemeral/etc/fstab在停止实例之前。完成此操作后,您无需安装临时卷即可启动实例。但是,实例停止或启动后,实例存储装载将不可用。

保存数据然后删除后fstab条目,请跳到下一部分。

停止并启动集群的头节点

注意

ts WithAmazon ParallelCluster版本 2.11 中,只有在实例类型没有实例存储时才支持头节点停止和启动。

  1. 确认集群中没有任何正在运行的作业。

    使用时Slurm调度器:

    • 如果sbatch --no-requeue未指定选项,将重新排列正在运行的作业。

    • 如果--no-requeue指定了选项,正在运行的作业失败。

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

    $ 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. 等到计算队列状态为STOPPED

    $ pcluster status cluster-name ... ComputeFleetStatus: STOP_REQUESTED $ pcluster status cluster-name ... ComputeFleetStatus: STOPPED
  4. 要通过操作系统重启或实例重启进行手动更新,您可以使用Amazon Web Services Management Console要么Amazon CLI. 以下是使用的示例Amazon 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. 启动集群的计算队列:

    $ 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