本頁說明如何建立具有啟用 RDMA 功能網路介面的 HPC 執行個體。如需建立使用 RDMA 的 A4 或 A3 Ultra 加速器最佳化執行個體的操作說明,請參閱「建立搭載 A4 或 A3 Ultra 的 AI 最佳化執行個體」。
如要建立使用遠端直接記憶體存取 (RDMA) 的運算執行個體,您必須在建立執行個體時設定至少兩個網路介面卡 (NIC)。其中一個 NIC 必須是 IRDMA NIC,並附加至具有 RDMA 網路設定檔的 VPC 網路,另一個 NIC 則必須使用 GVNIC。
請參閱機器系列比較表,判斷哪些機器系列支援 RDMA 網路介面。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 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
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
必要的角色
如要取得建立支援 RDMA 通訊的執行個體所需權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。這個預先定義的角色具備建立支援 RDMA 通訊的執行個體所需權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立支援 RDMA 通訊的執行個體,必須具備下列權限:
-
專案的
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 設定 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
磁碟的權限
需求條件
設定執行個體的網路介面時,請參考下列規則:
- 每個網路介面都必須連線至不同的虛擬私有雲網路。
- 如要設定 IRDMA 網路介面,您必須先在與執行個體相同的區域和可用區中,建立具有 Falcon RDMA 網路設定檔的 VPC 網路。
- 如果您未指定網路或子網路,Compute Engine 會使用預設虛擬私有雲網路,以及與執行個體位於相同區域的自動子網路。
- 如果您指定子網路,但未指定網路,Compute Engine 會從指定的子網路推斷網路。
- 如果您指定網路,則必須指定子網路,且子網路必須屬於同一網路。否則執行個體建立作業會失敗。
限制
- 內部 IP 通訊的 Tier_1 網路僅與執行 gVNIC 虛擬網路驅動程式的 VM 相容。
- 使用 RDMA 的 VM 無法進行即時遷移。您必須將執行個體設為在維護事件期間終止。
- 您無法將 RDMA 與代管執行個體群組 (MIG) (代管或非代管) 搭配使用。
- 您只能搭配啟用 RDMA 的執行個體使用
IPv4_ONLY
網路堆疊類型。 - 您只能使用 H4D 系列機器建立使用 Cloud RDMA 的執行個體。
建立啟用 Cloud RDMA 的執行個體
啟用 Cloud RDMA 的執行個體至少需要兩個網路介面 (NIC):
- NIC 類型
GVNIC
:使用gve
驅動程式處理 TCP/IP 和網際網路流量,用於一般 VM 對 VM 和 VM 對網際網路的通訊 - NIC 類型
IRDMA
:使用 IDPF/iRDMA 驅動程式,在執行個體之間進行 RDMA 通訊
執行個體只能有一個
IRDMA
介面。每個執行個體可有一到十個網路介面。如要建立使用 IRDMA 的執行個體,請完成下列各節的步驟:
如果沒有合適的配置政策,請建立配置政策。
建立新的虛擬私有雲網路,或使用現有的 RDMA 虛擬私有雲網路。
建立啟用 RDMA 的執行個體,該執行個體具有
IRDMA
網路介面、至少一個GVNIC
網路介面,並使用密集配置方式政策。
為 RDMA 執行個體建立配置政策
使用 RDMA 通訊的執行個體必須位於單一區域,且更嚴格地說,必須位於單一叢集架構內。您可以建立密集配置政策,並指定最大距離值,在區域內設定最低密集度。指定最大距離值時,可指派緊湊型放置位置政策的執行個體數量有限,且上限會因您選擇的值而異。
- 如要建立密集配置政策,以便搭配 RDMA 執行個體使用,請按照「建立密集配置政策」一文中的步驟操作,並指定最大距離值為 3 或更低。
建立虛擬私有雲網路
如要設定網路,您可以按照文件中的操作說明,或使用提供的指令碼。
操作指南
如要建立網路,請按照下列操作說明進行:
如要為
GVNIC
網路介面建立主機網路,請參閱「建立及管理虛擬私有雲網路」。如果您只設定一個
GVNIC
網路介面,可以使用預設 VPC 網路和位於執行個體所在地區的自動子網路。如要為
IRDMA
網路介面建立網路,請參閱「建立具有 RDMA 網路設定檔的虛擬私有雲網路」。將 RDMA 網路的最大傳輸單位 (MTU) 設為8896
。
腳本
如要建立網路,可以使用下列指令碼。
選用:執行指令碼前,請列出 RDMA 網路設定檔,確認這些設定檔可用。
gcloud beta compute network-profiles list
複製下列程式碼,並在 Linux 殼層視窗中執行。
#!/bin/bash # Create standard VPC (network and subnet) for the GVNIC interface gcloud beta compute networks create GVNIC_NAME_PREFIX-net-0 \ --subnet-mode=custom gcloud beta compute networks subnets create GVNIC_NAME_PREFIX-sub-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --region=REGION \ --range=10.0.0.0/16 gcloud beta compute firewall-rules create GVNIC_NAME_PREFIX-internal-0 \ --network=GVNIC_NAME_PREFIX-net-0 \ --action=ALLOW \ --rules=tcp:0-65535,udp:0-65535,icmp \ --source-ranges=10.0.0.0/8 # Create SSH firewall rules gcloud beta 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 an external IP for only the GVNIC interface gcloud beta 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 network for RDMA over Falcon transport gcloud beta compute networks create RDMA_NAME_PREFIX-irdma \ --network-profile=ZONE-vpc-falcon \ --subnet-mode custom # Create subnet for RDMA gcloud beta compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \ --network=RDMA_NAME_PREFIX-irdma \ --region=REGION \ --range=10.1.0.0/16 # offset to avoid overlap with GVNIC network
更改下列內容:
GVNIC_NAME_PREFIX
:用於標準虛擬私有雲網路和子網路的名稱前置字元,這些網路和子網路使用 GVNIC NIC 類型。RDMA_NAME_PREFIX
:用於虛擬私有雲網路和子網路的名稱前置字元,這些網路和子網路使用 IRDMA NIC 類型。ZONE
:您要建立網路和運算執行個體的區域。使用us-central1-a
或europe-west4-b
。REGION
:要建立網路的區域。 這必須與指定的時區相符。舉例來說,如果您的可用區是europe-west4-b
,則區域為europe-west4
。IP_RANGE
:虛擬私有雲網路外部的 IP 位址範圍,用於 SSH 防火牆規則。最佳做法是指定您需要允許存取的特定 IP 位址範圍,而不是所有 IPv4 或 IPv6 來源。請勿使用0.0.0.0/0
或::/0
做為來源範圍,因為這樣會允許來自所有 IPv4 或 IPv6 來源的流量,包括Google Cloud以外的來源。
建立啟用 RDMA 的執行個體
下列步驟說明如何建立執行個體,並將第一個網路介面設為 gVNIC 介面,第二個網路介面設為 IRDMA 網路介面:
主控台
前往 Google Cloud 控制台的「Create an instance」(建立執行個體) 頁面。
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。
在「機器設定」窗格中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱資源命名慣例。
選用:在「Zone」(區域) 欄位中,選取這個執行個體的區域。
選擇用於設定 RDMA 網路設定檔的可用區。
選擇「運算最佳化」機器系列。
在「系列」欄中,選取「H4D」機器系列。
在「Machine type」(機器類型) 部分中,選取執行個體的機器類型。
在左側導覽選單中,按一下「OS and Storage」(OS 和儲存空間)。在隨即顯示的「作業系統和儲存空間」窗格中,執行下列操作:
- 在「作業系統和儲存空間」專區底部,點選「變更」。
- 在「Operating system」(作業系統) 和「Version」(版本) 清單中,選取支援 RDMA 的作業系統類型和版本。
- 確認「開機磁碟類型」已設為 Hyperdisk Balanced。
- 按一下窗格底部的「選取」,儲存變更。
在左側導覽選單中,按一下「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:
- 前往「網路介面」部分。應該已經有一個網路介面,標示為
default
。 - 按一下「新增網路介面」。在隨即顯示的「New network interface」(新增網路介面) 專區中,執行下列操作:
- 在「網路介面卡」清單中,選取「
IRDMA
」。 - 在「Network」(網路) 欄位中,選取具有 RDMA 網路設定檔的虛擬私有雲網路。
- 選用:在「Subnetwork」(子網路) 清單中,選取執行個體要使用的子網路。
- 在「IP stack type」(IP 堆疊類型) 欄位中,確認已設為「IPV4-only」(僅限 IPv4)。
- 在「外部 IPv4 位址」清單中,選取「無」。
- 如要確認網路介面詳細資料,請按一下「完成」。
- 在「網路介面卡」清單中,選取「
- 前往「網路介面」部分。應該已經有一個網路介面,標示為
選用:指定執行個體的其他設定選項。詳情請參閱「執行個體建立期間的設定選項」。
如要建立並啟動執行個體,請按一下「建立」。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
請使用
gcloud compute instances create
指令,並加上至少兩個--network-interface
旗標,一個用於 GVNIC 介面,另一個用於 IRDMA 介面。您可以視需要自訂其餘指令選項。gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes, \ image=projects/IMAGE_PROJECT/global/images/IMAGE, \ size=SIZE \ --maintenance-policy=TERMINATE \ --network-interface \ nic-type=GVNIC, \ network=NETWORK_NAME,subnet=SUBNET_NAME, \ stack-type=STACK_TYPE, \ private-network-ip=INTERNAL_IPV4_ADDRESS, \ address=EXTERNAL_IPV4_ADDRESS \ --network-interface \ nic-type=IRDMA, \ network=RDMA_NETWORK_NAME,subnet=RDMA_SUBNET_NAME, \ stack-type=IPV4_ONLY, \ no-address \
更改下列內容:
INSTANCE_NAME
:運算執行個體的名稱ZONE
:建立執行個體的區域,例如europe-west1-b
。執行個體的地區是從區域推測得出。MACHINE_TYPE
:選用:執行個體使用的機器類型。IMAGE_PROJECT
:選用:包含圖片的圖片專案。在預先發布期間,請使用自訂映像檔或 HPC VM 映像檔。IMAGE
:選用:指定下列其中一項:SIZE
:(選用) 新磁碟的大小。值必須是整數。預設測量單位為 GiB。NETWORK_NAME
:選用:網路名稱SUBNET_NAME
:要用於網路介面的子網路名稱。如要查看網路中的子網路清單,請使用gcloud compute networks subnets list
指令。如果是 GVNIC 網路介面,您可以省略
network
和subnet
標記,改用default
網路。STACK_TYPE
:選用:GVNIC 網路介面的堆疊類型。STACK_TYPE
必須是下列其中一項:IPV4_ONLY
、IPV4_IPV6
或IPV6_ONLY
。預設值為IPV4_ONLY
。INTERNAL_IPV4_ADDRESS
:選用:您希望運算執行個體在目標子網路中使用的內部 IPv4 位址。如果不需要特定 IP 位址,請略過這個旗標。如要指定內部 IPv6 位址,請改用
--internal-ipv6-address
旗標。EXTERNAL_IPV4_ADDRESS
:選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先預留外部 IPv4 位址。執行下列其中一個步驟:- 從子網路指定有效的 IPv4 位址。
- 如果不想讓網路介面擁有外部 IP 位址,請改用
no-address
旗標。 - 如要讓介面接收臨時外部 IP 位址,請指定
address=''
。
如要指定外部 IPv6 位址,請改用
--external-ipv6-address
標記。RDMA_NETWORK_NAME
:使用 RDMA 網路設定檔建立的網路名稱。RDMA_SUBNET_NAME
:RDMA 網路中的子網路名稱。
REST
如要建立設定為使用 RDMA 的執行個體,請對
instances.insert
方法發出POST
要求。加入networkInterfaces
物件,其中至少包含兩個網路設定,一個用於 gVNIC 介面,另一個用於 IRDMA 介面。您可以視需要自訂其餘執行個體屬性。使用任何要求資料之前,請先替換以下項目:
PROJECT_ID
:要在其中建立執行個體的專案 IDZONE
:要建立執行個體的可用區MACHINE_TYPE
:要使用的機器類型,例如h4d-highmem-192-lssd
INSTANCE_NAME
:新執行個體的名稱IMAGE_PROJECT
:選用:包含圖片的映像檔專案IMAGE
:選用:指定下列其中一項:NETWORK_NAME
:選用:要搭配 gVNIC 網路介面使用的網路名稱SUBNET_NAME
:要搭配 gVNIC 網路介面使用的子網路名稱如果是 GVNIC 網路介面,您可以省略
network
和subnet
屬性,改用default
網路。INTERNAL_IPV4_ADDRESS
: (選用) 您希望運算執行個體在目標子網路中使用的內部 IPv4 位址。如果不需要特定 IP 位址,請略過這個旗標。EXTERNAL_IPV4_ADDRESS
: 選用:要與網路介面搭配使用的靜態外部 IPv4 位址。您必須先保留外部 IPv4 位址。RDMA_NETWORK_NAME
:您使用 RDMA 網路設定檔建立的網路名稱RDMA_SUBNET_NAME
:RDMA 網路中的子網路名稱
HTTP 方法和網址:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
JSON 要求主體:
{ "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "network": "NETWORK_NAME", "subnetwork": "SUBNET_NAME", "networkIP": "INTERNAL_IPV4_ADDRESS", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "External IP", "natIP": "EXTERNAL_IPV4_ADDRESS" } ], "stackType": "IPV4_ONLY", "nicType": "GVNIC", }, { "network": "RDMA_NETWORK_NAME", "subnetwork": "RDMA_SUBNET_NAME", "stackType": "IPV4_ONLY", "nicType": "IRDMA", } ] }
如要傳送要求,請展開以下其中一個選項:
您應該會收到如下的 JSON 回應:
{ "kind": "compute#operation", "id": "9216044482154695709", "name": "operation-1739207409646-62dccc7d7bc58-d1350b42-64fdb7f7", "zone": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`", "operationType": "insert", "targetLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/instances/`INSTANCE_NAME`", "targetId": "2679381553616227357", "status": "RUNNING", "user": "USER_ID", "progress": 0, "insertTime": "2025-02-10T09:10:10.551-08:00", "startTime": "2025-02-10T09:10:10.551-08:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38" "kind": "compute#operation" }
後續步驟
- 瞭解如何查看執行個體的狀態,確認執行個體何時可以使用。
- 瞭解如何連線至執行個體。
- 瞭解建立執行個體時指派的 IP 位址。
- 瞭解如何建立雙重堆疊或僅限 IPv6 的執行個體。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-18 (世界標準時間)。
-