使用 IDPF 網路介面


使用 C3 和 X4 等機器系列的裸機執行個體會使用基礎架構資料平面函式 (IDPF),這是標準化的多供應商 PCIe 網路資料平面函式裝置。IDPF 是實體裝置。Linux 作業系統 (OS) 映像檔的核心內含 IDPF 驅動程式。

事前準備

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

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

    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 驗證說明文件中的「Authenticate for using REST」。

IDPF 支援的功能

與 gVNIC 類似,IDPF 支援下列功能:

IDPF 網路介面的限制

使用 IDPF 網路介面時,請注意下列限制:

  • 執行個體僅支援單一 NIC。您無法建立具有多個 NIC 的運算執行個體。
  • IDPF 只支援預設佇列分配,每個 NIC 有 16 個接收和傳輸佇列 (RX/TX)
  • 如果您在裸機執行個體上使用 DPDK,DPDK 會取代 IDPF,成為實體 NIC 的驅動程式。DPDK 應用程式必須將封包轉送至核心,例如透過 TAP 介面

搭配裸機執行個體使用 IDPF 的總覽

如要建立使用 IDPF 的裸機執行個體,請完成下列步驟:

  1. 選擇支援 IDPF 的公開 OS 映像檔,或建立標記為使用 IDPF 的自訂 OS 映像檔。
  2. 使用公開或自訂 OS 映像檔建立裸機執行個體。在建立執行個體時,將網路介面設定為使用 IDPF。
  3. 確認已啟用 IDPF。

作業系統支援

在 Compute Engine 上,IDPF 僅適用於少數支援的公開 OS 映像檔。

如要瞭解 IDPF 支援哪些作業系統,請參閱作業系統的「介面」分頁。

在不支援的作業系統上使用

如果作業系統映像檔不支援 IDPF,請洽詢作業系統發行商,瞭解如何加入 IDPF 驅動程式。

取得包含 IDPF 的作業系統映像檔後,請匯入可開機的虛擬磁碟,其中包含自訂作業系統。然後,您可以使用自訂 OS 映像檔,建立在該作業系統上使用 IDPF 的裸機執行個體。如要進一步瞭解如何建立自訂 OS 映像檔,以便搭配裸機執行個體使用,請參閱本頁的「建立支援 IDPF 的自訂 OS 映像檔」。

建立支援 IDPF 的自訂 OS 映像檔

如果 Bare Metal 執行個體需要不同於 Google Cloud提供的作業系統映像檔或版本,您可以使用 Google Cloud CLIREST 建立作業系統映像檔。如需建立自訂 OS 映像檔的詳細資訊和最佳做法,請參閱「建立自訂 OS 映像檔」。

gcloud

從 Google Cloud 提供的映像檔或匯入的 OS 映像檔建立自訂映像檔時,您必須使用 IDPF 標記 OS 映像檔。使用 gcloud compute images create 指令 ,如下列範例所示:

gcloud compute images create IMAGE_NAME \
    --source-image=SOURCE_IMAGE \
    --source-image-project=SOURCE_IMAGE_PROJECT \
    --guest-os-features=IDPF

更改下列內容:

  • IMAGE_NAME:自訂映像檔的名稱。
  • SOURCE_IMAGE:支援 IDPF 的特定 OS 映像檔,例如:sles-15-sp4-sap-v20240208-x86-64

    如要在映像檔系列中使用最新作業系統映像檔,請將 --source-image 標記替換為 --source-image-family 標記,並將其值設為支援 IDPF 的映像檔系列,例如:--source-image-family=sles-15-sp4-sap

  • SOURCE_IMAGE_PROJECT:包含來源 OS 映像檔或映像檔系列的專案名稱。

    示例

    如要使用 Compute Engine sles-15-sp5-sap 映像檔系列的最新作業系統映像檔,建立 SUSE Linux Enterprise Server (SLES) 作業系統映像檔,請執行下列指令:

    gcloud compute images create my-sles15sp5-metal-os \
      --source-image-family=sles-15-sp5-sap \
      --source-image-project=suse-sap-cloud \
      --guest-os-features=IDPF
    

    如要進一步瞭解何時該使用映像檔系列,請參閱映像檔系列最佳做法

REST

  1. 選取支援 IDPF 的作業系統映像檔或映像檔系列。詳情請參閱「作業系統詳細資料」。

  2. 使用上一步選取的 OS 映像檔或映像檔系列,建立 OS 映像檔,並以 IDPF 標記這個 OS 映像檔。如要建立 OS 映像檔,請使用 images.insert 方法

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images
    {
     "name":"IMAGE_NAME",
     "sourceImage":"SOURCE_IMAGE_URI",
     "guestOsFeatures":[
      {
         "type":"IDPF"
       }
     ]
    }
    

    更改下列內容:

    • IMAGE_NAME:您要建立的自訂映像檔名稱。
    • SOURCE_IMAGE_URI:您要使用的特定 OS 映像檔或映像檔系列的 URI。

      例如:

      • 特定 OS 映像檔:"sourceImage": "projects/suse-sap-cloud/global/images/sles-15-sp5-sap-v20240427-x86-64"
      • 映像檔系列:"sourceImage": "projects/suse-sap-cloud/global/images/family/sles-15-sp5-sap"

      指定映像檔系列時,Compute Engine 會從該系列中未淘汰的最新 OS 映像檔建立 VM。如要進一步瞭解何時該使用映像檔系列,請參閱映像檔系列最佳做法

建立支援 IDPF 的裸機執行個體

您可以透過支援 IDPF 的公開 OS 映像檔建立裸機執行個體,也可以使用按照「建立支援 IDPF 的自訂 OS 映像檔」一文步驟建立的自訂 OS 映像檔。

使用公開 OS 映像檔建立裸機執行個體

如要使用支援 IDPF 的公開 OS 映像檔建立裸機執行個體,請按照「建立裸機執行個體」一文的說明操作。

使用自訂 OS 映像檔建立裸機執行個體

如果您使用的公開 OS 映像檔不支援 IDPF,請先建立支援 IDPF 的自訂 OS 映像檔。接著,您可以使用 Google Cloud CLIREST,透過該自訂 OS 映像檔建立裸機執行個體。

gcloud

  1. 使用 gcloud compute instances create 指令建立裸機執行個體。針對開機磁碟映像檔,請指定您先前建立的自訂 OS 映像檔。將網路介面的 nic-type 旗標值設為 IDPF

    gcloud compute instances create INSTANCE_NAME \
        --zone=ZONE \
        --image=IMAGE_NAME \
        --image-project=YOUR_IMAGE_PROJECT \
        --network-interface=nic-type=IDPF
    

    更改下列內容:

    • INSTANCE_NAME:新執行個體的名稱。
    • ZONE:要建立執行個體的可用區。
    • IMAGE_NAME:先前建立的自訂 OS 映像檔。
    • YOUR_IMAGE_PROJECT:含有自訂 OS 映像檔的專案名稱。
  2. 選用步驟:確認 Compute Engine 已建立執行個體,且 nicType 已設為 IDPF

    gcloud compute instances describe INSTANCE_NAME \
       --zone=ZONE
    

    更改下列內容:

    • INSTANCE_NAME:執行個體的名稱。
    • ZONE:您在其中建立執行個體的區域。

    示例

    如要在可用區 eu-west4-b 中建立裸機執行個體,並使用專案 my-project-12345 中名為 my-sles15sp5-metal-os 的自訂 SLES 15 SP5 for SAP OS 映像檔,請執行下列指令:

    gcloud compute instances create test-x4-metal-custom-os \
        --zone=eu-west4-b \
        --machine-type=x4-megamem-1440-metal \
        --image=my-sles15sp5-metal-os \
        --image-project=my-project-12345 \
        --network-interface=nic-type=IDPF
    

    注意事項

    --network-interface 旗標具有下列子層級旗標:

    • --address:為執行個體指派 IP 位址
    • --network:介面所屬的網路
    • --network-tier:介面的網路層級
    • --subnet:介面所屬的子網路。如果也指定了 --network,子網路必須是指定網路的一部分。
    • --private-network-ip:指定要指派給執行個體的 RFC 1918 IP。

    如需完整清單,請參閱 --network-interface 標記。

REST

使用 instances.insert 方法建立裸機執行個體。

  • 針對開機磁碟映像檔,請指定您先前建立的自訂 OS 映像檔。
  • 針對網路介面,將 nicType 欄位的值設為 IDPF
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "name":"INSTANCE_NAME",
  "networkInterfaces":[
    {
      "nicType":"IDPF",
      "network":"NETWORK",
      "subnet":"SUBNET_NAME"
    }
  ],
  "disks":[
    {
      "initializeParams":{
        "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME"
      },
      "boot":true
    }
  ]
}

更改下列內容:

  • PROJECT_ID:要在其中建立執行個體的專案 ID。
  • ZONE:要建立執行個體的可用區。
  • INSTANCE_NAME:新執行個體的名稱。
  • NETWORK:這個執行個體的網路資源網址。如果未指定網路和子網路,系統會使用預設網路 global/networks/default
  • SUBNET_NAME:子網路名稱。系統會根據指定的子網路推斷網路。此為選填欄位。
  • YOUR_IMAGE_PROJECT:含有 OS 映像檔的專案名稱。
  • IMAGE_NAME:在上一個步驟中建立的自訂 OS 映像檔名稱。

確認已啟用 IDPF

您可以使用 lshw 工具,擷取裸機執行個體硬體設定的詳細資訊。

如要在 Linux 執行個體上安裝 lshw 工具,請開啟與客層 OS 的 SSH 連線,然後執行下列指令:

sudo apt-get install lshw -y

如要判斷執行個體是否使用 IDPF 網路介面,請執行下列指令:

sudo lshw -class network

以下為輸出範例:

*-network
       description: Ethernet interface
       product: Intel Corporation
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:05:00.0
       logical name: enp5s0f0
       version: 11
       serial: 42:01:0a:96:00:02
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical
       configuration: autonegotiation=off broadcast=yes driver=idpf driverversion=6.5.0-1023-gcp duplex=full ip=10.150.0.2 latency=0 link=yes multicast=yes
       resources: iomemory:21ff0-21fef iomemory:21ff0-21fef irq:16 memory:21ffe0000000-21ffefffffff memory:21fff2000000-21fff203ffff

後續步驟