排解 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

    您也可以檢查 VM 是否在 nic-type 設為 gVNIC 的情況下建立。如要執行這項操作,請執行下列指令:

    gcloud compute instances describe VM_NAME

    VM_NAME 替換為您的 VM 名稱。

  • 解決方法:請確認您是否使用了支援的映像檔,或者是否有在自訂映像檔上正確設定 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

在 VPC 中設定的 MTU 值未被 Compute Engine 執行個體使用

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

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

解決方法:

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

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

如果您在使用 Google 虛擬網路介面卡 (gVNIC) 時,搭配使用採用 gVNIC 驅動程式 GooGet 套件 1.0.0@44 以上版本的 Windows Server 2022 和 Windows 11 VM,可能會發生網路傳輸效能不佳的情形。

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

  1. 在管理員 Command Prompt 或 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