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

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

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

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

事前準備

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

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

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

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

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

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init

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

    2. Set a default region and zone.

    REST

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

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

      gcloud init

      若您採用的是外部識別資訊提供者 (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 VPC 網路設定檔,確認有可用的設定檔。
      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。如果您的應用程式對延遲時間很敏感,且希望 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:虛擬機的最大距離設定。值必須為 3,才能將 VM 放置在相鄰區塊中;值必須為 2,才能將 VM 放置在相同區塊中。如要瞭解每個maxDistance機器系列支援的 VM 數量上限,請參閱 Compute Engine 說明文件中的「關於密集配置政策」。
  • 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
  • POLICY_NAME:密集配置政策的名稱。
  • MAX_DISTANCE:虛擬機的最大距離設定。值必須為 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. 提交要求。

後續步驟