从 AWS ParallelCluster 2.x 升级到 3.x - AWS ParallelCluster

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

从 AWS ParallelCluster 2.x 升级到 3.x

以下各节描述了从 AWS ParallelCluster 2.x 迁移到 3.x 时会发生什么,包括从一个版本到另一个版本的变化。

自定义引导操作

使用 AWS ParallelCluster 3,您可以使用和 Scheduling/SlurmQueues部分中的(在版本 2 中)和OnNodeStartpre_install在 AWS ParallelCluster 版本 2 中)参数为头节点和OnNodeConfigured计算节点指定不同的自定义引导操作脚本。post_install AWS ParallelCluster HeadNode有关更多信息,请参阅 自定义引导操作

为 AWS ParallelCluster 2 开发的自定义引导操作脚本必须经过调整才能在 AWS ParallelCluster 3 中使用:

  • 我们不建议使用 /etc/parallelcluster/cfnconfigcfn_node_type 来区分头节点和计算节点。相反,我们建议您在 HeadNodeScheduling/SlurmQueues 中指定两个不同的脚本。

  • 如果您希望继续加载/etc/parallelcluster/cfnconfig以在引导操作脚本中使用,请注意的值已从 “” 更改cfn_node_type为 MasterServer “HeadNode”(请参阅:包容性语言)。

  • 在 AWS ParallelCluster 2 上,引导操作脚本的第一个输入参数是脚本的 S3URL,已被保留。在 AWS ParallelCluster 3 中,只有在配置中配置的参数才会传递给脚本。

警告

不正式支持使用通过 /etc/parallelcluster/cfnconfig 文件提供的内部变量。此文件可能会在未来版本中删除。

AWS ParallelCluster 2.x 和 3.x 使用不同的配置文件语法

AWS ParallelCluster 3.x 配置使用YAML语法。有关完整参考,请参阅配置文件

除了需要YAML文件格式外, AWS ParallelCluster 3.x 中还更新了许多配置部分、设置和参数值。在本节中,我们记录了 AWS ParallelCluster 配置的关键更改,并 side-by-side举例说明了每个版本的 AWS ParallelCluster这些差异。

启用和禁用超线程的多个调度器队列配置示例

AWS ParallelCluster 2:

[cluster default] queue_settings = ht-enabled, ht-disabled ... [queue ht-enabled] compute_resource_settings = ht-enabled-i1 disable_hyperthreading = false [queue ht-disabled] compute_resource_settings = ht-disabled-i1 disable_hyperthreading = true [compute_resource ht-enabled-i1] instance_type = c5n.18xlarge [compute_resource ht-disabled-i1] instance_type = c5.xlarge

AWS ParallelCluster 3:

... Scheduling: Scheduler: slurm SlurmQueues: - Name: ht-enabled Networking: SubnetIds: - compute_subnet_id ComputeResources: - Name: ht-enabled-i1 DisableSimultaneousMultithreading: true InstanceType: c5n.18xlarge - Name: ht-disabled Networking: SubnetIds: - compute_subnet_id ComputeResources: - Name: ht-disabled-i1 DisableSimultaneousMultithreading: false InstanceType: c5.xlarge

Lustre 文件FSx系统配置的新增示例

AWS ParallelCluster 2:

[cluster default] fsx_settings = fsx ... [fsx fsx] shared_dir = /shared-fsx storage_capacity = 1200 imported_file_chunk_size = 1024 import_path = s3://amzn-s3-demo-bucket export_path = s3://amzn-s3-demo-bucket/export_dir weekly_maintenance_start_time = 3:02:30 deployment_type = PERSISTENT_1 data_compression_type = LZ4

AWS ParallelCluster 3:

... SharedStorage: - Name: fsx MountDir: /shared-fsx StorageType: FsxLustre FsxLustreSettings: StorageCapacity: 1200 ImportedFileChunkSize: 1024 ImportPath: s3://amzn-s3-demo-bucket ExportPath: s3://amzn-s3-demo-bucket/export_dir WeeklyMaintenanceStartTime: "3:02:30" DeploymentType: PERSISTENT_1 DataCompressionType: LZ4

装载 Lustre 文件系统的现有FSx群集配置示例

AWS ParallelCluster 2:

[cluster default] fsx_settings = fsx ... [fsx fsx] shared_dir = /shared-fsx fsx_fs_id = fsx_fs_id

AWS ParallelCluster 3:

... SharedStorage: - Name: fsx MountDir: /shared-fsx StorageType: FsxLustre FsxLustreSettings: FileSystemId: fsx_fs_id

使用英特尔HPC平台规范软件堆栈的集群示例

AWS ParallelCluster 2:

[cluster default] enable_intel_hpc_platform = true ...

AWS ParallelCluster 3:

... AdditionalPackages: IntelSoftware: IntelHpcPlatform: true

注意:

自定义IAM配置示例,包括:实例配置文件、实例角色、实例的其他策略以及与集群关联的 lambda 函数的角色

AWS ParallelCluster 2:

[cluster default] additional_iam_policies = arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess,arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess ec2_iam_role = ec2_iam_role iam_lambda_role = lambda_iam_role ...

AWS ParallelCluster 3:

... Iam: Roles: CustomLambdaResources: lambda_iam_role HeadNode: ... Iam: InstanceRole: ec2_iam_role Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Iam: InstanceProfile: iam_instance_profile - Name: queue2 ... Iam: AdditionalIamPolicies: - Policy: arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess - Policy: arn:aws:iam::aws:policy/AmazonDynamoDBReadOnlyAccess

注意:

  • 对于 AWS ParallelCluster 2,IAM设置将应用于集群的所有实例,additional_iam_policies不能与一起使用ec2_iam_role

  • 对于 AWS ParallelCluster 3,您可以为头节点和计算节点IAM设置不同的设置,甚至可以为每个计算队列指定不同的IAM设置。

  • 对于 AWS ParallelCluster 3,您可以使用IAM实例配置文件作为IAM角色的替代方案。 InstanceProfileInstanceRole或者AdditionalIamPolicies无法一起配置。

自定义引导操作示例

AWS ParallelCluster 2:

[cluster default] s3_read_resource = arn:aws:s3:::amzn-s3-demo-bucket/* pre_install = s3://amzn-s3-demo-bucket/scripts/pre_install.sh pre_install_args = 'R curl wget' post_install = s3://amzn-s3-demo-bucket/scripts/post_install.sh post_install_args = "R curl wget" ...

AWS ParallelCluster 3:

... HeadNode: ... CustomActions: OnNodeStart: Script: s3://amzn-s3-demo-bucket/scripts/pre_install.sh Args: - R - curl - wget OnNodeConfigured: Script: s3://amzn-s3-demo-bucket/scripts/post_install.sh Args: ['R', 'curl', 'wget'] Iam: S3Access: - BucketName: amzn-s3-demo-bucket Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... CustomActions: OnNodeStart: Script: s3://amzn-s3-demo-bucket/scripts/pre_install.sh Args: ['R', 'curl', 'wget'] OnNodeConfigured: Script: s3://amzn-s3-demo-bucket/scripts/post_install.sh Args: ['R', 'curl', 'wget'] Iam: S3Access: - BucketName: amzn-s3-demo-bucket

对 S3 存储桶资源具有读写访问权限的集群示例

AWS ParallelCluster 2:

[cluster default] s3_read_resource = arn:aws:s3:::amzn-s3-demo-bucket/read_only/* s3_read_write_resource = arn:aws:s3:::amzn-s3-demo-bucket/read_and_write/* ...

AWS ParallelCluster 3:

... HeadNode: ... Iam: S3Access: - BucketName: amzn-s3-demo-bucket KeyName: read_only/ EnableWriteAccess: False - BucketName: amzn-s3-demo-bucket KeyName: read_and_write/ EnableWriteAccess: True Scheduling: Scheduler: slurm SlurmQueues: - Name: queue1 ... Iam: S3Access: - BucketName: amzn-s3-demo-bucket KeyName: read_only/ EnableWriteAccess: False - BucketName: amzn-s3-demo-bucket KeyName: read_and_write/ EnableWriteAccess: True

包容性语言

AWS ParallelCluster 3 在 AWS ParallelCluster 2 中使用 “主节点” 的地方使用 “头节点” 一词。这包括以下这些:

  • 在 AWS Batch 作业环境中导出的变量已更改:从变MASTER_IPPCLUSTER_HEAD_NODE_IP

  • 所有 AWS CloudFormation 输出都从变Master*HeadNode*

  • 全部 NodeType 和标签从变MasterHeadNode

调度器支持

AWS ParallelCluster 3.x 不支持 Son of Grid Engine (SGE) 和 Torque 调度器。

AWS Batch 命令awsbhosts、、awsbkillawsboutawsbqueuesawsbstat、和作为单独awsbsubaws-parallelcluster-awsbatch-cli PyPI 包分发。此程序包由 AWS ParallelCluster 安装在头节点上。您仍然可以在集群的头节点上使用这些 AWS Batch 命令。但如果您希望从头节点以外的其他位置使用 AWS Batch 命令,则必须先安装 aws-parallelcluster-awsbatch-cli PyPI 程序包。

AWS ParallelCluster CLI

AWS ParallelCluster 命令行界面 (CLI) 已更改。AWS ParallelCluster CLI 命令中描述了新语法。的输出格式CLI是字符JSON串。

配置新集群

pcluster configure命令在 AWS ParallelCluster 3 中包含不同的参数,而 AWS ParallelCluster 2 中包含的参数不同。有关更多信息,请参阅 pcluster configure

另请注意,配置文件语法已从 AWS ParallelCluster 2 改变。有关集群配置设置的完整参考,请参阅集群配置文件

创建新集群

AWS ParallelCluster 2 的pcluster create命令已被pcluster create-cluster命令所取代。

请注意, AWS ParallelCluster 2.x 中没有该-nw选项的默认行为是等待集群创建事件,而 AWS ParallelCluster 3.x 命令会立即返回。可以使用 pcluster describe-cluster 监控集群创建进度。

AWS ParallelCluster 3 配置文件包含单个集群定义,因此不再需要该-t参数。

下面是一个配置文件示例。

# AWS ParallelCluster v2 $ pcluster create \ -r REGION \ -c V2_CONFIG_FILE \ -nw \ -t CLUSTER_TEMPLATE \ CLUSTER_NAME # AWS ParallelCluster v3 $ pcluster create-cluster \ --region REGION \ --cluster-configuration V3_CONFIG_FILE \ --cluster-name CLUSTER_NAME

列出集群

必须将 pcluster list AWS ParallelCluster 2.x 命令替换为pcluster list-clusters命令。

注意:你需要 AWS ParallelCluster v2 CLI 才能列出使用 2.x 版本的创建的集群。 AWS ParallelCluster请参阅AWS ParallelCluster 在虚拟环境中安装(推荐),了解如何使用虚拟环境安装 AWS ParallelCluster 的多个版本。

# AWS ParallelCluster v2 $ pcluster list -r REGION # AWS ParallelCluster v3 $ pcluster list-clusters --region REGION

启动和停止集群

pcluster startpcluster stop AWS ParallelCluster 2.x 命令必须替换为pcluster update-compute-fleet命令。

启动计算实例集:

# AWS ParallelCluster v2 $ pcluster start \ -r REGION \ CLUSTER_NAME # AWS ParallelCluster v3 - Slurm fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status START_REQUESTED # AWS ParallelCluster v3 - AWS Batch fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status ENABLED

停止计算实例集:

# AWS ParallelCluster v2 $ pcluster stop \ -r REGION \ CLUSTER_NAME # AWS ParallelCluster v3 - Slurm fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status STOP_REQUESTED # AWS ParallelCluster v3 - AWS Batch fleets $ pcluster update-compute-fleet \ --region REGION \ --cluster-name CLUSTER_NAME \ --status DISABLED

连接到集群

pcluster ssh AWS ParallelCluster 2.x 命令在 AWS ParallelCluster 3.x 中有不同的参数名称。请参阅 pcluster ssh

连接到集群:

# AWS ParallelCluster v2 $ pcluster ssh \ -r REGION \ CLUSTER_NAME \ -i ~/.ssh/id_rsa # AWS ParallelCluster v3 $ pcluster ssh \ --region REGION \ --cluster-name CLUSTER_NAME \ -i ~/.ssh/id_rsa

IMDS配置更新

从版本 3.0.0 开始, AWS ParallelCluster 引入了对默认情况下仅限一部分超级用户访问头节点IMDS(和实例配置文件凭证)的支持。有关更多信息,请参阅 Imds 属性

支持的区域 AWS ParallelCluster

AWS ParallelCluster 版本 3 有以下版本 AWS 区域:

区域名称 区域
美国东部(俄亥俄州) us-east-2
美国东部(弗吉尼亚州北部) us-east-1
美国西部(北加利福尼亚) us-west-1
美国西部(俄勒冈州) us-west-2
非洲(开普敦) af-south-1
亚太地区(香港) ap-east-1
亚太地区(孟买) ap-south-1
亚太地区(首尔) ap-northeast-2
亚太地区(新加坡) ap-southeast-1
亚太地区(悉尼) ap-southeast-2
Asia Pacific (Tokyo) ap-northeast-1
加拿大(中部) ca-central-1
中国(北京) cn-north-1
中国(宁夏) cn-northwest-1
欧洲(法兰克福) eu-central-1
欧洲地区(爱尔兰) eu-west-1
欧洲地区(伦敦) eu-west-2
欧洲地区(米兰) eu-south-1
欧洲地区(巴黎) eu-west-3
欧洲地区(斯德哥尔摩) eu-north-1
中东(巴林) me-south-1
南美洲(圣保罗) sa-east-1
AWS GovCloud (美国东部) us-gov-east-1
AWS GovCloud (美国西部) us-gov-west-1
以色列(特拉维夫) il-central-1