大量建立使用 RDMA 的 HPC 最佳化執行個體

本教學課程說明如何建立大量相同且彼此獨立的高效能運算 (HPC) 虛擬機器 (VM) 執行個體。執行個體使用 H4D HPC 最佳化機器類型,並在預留的容量區塊上執行。本教學課程也說明如何設定 H4D 執行個體,以使用 Cloud RDMA。

本教學課程的適用對象為 HPC 工程師、平台管理員和操作員,以及有興趣建立互連 HPC 執行個體叢集的資料和 MPI 專家。產生的執行個體不會使用協調器來管理執行個體或安排工作。

為部署作業預留容量區塊

本文說明如何預留容量區塊,方法是請帳戶團隊為您建立未來預留要求。使用這類預留項目,取得 VM 執行個體密集部署的容量。如要查看所有用量選項的總覽,請參閱:

這項動作可讓您預留特定時間範圍的容量,從您選擇的特定日期和時間開始。Google 會根據您的要求,建立未來預留項目要求草稿。審查並提交這份草案要求,且 Google Cloud 核准後,Compute Engine 會自動建立 (自動建立) 空預留項目。接著,在您選擇的開始時間,Compute Engine 會將要求的容量佈建到自動建立的預留項目中。然後,您就可以使用預留項目建立虛擬機器 (VM) 執行個體,直到預留項目期限結束為止。

在未來預留項目要求程序中,Google 會管理預留資源的配額。您不需要申請配額。在核准的預訂時間開始時,如果預訂資源的配額不足,Google 會增加配額。

如要預留容量區塊,請完成下列步驟:

  1. 請聯絡帳戶團隊,並提供下列資訊,讓 Google 建立未來預留要求的草稿:

    • 專案編號:帳戶團隊建立要求,且 Compute Engine 佈建容量的專案編號。如要瞭解如何找出專案編號,請參閱 Resource Manager 說明文件中的「找出專案名稱、編號和 ID」一文。

    • 機型H4D HPC 最佳化機型

    • 總數:要預留的 VM 總數。您只能預留 VM 數量為 2 的倍數。每個區塊的區塊大小和 VM 數量會因機型和可用性而異。帳戶團隊可以提供更多要求相關詳細資料。

    • 區域:要預留容量的區域。如要查看 H4D 機器系列適用的區域和可用區,請參閱「可用地區與區域」一文,然後在「選取機器系列」清單中選取 H4D

    • 開始時間:預訂期間的開始時間。將開始時間格式設為 RFC 3339 時間戳記:

      YYYY-MM-DDTHH:MM:SSOFFSET
      

      更改下列內容:

      • YYYY-MM-DD:日期格式為四位數年份、兩位數月份和兩位數日期,並以連字號 (-) 分隔。

      • HH:MM:SS:時間格式為兩位數的小時 (採用 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 分享功能」。

      承諾就會在 2025 年 12 月 2 日凌晨 12 點生效。
  2. Google 會建立未來預留項目要求草稿,並由您的帳戶團隊與您聯絡。

  3. 查看草稿要求。查看預訂要求時,請注意下列事項:

    • 只有在指定開始日期和時間過後,您才能開始使用預留容量。
    • 到達指定結束時間時,Compute Engine 會執行下列作業:

      • 刪除自動建立的預留項目。
      • 停止或刪除使用預留項目的任何 VM。系統會根據您建立 VM 時指定的終止動作採取行動。
    • 提交預訂要求後,您就無法變更預留容量是否共用。

    如要查看未來預留項目要求草稿,請選取下列其中一個選項:

    主控台

    1. 在 Google Cloud 控制台,前往「Reservations」(預留項目) 頁面。

      前往「預留項目」頁面

    2. 點按「Future reservations」(未來預留項目) 分頁標籤。「未來預留項目」表格會列出專案中的每項未來預留要求,而每個表格欄位則說明一項屬性。

    3. 在「Name」(名稱) 欄中,按一下 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 控制台,前往「Reservations」(預留項目) 頁面。

      前往「預留項目」頁面

    2. 點按「Future reservations」(未來預留項目) 分頁標籤。

    3. 在「Name」(名稱) 欄中,按一下 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 說明文件中的「查看預留容量」。

選用:建立配置政策

如要盡可能將 VM 放在彼此相近的位置,請使用配置政策。不過,如果希望 VM 位於特定區塊,請略過這個步驟,並在大量建立 VM 時提供所需區塊的名稱。

使用 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:VM 執行個體的最大距離設定。指定 3 將 VM 放置在相鄰區塊,並指定 2 將 VM 放置在相同區塊。我們會盡量將 VM 放置在最佳位置。
  • 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:VM 執行個體的最大距離設定。指定 3 可將 VM 放置在相鄰的區塊,指定 2 則可將 VM 放置在同一個區塊。我們會盡量將 VM 放置在最佳位置。

建立虛擬私有雲網路

啟用 RDMA 的執行個體至少需要兩個網路介面 (NIC):

  • NIC 類型 GVNIC:使用 gve 驅動程式處理 TCP/IP 和網際網路流量,用於一般 VM 對 VM 和 VM 對網際網路的通訊
  • NIC 類型 IRDMA:使用 IDPF/iRDMA 驅動程式,在執行個體之間進行 RDMA 網路通訊

使用 Cloud RDMA 的執行個體只能有一個 IRDMA 介面。您最多可以新增八個額外的 GVNIC 網路介面,每個執行個體最多可有 10 個 NIC。

設定執行個體的網路介面時,請參考下列規則:

  • 每個網路介面都必須連線至不同的虛擬私有雲網路。
  • 如要設定 IRDMA 網路介面,您必須先在與執行個體相同的區域和可用區中,建立具有 Falcon RDMA 網路設定檔的虛擬私有雲網路。
  • 如果是 GVNIC 網路介面,如果您未指定網路或子網路,Compute Engine 會使用預設的 VPC 網路,以及與執行個體位於相同區域的自動子網路。
  • 如果您指定子網路,但未指定網路,Compute Engine 會從指定的子網路推斷網路。
  • 如果您指定網路,則必須指定子網路,且子網路必須屬於同一網路。否則執行個體建立作業會失敗。

如要設定 Falcon 虛擬私有雲 (VPC) 網路,以便搭配執行個體使用,您可以按照說明文件中的指示操作,也可以使用提供的指令碼。

操作指南

如要建立網路,請按照下列操作說明進行:

腳本

每個執行個體最多可建立九個 GVNIC 網路介面和一個 IRDMA 網路介面。每個網路介面都必須連接到不同的網路。如要建立網路,可以使用下列指令碼,為 GVNIC 建立兩個網路,並為 IRDMA 建立一個網路,這些網路會使用 Falcon VPC 網路設定檔。

  1. 選用:執行指令碼前,請列出 Falcon VPC 網路設定檔,確認有可用的設定檔。Falcon VPC 網路設定檔僅適用於部分區域。

    gcloud beta compute network-profiles list --filter=falcon
    
  2. 複製下列程式碼,並在 Linux 殼層視窗中執行。

#!/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 類型。
  • REGION:要建立網路的區域。建立 Falcon VPC 時,這必須對應至為 --network-profile 旗標指定的可用區。舉例來說,如果您將區域指定為 europe-west4-b,則區域為 europe-west4
  • IP_RANGE:虛擬私有雲網路外部的 IP 位址範圍,用於 SSH 防火牆規則。最佳做法是指定您需要允許存取的特定 IP 位址範圍,而不是所有 IPv4 或 IPv6 來源。請勿使用 0.0.0.0/0::/0 做為來源範圍,因為這樣會允許來自所有 IPv4 或 IPv6 來源的流量,包括Google Cloud以外的來源。
  • RDMA_NAME_PREFIX:用於虛擬私有雲網路和子網路的名稱前置字串,這些網路和子網路使用 IRDMA NIC 類型。
  • ZONE:您要建立網路和運算執行個體的區域。使用 us-central1-aeurope-west4-b

大量建立啟用 RDMA 的執行個體

使用 Cloud RDMA 建立 H4D 執行個體前,請先詳閱下列限制:

  • 如果執行個體有 Cloud RDMA 網路介面,就無法在主機維護事件期間使用即時遷移功能。您必須將執行個體設定為在維護事件期間終止。
  • 使用 RDMA 網路介面和 Falcon RDMA 網路設定檔的虛擬私有雲網路時,只能使用 IPv4 位址。
  • 您只能使用 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:要使用的 OS 映像檔的映像檔系列,例如 rocky-linux-9-optimized-gcp。如需支援的 OS 映像檔清單,請參閱「支援的作業系統」。選擇支援 IRDMA 介面的 OS 映像檔版本。
  • IMAGE_PROJECT:OS 映像檔的專案 ID,例如 rocky-linux-cloud
  • RESERVATION:這個值可以指定下列其中一項:

    • 如果您使用放置政策,或 VM 可放置在預留項目區塊的任何位置,請指定預留項目名稱,例如 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 介面建立虛擬私有雲網路和子網路時使用的名稱前置字串。

    如果是 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 介面建立虛擬私有雲網路和子網路時使用的名稱前置字串。

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:OS 映像檔的專案 ID,例如 debian-cloud
    • IMAGE_FAMILY:要使用的 OS 映像檔的映像檔系列,例如 rocky-linux-9-optimized-gcp。如需支援的 OS 映像檔清單,請參閱「支援的作業系統」。選擇支援 IRDMA 介面的 OS 映像檔版本。
    • GVNIC_NAME_PREFIX:您為 GVNIC 介面建立虛擬私有雲網路和子網路時使用的名稱前置字元

      如果是 GVNIC 網路介面,您可以省略 networksubnetwork 欄位,改用 default 網路。

    • EXTERNAL_IPV4_ADDRESS:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先預留外部 IPv4 位址

    • RDMA_NAME_PREFIX:您為 IRDMA 介面建立虛擬私有雲網路和子網路時使用的名稱前置字串。

    • RESERVATION:這個值可以指定下列其中一項:

      • 如果您使用放置政策,或 VM 可放置在預留項目區塊的任何位置,請指定預留項目名稱,例如 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. 提交要求。