排解 Google Virtual NIC 問題

以下提供一些提示,協助排解 Google Virtual NIC (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。 詳情請參閱「建立自訂映像檔」。

其他問題

本節列出您在 Compute Engine 執行個體中使用 gVNIC 驅動程式時,可能遇到的其他錯誤。

VM 執行個體未啟動

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

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

    gcloud compute images describe IMAGE_NAME

    將您的映像檔名稱替換為 IMAGE_NAME

    指令的輸出應在 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

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

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

原因:gVNIC 驅動程式版本過舊

解決方法:

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

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 或更早,請從管理員命令提示字元或 Powershell 工作階段執行下列指令,更新 GooGet 套件存放區

    google-compute-engine-driver-gvnic.x86_64