排查 Google 虚拟 NIC 问题


以下提示有助于排查 Google 虚拟 NIC (gVNIC) 问题。

常见错误

如果用于创建虚拟机的映像未标记为使用 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 的映像。如需了解详情,请参阅创建自定义映像

其他问题

虚拟机实例未启动

  • 原因:映像上未启用 gVNIC。

  • 诊断:检查映像是否已启用 gVNIC。要进行验证,请运行以下命令:

    gcloud compute images describe IMAGE_NAME

    IMAGE_NAME 替换为映像名称。

    命令的输出应在 guestOsFeatures 下显示 GVNIC

    您还可以检查虚拟机是否已创建,并且 nic-type 设置为 gVNIC。要执行此操作,请运行以下命令:

    gcloud compute instances describe VM_NAME

    VM_NAME 替换为虚拟机名称。

  • 解决办法:确保您使用的是受支持的映像,或者您已在自定义映像上正确设置 gVNIC 驱动程序

虚拟机实例已启动,但无法通过网络访问

  • 原因:未成功安装和加载 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 虚拟机的网络吞吐量不佳

Google 虚拟 NIC (gVNIC) 与使用 gVNIC 驱动程序 GooGet 软件包版本 1.0.0@44 或更低版本的 Windows Server 2022 和 Windows 11 虚拟机搭配使用时,您可能会遇到网络吞吐量不佳问题。

如需解决此问题,请通过执行以下操作将 gVNIC 驱动程序 GooGet 软件包更新到 1.0.0@45 或更高版本:

  1. 从管理员命令提示符或 Powershell 会话中运行以下命令,检查虚拟机上安装了哪个驱动程序版本:

    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