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

本文說明如何大量建立大量相同且彼此獨立的高效能運算 (HPC) 虛擬機器 (VM) 執行個體。執行個體使用 H4D 機器類型,並在預留的容量區塊上執行。

如要進一步瞭解如何大量建立 VM,請參閱「關於大量建立 VM」。如要大量建立不使用保留項目的執行個體,以提升叢集管理功能,請參閱「大量建立 VM」。

如要瞭解其他建立緊密耦合 H4D VM 大型叢集的方法,請參閱「建立高效能運算叢集總覽」頁面。

事前準備

  • 選擇用量選項:如要大量建立運算執行個體,並啟用進階叢集管理功能,您可以在「日曆」模式中選擇「預約未來時間」,或選擇 Spot VM

    如果您選擇使用 Spot VM,VM 可能不會緊密共置。此外,系統會視需要先占 Spot VM,且 Spot VM 不符合管理 VM 群組主機維護事件的資格。

  • 取得容量:取得容量的程序會因各項用量選項而異。

    詳情請參閱「選擇消耗選項並取得容量」。

  • 如果尚未設定驗證,請先完成設定。 驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    選取這個頁面上的分頁,瞭解如何使用範例:

    控制台

    使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。

    gcloud

    1. 安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:

      gcloud init

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

  • 設定預設地區和區域
  • REST

    如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

      安裝 Google Cloud CLI。

      若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。

必要的角色

如要取得大量建立 VM 所需的權限,請要求系統管理員授予您專案的下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備大量建立 VM 所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要大量建立 VM,您必須具備下列權限:

  • 專案的 compute.instances.create
  • 如要使用自訂映像檔建立 VM: compute.images.useReadOnly 在映像檔上
  • 如要使用快照建立 VM: compute.snapshots.useReadOnly 快照
  • 如要使用執行個體範本建立 VM,請按照下列步驟操作: compute.instanceTemplates.useReadOnly 在執行個體範本上
  • 如要為 VM 指定子網路,請在專案或所選子網路上授予 compute.subnetworks.use 權限。
  • 如要為 VM 指定靜態 IP 位址: 專案的 compute.addresses.use
  • 使用虛擬私有雲網路時,如要將外部 IP 位址指派給 VM: compute.subnetworks.useExternalIp 專案或所選子網路的權限
  • 如要將舊版網路指派給 VM,請按照下列步驟操作: compute.networks.use 專案的
  • 使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中設定 compute.networks.useExternalIp
  • 如要為 VM 設定 VM 執行個體中繼資料,請在專案中執行下列指令: compute.instances.setMetadata
  • 如要為 VM 設定標記,請按照下列步驟操作: compute.instances.setTags 在 VM 上
  • 如要為 VM 設定標籤,請按照下列步驟操作: compute.instances.setLabels 在 VM 上
  • 如要設定 VM 使用的服務帳戶,請按照下列步驟操作: compute.instances.setServiceAccount 在 VM 上
  • 為 VM 建立新磁碟: compute.disks.create 專案
  • 如要以唯讀或讀寫模式附加現有磁碟: 磁碟的 compute.disks.use
  • 如要以唯讀模式連接現有磁碟: compute.disks.useReadOnly 磁碟

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

總覽

使用 H4D 機型大量建立 HPC 執行個體,包括下列步驟:

  1. 選用:建立虛擬私有雲網路
  2. 選用:如果不是在同一個區塊或子區塊中建立運算執行個體,請建立放置位置政策
  3. 大量建立 H4D 執行個體

選用:建立虛擬私有雲網路

建立運算執行個體時,您可以指定虛擬私有雲網路和子網路。如果省略這項設定,系統會使用預設的網路和子網路。

  • 如要設定 MIG 中的 H4D 執行個體使用 Cloud RDMA,請完成本節中的步驟。
  • 如果不想使用 Cloud RDMA,可以略過本節,改用預設網路。

如要搭配 H4D 執行個體使用 Cloud RDMA,您必須設定至少兩個網路,每個網路各對應一種網路介面 (NIC):

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

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

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

操作指南

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

指令碼

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

  1. 選用:執行指令碼前,請列出 Falcon 虛擬私有雲網路設定檔,確認有可用的設定檔。
      gcloud compute network-profiles list
      
  2. 複製下列程式碼,並在 Linux 殼層視窗中執行。

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create regular VPC networks and subnets for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 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=REGION \
              --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 Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud 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
      

    更改下列內容:

    • NUMBER_OF_GVNIC:要建立的 GVNIC 介面數量。 請指定介於 1 到 9 之間的數字。
    • GVNIC_NAME_PREFIX:用於一般虛擬私有雲網路和子網路的名稱前置字元,這些網路和子網路使用 GVNIC NIC 類型。
    • REGION:要建立網路的區域。建立 Falcon 虛擬私有雲網路時,這必須對應至為 --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
  3. 選用:如要確認虛擬私有雲網路資源是否建立成功,請在 Google Cloud 控制台中檢查網路設定:

    1. 前往 Google Cloud 控制台的「VPC Networks」(虛擬私有雲網路) 頁面。

      前往「VPC networks」(虛擬私有雲網路)

    2. 在清單中搜尋您在上一個步驟中建立的網路。
    3. 如要查看子網路、防火牆規則和其他網路設定,請按一下網路名稱。

選用:建立配置政策

您可以建立密集配置政策來指定 VM 配置。將密集配置政策套用至 VM 時,Compute Engine 會盡力建立彼此距離最近的 VM。如果您的應用程式對延遲時間很敏感,且需要盡可能精簡,請在建立密集配置政策時,指定 maxDistance 欄位 (預覽)。maxDistance 值越低,VM 彼此會越靠近,但也會增加無法建立部分 VM 的可能性。

如要建立密集配置政策,請選取下列任一選項:

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 放置在同一個區塊中。如要瞭解每個maxDistance機器系列支援的 VM 數量上限,請參閱 Compute Engine 說明文件中的「關於密集配置政策」。
  • REGION:要建立密集配置政策的區域。指定您要使用的機型適用的區域。如要瞭解地區,請參閱「適用區域及可用區」。

REST

如要建立密集配置政策,請對 betaresourcePolicies.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。
  • POLICY_NAME:密集配置政策的名稱。
  • MAX_DISTANCE:VM 的最大距離設定。值必須為 3,才能將 VM 放置在相鄰區塊中;值必須為 2,才能將 VM 放置在同一個區塊中。如要瞭解每個maxDistance機器系列支援的 VM 數量上限,請參閱 Compute Engine 說明文件中的「關於密集配置政策」。
  • REGION:要建立密集配置政策的區域。指定您要使用的機型適用的區域。如要瞭解地區,請參閱「適用區域及可用區」。

大量建立 VM 執行個體

本節中的操作說明說明如何大量建立 H4D VM。

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

  • 如果執行個體有 Cloud RDMA 網路介面,就無法在主機維護事件期間使用即時遷移功能。您必須將執行個體設為在維護事件期間終止。
  • gVNIC 網路介面只能有一個 IPv6 位址 (內部或外部),不能同時有兩個。
  • 您只能搭配 IRDMA 網路介面和 Falcon 虛擬私有雲網路使用 IPv4 位址。

gcloud

如要大量建立 VM,請使用 gcloud compute instances create 指令

您需要指定的參數取決於這項部署作業使用的耗用量選項。選取與計費方案佈建模式對應的分頁。

取決於預留項目

首先執行下列 gcloud compute instances create 指令

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --instance-termination=action=DELETE \
       --maintenance-policy=TERMINATE \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE
   

操作步驟如下:

  1. 更改下列內容:

    • 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
    • REGION:指定要使用的機型所在的區域,例如 europe-west4。如要瞭解可用區域,請參閱「適用區域及可用區」。
    • DISK_SIZE:選用:開機磁碟大小 (以 GiB 為單位)。值必須為整數。
  2. 選用:如果您選擇使用密集配置政策,請加入 --resource-policies 旗標:

             --resource-policies=POLICY_NAME
             

    POLICY_NAME 替換為精簡放置政策的名稱。

  3. 如要指定預留項目,請執行下列其中一項操作:

    • 如果您使用配置政策,或 VM 可放置在預訂區塊的任何位置,請在指令中加入下列標記:

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=RESERVATION_NAME \
                 

      RESERVATION_NAME 替換為預訂名稱,例如 h4d-highmem-exfr-prod

    • 如果您未使用密集配置政策,且希望將執行個體放置在特定區塊中,請在指令中加入下列旗標:

                 --provisioning-model=RESERVATION_BOUND \
                 --reservation-affinity=specific \
                 --reservation=<RESERVATION_BLOCK_NAME \
                 

      RESERVATION_BLOCK_NAME 替換為預訂中的區塊名稱,例如 h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1

    如要查看預約名稱或可用的預約時段,請參閱「查看容量」。

  4. 選用:如要設定執行個體使用 Cloud RDMA,請在指令中加入類似下列的標記。這個範例會設定兩個 GVNIC 網路介面和一個 IRDMA 網路介面:

            --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 \
            

    更改下列內容:

    • 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 介面的虛擬私有雲網路和子網路時使用的名稱前置字元。
  5. 選用:視需要新增其他旗標,自訂其餘執行個體屬性。
  6. 執行更改後的指令。

Spot

首先執行下列 gcloud compute instances create 指令

   gcloud compute instances bulk create \
       --name-pattern=NAME_PATTERN \
       --count=COUNT \
       --machine-type=MACHINE_TYPE \
       --image-family=IMAGE_FAMILY \
       --image=project= IMAGE_PROJECT \
       --region=REGION \
       --boot-disk-type=hyperdisk-balanced \
       --boot-disk-size=DISK_SIZE \
       --provisioning-model=SPOT \
       --instance-termination=action=TERMINATION_ACTION
   

操作步驟如下:

  1. 更改下列內容:

    • 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
    • REGION:指定要使用的機型所在的區域,例如 europe-west4。如要瞭解可用區域,請參閱「適用區域及可用區」。
    • DISK_SIZE:選用:開機磁碟大小 (以 GiB 為單位)。值必須為整數。
    • TERMINATION_ACTION:Compute Engine 先占執行個體時採取的動作,可以是 STOP (預設值) 或 DELETE

  2. 選用步驟:如果您選擇使用密集配置政策,請在指令中加入下列旗標:

          --resource-policies=POLICY_NAME \
          

    POLICY_NAME 替換為密集配置政策的名稱。

  3. 選用:如要設定執行個體使用 Cloud RDMA,請在指令中加入類似下列的標記。這個範例會設定兩個 GVNIC 網路介面和一個 IRDMA 網路介面:

          --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 \
          

    更改下列內容:

    • 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 介面的虛擬私有雲網路和子網路時使用的名稱前置字元。
  4. 選用:視需要新增其他旗標,自訂其餘執行個體屬性。
  5. 執行更改後的指令。

REST

如要大量建立 VM 執行個體,請對 instances.bulkInsert 方法發出 POST 要求

您需要指定的參數取決於這項部署作業使用的耗用量選項。選取與計費方案佈建模式對應的分頁。

取決於預留項目

首先,請對 instances.bulkInsert 方法發出下列 POST 要求。

    POST https://compute.googleapis.com/compute/v1/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"
          }
        ],
        "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 映像檔版本。
  2. 選用:如果您選擇使用密集配置政策,請在要求主體中加入 resourcePolicies 參數,做為 "instanceProperties" 參數的一部分。

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

    POLICY_NAME 替換為精簡放置政策的名稱。

  3. 如要指定預留項目,請執行下列其中一項操作:

    • 如果您使用配置政策,或 VM 可放置在預訂區塊的任何位置,請將下列項目新增至要求主體,做為 "instanceProperties" 參數的一部分:

                 "reservationAffinity":{
                   "consumeReservationType":"SPECIFIC_RESERVATION",
                   "key":"compute.googleapis.com/reservation-name",
                   "values":[
                     "RESERVATION_NAME"
                   ],
                 },
                 

      RESERVATION_NAME 替換為預訂名稱,例如 h4d-highmem-exfr-prod

    • 如果您未使用密集配置政策,或希望執行個體放置在特定區塊中,請將下列項目新增至要求主體,做為 "instanceProperties" 參數的一部分:

                  "reservationAffinity":{
                    "consumeReservationType":"SPECIFIC_RESERVATION",
                    "key":"compute.googleapis.com/reservation-name",
                    "values":[
                      "RESERVATION_BLOCK_NAME"
                    ],
                  },
                 

      RESERVATION_BLOCK_NAME 替換為預訂中的區塊名稱,例如 h4d-highmem-exfr-prod/reservationBlocks/h4d-highmem-exfr-prod-block-1

    如要查看預約名稱或可用的預約時段,請參閱「查看容量」。

  4. 如要設定執行個體使用 Cloud RDMA,請在要求主體中加入類似下列的參數區塊,做為 "instanceProperties" 參數的一部分。這個範例會設定兩個 GVNIC 網路介面和一個 IRDMA 網路介面:

              "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",
              }
            ],
             

    更改下列內容:

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

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

    • EXTERNAL_IPV4_ADDRESS:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先預留外部 IPv4 位址
    • RDMA_NAME_PREFIX:您為 IRDMA 介面建立虛擬私有雲網路和子網路時使用的名稱前置字元。
  5. 選用:視需要自訂其餘執行個體屬性。
  6. 提交要求。

Spot

首先,請對 instances.bulkInsert 方法發出下列 POST 要求。

    POST https://compute.googleapis.com/compute/v1/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"
          }
        ],
        "scheduling":{
            "provisioningModel":"SPOT",
            "instanceTerminationAction":"TERMINATION_ACTION"
        }
      }
    }
    

操作步驟如下:

  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 映像檔版本。
    • TERMINATION_ACTION:Compute Engine 先占執行個體時要採取的動作,可以是 STOP (預設) 或 DELETE

  2. 選用:如果您選擇使用密集配置政策,請在 "instanceProperties" 參數中加入 resourcePolicies 參數。

              "resourcePolicies": [
                "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
              ]
              
  3. 如要設定執行個體使用 Cloud RDMA,請在要求主體中加入類似下列的參數區塊,做為 "instanceProperties" 參數的一部分。這個範例會設定兩個 GVNIC 網路介面和一個 IRDMA 網路介面:

              "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",
              }
            ],
             

    更改下列內容:

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

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

    • EXTERNAL_IPV4_ADDRESS:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先預留外部 IPv4 位址
    • RDMA_NAME_PREFIX:您為 IRDMA 介面建立虛擬私有雲網路和子網路時使用的名稱前置字元。
  4. 選用:視需要自訂其餘執行個體屬性。
  5. 提交要求。

後續步驟