

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

# 入门 SageMaker HyperPod
开始使用

开始创建您的第一个 SageMaker HyperPod 集群，并学习的集群操作功能。 SageMaker HyperPod您可以通过 SageMaker AI 控制台 UI 或 Amazon CLI 命令创建 SageMaker HyperPod 集群。本教程介绍如何使用流行的工作负载调度器软件 Slurm 创建新 SageMaker HyperPod集群。完成本教程后，您将知道如何使用 Amazon Systems Manager 命令 (`aws ssm`) 登录到集群节点。完成本教程后，另请参阅[SageMaker HyperPod Slurm 集群操作](sagemaker-hyperpod-operate-slurm.md)以了解有关 SageMaker HyperPod 基本操作的更多信息，并了解[SageMaker HyperPod 集群上的作业](sagemaker-hyperpod-run-jobs-slurm.md)如何在已配置的集群上安排作业。

**提示**  
要查找实际示例和解决方案，另请参阅[SageMaker HyperPod研讨会](https://catalog.workshops.aws/sagemaker-hyperpod)。

**Topics**
+ [

# 开始 SageMaker HyperPod 使用 SageMaker AI 控制台
](smcluster-getting-started-slurm-console.md)
+ [

# 使用 Amazon CloudFormation 模板创建 SageMaker HyperPod 集群
](smcluster-getting-started-slurm-console-create-cluster-cfn.md)
+ [

# 开始 SageMaker HyperPod 使用 Amazon CLI
](smcluster-getting-started-slurm-cli.md)

# 开始 SageMaker HyperPod 使用 SageMaker AI 控制台
控制台

以下教程演示如何创建新 SageMaker HyperPod 集群并通过 SageMaker AI 控制台 UI 使用 Slurm 对其进行设置。按照教程，您将创建一个包含三个 Slurm 节点的 HyperPod 集群，`my-controller-group``my-login-group`、和。`worker-group-1`

**Topics**
+ [

## 创建集群
](#smcluster-getting-started-slurm-console-create-cluster-page)
+ [

## 部署资源
](#smcluster-getting-started-slurm-console-create-cluster-deploy)
+ [

## 删除集群并清理资源
](#smcluster-getting-started-slurm-console-delete-cluster-and-clean)

## 创建集群


要导航到**SageMaker HyperPod 集群**页面并选择 **Slurm** 编排，请按照以下步骤操作。

1. 打开 Amazon A SageMaker I 控制台，网址为[https://console.aws.amazon.com/sagemaker/](https://console.amazonaws.cn/sagemaker/)。

1. 在左侧导航窗格中选择集**HyperPod 群**，然后选择**集群管理**。

1. 在**SageMaker HyperPod 集群**页面上，选择**创建 HyperPod 集群**。

1. 在**创建 HyperPod 集群**下拉列表中，选择**由 Slurm 编排**。

1. 在 Slurm 集群创建页面上，您将看到两个选项。选择最适合您需求的选项。

   1. **快速设置** – 要立即开始使用默认设置，请选择**快速设置**。使用此选项， SageMaker AI 将在创建集群的过程中为 Lustre 创建新资源，例如 VPC、子网、安全组、Amazon S3 存储桶、IAM 角色和 FSx for Lustre。

   1. **自定义设置** – 要与现有 Amazon 资源集成或有特定的联网、安全或存储要求，请选择**自定义设置**。利用此选项，您可以选择使用现有资源或创建新资源，还可以自定义最适合您需求的配置。

## 快速设置


在 “**快速设置**” 部分，按照以下步骤使用 Slurm 编排创建 HyperPod 集群。

### 常规设置


指定新集群的名称。创建集群后，无法更改该名称。

### 实例组


要添加实例组，请选择**添加组**。每个实例组都可以进行不同的配置，您可以创建一个异构集群，该集群由具有不同实例类型的多个实例组组成。要部署集群，您必须为控制器和计算组类型添加至少一个实例组。

**重要**  
一次可添加一个实例组。要创建多个实例组，请为每个实例组重复此过程。

执行以下步骤来创建实例组。

1. 对于**实例组类型**，为实例组选择类型。在本教程中，为 `my-controller-group` 选择**控制器（主）**，为 `my-login-group` 选择**登录**，为 `worker-group-1` 选择**计算（worker）**。

1. 对于**名称**，指定实例组的名称。在本教程中，创建三个实例组，分别命名为 `my-controller-group`、`my-login-group` 和 `worker-group-1`。

1.  对于**实例容量**，选择按需容量或训练计划来预留计算资源。

1. 对于**实例类型**，为实例组选择实例。本教程中，选择 `ml.c5.xlarge` 为 `my-controller-group`，`ml.m5.4xlarge` 为 `my-login-group`，`ml.trn1.32xlarge` 为 `worker-group-1`。
**重要**  
请确保为账户选择具有足够配额以及充足的未分配 IP 地址的实例类型。要查看或请求更多配额，请参阅 [SageMaker HyperPod 配额](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)。

1. 对于**实例数量**，指定一个不超过集群使用实例配额的整数。在本教程中，为所有三个组输入 **1**。

1. 对于**目标可用区**，选择将在其中预调配实例的可用区。可用区应与加速计算容量所在的位置相对应。

1. 对于**每个实例的附加存储卷(GB) – 可选**，指定 1 到 16384 之间的整数，以千兆字节（GB）为单位设置附加 Elastic Block Store（EBS）卷的大小。EBS 卷附加到实例组的每个实例。附加 EBS 卷的默认挂载路径为 `/opt/sagemaker`。成功创建集群后，您可以 SSH 登录集群实例（节点），并通过运行 `df -h` 命令验证 EBS 卷是否已正确加载。如 [Amazon Elastic Block Store 用户指南](https://docs.amazonaws.cn/ebs/latest/userguide/ebs-volumes.html)中的 *Amazon EBS 卷*部分所述，附加 EBS 卷可提供稳定、非实例和独立持久化的存储。

1. 选择**添加实例组**。

### 快速设置默认值


本部分列出了创建集群的所有默认设置，包括将在集群创建过程中创建的所有新 Amazon 资源。检查默认设置。

## 自定义设置


在 “**自定义设置**” 部分，按照以下步骤使用 Slurm 编排创建 HyperPod 集群。

### 常规设置


指定新集群的名称。创建集群后，无法更改该名称。

对于**实例恢复**，选择**自动 – *推荐***或**无**。

### Networking


配置网络设置以创建集群。创建集群后，无法修改这些设置。

1. 对于 **VPC**，如果您已经拥有可以让 SageMaker AI 访问您的 VPC 的 VPC，请选择您自己的 VPC。要创建新的 VPC，请按照 [Amazon Virtual Private Cloud 用户指南](https://docs.amazonaws.cn/vpc/latest/userguide/create-vpc.html)中的*创建 VPC* 进行操作。您可以将其保留为 “**无**” 以使用默认 SageMaker AI VPC。

1. 对于 **VPC IPv4 网段**，请输入您的 VPC 的起始 IP。

1. 对于**可用区**，请选择 HyperPod 将在其中为您的集群创建子网的可用区 (AZ)。选择 AZs 与您的加速计算容量位置相匹配的选项。

1. 对于**安全组**，创建一个安全组，或选择最多五个已配置规则的安全组，以允许 VPC 内资源之间的通信。

### 实例组


要添加实例组，请选择**添加组**。每个实例组都可以进行不同的配置，您可以创建一个异构集群，该集群由具有不同实例类型的多个实例组组成。要部署集群，您必须添加至少一个实例组。

**重要**  
一次可添加一个实例组。要创建多个实例组，请为每个实例组重复此过程。

执行以下步骤来创建实例组。

1. 对于**实例组类型**，为实例组选择类型。在本教程中，为 `my-controller-group` 选择**控制器（主）**，为 `my-login-group` 选择**登录**，为 `worker-group-1` 选择**计算（worker）**。

1. 对于**名称**，指定实例组的名称。在本教程中，创建三个实例组，分别命名为 `my-controller-group`、`my-login-group` 和 `worker-group-1`。

1.  对于**实例容量**，选择按需容量或训练计划来预留计算资源。

1. 对于**实例类型**，为实例组选择实例。本教程中，选择 `ml.c5.xlarge` 为 `my-controller-group`，`ml.m5.4xlarge` 为 `my-login-group`，`ml.trn1.32xlarge` 为 `worker-group-1`。
**重要**  
请确保为账户选择具有足够配额以及充足的未分配 IP 地址的实例类型。要查看或请求更多配额，请参阅 [SageMaker HyperPod 配额](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)。

1. 对于**实例数量**，指定一个不超过集群使用实例配额的整数。在本教程中，为所有三个组输入 **1**。

1. 对于**目标可用区**，选择将在其中预调配实例的可用区。可用区应与加速计算容量所在的位置相对应。

1. 对于**每个实例的附加存储卷(GB) – 可选**，指定 1 到 16384 之间的整数，以千兆字节（GB）为单位设置附加 Elastic Block Store（EBS）卷的大小。EBS 卷附加到实例组的每个实例。附加 EBS 卷的默认挂载路径为 `/opt/sagemaker`。成功创建集群后，您可以 SSH 登录集群实例（节点），并通过运行 `df -h` 命令验证 EBS 卷是否已正确加载。如 [Amazon Elastic Block Store 用户指南](https://docs.amazonaws.cn/ebs/latest/userguide/ebs-volumes.html)中的 *Amazon EBS 卷*部分所述，附加 EBS 卷可提供稳定、非实例和独立持久化的存储。

1. 选择**添加实例组**。

### 生命周期脚本


您可以选择使用默认生命周期脚本或自定义生命周期脚本，这些脚本将存储在 Amazon S3 存储桶中。您可以在 Aw [esome 分布式培训 GitHub 存储库](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/7.sagemaker-hyperpod-eks/LifecycleScripts)中查看默认生命周期脚本。要了解有关生命周期脚本的更多信息，请参阅[使用生命周期脚本自定义 SageMaker HyperPod 集群](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)。

1. 对于**生命周期脚本**，选择使用默认生命周期脚本或自定义生命周期脚本。

1. 对于**生命周期脚本的 S3 存储桶**，选择创建新的存储桶或使用现有存储桶来存储生命周期脚本。

### Permissions


选择或创建允许 HyperPod 代表您运行和访问必要 Amazon 资源的 IAM 角色。

### 仓储服务


配置要在 FSx 集群上配置 Lustre 文件系统。 HyperPod 

1. 对于**文件系统**，请为 Lustre 文件系统选择现有的， FSx 为 Lustre 文件系统创建一个新的 FSx 文件系统，或者不要 FSx 为 Lustre 文件系统置备。

1. 对于**每单位存储的吞吐量**，选择预调配存储中每 TiB 可用的吞吐量。

1. 在**存储容量**中，输入以 TB 为单位的容量值。

1. 对于**数据压缩类型**，选择**LZ4**启用数据压缩。

1. 对于 **Lustre 版本**，查看为新文件系统推荐的值。

### 标签 – 可选


对于**标签-*可选***，向新集群添加密钥和值对，并将集群作为 Amazon 资源进行管理。要了解更多信息，请参阅[标记您的 Amazon 资源](https://docs.amazonaws.cn/tag-editor/latest/userguide/tagging.html)。

## 部署资源


使用**快速设置**或**自定义设置**完成集群配置后，选择以下选项以启动资源预调配和集群创建。
+  **提交**- SageMaker AI 将开始配置默认配置资源并创建集群。
+ **下载 CloudFormation 模板参数**-您将下载配置参数 JSON 文件并运行 Amazon CLI 命令部署 CloudFormation 堆栈以配置配置资源并创建集群。如果需要，您可以编辑已下载的参数 JSON 文件。如果选择此选项，请在[使用 Amazon CloudFormation 模板创建 SageMaker HyperPod 集群](smcluster-getting-started-slurm-console-create-cluster-cfn.md)中查看更多说明。

## 删除集群并清理资源


成功测试创建 SageMaker HyperPod 集群后，它会继续以该`InService`状态运行，直到您删除该集群。我们建议您在不使用按需 SageMaker AI 实例时删除任何使用按需 AI 实例创建的集群，以免产生基于按需定价的持续服务费用。在本教程中，您创建了一个由两个实例组组成的集群。其中一个使用 C5 实例，因此请确保按照 [删除集 SageMaker HyperPod 群](sagemaker-hyperpod-operate-slurm-console-ui.md#sagemaker-hyperpod-operate-slurm-console-ui-delete-cluster) 中的说明删除集群。

但是，如果您创建了具有预留计算容量的集群，则集群的状态不会影响服务计费。

要从本教程使用的 S3 存储桶中清理生命周期脚本，请转到集群创建过程中使用的 S3 存储桶并完全删除文件。

如果您已经测试了在集群上运行任何工作负载，请确保您是否上传了任何数据，或者您的任务是否将任何项目保存到不同的 S3 存储桶或文件系统服务，例如 Amazon for Lustre 和 Amazon Elastic File System 和 Amazon FSx Elastic File System。为防止产生任何费用，请删除存储或文件系统中的所有构件和数据。

# 使用 Amazon CloudFormation 模板创建 SageMaker HyperPod 集群
CloudFormation

您可以使用的 CloudFormation 模板创建 SageMaker HyperPod 集群 HyperPod。必须安装 Amazon CLI 才能继续。

**Topics**
+ [

## 在控制台中配置资源并使用进行部署 CloudFormation
](#smcluster-getting-started-slurm-console-create-cluster-deploy-console)
+ [

## 使用配置资源和部署 CloudFormation
](#smcluster-getting-started-slurm-console-create-cluster-deploy-cfn)

## 在控制台中配置资源并使用进行部署 CloudFormation


您可以使用配置资源 Amazon Web Services 管理控制台 并使用 CloudFormation模板进行部署。

执行以下步骤。

1. 不要@@ *选择 “**提交**”，而*是在教程结尾处选择 “**下载 CloudFormation 模板参数**” [开始 SageMaker HyperPod 使用 SageMaker AI 控制台](smcluster-getting-started-slurm-console.md)。本教程包含成功创建集群所需的重要配置信息。
**重要**  
如果您选择**提交**，则在删除集群之前，无法部署同名集群。

   选择**下载 CloudFormation 模板参数**后，页面右侧将出现 “**使用配置文件使用该 Amazon CLI窗口创建集群**”。

1. 在**使用配置文件通过 Amazon CLI创建集群**窗口上，选择**下载配置参数文件**。该文件将下载到您的计算机上。可以根据需要编辑配置 JSON 文件，如果不需要进行更改，也可以将其保持原样。

1. 在终端，导航到参数文件 `file://params.json` 的位置。

1. 运行 [create-stack](https://docs.amazonaws.cn//cli/latest/reference/cloudformation/create-stack.html) Amazon CLI 命令部署 CloudFormation 堆栈，该堆栈将预配置的资源并创建集群。 HyperPod

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url https://aws-sagemaker-hyperpod-cluster-setup.amazonaws.com/templates-slurm/main-stack-slurm-based-template.yaml
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. 要查看资源配置的状态，请导航到[CloudFormation 控制台](https://console.amazonaws.cn/cloudformation)。

   集群创建完成后，在 SageMaker HyperPod控制台主窗格的 “**集群**” 下查看新集群。您可以查看**状态**栏下显示的状态。

1. 集群状态变为 `InService` 后，即可开始登录集群节点。要访问集群节点并开始运行 ML 工作负载，请参阅 [SageMaker HyperPod 集群上的作业](sagemaker-hyperpod-run-jobs-slurm.md)。

## 使用配置资源和部署 CloudFormation


您可以使用的 CloudFormation 模板配置资源和部署 SageMaker HyperPod。

执行以下步骤。

1.  SageMaker HyperPod 从[sagemaker-hyperpod-cluster-setup](https://github.com/aws/sagemaker-hyperpod-cluster-setup) GitHub 存储库下载的 CloudFormation 模板。

1. 运行 [create-stack](https://docs.amazonaws.cn//cli/latest/reference/cloudformation/create-stack.html) Amazon CLI 命令部署 CloudFormation 堆栈，该堆栈将预配置的资源并创建集群。 HyperPod

   ```
   aws cloudformation create-stack 
       --stack-name my-stack
       --template-url URL_of_the_file_that_contains_the_template_body
       --parameters file://params.json
       --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
   ```

1. 要查看资源预置的状态，请导航到 CloudFormation 控制台。

   集群创建完成后，在 SageMaker HyperPod控制台主窗格的 “**集群**” 下查看新集群。您可以查看**状态**栏下显示的状态。

1. 集群状态变为 `InService` 后，即可开始登录集群节点。要访问集群节点并开始运行 ML 工作负载，请参阅 [SageMaker HyperPod 集群上的作业](sagemaker-hyperpod-run-jobs-slurm.md)。

# 开始 SageMaker HyperPod 使用 Amazon CLI
Amazon CLI

使用中的 Amazon CLI 命令创建您的第一个 SageMaker HyperPod 集群 HyperPod。

## 使用 Slurm 创建你的第一个 SageMaker HyperPod 集群


以下教程演示了如何创建新 SageMaker HyperPod 集群并通过的[Amazon CLI 命令](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-cli)使用 Slurm 对其进行设置。 SageMaker HyperPod按照教程，您将创建一个包含三个 Slurm 节点的 HyperPod 集群：`my-controller-group``my-login-group`、和。`worker-group-1`

使用 API 驱动的配置方法，您可以使用直接在 API 请求中定义 Slurm 节点类型和分区分配。 CreateCluster `SlurmConfig`这消除了对单独`provisioning_parameters.json`文件的需求，并提供了内置的验证、偏差检测和 per-instance-group FSx 配置。

1. 首先，准备生命周期脚本并将其上传到 Amazon S3 存储桶。在创建集群期间，在每个实例组中 HyperPod 运行它们。使用以下命令将生命周期脚本上传到 Amazon S3。

   ```
   aws s3 sync \
       ~/local-dir-to-lifecycle-scripts/* \
       s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
   ```
**注意**  
S3 存储桶路径应以前缀开头`sagemaker-`，因为 with [的 IAM 角色](sagemaker-hyperpod-prerequisites-iam.md#sagemaker-hyperpod-prerequisites-iam-role-for-hyperpod)`AmazonSageMakerClusterInstanceRolePolicy`仅允许访问以特定前缀开头的 Amazon S3 存储桶。 SageMaker HyperPod

   如果您是从头开始，请使用 [Awsome 分布式训练 GitHub 存储库](https://github.com/aws-samples/awsome-distributed-training/)中提供的示例生命周期脚本。以下子步骤说明如何下载示例生命周期脚本并将其上传到 Amazon S3 存储桶。

   1. 下载生命周期脚本示例到本地计算机的一个目录中。

      ```
      git clone https://github.com/aws-samples/awsome-distributed-training/
      ```

   1. 进入目录 [https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config](https://github.com/aws-samples/awsome-distributed-training/tree/main/1.architectures/5.sagemaker-hyperpod/LifecycleScripts/base-config)，可以找到一组生命周期脚本。

      ```
      cd awsome-distributed-training/1.architectures/5.sagemaker_hyperpods/LifecycleScripts/base-config
      ```

      要了解生命周期脚本示例的更多信息，请参阅 [使用生命周期脚本自定义 SageMaker HyperPod 集群](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)。

   1. 将脚本上传到 `s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src`。您可以使用 Amazon S3 管理控制台或运行以下 Amazon CLI Amazon S3 命令来完成此操作。

      ```
      aws s3 sync \
          ~/local-dir-to-lifecycle-scripts/* \
          s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src
      ```
**注意**  
使用 API 驱动的配置，您无需创建或上传文件。`provisioning_parameters.json`Slurm 配置将在下一步的 CreateCluster API 请求中直接定义。

1. 准备一个 JSON 格式的[CreateCluster](https://docs.amazonaws.cn/sagemaker/latest/APIReference/API_CreateCluster.html)请求文件并另存为`create_cluster.json`。

   使用 API 驱动的配置，您可以使用字段为每个实例组指定 Slurm 节点类型和分区分配。`SlurmConfig`您还可以使用配置集群级别的 Slurm 设置。`Orchestrator.Slurm`

   对于 `ExecutionRole`，请提供在 [使用的先决条件 SageMaker HyperPod](sagemaker-hyperpod-prerequisites.md) 中使用托管的 `AmazonSageMakerClusterInstanceRolePolicy` 创建的 IAM 角色的 ARN。

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole",
               "InstanceStorageConfigs": [
                   {
                       "EbsVolumeConfig": {
                           "VolumeSizeInGB": 500
                       }
                   }
               ]
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       }
   }
   ```

   **SlurmConfig 字段**：    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **Orchestrator.Slurm 字段：**    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

   **SlurmConfigStrategy 选项：**
   + `Managed`（推荐）： HyperPod 完全`slurm.conf`管理和检测未经授权的更改（偏差检测）。如果检测到偏差，更新将失败。
   + `Overwrite`: 更新`slurm.conf`时 HyperPod 覆盖，忽略任何手动更改。
   + `Merge`: HyperPod 保留手动更改并将其与 API 配置合并。

   ** FSx 为光泽添加（可选）：**

   要将 fo FSx r Lustre 文件系统挂载到您的计算节点，请将其`FsxLustreConfig`添加到实例组中。`InstanceStorageConfigs`这需要自定义 VPC 配置。

   ```
   {
       "InstanceGroupName": "worker-group-1",
       "InstanceType": "ml.trn1.32xlarge",
       "InstanceCount": 1,
       "SlurmConfig": {
           "NodeType": "Compute",
           "PartitionNames": ["partition-1"]
       },
       "InstanceStorageConfigs": [
           {
               "FsxLustreConfig": {
                   "DnsName": "fs-0abc123def456789.fsx.us-west-2.amazonaws.com",
                   "MountPath": "/fsx",
                   "MountName": "abcdefgh"
               }
           }
       ],
       "LifeCycleConfig": {
           "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
           "OnCreate": "on_create.sh"
       },
       "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
   }
   ```

   ** FSx 为 OpenZFS 添加内容（可选）：**

   你也可以 FSx 为 OpenZFS 文件系统进行挂载：

   ```
   "InstanceStorageConfigs": [
       {
           "FsxOpenZfsConfig": {
               "DnsName": "fs-0xyz789abc123456.fsx.us-west-2.amazonaws.com",
               "MountPath": "/shared"
           }
       }
   ]
   ```
**注意**  
每个实例组最多可以有一个用 FSx 于 Lustre 的实例组和一个用于 OpenZFS 配置 FSx 的实例组。不同的实例组可以挂载不同的文件系统。

   **添加 VPC 配置（必填项 FSx）：**

   如果使用 FSx，则必须指定自定义 VPC 配置：

   ```
   {
       "ClusterName": "my-hyperpod-cluster",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::<account-id>:role/HyperPodExecutionRole"
           },
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "VpcConfig": {
           "SecurityGroupIds": ["sg-0abc123def456789a"],
           "Subnets": ["subnet-0abc123def456789a"]
       }
   }
   ```

1. 运行以下命令创建集群。

   ```
   aws sagemaker create-cluster --cli-input-json file://complete/path/to/create_cluster.json
   ```

   这将返回已创建集群的 ARN。

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster"
   }
   ```

   如果因资源限制而出现错误，请确保将实例类型更改为账户中有足够配额的类型，或按照 [SageMaker HyperPod 配额](sagemaker-hyperpod-prerequisites.md#sagemaker-hyperpod-prerequisites-quotas)中的说明操作来请求额外配额。

   **常见的验证错误：**    
[\[See the AWS documentation website for more details\]](http://docs.amazonaws.cn/sagemaker/latest/dg/smcluster-getting-started-slurm-cli.html)

1. 运行 `describe-cluster` 查看集群状态。

   ```
   aws sagemaker describe-cluster --cluster-name my-hyperpod-cluster
   ```

   示例响应：

   ```
   {
       "ClusterArn": "arn:aws:sagemaker:us-west-2:111122223333:cluster/my-hyperpod-cluster",
       "ClusterName": "my-hyperpod-cluster",
       "ClusterStatus": "Creating",
       "InstanceGroups": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceType": "ml.c5.xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Controller"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Login"
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceCount": 1,
               "CurrentCount": 0,
               "TargetCount": 1,
               "SlurmConfig": {
                   "NodeType": "Compute",
                   "PartitionNames": ["partition-1"]
               },
               "LifeCycleConfig": {
                   "SourceS3Uri": "s3://sagemaker-<bucket>/src",
                   "OnCreate": "on_create.sh"
               },
               "ExecutionRole": "arn:aws:iam::111122223333:role/HyperPodExecutionRole"
           }
       ],
       "Orchestrator": {
           "Slurm": {
               "SlurmConfigStrategy": "Managed"
           }
       },
       "CreationTime": "2024-01-15T10:30:00Z"
   }
   ```

   集群状态变为 **InService** 后，进入下一步。创建集群通常需要 10-15 分钟。

1. 运行 `list-cluster-nodes` 检查集群节点的详细信息。

   ```
   aws sagemaker list-cluster-nodes --cluster-name my-hyperpod-cluster
   ```

   示例响应：

   ```
   {
       "ClusterNodeSummaries": [
           {
               "InstanceGroupName": "my-controller-group",
               "InstanceId": "i-0abc123def456789a",
               "InstanceType": "ml.c5.xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "my-login-group",
               "InstanceId": "i-0abc123def456789b",
               "InstanceType": "ml.m5.4xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:35:00Z"
           },
           {
               "InstanceGroupName": "worker-group-1",
               "InstanceId": "i-0abc123def456789c",
               "InstanceType": "ml.trn1.32xlarge",
               "InstanceStatus": {
                   "Status": "Running",
                   "Message": ""
               },
               "LaunchTime": "2024-01-15T10:36:00Z"
           }
       ]
   }
   ```

   `InstanceId`这是您的集群用户登录 (`aws ssm`) 所需的内容。有关登录集群节点和运行 ML 工作负载的更多信息，请参阅 [SageMaker HyperPod 集群上的作业](sagemaker-hyperpod-run-jobs-slurm.md)。

1. 使用 Amazon Systems Manager 会话管理器连接到您的集群。

   ```
   aws ssm start-session \
       --target sagemaker-cluster:my-hyperpod-cluster_my-login-group-i-0abc123def456789b \
       --region us-west-2
   ```

   连接后，验证 Slurm 的配置是否正确：

   ```
   # Check Slurm nodes
   sinfo
   
   # Check Slurm partitions
   sinfo -p partition-1
   
   # Submit a test job
   srun -p partition-1 --nodes=1 hostname
   ```

## 删除集群并清理资源


成功测试创建 SageMaker HyperPod 集群后，它会继续以该`InService`状态运行，直到您删除该集群。我们建议您在不使用按需 SageMaker AI 容量时删除任何使用按需 AI 容量创建的集群，以免产生基于按需定价的持续服务费。在本教程中，您创建了一个由三个实例组组成的集群。确保通过运行以下命令删除集群。

```
aws sagemaker delete-cluster --cluster-name my-hyperpod-cluster
```

要从本教程使用的 Amazon S3 存储桶中清理生命周期脚本，请转到集群创建过程中使用的 Amazon S3 存储桶并完全删除文件。

```
aws s3 rm s3://sagemaker-<unique-s3-bucket-name>/<lifecycle-script-directory>/src --recursive
```

如果您已测试在集群上运行任何模型训练工作负载，还要检查您是否上传了任何数据，或者您的任务是否已将任何项目保存到不同的 Amazon S3 存储桶或文件系统服务（例如 Amazon for Lustre 和 Amazon FSx Elastic File System）中。为防止产生费用，请删除存储或文件系统中的所有构件和数据。

## 相关主题

+ [SageMaker HyperPod Slurm 配置](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-configuration)
+ [使用生命周期脚本自定义 SageMaker HyperPod 集群](sagemaker-hyperpod-lifecycle-best-practices-slurm.md)
+ [FSx 通过以下方式进行配置 InstanceStorageConfigs](sagemaker-hyperpod-ref.md#sagemaker-hyperpod-ref-slurm-fsx-config)
+ [SageMaker HyperPod Slurm 集群操作](sagemaker-hyperpod-operate-slurm.md)