本教學課程說明如何建立大量相同且彼此獨立的高效能運算 (HPC) 虛擬機器 (VM) 執行個體。執行個體使用 H4D HPC 最佳化機器類型,並在預留的容量區塊上執行。本教學課程也說明如何設定 H4D 執行個體,以使用 Cloud RDMA。
本教學課程的適用對象為 HPC 工程師、平台管理員和操作員,以及有興趣建立互連 HPC 執行個體叢集的資料和 MPI 專家。產生的執行個體不會使用協調器來管理執行個體或安排工作。
目標
- 為部署作業預留容量區塊。
- 選用:如果您不是在同一個區塊或子區塊中建立 VM,請建立放置位置政策。
- 建立虛擬私有雲網路。
- 大量建立啟用 RDMA 的執行個體。
- 清除所用資源。
費用
本教學課程使用 Google Cloud的計費元件,包括:
如要根據預測用量估算費用,請使用 Pricing Calculator。
事前準備
- 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.
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Install the Google Cloud CLI.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
-
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 theresourcemanager.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.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theserviceusage.services.enable
permission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
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.
- 非密集部署:Compute Engine 執行個體佈建模型
- 密集部署:選擇用量方案並取得容量
請聯絡帳戶團隊,並提供下列資訊,讓 Google 建立未來預留要求的草稿:
專案編號:帳戶團隊建立要求,且 Compute Engine 佈建容量的專案編號。如要瞭解如何找出專案編號,請參閱 Resource Manager 說明文件中的「找出專案名稱、編號和 ID」一文。
總數:要預留的 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
)。如要與貴機構中的其他專案共用預留容量,請按照下列步驟操作:
如果尚未驗證,請確認 Google 建立要求的專案可建立共用預訂。
提供要共用預留容量的專案編號。您最多可以在機構中指定 100 個專案。
預留項目名稱:Compute Engine 自動建立的預留項目名稱,用於提供預留容量。Compute Engine 只會建立明確指定的預留項目。
承諾名稱:如果預留期間為一年以上,則必須購買依資源計算的承諾使用合約,並將其附加至預留資源。您可以購買 1 年或 3 年方案的使用承諾。如果您與其他專案共用預留容量,則只有在這些專案與預留容量的專案使用相同的 Cloud Billing 帳戶時,才能享有折扣。詳情請參閱「為資源型承諾啟用 CUD 分享功能」。
承諾就會在 2025 年 12 月 2 日凌晨 12 點生效。
Google 會建立未來預留項目要求草稿,並由您的帳戶團隊與您聯絡。
查看草稿要求。查看預訂要求時,請注意下列事項:
- 只有在指定開始日期和時間之後,才能開始使用預留容量。
到達指定結束時間時,Compute Engine 會執行下列作業:
- 刪除自動建立的預留項目。
- 停止或刪除使用保留項目的任何 VM。系統會根據您建立 VM 時指定的終止動作採取行動。
提交預訂要求後,您就無法變更預留容量是否共用。
如要查看未來預留項目要求草稿,請選取下列其中一個選項:
主控台
在 Google Cloud 控制台,前往「Reservations」(預留項目) 頁面。
點按「Future reservations」(未來預留項目) 分頁標籤。「未來預留項目」表格會列出專案中的每項未來預留要求,而每個表格欄位則說明一項屬性。
在「Name」(名稱) 欄中,按一下 Google 為您建立的草稿要求名稱。系統會開啟頁面,顯示未來預留要求詳細資料。
在「基本資訊」部分,確認要求詳細資料 (例如「日期」和「分享類型」) 正確無誤。此外,如果您要求承諾,請確認承諾已指定。
如果這些詳細資料有誤,請與帳戶團隊聯絡。
gcloud
如要查看專案中未來預留項目的要求清單,請使用
gcloud beta compute future-reservations list
指令,並將--filter
標記設為PROCUREMENT_STATUS=DRAFTING
:gcloud beta compute future-reservations list --filter=PROCUREMENT_STATUS=DRAFTING
在指令輸出內容中,找出您提供給帳戶團隊的名稱所對應的預訂要求。
如要查看草稿要求的詳細資料,請使用
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
在指令輸出內容中,確認要求詳細資料 (例如預訂期間和共用類型) 是否正確。此外,如果您購買了約定,請確認已指定約定。
如果詳細資料有誤,請與帳戶團隊聯絡。
REST
如要查看專案中的未來預留項目要求清單,請對 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
:要求所在的可用區。
在要求輸出內容中,找出您提供給帳戶團隊的名稱所對應的預訂要求。
如要查看草稿要求的詳細資料,請向 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" }
在輸出內容中,確認要求詳細資料 (例如預訂期間和共用類型) 是否正確。此外,如果您要求承諾,請確認已指定承諾。
如果詳細資料有誤,請與帳戶團隊聯絡。
確認所有資訊無誤後,請提交預訂要求。你必須在要求開始時間前提交要求。
如要提交草稿未來預留項目要求,請選取下列其中一個選項:
主控台
在 Google Cloud 控制台,前往「Reservations」(預留項目) 頁面。
點按「Future reservations」(未來預留項目) 分頁標籤。
在「Name」(名稱) 欄中,按一下 Google 為您建立的草稿要求名稱。
按一下「提交」。
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" }
Google Cloud 立即核准您提交的要求。
Compute Engine 會建立空白預留項目,其中包含您要求的資源。
如要查看預留項目,請參閱 AI Hypercomputer 說明文件中的「查看預留容量」。
POLICY_NAME
:密集配置政策的名稱MAX_DISTANCE
:VM 執行個體的最大距離設定。指定3
將 VM 放置在相鄰區塊,並指定2
將 VM 放置在相同區塊。我們會盡量將 VM 放置在最佳位置。REGION
:要建立放置政策的區域。指定您要使用的機器類型所在的區域。如要瞭解可用地區,請參閱「可用地區與區域」。PROJECT_ID
:您的專案 IDREGION
:要建立放置政策的區域。指定您要使用的機器類型所在的區域。如要瞭解可用地區,請參閱「可用地區與區域」。POLICY_NAME
:密集配置政策的名稱MAX_DISTANCE
:VM 執行個體的最大距離設定。指定3
可將 VM 放置在相鄰的區塊,指定2
則可將 VM 放置在同一個區塊。我們會盡量將 VM 放置在最佳位置。- NIC 類型
GVNIC
:使用gve
驅動程式處理 TCP/IP 和網際網路流量,用於一般 VM 對 VM 和 VM 對網際網路的通訊 - NIC 類型
IRDMA
:使用 IDPF/iRDMA 驅動程式,在執行個體之間進行 RDMA 網路通訊 - 每個網路介面都必須連線至不同的虛擬私有雲網路。
- 如要設定 IRDMA 網路介面,您必須先在與執行個體相同的區域和可用區中,建立具有 Falcon RDMA 網路設定檔的虛擬私有雲網路。
- 如果是 GVNIC 網路介面,如果您未指定網路或子網路,Compute Engine 會使用預設的 VPC 網路,以及與執行個體位於相同區域的自動子網路。
- 如果您指定子網路,但未指定網路,Compute Engine 會從指定的子網路推斷網路。
- 如果您指定網路,則必須指定子網路,且子網路必須屬於同一網路。否則執行個體建立作業會失敗。
如要為
GVNIC
網路介面建立主機網路,請參閱「建立及管理虛擬私有雲網路」。如果您只設定一個
GVNIC
網路介面,可以使用預設 VPC 網路和位於執行個體所在地區的自動子網路。如要為
IRDMA
網路介面建立網路,請參閱「建立具有 RDMA 網路設定檔的虛擬私有雲網路」。使用 RDMA 網路的最大傳輸單位 (MTU) 預設值,也就是8896
。選用:執行指令碼前,請列出 Falcon VPC 網路設定檔,確認有可用的設定檔。Falcon VPC 網路設定檔僅適用於部分區域。
gcloud beta compute network-profiles list --filter=falcon
複製下列程式碼,並在 Linux 殼層視窗中執行。
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-a
或europe-west4-b
。- 如果執行個體有 Cloud RDMA 網路介面,就無法在主機維護事件期間使用即時遷移功能。您必須將執行個體設定為在維護事件期間終止。
- 使用 RDMA 網路介面和 Falcon RDMA 網路設定檔的虛擬私有雲網路時,只能使用 IPv4 位址。
- 您只能使用 H4D 機器系列,透過 Cloud RDMA 建立已針對 HPC 最佳化的執行個體。
NAME_PATTERN
:執行個體的名稱模式。舉例來說,如果名稱模式為vm-#
,就會產生vm-1
和vm-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` 格式指定預留區塊名稱。
如要查看預留名稱或可用的預留區塊,請參閱「查看容量」。
- 如果您使用放置政策,或 VM 可放置在預留項目區塊的任何位置,請指定預留項目名稱,例如
REGION
:指定您要使用的機器類型所在區域,例如europe-west1
。如要瞭解可用地區,請參閱「可用地區與區域」。DISK_SIZE
:選用:開機磁碟的大小 (以 GiB 為單位)。值必須為整數。GVNIC_NAME_PREFIX
:您為 GVNIC 介面建立虛擬私有雲網路和子網路時使用的名稱前置字串。如果是 GVNIC 網路介面,您可以省略
network
和subnet
旗標,改用default
網路。STACK_TYPE
:選用:GVNIC 網路介面的堆疊類型。STACK_TYPE
必須是下列其中一項:IPV4_ONLY
或IPV4_IPV6
。 預設值為IPV4_ONLY
。EXTERNAL_IPV4_ADDRESS
:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先預留外部 IPv4 位址。執行下列其中一個步驟:- 從子網路指定有效的 IPv4 位址。
- 如果不想讓網路介面擁有外部 IP 位址,請改用
no-address
旗標。 - 如要讓介面接收臨時外部 IP 位址,請指定
address=''
。
如要指定外部 IPv6 位址,請改用
--external-ipv6-address
標記。RDMA_NAME_PREFIX
:您為 IRDMA 介面建立虛擬私有雲網路和子網路時使用的名稱前置字串。- 加入
networkInterfaces
物件,其中至少包含兩個網路設定,一個用於 gVNIC 網路介面,另一個用於 RDMA 網路介面。 - 如果您選擇使用密集配置政策,請在要求主體中加入
resourcePolicies
物件。 - 如要在建立執行個體時使用預留容量區塊,請將
provisioningModel
設為RESERVATION_BOUND
。 - 您可以視需要自訂其餘執行個體屬性。
在要求主體中取代下列項目:
PROJECT_ID
:要在其中建立執行個體的專案 ID。ZONE
:指定您要使用的機器類型所在的可用區。如果您使用密集配置政策,請使用與密集配置政策相同區域的可用區。如要瞭解 H4D 機器類型適用的地區,請參閱「可用地區與區域」。NAME_PATTERN
:執行個體的名稱模式。 舉例來說,使用vm-#
做為名稱模式會產生名稱類似vm-1
和vm-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 網路介面,您可以省略
network
和subnetwork
欄位,改用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`。
如要查看預留名稱或可用的預留區塊,請參閱「查看容量」。
- 如果您使用放置政策,或 VM 可放置在預留項目區塊的任何位置,請指定預留項目名稱,例如
選用:如果您使用精簡版刊登位置政策,請將要求主體中的
...
替換為下列欄位:"resourcePolicies": [ "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME" ],
更改下列內容:
PROJECT_ID
:緊湊型刊登位置政策的專案 ID。REGION
:密集配置政策的區域。POLICY_NAME
:密集配置政策的名稱。
提交要求。
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
選取包含您在本教學課程中建立的 VM 執行個體的資料列。
依序點選「刪除」
和「刪除」確認操作。如要刪除配置政策,請使用
gcloud compute resource-policies delete
指令。gcloud compute resource-policies delete POLICY_NAME \ --region=REGION
更改下列內容:
POLICY_NAME
:刊登位置政策的名稱REGION
:刊登位置政策所在的區域
為部署作業預留容量區塊
本文說明如何預留容量區塊,方法是請帳戶團隊為您建立未來預留要求。使用這類預留項目,取得 VM 執行個體密集部署的容量。如要查看所有用量選項的總覽,請參閱:
這項動作可讓您預留特定時間範圍的容量,從您選擇的特定日期和時間開始。Google 會根據您的要求,建立未來預留項目要求草稿。審查並提交這份草案要求,且 Google Cloud 核准後,Compute Engine 會自動建立 (自動建立) 空預留項目。接著,在您選擇的開始時間,Compute Engine 會將要求的容量佈建到自動建立的預留項目中。然後,您就可以使用預留項目建立虛擬機器 (VM) 執行個體,直到預留項目期限結束為止。
在未來預留項目要求程序中,Google 會管理預留資源的配額。您不需要申請配額。在核准的預訂時間開始時,如果預訂資源的配額不足,Google 會增加配額。
如要預留容量區塊,請完成下列步驟:
選用:建立配置政策
如要盡可能將 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
更改下列內容:
REST
如要建立密集配置政策,請對 beta.resourcePolicies.insert
方法發出 POST
要求。在要求主體中,加入設為 COLLOCATED
的 collocation
欄位,以及 maxDistance
欄位。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
{
"name": "POLICY_NAME",
"groupPlacementPolicy": {
"collocation": "COLLOCATED",
"maxDistance": "MAX_DISTANCE"
}
}
更改下列內容:
建立虛擬私有雲網路
啟用 RDMA 的執行個體至少需要兩個網路介面 (NIC):
使用 Cloud RDMA 的執行個體只能有一個 IRDMA
介面。您最多可以新增八個額外的 GVNIC
網路介面,每個執行個體最多可有 10 個 NIC。
設定執行個體的網路介面時,請參考下列規則:
如要設定 Falcon 虛擬私有雲 (VPC) 網路,以便搭配執行個體使用,您可以按照說明文件中的指示操作,也可以使用提供的指令碼。
操作指南
如要建立網路,請按照下列操作說明進行:
腳本
每個執行個體最多可建立九個 GVNIC
網路介面和一個 IRDMA
網路介面。每個網路介面都必須連接到不同的網路。如要建立網路,可以使用下列指令碼,為 GVNIC
建立兩個網路,並為 IRDMA
建立一個網路,這些網路會使用 Falcon VPC 網路設定檔。
#!/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
更改下列內容:
大量建立啟用 RDMA 的執行個體
使用 Cloud RDMA 建立 H4D 執行個體前,請先詳閱下列限制:
下列步驟說明如何大量建立啟用 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
更改下列內容:
REST
如要大量建立啟用 RDMA 的執行個體,請對 beta instances.bulkInsert
方法提出 POST
要求,並使用下列設定:
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
}
},
...
}
}
操作步驟如下:
清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取本教學課程中所用資源的相關費用,請刪除含有該項資源的專案,或者保留專案但刪除個別資源。
刪除專案
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID