目錄

簡介

必要條件

需求

採用元件

設定

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

在Cisco Integrated Management Controller (CIMC)中，首先導航到網路>介面卡卡MLOM (1) > vNIC (2)，然後選擇您要配置的虛擬網路介面卡(vNIC) (3)。

使用CIMC定位vNIC

在此之後，請確保選中Enable VMQ框(4)。

從vNIC啟用VMQ

接下來是佇列結構定義。從CIMC角度看，隊列結構由四個主要元件組成：乙太網中斷、乙太網接收隊列（Rx隊列）、乙太網傳輸隊列（Tx隊列）和完成隊列(CQ)。

這是VIC 1400系列的白皮書，其中概述了隊列結構的計算。建議您通讀此內容，以更好地瞭解這些計算是如何進行的。

乙太網交換矩陣中的Cisco UCS VIC 1400系列最佳實踐白皮書

不過，最重要的考量因素是：

● TX隊列=子vNIC或vPort

● RX隊列= 8 *（Tx隊列）

● CQ = TX + RX

● 中斷=最大值（RX隊列或至少2xCPU+ 4）

有一個值尚未計算，必須先決定該值才能完成計算。即子vNIC或vPort。本實驗使用4個虛擬機器，對應於4vPort。因此：

● TX隊列= 4

● RX隊列= 8 * (4) = 32

● CQ = 4 + 32 = 36

●中斷=最大值(32或至少2x2+ 4 = 8 （當大於8時使用32）)

計算得到隊列引數後，向下滾動vNIC頁面，在Ethernet Interrupt (1)欄位中輸入中斷值，在Ethernet Receive Queue (2)欄位、Ethernet Transmit Queue (3)和Completion Queue (4)欄位中輸入RX隊列值。

這是虛擬機器多隊列(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)。

進入設定後，導航至網路介面卡(1)並展開。展開後，按一下Hardware Acceleration(2)。最後，驗證Enable Virtual Machine Queue框是否已選中(3)。

在此處時，您還需要驗證是否未選中「Enable SR-IOV」(4)。

接下來，請確認已在使用中的虛擬交換器上停用Microsoft Windows Platform Filtering。為此，請導航到Hyper-V管理器，然後按一下虛擬交換機管理器(1)。

從此處展開您正在使用的交換機(1)，然後按一下Extensions(2)。然後，取消選中Microsoft Windows Platform Filtering(3)。

停用Microsoft Windows篩選平台

注意：如果您在Windows中使用帶有成組NIC的vSwitch，則必須在CIMC中以相同方式配置所有vNIC。

此外，請確定每個您要啟用VMQ的介面都啟用接收端調整(RSS)。為此，請按Windows鍵並搜尋「Device Manager」。

在裝置管理器中，找到網路介面卡(1) ，並為要啟用VMQ的介面選擇屬性(2)。

導覽至Advanced (1)，然後向下捲動以找到Receive Side Scaling (2)，並確保其為Enabled (3)。

驗證

CIMC

從CIMC的角度無法進行驗證。

Windows

檢查VMQ是否處於活動狀態的第一個位置是在Hyper-V管理器中的Windows中。

打開Hyper-V Manage，然後按一下要驗證的虛擬機器。然後按一下底部的Networking(1)。在狀態(2)下，可以看到「正常」（VMQ活動）。

驗證VMQ在Windows中是否處於活動狀態

如果只在狀態下看到確定而未看到確定（VMQ活動），則表示未成功配置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隊列結構。