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


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

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

目標

  1. 為部署作業預留容量區塊。
  2. 選用:如果您不是在同一個區塊或子區塊中建立 VM,請建立放置位置政策。
  3. 建立虛擬私有雲網路。
  4. 大量建立啟用 RDMA 的執行個體。
  5. 清除所用資源。

費用

本教學課程使用 Google Cloud的計費元件,包括:

如要根據預測用量估算費用,請使用 Pricing Calculator

事前準備

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  4. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  8. Install the Google Cloud CLI.

  9. 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

  10. 如要初始化 gcloud CLI,請執行下列指令:

    gcloud init
  11. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  12. Verify that billing is enabled for your Google Cloud project.

  13. Enable the required API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable compute.googleapis.com
  14. Grant roles to your user account. Run the following command once for each of the following IAM roles: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Replace the following:

    • PROJECT_ID: your project ID.
    • USER_IDENTIFIER: the identifier for your user account—for example, myemail@example.com.
    • ROLE: the IAM role that you grant to your user account.
  15. 為部署作業預留容量區塊

    本文說明如何預留容量區塊,方法是請帳戶團隊為您建立未來預留要求。使用這類預留項目,取得 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. 提交要求。

    清除所用資源

    如要避免系統向您的 Google Cloud 帳戶收取本教學課程中所用資源的相關費用,請刪除含有該項資源的專案,或者保留專案但刪除個別資源。

    刪除專案

    Delete a Google Cloud project:

    gcloud projects delete PROJECT_ID

    刪除資源

    1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

      前往 VM 執行個體

    2. 選取包含您在本教學課程中建立的 VM 執行個體的資料列。

    3. 依序點選「刪除」和「刪除」確認操作。

    4. 如要刪除配置政策,請使用 gcloud compute resource-policies delete 指令

      gcloud compute resource-policies delete POLICY_NAME \
          --region=REGION
      

      更改下列內容:

      • POLICY_NAME:刊登位置政策的名稱
      • REGION:刊登位置政策所在的區域

    後續步驟