本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从 AWS ParallelCluster 2.x 迁移到 3.x
以下各节介绍从 AWS ParallelCluster 2.x 升级到 3.x 时发生的情况,包括从一个版本到另一个版本的变化。
自定义引导操作
使用 AWS ParallelCluster 3,您可以在 HeadNode 和 Scheduling/SlurmQueues 部分中使用 OnNodeStart
(在 AWS ParallelCluster 版本 2 中为 pre_install
)和 OnNodeConfigured
(在 AWS ParallelCluster 版本 2 中为 post_install
)参数,为头节点和计算节点指定不同的自定义引导操作脚本。有关更多信息,请参阅 自定义引导操作。
为 AWS ParallelCluster 2 开发的自定义引导操作脚本必须经过调整才能在 AWS ParallelCluster 3 中使用:
-
我们不建议使用
/etc/parallelcluster/cfnconfig
和cfn_node_type
来区分头节点和计算节点。相反,我们建议您在 HeadNode 和 Scheduling/SlurmQueues 中指定两个不同的脚本。 -
如果您想要继续加载
/etc/parallelcluster/cfnconfig
以在引导操作脚本中使用,请注意将cfn_node_type
的值从“MasterServer”更改为“HeadNode”(请参阅:包容性语言)。 -
在 AWS ParallelCluster 2 上,引导操作脚本的第一个输入参数是脚本的 S3 URL,已被保留。在 AWS ParallelCluster 3 中,只有在配置中配置的参数才会传递给脚本。
警告
不正式支持使用通过 /etc/parallelcluster/cfnconfig
文件提供的内部变量。此文件可能会在未来版本中删除。
AWS ParallelCluster 2.x 和 3.x 使用不同的配置文件语法
AWS ParallelCluster 3.x 配置使用 YAML 语法。有关完整参考,请参阅配置文件。
除了需要 YAML 文件格式外,AWS ParallelCluster 3.x 中还更新了许多配置部分、设置和参数值。在本节中,我们将指出 AWS ParallelCluster 配置的关键更改,并列举示例以说明每个 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
新的 FSx for Lustre 文件系统配置示例
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
挂载现有 FSx for Lustre 文件系统的集群配置示例
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
使用 Intel HPC 平台规范软件堆栈的集群示例
AWS ParallelCluster 2:
[cluster default] enable_intel_hpc_platform = true ...
AWS ParallelCluster 3:
... AdditionalPackages: IntelSoftware: IntelHpcPlatform: true
注意:
-
Intel HPC 平台规范软件的安装受适用的 Intel 最终用户许可协议
条款和条件的约束。
自定义 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 角色的替代项。
InstanceProfile
、InstanceRole
或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_IP
更改为PCLUSTER_HEAD_NODE_IP
。 -
所有 AWS CloudFormation 输出都从
Master*
更改为HeadNode*
。 -
所有 NodeType 和标签都从
Master
更改为HeadNode
。
调度器支持
AWS ParallelCluster 3.x 不支持 Son of Grid Engine (SGE) 和 Torque 调度器。
AWS Batch 命令 awsbhosts
、awsbkill
、awsbout
、awsbqueues
、awsbstat
和 awsbsub
作为单独的 aws-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
配置新集群
与 AWS ParallelCluster 2 相比,AWS ParallelCluster 3 中的 pcluster configure
命令包含不同的参数。有关更多信息,请参阅 pcluster configure。
另请注意,配置文件语法已更改,不再与 AWS ParallelCluster 2 相同。有关集群配置设置的完整参考,请参阅集群配置文件。
创建新集群
AWS ParallelCluster 2 的 pcluster create
命令已被 pcluster
create-cluster 命令取代。
请注意,在不使用 -nw
选项的情况下,AWS ParallelCluster 2.x 中的默认行为是等待集群创建事件,而 AWS ParallelCluster 3.x 命令会立即返回。可以使用 pcluster describe-cluster 监控集群创建进度。
AWS ParallelCluster 3 配置文件包含单个集群定义,因此不再需要 -t
参数。
下面是一个配置文件示例。
# AWS ParallelCluster v2
$
pcluster create \ -r
REGION
\ -cV2_CONFIG_FILE
\ -nw \ -tCLUSTER_TEMPLATE
\CLUSTER_NAME
# AWS ParallelCluster v3
$
pcluster create-cluster \ --region
REGION
\ --cluster-configurationV3_CONFIG_FILE
\ --cluster-nameCLUSTER_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 start
和 pcluster 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-nameCLUSTER_NAME
\ --statusSTART_REQUESTED
# AWS ParallelCluster v3 - AWS Batch fleets
$
pcluster update-compute-fleet \ --region
REGION
\ --cluster-nameCLUSTER_NAME
\ --statusENABLED
停止计算实例集:
# AWS ParallelCluster v2
$
pcluster stop \ -r
REGION
\CLUSTER_NAME
# AWS ParallelCluster v3 - Slurm fleets
$
pcluster update-compute-fleet \ --region
REGION
\ --cluster-nameCLUSTER_NAME
\ --statusSTOP_REQUESTED
# AWS ParallelCluster v3 - AWS Batch fleets
$
pcluster update-compute-fleet \ --region
REGION
\ --cluster-nameCLUSTER_NAME
\ --statusDISABLED
连接到集群
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-nameCLUSTER_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 |