目录

简介

先决条件

要求

使用的组件

配置

CIMC

Windows 窗口版本

验证

CIMC

Windows 窗口版本

故障排除

Windows 窗口版本

结论

简介

本文档介绍如何在具有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队列结构。