戴爾 12G R720 Hyper-V 主機虛擬/物理網卡停止工作
在主機 1 物理適配器插入我們的網路,在主機本身我有 Hyper-V 角色。我創建了一個外部交換機並將其綁定到物理 Broadcom NetXtreme Gigabit Ethernet,選中“允許管理作業系統共享此網路適配器”框。
我在這台主機上創建了一些虛擬機,將它們配置為使用我新創建的交換機,一切正常。隨機地,虛擬交換機和物理交換機停止接收數據包,所有網路活動都停止執行(我看到有時發送數據包,沒有任何返回)。此時,我無法使用 IP ping 伺服器,也無法從主機與外界通信。我發現的醜陋解決方法是禁用/啟用物理 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 數據中心
可能是什麼問題?
更新 物理和虛擬交換機的高級屬性
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 {--}
根本原因是可以在網路適配器的高級屬性下找到的虛擬機隊列。禁用它,所有問題都會消失。我注意到這個問題主要與 Broadcom 適配器有關,但其他適配器可能會受到影響。詳盡的解釋即將到來。
只是想向官方 Microsoft KB 指出: 當您使用 Broadcom NetXtreme 1-gigabit 網路適配器時,虛擬機失去網路連接
據我了解,這種 VMQ 東西沒有在廉價的 NIC 中正確實現,並且由於供應商傾向於提供針對整個 NIC 產品系列的驅動程序,而不是針對特定的一個(即包含稍微不同的晶片和卡的驅動程序),他們傾向於預設啟用 VMQ .
解決方案是按照上述 KB 中的說明禁用 VMQ,但它仍然會給您留下一個問題,即在驅動程序更新後將此設置恢復為 ON。要解決這個問題,您應該實施某種配置管理。例如,您可以在 SCCM 中創建配置基線,其中包括 VMQ=OFF 標準,並監控/自動解決由驅動程序更新引起的基線配置偏差。
如果您想了解更多關於 VMQ 技術本身的資訊,TechNet 上還有一系列非常詳細的部落格文章: