Dell 12G R720 Hyper-V 主机虚拟/物理网卡停止工作

Dell 12G R720 Hyper-V 主机虚拟/物理网卡停止工作

在主机上,1 个物理适配器插入我们的网络,在主机本身上我有 Hyper-V 角色。我创建了一个外部交换机并将其绑定到物理 Broadcom NetXtreme 千兆以太网,选中“允许管理操作系统共享此网络适配器”复选框。

我在此主机上创建了一些虚拟机,并将它们配置为使用我新创建的交换机,一切运行正常。虚拟交换机和物理交换机会随机停止接收数据包,所有网络活动都会停止运行(我有时会看到数据包被发送,但没有返回任何内容)。此时,我无法使用 IP ping 服务器,也无法从主机与外界通信。我发现最不合适的解决方法是禁用/启用物理 NIC 和虚拟交换机,此时网络连接恢复,我开始接收数据包。

经过一番研究,我发现我的 NIC 固件已经过时了,这是我找到的版本 Network_Firmware_P32M4_WN64_7.6.15.EXE。使用 Dell SUU (SUU_730_64bit) 安装固件,并在服务器上执行了重新启动。此时我觉得我找到了根本原因,但就像我的硬件被困扰一样,问题再次发生。物理/虚拟适配器都停止接收数据包,网络连接再次丢失。

> Driver details for Broadcom NetXtreme Gigabit Ethernet 
> Driver Date:01/28/2013 Driver Version: 15.6.0.10

我尝试过的其他方法是手动将双工速度设置为全速,但问题依然存在。我没有尝试过 TCP 卸载,因为很多人告诉我这不相关(如果有正当理由我可以尝试一下?)

操作系统:Windows Server 2012 Datacenter

可能是什么问题?

更新 物理和虚拟交换机的高级属性

NIC1                      802.3az EEE                    Disable                        *EEE            {0}
NIC1                      Flow Control                   Rx & Tx Enabled                *FlowControl    {3}
NIC1                      Interrupt Moderation           Enabled                        *InterruptMo... {1}
NIC1                      Jumbo Mtu                      1500                           *JumboPacket    {1500}
NIC1                      Large Send Offload V2 (IPv4)   Enabled                        *LsoV2IPv4      {1}
NIC1                      Large Send Offload V2 (IPv6)   Enabled                        *LsoV2IPv6      {1}
NIC1                      Maximum Number of RSS Queues   RSS 1 Queue                    *NumRssQueues   {1}
NIC1                      ARP Offload                    Enabled                        *PMARPOffload   {1}
NIC1                      NS Offload                     Enabled                        *PMNSOffload    {1}
NIC1                      Priority & VLAN                Priority & VLAN Enabled        *PriorityVLA... {3}
NIC1                      Receive Buffers                Default                        *ReceiveBuffers {200}
NIC1                      Receive Side Scaling           Enabled                        *RSS            {1}
NIC1                      Speed & Duplex                 Auto Negotiation               *SpeedDuplex    {0}
NIC1                      TCP/UDP Checksum Offload (I... Rx & Tx Enabled                *TCPUDPCheck... {3}
NIC1                      TCP/UDP Checksum Offload (I... Rx & Tx Enabled                *TCPUDPCheck... {3}
NIC1                      Transmit Buffers               500                            *TransmitBuf... {500}
NIC1                      Virtual Machine Queues         Enabled                        *VMQ            {1}
NIC1                      VMQ VLAN Filtering             Disable                        *VMQVlanFilt... {0}
NIC1                      Wake on Magic Packet           Enabled                        *WakeOnMagic... {1}
NIC1                      Wake on Pattern Match          Enabled                        *WakeOnPattern  {1}
NIC1                      EEE Control Policies           Optimal Power and Performance  EeeCtrlMode     {1}
NIC1                      Network Address                --                             NetworkAddress  {--}
NIC1                      VLAN ID                        0                              VlanID          {0}
NIC1                      Ethernet@WireSpeed             Enable                         WireSpeed       {1}
NIC1                      WOL Speed                      Lowest Speed Advertised        WolSpeed        {256}
vEthernet (extSwitch)     IPv4 Checksum Offload          Rx & Tx Enabled                *IPChecksumO... {3}
vEthernet (extSwitch)     IPSec Offload                  Auth Header and ESP Enabled    *IPsecOffloadV2 {3}
vEthernet (extSwitch)     Jumbo Packet                   Disabled                       *JumboPacket    {1514}
vEthernet (extSwitch)     Large Send Offload Version ... Enabled                        *LsoV2IPv4      {1}
vEthernet (extSwitch)     Large Send Offload Version ... Enabled                        *LsoV2IPv6      {1}
vEthernet (extSwitch)     TCP Checksum Offload (IPv4)    Rx & Tx Enabled                *TCPChecksum... {3}
vEthernet (extSwitch)     TCP Checksum Offload (IPv6)    Rx & Tx Enabled                *TCPChecksum... {3}
vEthernet (extSwitch)     UDP Checksum Offload (IPv4)    Rx Enabled                     *UDPChecksum... {2}
vEthernet (extSwitch)     UDP Checksum Offload (IPv6)    Rx Enabled                     *UDPChecksum... {2}
vEthernet (extSwitch)     Network Address                --                             NetworkAddress  {--}

答案1

根本原因是虚拟机队列,可以在网络适配器的高级属性下找到。禁用它,所有问题都会消失。我注意到这个问题主要出现在 Broadcom 适配器上,但其他适配器也可能受到影响。稍后会详细说明。

答案2

只是想向微软官方知识库指出这一点: 使用 Broadcom NetXtreme 1 千兆位网络适配器时虚拟机丢失网络连接

据我所知,廉价 NIC 中未正确实施此 VMQ 功能,并且供应商倾向于提供针对整个 NIC 产品系列而非特定 NIC 产品系列(即包含略有不同的芯片和卡的产品系列)的驱动程序,因此他们倾向于默认启用 VMQ。
解决方案是禁用 VMQ,如上述 KB 中所示,但在驱动程序更新后将此设置恢复为 ON 仍会给您带来问题。要解决此问题,您应该实施某种配置管理。例如,您可以在 SCCM 中创建配置基线,其中包括 VMQ=OFF 标准,并监控/自动解决驱动程序更新导致的配置偏离基线的问题。
如果您想了解有关 VMQ 技术本身的更多信息,TechNet 上还有一系列非常详细的博客文章:
VMQ 深度探究,1/3

VMQ 深度探究,第 2 部分(共 3 部分)

VMQ 深度解析,第 3 部分(共 3 部分)

相关内容