批量创建使用 RDMA 的 HPC 优化实例

本教程介绍了如何创建大量相同且独立的高性能计算 (HPC) 虚拟机 (VM) 实例。这些实例使用 H4D HPC 优化机器类型,并在预留的容量上运行。本教程还介绍了如何将 H4D 实例配置为使用 Cloud RDMA。

本教程适用于 HPC 工程师、平台管理员和运维人员,以及有兴趣创建互连的 HPC 实例集群的数据和 MPI 专家。生成的实例不使用编排程序进行实例管理或作业调度。

为部署预留容量块

本文档介绍了如何通过让您的客户支持团队为您创建未来预留请求来预留容量。使用此预留类型可为虚拟机实例的密集部署获取容量。如需大致了解所有使用选项,请参阅:

此操作可让您预留一定时长的容量块,从您选择的特定日期和时间开始。Google 会根据您的请求创建未来预留请求草稿。在您审核并提交此请求草稿后,如果 Google Cloud 批准了该请求,Compute Engine 会自动创建一个空预留。接着,Compute Engine 会在您选择的开始时间将您请求的容量预配到自动创建的预留中。然后,您可以使用预留来创建虚拟机 (VM) 实例,直到预留期结束。

在未来预留请求过程中,Google 会管理预留资源的配额。您无需申请配额。在已获批准的未来预留的开始时间,如果您缺少预留资源所需的配额,Google 会增加配额。

如需预留容量块,请完成以下步骤:

  1. 与您的客户支持团队联系,并提供以下信息,以便 Google 创建未来预留请求草稿:

    • 项目编号:您的客户支持团队创建请求且 Compute Engine 预配容量的项目的编号。 如需了解如何查找项目编号,请参阅 Resource Manager 文档中的查找项目名称、编号和 ID

    • 机器类型:一种 H4D HPC 优化 机器类型

    • 总数:要预留的虚拟机总数。您只能预留 2 的倍数的虚拟机。每个块的块大小和虚拟机数量因机器类型和可用性而异。您的客户支持团队可以提供有关您的请求的更多详细信息。

    • 可用区:您要在其中预留容量的可用区。如需查看 H4D 机器系列的可用区域和可用区,请参阅可用区域和可用区,然后在选择机器系列列表中选择 H4D

    • 开始时间:预留期的开始时间。将开始时间的格式设置为 RFC 3339 时间戳:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      替换以下内容:

      • YYYY-MM-DD:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-) 分隔的日期。

      • HH:MM:SS:格式为 2 位数小时、2 位数分钟和 2 位数秒而且相互之间以英文冒号 (:) 分隔的 24 小时制时间。

      • OFFSET:采用世界协调时间 (UTC) 的偏移量格式的时区。 例如,如需使用太平洋标准时间 (PST),请指定 -08:00。如需不使用偏移量,请指定 Z

    • 结束时间:预留期的结束时间。将其格式设置为 RFC 3339 时间戳。

    • 共享类型:只有您的项目可以使用自动创建的预留 (LOCAL),还是其他项目也可以使用该预留 (SPECIFIC_PROJECTS)。

      如需与组织中的其他项目共享预留容量,请执行以下操作:

      1. 验证 Google 在其中创建请求的项目是否可以创建共享预留(如果您尚未这样做)。

      2. 提供要与之共享预留容量的项目的编号。您最多可以指定组织中的 100 个项目。

    • 预留名称:Compute Engine 自动创建的用于交付预留容量的预留名称。Compute Engine 仅会创建明确定向预留

    • 承诺名称:如果预留期为一年或更长时间,则您必须购买基于资源的承诺并将其附加到预留的资源。您可以购买 1 年期或 3 年期承诺方案。如果您与其他项目共享预留容量,则这些项目只有在使用与预留容量的项目相同的 Cloud Billing 账号时才会获得折扣。如需了解详情,请参阅为基于资源的承诺启用 CUD 共享

  2. Google 会创建未来预留请求草稿,然后您的客户支持团队会与您联系。

  3. 查看请求草稿。查看预留请求时,请注意以下事项:

    • 您只能在指定的开始日期和时间之后开始使用预留容量。
    • 当达到指定的结束时间时,Compute Engine 会执行以下操作:

      • 删除自动创建的预留。
      • 停止或删除任何使用该预留的虚拟机。所执行的操作取决于您在创建虚拟机时指定的终止操作
    • 提交预留请求后,您无法更改是否共享预留容量。

    如需查看未来预留请求草稿,请选择以下选项之一:

    控制台

    1. 在 Google Cloud 控制台中,前往预留页面。

      转到“预留”

    2. 点击未来预留标签页。 未来预留表会列出项目中的每个未来预留请求,表中的每一列描述一个属性。

    3. 名称列中,点击 Google 为您创建的请求草稿的名称。系统会打开一个显示相应未来预留请求详细信息的页面。

    4. 基本信息部分中,验证请求详细信息(例如日期共享类型)是否正确。此外,如果您请求了承诺,请验证是否已指定承诺。

    5. 如果上述任何详细信息不正确,请与您的客户支持团队联系。

    gcloud

    1. 如需查看项目中的未来预留请求列表,请使用 gcloud beta compute future-reservations list 命令,并将 --filter 标志设置为 PROCUREMENT_STATUS=DRAFTING

      gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
      
    2. 在命令输出中,查找您向客户支持团队提供的名称对应的预留请求。

    3. 如需查看请求草稿的详细信息,请使用 gcloud beta compute future-reservations describe 命令

      gcloud beta compute future-reservations describe FUTURE_RESERVATION_NAME \
          --zone=ZONE
      

      替换以下内容:

      • FUTURE_RESERVATION_NAME:未来预留请求草稿的名称。
      • ZONE:Google 在其中创建请求的可用区。

      输出类似于以下内容:

      autoCreatedReservationsDeleteTime: '2026-02-10T19:20:00Z'
      creationTimestamp: '2025-11-27T11:14:58.305-08:00'
      deploymentType: DENSE
      id: '7979651787097007552'
      kind: compute#futureReservation
      name: example-draft-request
      planningStatus: DRAFT
      reservationName: example-reservation
      schedulingType: INDEPENDENT
      selfLink: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request
      selfLinkWithId: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552
      specificReservationRequired: true
      specificSkuProperties:
        instanceProperties:
          localSsds:
          - diskSizeGb: '375'
            interface: NVME
          ...
        machineType: h4d-highmem-192-lssd
      totalCount: '2'
      status:
        autoCreatedReservations:
        - https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/reservations/example-reservation
        fulfilledCount: '2'
        lockTime: '2026-01-27T19:15:00Z'
        procurementStatus: DRAFTING
      timeWindow:
        endTime: '2026-02-10T19:20:00Z'
        startTime: '2026-01-27T19:20:00Z'
      zone: https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b
      
    4. 在命令输出中,验证请求详细信息(例如预留期和共享类型)是否正确。 此外,如果您购买了合约,请验证是否已指定合约。

    5. 如果详细信息不正确,请与您的客户支持团队联系。

    REST

    1. 如需查看项目中的未来预留请求列表,请向 Beta 版 futureReservations.list 方法发出 GET 请求。 在请求网址中,添加 filter 查询参数并将其设置为 status.procurementStatus=DRAFTING

      GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations?filter=status.procurementStatus=DRAFTING
      

      替换以下内容:

      • PROJECT_ID:Google 在其中创建未来预留请求草稿的项目的 ID。
      • ZONE:请求所在的可用区。
    2. 在请求输出中,查找您向客户支持团队提供的名称对应的预留请求。

    3. 如需查看请求草稿的详细信息,请向 Beta 版 futureReservations.get 方法发出 GET 请求:

      GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME
      

      FUTURE_RESERVATION_NAME 替换为未来预留请求草稿的名称。

      输出类似于以下内容:

      {
        "specificSkuProperties": {
          "instanceProperties": {
            "machineType": "h4d-highmem-192-lssd",
            "localSsds": [
              {
                "diskSizeGb": "375",
                "interface": "NVME"
              },
              ...
            ]
          },
          "totalCount": "2"
        },
        "kind": "compute#futureReservation",
        "id": "7979651787097007552",
        "creationTimestamp": "2025-11-27T11:14:58.305-08:00",
        "selfLink": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/example-draft-request",
        "selfLinkWithId": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b/futureReservations/7979651787097007552",
        "zone": "https://www.googleapis.com/compute/beta/projects/example-project/zones/europe-west4-b",
        "name": "example-draft-request",
        "timeWindow": {
          "startTime": "2026-01-27T19:20:00Z",
          "endTime": "2026-02-10T19:20:00Z"
        },
        "status": {
          "procurementStatus": "DRAFTING",
          "lockTime": "2026-01-27T19:15:00Z"
        },
        "planningStatus": "DRAFT",
        "specificReservationRequired": true,
        "reservationName": "example-reservation",
        "deploymentType": "DENSE",
        "schedulingType": "INDEPENDENT",
        "autoCreatedReservationsDeleteTime": "2026-02-10T19:20:00Z"
      }
      
    4. 在输出中,验证预留期和共享类型等请求详细信息是否正确。此外,如果您请求了承诺,请验证是否已指定承诺。

    5. 如果详细信息不正确,请与您的客户支持团队联系。

  4. 如果看起来都正确,请提交预留请求。您必须在请求开始时间之前提交请求。

    如需提交未来预留请求草稿,请选择以下选项之一:

    控制台

    1. 在 Google Cloud 控制台中,前往预留页面。

      转到“预留”

    2. 点击未来预留标签页。

    3. 名称列中,点击 Google 为您创建的请求草稿的名称。

    4. 点击提交

    gcloud

    如需提交请求草稿以供审核,请使用 gcloud beta compute future-reservations update 命令,并将 --planning-status 标志设置为 SUBMITTED

    gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
        --planning-status=SUBMITTED \
        --zone=ZONE
    

    REST

    如需提交请求草稿以供审核,请向 Beta 版 futureReservations.update 方法发出 PATCH 请求。在请求网址中,添加 updateMask 查询参数并将其设置为 planningStatus

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus
    
    {
      "name": "FUTURE_RESERVATION_NAME",
      "planningStatus": "SUBMITTED"
    }
    
  5. Google Cloud 会立即批准您提交的请求。

  6. Compute Engine 会创建一个包含您请求的资源的空预留。

  7. 如需查看预留,请参阅 AI Hypercomputer 文档中的查看预留容量

可选:创建放置政策

如果您希望虚拟机布置在尽可能接近的位置,请使用布置政策。不过,如果您希望虚拟机位于特定块中,请跳过此步骤,并在批量创建虚拟机期间提供所需块的名称。

使用 Cloud RDMA 进行通信的实例必须位于单个可用区内,更严格地说,必须位于单个集群结构内。您可以创建紧凑布置政策并指定最大距离值,以设置可用区内的最低紧凑性。指定最大距离值时,您可以为紧凑布置政策分配的实例数量有限制,并且该限制会根据您选择的值而变化。

如需创建紧凑布置政策,请选择以下选项之一:

gcloud

如需创建紧凑布置政策,请使用 gcloud beta compute resource-policies create group-placement 命令

gcloud beta compute resource-policies create group-placement POLICY_NAME \
--collocation=collocated \
--max-distance=MAX_DISTANCE \
--region=REGION

替换以下内容:

  • POLICY_NAME:紧凑布置政策的名称
  • MAX_DISTANCE:虚拟机实例的最大距离配置。指定 3 可将虚拟机布置在相邻的块中,指定 2 可将虚拟机布置在同一块中。系统会尽力布置虚拟机。
  • REGION:要在其中创建布置政策的区域。指定提供您要使用的机器类型的区域。如需了解可用区域,请参阅可用区域和可用区

REST

如需创建紧凑布置政策,请向 beta.resourcePolicies.insert 方法发出 POST 请求。 在请求正文中,添加设置为 COLLOCATEDcollocation 字段和 maxDistance 字段。

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
        "collocation": "COLLOCATED",
        "maxDistance": "MAX_DISTANCE"
    }
}

替换以下内容:

  • PROJECT_ID:您的项目 ID
  • REGION:要在其中创建布置政策的区域。指定提供您要使用的机器类型的区域。如需了解可用区域,请参阅可用区域和可用区
  • POLICY_NAME:紧凑布置政策的名称
  • MAX_DISTANCE:虚拟机实例的最大距离配置。指定 3 可将虚拟机布置在相邻的块中,指定 2 可将虚拟机布置在同一块中。系统会尽力布置虚拟机。

创建 Virtual Private Cloud 网络

支持 RDMA 的实例至少需要两个网络接口 (NIC):

  • NIC 类型 GVNIC:使用 gve 驱动程序处理 TCP/IP 和网络流量,以实现正常的虚拟机间和虚拟机到网络的通信
  • NIC 类型 IRDMA:使用 IDPF/iRDMA 驱动程序在实例之间实现 RDMA 网络通信

使用 Cloud RDMA 的实例只能有一个 IRDMA 接口。您最多可以添加 8 个额外的 GVNIC 网络接口,使每个实例的总 NIC 数达到 10 个。

请查看以下有关为实例配置网络接口的规则:

  • 每个网络接口都必须连接到不同的 Virtual Private Cloud 网络。
  • 如需配置 IRDMA 网络接口,您必须先在与实例相同的区域和可用区中创建使用 Falcon RDMA 网络配置文件的 VPC 网络。
  • 对于 GVNIC 网络接口,如果您没有指定网络或子网,Compute Engine 会使用默认 VPC 网络以及与实例位于同一区域的自动子网。
  • 如果您指定了子网,但未指定网络,Compute Engine 会根据指定的子网推断网络。
  • 如果您指定了网络,则必须指定子网,并且此子网必须属于同一网络。否则,实例创建将失败。

如需设置 Falcon Virtual Private Cloud (VPC) 网络以供实例使用,您可以按照文档中的说明操作,也可以使用提供的脚本。

说明指南

如需创建网络,您可以按照以下说明操作:

脚本

您最多可以为每个实例创建 9 个 GVNIC 网络接口和 1 个 IRDMA 网络接口。每个网络接口都必须连接到不同的网络。如需创建网络,您可以使用以下脚本,该脚本会为 GVNIC 创建两个网络,并为 IRDMA 创建一个使用 Falcon VPC 网络配置文件的网络。

  1. 可选:在运行脚本之前,列出 Falcon VPC 网络配置文件,以验证是否有可用的配置文件。Falcon VPC 网络配置文件并非在所有可用区都提供。

    gcloud beta compute network-profiles list --filter=falcon
    
  2. 复制以下代码,然后在 Linux shell 窗口中运行该代码。

#!/bin/bash

# Create standard VPC (networks and subnets) for the two GVNIC interfaces
  for N in $(seq 0 1); do
    gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
        --subnet-mode=custom

    gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
        --network=GVNIC_NAME_PREFIX-net-$N \
        --region=<var>REGION</var> \
        --range=10.$N.0.0/16

    gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
        --network=GVNIC_NAME_PREFIX-net-$N \
        --action=ALLOW \
        --rules=tcp:0-65535,udp:0-65535,icmp \
        --source-ranges=10.0.0.0/8
done

# Create SSH firewall rules
gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
  --network=GVNIC_NAME_PREFIX-net-0 \
  --action=ALLOW \
  --rules=tcp:22 \
  --source-ranges=IP_RANGE

# Optional: Create a firewall rule for the external IP address for the
#  first GVNIC network interface
gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
  --network=GVNIC_NAME_PREFIX-net-0 \
  --action=ALLOW \
  --rules=icmp \
  --source-ranges=IP_RANGE

# Create a network for the RDMA over Falcon network interface
gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \
  --network-profile=ZONE-vpc-falcon \
  --subnet-mode custom

# Create a subnet for the RDMA network
gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
    --network=RDMA_NAME_PREFIX-irdma \
    --region=REGION \
    --range=10.2.0.0/16
# offset to avoid overlap with GVNIC subnet ranges

替换以下内容:

  • GVNIC_NAME_PREFIX:用于使用 GVNIC NIC 类型的标准 VPC 网络和子网的名称前缀。
  • REGION:要用于创建网络的区域。 此区域必须与创建 Falcon VPC 时为 --network-profile 标志指定的可用区对应。例如,如果您将可用区指定为 europe-west4-b,则区域为 europe-west4
  • IP_RANGE:VPC 网络外部用于 SSH 防火墙规则的 IP 地址范围。 最佳实践是指定您需要允许访问的特定来源 IP 地址范围,而不是所有 IPv4 或 IPv6 来源。 请勿使用 0.0.0.0/0::/0 作为来源范围,因为这会允许来自所有 IPv4 或 IPv6 来源(包括Google Cloud外部的来源)的流量。
  • RDMA_NAME_PREFIX:用于使用 IRDMA NIC 类型的 VPC 网络和子网的名称前缀。
  • ZONE:您要在其中创建网络和计算实例的可用区。请使用 us-central1-aeurope-west4-b

批量创建支持 RDMA 的实例

在创建具有 Cloud RDMA 的 H4D 实例之前,请查看以下限制:

  • 对于具有 Cloud RDMA 网络接口的实例,您无法在主机维护事件期间使用实时迁移。您必须将实例配置为在维护事件期间终止。
  • 您只能将 IPv4 地址与 RDMA 网络接口以及使用 Falcon RDMA 网络配置文件的 VPC 网络搭配使用。
  • 您只能使用 H4D 机器系列来创建具有 Cloud RDMA 的 HPC 优化实例。

以下步骤展示了如何批量创建支持 RDMA 的实例,其中前两个网络接口配置为 GVNIC 接口,第三个网络接口配置为 IRDMA 网络接口:

gcloud

gcloud compute instances create 命令与三个 --network-interface 标志结合使用,其中两个用于 GVNIC 接口,一个用于 IRDMA 接口。如果您选择使用紧凑布置政策,还需添加以下标志:--resource-policies=POLICY_NAME。将 POLICY_NAME 替换为紧凑布置政策的名称。您可以根据需要自定义其余的实例选项。

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image=project= IMAGE_PROJECT \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination=action=DELETE \
    --maintenance-policy=TERMINATE \
    --region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC, \
        network=GVNIC_NAME_PREFIX-net-0, \
        subnet=GVNIC_NAME_PREFIX-sub-0, \
        stack-type=STACK_TYPE, \
        address=EXTERNAL_IPV4_ADDRESS \
    --network-interface=nic-type=GVNIC, \
        network=GVNIC_NAME_PREFIX-net-1, \
        subnet=GVNIC_NAME_PREFIX-sub-1, no-address \
    --network-interface=nic-type=IRDMA, \
        network=RDMA_NAME_PREFIX-irdma, \
        subnet=RDMA_NAME_PREFIX-irdma-sub, \
        stack-type=IPV4_ONLY, no-address

替换以下内容:

  • NAME_PATTERN:实例的名称模式。例如,将 vm-# 用于名称模式会生成名称为 vm-1vm-2 等依次递增的实例,数量最多为 --count 标志指定的数量。
  • COUNT:要创建的实例数量。
  • MACHINE_TYPE:用于实例的机器类型。 使用一种 H4D 机器类型,例如 h4d-highmem-192-lssd
  • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列,例如 rocky-linux-9-optimized-gcp。 如需查看受支持的操作系统映像列表,请参阅受支持的操作系统。选择支持 IRDMA 接口的操作系统映像版本。
  • IMAGE_PROJECT:操作系统映像的项目 ID,例如 rocky-linux-cloud
  • RESERVATION:对于此值,您可以指定以下项之一:

    • 如果您使用的是布置政策,或者虚拟机可以布置在预留块中的任何位置,请指定预留名称,例如 h4d-highmem-exfr-prod
    • 如果您希望将实例布置在特定块中,但未使用紧凑布置政策,请使用以下格式指定预留块名称:RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`。

    如需查看预留名称或可用的预留块,请参阅查看容量

  • REGION:指定提供您要使用的机器类型的区域,例如 europe-west1。如需了解可用区域,请参阅可用区域和可用区

  • DISK_SIZE(可选):启动磁盘的大小(以 GiB 为单位)。该值必须是整数。

  • GVNIC_NAME_PREFIX:您在为 GVNIC 接口创建 VPC 网络和子网时使用的名称前缀。

    对于 GVNIC 网络接口,您可以省略 networksubnet 标志,改为使用 default 网络。

  • STACK_TYPE(可选):GVNIC 网络接口的栈类型。STACK_TYPE 必须是 IPV4_ONLYIPV4_IPV6 之一。 默认值为 IPV4_ONLY

  • EXTERNAL_IPV4_ADDRESS(可选):要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址。 执行下列其中一项操作:

    • 指定子网中的有效 IPv4 地址。
    • 如果您不希望网络接口具有外部 IP 地址,请改用 no-address 标志。
    • 如果您希望接口接收临时外部 IP 地址,请指定 address=''

    如需指定外部 IPv6 地址,请改用 --external-ipv6-address 标志。

  • RDMA_NAME_PREFIX:您在为 IRDMA 接口创建 VPC 网络和子网时使用的名称前缀。

REST

如需批量创建支持 RDMA 的实例,请向 beta instances.bulkInsert 方法发出 POST 请求,并使用以下设置:

  • 添加 networkInterfaces 对象,其中至少包含两个网络配置,一个用于 gVNIC 网络接口,另一个用于 RDMA 网络接口。
  • 如果您选择使用紧凑布置政策,还需将 resourcePolicies 对象添加到请求正文中。
  • 如需在创建实例时使用预留的容量块,请将 provisioningModel 设置为 RESERVATION_BOUND
  • 您可以根据需要自定义其余的实例属性。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "networkInterfaces": [
      {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
            "RESERVATION"
        ],
        "scheduling":{
            "provisioningModel":"RESERVATION_BOUND",
            "instanceTerminationAction":"DELETE",
            "onHostMaintenance": "TERMINATE",
            "automaticRestart":true
        }
    },
    ...
  }
}

请完成以下步骤:

  1. 替换请求正文中的以下内容:

    • PROJECT_ID:您要在其中创建实例的项目的 ID。
    • ZONE:指定提供您要使用的机器类型的可用区。如果您使用的是紧凑布置政策,请使用与紧凑布置政策位于同一区域的可用区。如需了解提供 H4D 机器类型的区域,请参阅可用区域和可用区
    • NAME_PATTERN:实例的名称格式。 例如,将 vm-# 用于名称模式会生成名称为 vm-1vm-2 等依次递增的实例,数量最多为 count 字段指定的数量。
    • COUNT:要创建的实例数量。
    • MACHINE_TYPE:用于实例的机器类型。 使用一种 H4D 机器类型,例如 h4d-highmem-192-lssd
    • DISK_SIZE:启动磁盘的大小(以 GiB 为单位)。
    • IMAGE_PROJECT:操作系统映像的项目 ID,例如 debian-cloud
    • IMAGE_FAMILY:您要使用的操作系统映像所属的映像系列,例如 rocky-linux-9-optimized-gcp。 如需查看受支持的操作系统映像列表,请参阅受支持的操作系统。选择支持 IRDMA 接口的操作系统映像版本。
    • GVNIC_NAME_PREFIX:您在为 GVNIC 接口创建 VPC 网络和子网时使用的名称前缀

      对于 GVNIC 网络接口,您可以省略 networksubnetwork 字段,改为使用 default 网络。

    • EXTERNAL_IPV4_ADDRESS(可选):要与网络接口搭配使用的静态外部 IPv4 地址。您之前必须已预留外部 IPv4 地址

    • RDMA_NAME_PREFIX:您在为 IRDMA 接口创建 VPC 网络和子网时使用的名称前缀。

    • RESERVATION:对于此值,您可以指定以下项之一:

      • 如果您使用的是布置政策,或者虚拟机可以布置在预留块中的任何位置,请指定预留名称,例如 h4d-highmem-exfr-prod
      • 如果您希望将实例布置在特定块中,但未使用紧凑布置政策,请将预留块名称指定为 RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME, for example,h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1`。

      如需查看预留名称或可用的预留块,请参阅查看容量

  2. 可选:如果您使用的是紧凑布置政策,请将请求正文中的 ... 替换为以下字段:

    "resourcePolicies": [
        "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
    ],
    

    替换以下内容:

    • PROJECT_ID:紧凑布置政策的项目 ID。
    • REGION:紧凑布置政策所在的区域。
    • POLICY_NAME:紧凑布置政策的名称。
  3. 提交请求。