排解 Compute Engine 執行個體的網路驅動程式問題

以下提供一些提示,協助排解 Google Virtual NIC (gVNIC)基礎架構資料平面功能 (IDPF) 的網路驅動程式問題。

gVNIC 驅動程式的常見錯誤

如果用於建立 VM 執行個體的映像檔未標記為使用 gVNIC,就會發生下列問題。

ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - Invalid value for field 'resource.networkInterfaces[0].nicType': 'GVNIC'.
NetworkInterface NicType can only be set to GVNIC on instances with
GVNIC GuestOsFeature.

如要解決這個問題,請確認您使用的映像檔已標記為使用 gVNIC。詳情請參閱「建立自訂映像檔」。

VM 執行個體未啟動

  • 原因:映像檔上未啟用 gVNIC。

  • 診斷:檢查映像檔是否已啟用 gVNIC。 如要確認,請執行下列指令:

    gcloud compute images describe IMAGE_NAME

    將您的映像檔名稱替換為 IMAGE_NAME。如需如何找出映像檔名稱的操作說明,請參閱「查看 VM 的來源映像檔」。

    指令的輸出應在 guestOsFeatures 底下顯示為「GVNIC」。GVNIC

    您也可以檢查 VM 執行個體是否已使用 nic-type 設為 gVNIC 的值建立。如要執行這項操作,請執行下列指令:

    gcloud compute instances describe VM_NAME

    將您的 VM 執行個體名稱替換為 VM_NAME

  • 解決方法:請確認您是否使用了支援的映像檔,或者是否有在自訂映像檔上正確設定 gVNIC 驅動程式

已啟動 VM 執行個體,但無法透過網路連線

  • 原因:未成功安裝及載入 gVNIC。

  • 診斷:如要檢查是否已安裝並載入驅動程式,請完成下列步驟:

    Linux

    1. 檢查是否已安裝驅動程式。

      modinfo gve

      輸出應會如下所示:

      filename:       /lib/modules/4.15.0-1036-gcp/updates/dkms/gve.ko
      version:        1.1.0
      license:        Dual MIT/GPL
      description:    gVNIC Driver
      author:         Google, XXX.
      srcversion:     5FEFB9DD945EB2DEC94EE09
      alias:          pci:v00001AE0d00000042sv*sd*bc*sc*i*
      depends:
      retpoline:      Y
      name:           gve
      vermagic:       4.15.0-1036-gcp SMP mod_unload
      
    2. 檢查是否已載入驅動程式。

      lsmod | grep gve

      輸出應會如下所示:

      gve                    49152  0

    Windows

    1. 透過 SAC 連線至執行個體。
    2. 使用您的使用者名稱和密碼登入。
    3. 在命令提示字元下,執行下列指令:

      dism /online /get-drivers | findstr gvnic
    4. 查看結果。

      • 如果已安裝驅動程式,輸出內容應會顯示 Original File Name : gvnic.inf 這段文字。
      • 如果未安裝驅動程式,則不會傳回任何訊息。
  • 解決方案:如果無法使用 gVNIC,請確認您是否使用了支援的映像檔,或者是否有在自訂映像檔上正確設定 gVNIC

Windows Server 2022 和 Windows 11 VM 的網路輸送量不佳

使用 Google 虛擬 NIC (gVNIC) 時,如果 Windows Server 2022 和 Windows 11 VM 執行個體使用 gVNIC 驅動程式 GooGet 套件 1.0.0@44 以下版本,可能會發生網路處理量不佳的問題。

如要解決這個問題,請按照下列步驟,將 gVNIC 驅動程式 GooGet 套件更新至 1.0.0@45 以上版本:

  1. 從管理員命令提示字元或 Powershell 工作階段執行下列指令,檢查 VM 執行個體上安裝的驅動程式版本:

    googet installed
    

    輸出看起來類似以下內容:

    Installed packages:
      ...
      google-compute-engine-driver-gvnic.x86_64 VERSION_NUMBER
      ...
    
  2. 如果 google-compute-engine-driver-gvnic.x86_64 驅動程式版本為 1.0.0@44 或更早版本,請從GooGet 套件存放區更新驅動程式,方法是在管理員命令提示字元或 Powershell 工作階段中執行下列指令:

    googet install google-compute-engine-driver-gvnic
    

IDPF 驅動程式的常見錯誤

如果用於建立裸機執行個體的映像檔未標記為使用 IDPF,就會發生下列問題。

ERROR: (gcloud.compute.instances.create) Could not fetch resource:
 - Invalid value for field 'resource.machineType': ...
NetworkInterface NicType can only be set to IDPF on instances with
IDPF GuestOsFeature.

如要解決這個問題,請確認你使用的圖片支援 IDPF,且已加上標記以使用 IDPF。詳情請參閱「建立支援 IDPF 的自訂 OS 映像檔」。

Bare Metal 執行個體未啟動

  • 原因:映像檔上未啟用 IDPF。

  • 診斷:檢查映像檔是否已啟用 IDPF。 如要確認,請執行下列指令:

    gcloud compute images describe IMAGE_NAME

    IMAGE_NAME 替換為運算執行個體使用的映像檔名稱。如需如何找出映像檔名稱的操作說明,請參閱「查看 VM 的來源映像檔」。

    指令的輸出應在 guestOsFeatures 底下顯示為「GVNIC」。IDPF

    ...
    guestOsFeatures:
    ...
        - type: IDPF
        - type: SEV_CAPABLE
        - type: VIRTIO_SCSI_MULTIQUEUE
        - type: SEV_LIVE_MIGRATABLE
    ...
    

    您也可以使用下列指令,檢查裸機執行個體是否已建立,且 nic-type 設為 IDPF

    gcloud compute instances describe INSTANCE_NAME
    

    INSTANCE_NAME 替換為運算執行個體的名稱。

    在輸出內容中尋找 networkInterfaces 區段:

    ...
    name: instance-20260319-221828
    networkInterfaces:
      - accessConfigs:
        - kind: compute#accessConfig
          networkTier: PREMIUM
          type: ONE_TO_ONE_NAT
      name: nic0
      network: https://www.googleapis.com/compute/v1/projects/my-project/global/networks/default
      networkIP: 203.0.113.8
      nicType: IDPF
      stackType: IPV4_ONLY
      subnetwork: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/subnetworks/default
    
  • 解決方法:請確認您是否使用了支援的映像檔,或者是否有在自訂映像檔中設定 IDPF 驅動程式。

已啟動 Bare Metal 執行個體,但無法透過網路連線

  • 原因:IDPF 未成功安裝及載入。

  • 診斷:如要檢查是否已安裝並載入驅動程式,請參閱「確認已啟用 IDPF」。

  • 解決方法:如果無法使用 IDPF,請確認您是否使用了支援 IDPF 的公開映像檔,或者是否有在自訂映像檔中正確設定 IDPF 驅動程式。

運算執行個體未採用虛擬私有雲中設定的 MTU 值

按照說明變更 MTU 值後,執行個體上的 MTU 設定並未使用相同的值。舉例來說,您可以在執行個體上執行 /sbin/ifconfig | grep mtu 指令,檢查 MTU 設定。您已重新啟動執行個體,但執行個體設定未更新。

原因:網路驅動程式版本不夠新,無法支援 MTU 功能。

解決方法:

  1. 如果執行個體使用公開映像檔,請在「Operating system details」(作業系統詳細資料)頁面中,查看作業系統版本的「Networking features」(網路功能) 分頁。確認顯示完全支援巨型封包。
  2. 如果公開映像檔不完全支援巨型封包,或是您使用自訂 OS 映像檔,則安裝的網路驅動程式版本過舊,不支援較高的 MTU 值。

  3. 更新網路驅動程式後,請重新啟動執行個體,然後重新檢查 MTU 設定。