简介
本文档介绍如何在具有VIC 1400的C系列服务器上为Windows Server 2019配置和排除VMQ故障。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于以下软件和硬件版本:
- UCS C220M6
- VIC 1467
- CIMC 4.2(2a)
- Windows Server 2019
- 5.11.14.1 NENIC驱动程序
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
CIMC
从思科集成管理控制器(CIMC)开始,导航至网络>适配器卡MLOM (1) > vNIC (2),然后选择要配置的虚拟网络接口卡(vNIC) (3)。
使用CIMC定位vNIC
在此之后,请确保Enable VMQ框已勾选(4)。
从vNIC启用VMQ
接下来是队列结构定义。从CIMC角度看,队列结构由4个主要组件组成:以太网中断、以太网接收队列(Rx队列)、以太网传输队列(Tx队列)和完成队列(CQ)。
这是VIC 1400系列的白皮书,其中概述了队列结构的计算。建议您仔细阅读本文,以便更好地了解这些计算是如何进行的。
以太网交换矩阵中的Cisco UCS VIC 1400系列最佳实践白皮书
但是,最重要的参数是:
● TX队列=子vNIC或vPort
● RX队列= 8 * (Tx队列)
● CQ = TX + RX
● 中断=最大值(RX队列或至少2xCPU+ 4)
有一个值未计算,必须在遍历计算之前决定。即子vNIC或vPorts。本实验使用4个虚拟机,对应于4vPort。因此:
● TX队列= 4
● RX队列= 8 * (4) = 32
● CQ = 4 + 32 = 36
● 中断=最大值(32或至少2x2+ 4 = 8
(由于大于8,因此使用32个)
从计算中获得队列参数后,向下滚动vNIC页面并将中断值输入到以太网中断(1)字段中,将RX队列值输入到以太网接收队列(2)字段、以太网传输队列(3)和完成队列(4)字段中。
这是虚拟机多队列(VMQ)配置中最重要的部分,就像队列结构计算错误一样,VMQ在Windows中无法正常运行。
注意:如果您在Windows中使用带有成组NIC的vSwitch,则必须在CIMC中以相同方式配置所有vNIC。
Windows 窗口版本
从WIndows Server中,您需要验证所需虚拟机上是否启用了VMQ。在大多数情况下,默认情况下启用VMQ,但您必须进行验证。
要确保VMQ已启用,请按Windows键并搜索Hyper-V Manager。
进入Hyper-V Manager后,左侧点击本地主机(1),然后右键点击要验证VMQ已启用的虚拟机(2),然后点击设置(3)。
进入设置后,导航到并展开Network Adapter(1)。展开后,单击Hardware Acceleration (2)。最后,验证Enable Virtual Machine Queue框是否已勾选(3)。
在此过程中,您还需要验证是否未选中Enable SR-IOV (4)。
接下来,请确保在使用中的虚拟交换机上禁用了Microsoft Windows平台过滤。为此,请导航到Hyper-V管理器,然后单击虚拟交换机管理器(1)。
从此处展开您使用的交换机(1),然后单击扩展(2)。然后,取消选中Microsoft Windows Platform Filtering (3)。
禁用Microsoft Windows筛选平台
注意:如果您在Windows中使用带有成组NIC的vSwitch,则必须在CIMC中以相同方式配置所有vNIC。
此外,请确保为要启用VMQ的每个接口启用接收端扩展(RSS)。要执行此操作,请按Windows键并搜索设备管理器。
从设备管理器中,找到网络适配器(1) ,并为要启用VMQ的接口选择属性(2)。
导航到高级(1),然后向下滚动找到接收方扩展(2),并确保其处于启用(3)状态。
验证
CIMC
从CIMC角度无法进行验证。
Windows 窗口版本
检查VMQ是否处于活动状态的第一个位置是在Hyper-V管理器中的Windows中。
打开Hyper-V Manage,然后单击要验证的虚拟机。然后单击底部的Networking(1)。在Status (2)下,可以观察OK (VMQ Active)。
验证VMQ在Windows中是否处于活动状态
如果您只看到“OK(确定)”下的“status(状态)”和“NOT OK(不确定)” (VMQ Active),则表示VMQ配置不成功且VMQ不工作。
验证VMQ是否处于活动状态的下一个位置位于Powershell中。按Windows键并搜索Powershell,然后运行以下命令:
Get-NetAdapterVmqQueue
Get-vm | get-vmnetworkadapter | 选择vmname、vmqusage
通过Powershell验证VMQ是否处于活动状态
输出中要查找两件事情。首先,确保在QueueID (1)下使用多个队列。当您看到队列ID为1和2时,表示VMQ正在工作。
第二,验证VmqUsage (2)是否大于0。只要值大于0,就意味着VMQ正在使用。
故障排除
Windows 窗口版本
首先,检查CIMC是否向Windows Server提供VMQ。按Windows键并搜索Powershell,然后输入以下命令:
Get-NetAdapterVmq
然后,需要检查Enabled列。如果VMQ显示为已禁用,则意味着在硬件级别未启用VMQ。导航到CIMC中的vNIC配置,确保VMQ已启用。
如果VMQ显示已启用,但在Hyper-V Manager的“网络”选项卡下,您看到状态为“正常”,则可能是VMQ队列参数配置不正确。再次运行计算并更新参数。
VMQ在Windows中处于非活动状态
以下是错误的VMQ队列配置的示例。(仍基于4台虚拟机):
以下是此配置的问题:
● TX队列= 4以正确号码开头
● RX队列= 8 * (4) != 4计算错误
● CQ = 4 + 4 = 8在数学运算签出期间,进行垃圾输入/垃圾输出。由于RX队列计算不正确,CQ值不正确。
● 中断=最大值(RX队列或至少2xCPU+ 4)输入的值16不等于RX队列或(2x2cpu +4)。
要更正此问题,您需要修复RX队列计算,即32。然后可以计算正确的CQ和中断计数。
结论
正确配置VMQ可能既令人沮丧又困难。您必须确保在CIMC中正确配置VMQ队列结构。