本頁說明如何建立 HPC 執行個體,並啟用 Cloud RDMA 的網路介面。如需建立使用 RDMA 的 A4 或 A3 Ultra 加速器最佳化執行個體的操作說明,請參閱「建立 AI 適用的 A4 或 A3 Ultra 執行個體」。
如要建立使用遠端直接記憶體存取 (RDMA) 的運算執行個體,您必須在建立執行個體時設定至少兩個網路介面 (NIC)。其中一個 NIC 必須是 IRDMA NIC,並連結至具有 Falcon RDMA 網路設定檔的 VPC 網路,另一個 NIC 則必須使用 GVNIC。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Cloud de Confiance by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Cloud de Confiance 控制台存取 Cloud de Confiance by S3NS 服務和 API 時,無須設定驗證。
gcloud
-
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。登入後,執行下列指令來初始化 Google Cloud CLI:
gcloud init
-
- 設定預設地區和區域。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI,然後 使用聯合身分登入 gcloud CLI。
詳情請參閱 Cloud de Confiance 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得建立支援 Cloud RDMA 的執行個體所需的權限,請要求管理員授予您專案的 Compute 執行個體管理員 (v1) (roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立支援 Cloud RDMA 的執行個體所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立支援 Cloud 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 網路設定檔的虛擬私有雲網路。
- 如要使用 GVNIC 網路介面,必須使用一般 VPC。如果您未指定網路或子網路,Compute Engine 會使用預設虛擬私有雲網路,以及與執行個體位於相同區域的自動子網路。
- 如果您指定子網路,但未指定網路,Compute Engine 會從指定的子網路推斷網路。
- 如果您指定網路,則必須指定子網路,且子網路必須屬於同一網路。否則執行個體建立作業會失敗。
限制
- 使用 Cloud RDMA 的 VM 無法進行即時遷移。您必須將執行個體設為在維護事件期間終止。
- 您無法將 Cloud RDMA 與代管執行個體群組 (MIG) (代管或非代管) 搭配使用。
- 您只能將
IPv4_ONLY網路堆疊類型與啟用 Cloud RDMA 的執行個體搭配使用。 - 您只能使用 H4D 機器系列建立使用 Cloud RDMA 的執行個體。
建立啟用 Cloud RDMA 的執行個體
啟用 Cloud RDMA 的執行個體至少需要兩個網路介面 (NIC):
- NIC 類型
GVNIC:使用gve驅動程式處理 TCP/IP 和網際網路流量,用於一般 VM 對 VM 和 VM 對網際網路通訊 - NIC 類型
IRDMA:使用 IDPF/iRDMA 驅動程式,在執行個體之間進行 RDMA 通訊
執行個體只能有一個 IRDMA 介面。每個執行個體可有 1 到 10 個網路介面。如要瞭解 Cloud de Confiance by S3NS中的多個網路介面,請參閱「多個網路介面」。
如要建立使用 IRDMA 的執行個體,請完成下列各節的步驟:
如果沒有合適的配置政策,請建立配置政策。
建立新的虛擬私有雲網路,或使用現有的 Falcon 虛擬私有雲網路。
建立啟用 Cloud RDMA 的執行個體,該執行個體具有
IRDMA網路介面、至少一個GVNIC網路介面,並使用密集配置政策。
為 Cloud RDMA 執行個體建立配置政策
使用 Cloud RDMA 通訊的執行個體必須位於單一區域,更嚴格來說,必須位於單一叢集架構。您可以建立密集配置政策,並指定最大距離值,在區域內設定最低密集度。指定最大距離值時,可指派緊湊型放置政策的執行個體數量有限,且限制會因您選擇的值而異。
- 如要建立密集配置政策,以便搭配 Cloud RDMA 執行個體使用,請按照「建立密集配置政策」一文中的步驟操作,並指定最大距離值為 3 或更低。
建立虛擬私有雲網路
如要設定網路,您可以按照文件中的操作說明,或使用提供的指令碼。
操作指南
如要建立網路,請按照下列操作說明進行:
如要為
GVNIC網路介面建立主機網路,請參閱「建立及管理虛擬私有雲網路」。如果您只設定一個
GVNIC網路介面,可以使用預設虛擬私有雲網路和位於執行個體所在區域的自動子網路。如要為
IRDMA網路介面建立網路,請參閱「為 RDMA NIC 建立虛擬私有雲網路」,並使用 Falcon RDMA 網路設定檔。將 Falcon 虛擬私有雲網路的最大傳輸單位 (MTU) 設為8896。
腳本
如要建立網路,可以使用下列指令碼。
選用:執行指令碼前,請列出 Falcon RDMA 網路設定檔,確認這些設定檔可用。
gcloud compute network-profiles list --filter=falcon複製下列程式碼,並在 Linux 殼層視窗中執行。
#!/bin/bash
# Create standard VPC (network and subnet) for the GVNIC interface
gcloud compute networks create GVNIC_NAME_PREFIX-net-0 \
--subnet-mode=custom
gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-0 \
--network=GVNIC_NAME_PREFIX-net-0 \
--region=REGION \
--range=10.0.0.0/16
gcloud 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 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 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 Cloud RDMA over Falcon transport
gcloud compute networks create RDMA_NAME_PREFIX-irdma \
--network-profile=ZONE-vpc-falcon \
--subnet-mode custom
# Create subnet for Cloud RDMA
gcloud 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 來源的流量,包括Cloud de Confiance by S3NS以外的來源。
建立啟用 Cloud RDMA 的執行個體
下列步驟說明如何建立執行個體,並將第一個網路介面設為 gVNIC 介面,第二個網路介面設為 IRDMA 網路介面:
控制台
前往 Cloud de Confiance 控制台的「Create an instance」(建立執行個體) 頁面。
如果出現系統提示,請選取您的專案,然後按一下 [Continue] (繼續)。
「建立執行個體」頁面隨即顯示,並顯示「機器設定」窗格。
在「機器設定」窗格中,執行下列操作:
- 在「Name」(名稱) 欄位中,指定執行個體的名稱。詳情請參閱資源命名慣例。
選用:在「Zone」(區域) 欄位中,選取這個執行個體的區域。
選擇您用來設定 Falcon 虛擬私有雲網路的可用區。
選擇「運算最佳化」機器家族。
在「系列」欄中,選取「H4D」機器系列。
在「Machine type」(機型) 部分中,選取執行個體的機型。
在左側導覽選單中,按一下「OS and Storage」(OS 和儲存空間)。在隨即顯示的「Operating system and storage」(作業系統和儲存空間) 窗格中,執行下列操作:
- 在「作業系統和儲存空間」專區底部,點選「變更」。
- 在「Operating system」(作業系統) 和「Version」(版本) 清單中,選取支援 Cloud RDMA 的作業系統類型和版本。
- 確認「開機磁碟類型」已設為 Hyperdisk Balanced。
- 按一下窗格底部的「選取」,儲存變更。
在左側導覽選單中,按一下「Networking」(網路)。在隨即顯示的「Networking」(網路) 窗格中,執行下列操作:
- 前往「網路介面」部分。應該已經有一個網路介面,標示為
default。 - 按一下「新增網路介面」。在隨即顯示的「New network interface」(新增網路介面) 專區中,執行下列操作:
- 在「網路介面卡」清單中,選取「
IRDMA」。 - 在「Network」(網路) 欄位中,選取 Falcon 虛擬私有雲網路。
- 選用:在「Subnetwork」(子網路) 清單中,選取執行個體要使用的子網路。
- 在「IP stack type」(IP 堆疊類型) 欄位中,確認已設為「IPV4-only」(僅限 IPv4)。
- 在「外部 IPv4 位址」清單中,選取「無」。
- 如要確認網路介面詳細資料,請按一下「完成」。
- 在「網路介面卡」清單中,選取「
- 前往「網路介面」部分。應該已經有一個網路介面,標示為
選用:指定執行個體的其他設定選項。詳情請參閱「執行個體建立期間的設定選項」。
如要建立並啟動執行個體,請按一下「建立」。
gcloud
-
在 Cloud de Confiance 控制台中啟用 Cloud Shell。
Cloud de Confiance 主控台底部會開啟一個 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
使用
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:選用:包含圖片的映像檔專案。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:您使用 Falcon RDMA 網路設定檔建立的虛擬私有雲網路名稱。RDMA_SUBNET_NAME:Falcon 虛擬私有雲網路中的子網路名稱。
REST
如要建立設定為使用 Cloud RDMA 的執行個體,請向 instances.insert 方法提出 POST 要求。加入 networkInterfaces 物件,其中至少包含兩個網路設定,一個用於 gVNIC 介面,另一個用於 IRDMA 介面。視需要自訂其餘執行個體屬性。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:要在其中建立執行個體的專案 IDZONE:要在哪個可用區建立執行個體MACHINE_TYPE:要使用的機型,例如h4d-highmem-192-lssdINSTANCE_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.s3nsapis.fr/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.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`",
"operationType": "insert",
"targetLink": "https://www.s3nsapis.fr/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.s3nsapis.fr/compute/v1/projects/`PROJECT_ID`/zones/`ZONE`/operations/operation-1565289606387-58f9f62f5989c-e582f586-6d22f38"
"kind": "compute#operation"
}
後續步驟
- 瞭解如何查看執行個體的狀態,確認執行個體何時可以使用。
- 瞭解如何連線至執行個體。
- 瞭解建立執行個體時指派的 IP 位址。
- 瞭解如何建立雙重堆疊或僅限 IPv6 的執行個體。