创建具有增强管理功能的 H4D Slurm 集群

本页面介绍了如何创建将远程直接内存访问 (RDMA) 与 H4D 虚拟机结合使用的高性能计算 (HPC) Slurm 集群,该集群具有增强的集群管理功能。您可以使用 gcloud CLI 和 Cluster Toolkit 来配置集群。

H4D 机器系列专为满足严苛的 HPC 工作负载的需求而设计。H4D 通过 Cloud RDMA 网络提供具有更高工作负载可伸缩性的实例,吞吐量高达 200 Gbps。如需详细了解 Cloud de Confiance by S3NS上的 H4D 计算优化机器类型,请参阅 H4D 机器系列

准备工作

在创建 Slurm 集群之前,如果您尚未完成以下步骤,请先完成这些步骤:

  1. 选择使用选项:您选择的选项决定了您希望如何获取和使用 vCPU 资源。
  2. 获取容量:为所选的使用选项获取容量。
  3. 如需了解详情,请参阅选择使用选项并获取容量

  4. 确保您有足够的 Filestore 配额:您需要至少 10,240 GiB 的可用区级(也称为大规模 SSD)容量。
  5. 安装 Cluster Toolkit:如需预配 Slurm 集群,您必须使用 Cluster Toolkit 版本 v1.62.0 或更高版本。

    如需安装 Cluster Toolkit,请参阅设置 Cluster Toolkit

In the Cloud de Confiance console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Cloud de Confiance console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

设置存储桶

集群蓝图使用 Terraform 模块来预配云基础设施。使用 Terraform 时,最佳实践是在已启用版本的文件中远程存储状态。在 Cloud de Confiance by S3NS上,您可以创建已启用版本控制的 Cloud Storage 存储桶。

如需通过 CLI 创建此存储桶并启用版本控制,请运行以下命令:

gcloud storage buckets create gs://BUCKET_NAME \
    --project=PROJECT_ID \
    --default-storage-class=STANDARD --location=BUCKET_REGION \
    --uniform-bucket-level-access
gcloud storage buckets update gs://BUCKET_NAME --versioning

替换以下内容:

打开 Cluster Toolkit 目录

通过运行以下命令,确保您位于 Cluster Toolkit 目录中:

cd cluster-toolkit

此集群部署需要 Cluster Toolkit v1.70.0 或更高版本。如需查看版本,您可以运行以下命令:

./gcluster --version

创建部署文件

创建部署文件以指定 Cloud Storage 存储桶,为网络和子网设置名称,并设置部署变量,例如项目 ID、区域和可用区。

如需创建部署文件,请按照 H4D 机器类型的步骤操作:

您需要添加到部署文件的参数取决于您为部署使用的使用选项。选择与您要使用的使用选项对应的标签页。

受预留约束

如需创建部署文件,请使用文本编辑器创建一个名为 h4d-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。


terraform_backend_defaults:
  type: gcs
  configuration:
    bucket: BUCKET_NAME

vars:
  deployment_name: DEPLOYMENT_NAME
  project_id: PROJECT_ID
  region: REGION
  zone: ZONE
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_reservation_name: RESERVATION_NAME

替换以下内容:

  • BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。
  • DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:具有预留机器的区域。
  • ZONE:您要预配集群的可用区。如果您使用的是基于预留的使用选项,则区域和可用区信息是在交付容量时由您的客户支持团队提供的。
  • NUMBER_OF_VMS:您希望集群中的虚拟机数量。
  • RESERVATION_NAME预留的名称。

灵活启动

如需创建部署文件,请使用文本编辑器创建一个名为 h4d-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。


terraform_backend_defaults:
  type: gcs
  configuration:
    bucket: BUCKET_NAME

vars:
  deployment_name: DEPLOYMENT_NAME
  project_id: PROJECT_ID
  region: REGION
  zone: ZONE
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_dws_flex_enabled: true

替换以下内容:

  • BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。
  • DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:您要在其中预配集群的区域。
  • ZONE:您要在其中预配集群的可用区。
  • NUMBER_OF_VMS:您希望集群中的虚拟机数量。

此部署会预配静态计算节点,这意味着集群始终具有固定数量的节点。如果您希望集群改为自动扩缩,请使用 examples/h4d/hpc-slurm-h4d.yaml 文件,并将 node_count_staticnode_count_dynamic_max 的值修改为与以下值一致:

      node_count_static: 0
      node_count_dynamic_max: $(vars.h4d_cluster_size)

Spot

如需创建部署文件,请使用文本编辑器创建一个名为 h4d-slurm-deployment.yaml 的 YAML 文件,并添加以下内容。


terraform_backend_defaults:
  type: gcs
  configuration:
    bucket: BUCKET_NAME

vars:
  deployment_name: DEPLOYMENT_NAME
  project_id: PROJECT_ID
  region: REGION
  zone: ZONE
  h4d_cluster_size: NUMBER_OF_VMS
  h4d_enable_spot_vm: true

替换以下内容:

  • BUCKET_NAME:您在上一部分中创建的 Cloud Storage 存储桶的名称。
  • DEPLOYMENT_NAME:部署的名称。如果您要创建多个集群,请确保为每个集群选择唯一的名称。
  • PROJECT_ID:您的项目 ID。
  • REGION:您要在其中预配集群的区域。
  • ZONE:您要在其中预配集群的可用区。
  • NUMBER_OF_VMS:您希望集群中的虚拟机数量。

预配 H4D Slurm 集群

Cluster Toolkit 会根据您在上一步中创建的部署文件和默认集群蓝图来预配集群。如需详细了解蓝图安装的软件,请详细了解 Slurm 自定义映像

在 Cloud Shell 中,从安装 Cluster Toolkit 并创建部署文件的目录中,您可以使用以下命令预配集群,该命令使用 H4D Slurm 蓝图文件。 此步骤大约需要 20-30 分钟。

./gcluster deploy -d h4d-slurm-deployment.yaml examples/hpc-slurm-h4d/hpc-slurm-h4d.yaml --auto-approve

连接到 Slurm 集群

如需访问集群,您必须登录 Slurm 登录节点。如需登录,您可以使用 Cloud de Confiance 控制台或 Google Cloud CLI。

控制台

  1. 转到 Compute Engine > 虚拟机实例页面。

    转到“虚拟机实例”页面

  2. 找到登录节点。其名称应采用 DEPLOYMENT_NAME +login-001 格式。

  3. 在登录节点的连接列中,点击 SSH

gcloud

如需连接到登录节点,请完成以下步骤:

  1. 使用 gcloud compute instances list 命令识别登录节点。

    gcloud compute instances list \
      --zones=ZONE \
      --filter="name ~ login" --format "value(name)"
    

    如果输出列出了多个 Slurm 集群,您可以根据指定的 DEPLOYMENT_NAME 识别登录节点。

  2. 使用 gcloud compute ssh 命令连接到登录节点。

    gcloud compute ssh LOGIN_NODE \
      --zone=ZONE --tunnel-through-iap
    

    替换以下内容:

    • ZONE:集群的虚拟机所在的可用区。
    • LOGIN_NODE:您在上一步中识别的登录节点的名称。

重新部署 Slurm 集群

如果您需要增加计算节点数量或向集群添加新分区,可能需要通过重新部署来更新 Slurm 集群的配置。

如需使用现有映像重新部署集群,请执行以下操作:

  1. 连接到集群

  2. 运行以下命令:

    ./gcluster deploy -d h4d-slurm-deployment.yaml examples/h4d/h4d-slurm-deployment.yaml --only cluster-env,cluster --auto-approve -w
    

    此命令仅适用于已存在映像的重新部署;它仅重新部署集群及其基础设施。

销毁 Slurm 集群

如需移除 Slurm 集群及其中的实例,请完成以下步骤:

  1. 如果您尚未断开与集群的连接,请断开连接。

  2. 在运行销毁命令之前,前往 Cluster Toolkit 目录的根目录。默认情况下,DEPLOYMENT_FOLDER 位于 Cluster Toolkit 目录的根目录中。

  3. 如需销毁集群,请运行以下命令:

    ./gcluster destroy DEPLOYMENT_FOLDER --auto-approve

    替换以下内容:

    • DEPLOYMENT_FOLDER:部署文件夹的名称。通常与 DEPLOYMENT_NAME 相同。

集群移除完成后,您应该会看到类似于以下内容的消息:

  Destroy complete! Resources: xx destroyed.

如需了解如何干净地销毁基础设施,以及获取高级手动部署说明,请参阅 Cluster Toolkit 根目录下的部署文件夹:DEPLOYMENT_FOLDER/instructions.txt

后续步骤