簡介
本文檔介紹如何在裝有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隊列結構。