使用 IDPF 網路介面


可搭配 C3 和 X4 等機器系列使用的裸機執行個體,會使用基礎架構資料處理單元功能 (IDPF),這是一種標準化、多供應商 PCIe 網路資料處理單元功能裝置。IDPF 是實體裝置。IDPF 驅動程式已納入 Linux 作業系統 (OS) 映像檔的核心。

事前準備

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

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

    gcloud

    1. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

      如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      詳情請參閱 Google Cloud 驗證說明文件中的「驗證以使用 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 映像檔

    如果您需要為裸機執行個體建立不同的作業系統映像檔或版本,而非 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

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

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

      示例

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

      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 映像檔,並為此 OS 映像檔加上 IDPF 標記。如要建立 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 的 bare metal 執行個體

    您可以使用支援 IDPF 的公開 OS 映像檔之一,或使用建立支援 IDPF 的自訂 OS 映像檔中所述步驟建立的自訂 OS 映像檔,建立裸機執行個體。

    使用公開的 OS 映像檔建立 bare metal 執行個體

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

    使用自訂 OS 映像檔建立 bare metal 執行個體

    如果您未使用支援 IDPF 的公開 OS 映像檔,則必須先建立支援 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-sles15sp5-metal-os 的 SAP OS 自訂 SLE 15 SP5 映像檔,在專案 my-project-12345 中建立裸機執行個體,請執行下列指令:

      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 工具,請開啟與來賓作業系統的 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
    

    後續步驟