簡介
本文檔介紹如何在帶有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)中,首先導航到Networking > Adapter Card 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隊列或至少2xCPU+ 4個)的最大值
有一個值未計算,必須在遍歷計算之前決定。即子vNIC或vPort。本實驗使用與4vPort對應的4台虛擬機器。因此:
● TX隊列= 4
● RX隊列= 8 *(4)= 32
● CQ = 4 + 32 = 36
● 中斷=最大值(32或至少2x2+ 4 = 8
(大於8時使用32)
從計算中獲得隊列引數後,在vNIC頁面上向下滾動,並在Ethernet Interrupt(1)欄位中輸入中斷值,在Ethernet Receive Queue(2)欄位中輸入RX Queue值,在Ethernet Transmit Queue(3)欄位中輸入Completion Queue(4)。
這是虛擬機器多隊列(VMQ)配置中最重要的部分,就像隊列結構計算錯誤一樣,VMQ在Windows中無法正常工作。
注意:如果您在Windows中使用帶有成組NIC的vSwitch,則必須在CIMC中以相同方式配置所有vNIC。
Windows
在WIndows伺服器上,您需要驗證是否已在所需的虛擬機器上啟用VMQ。在大多數情況下,預設情況下啟用VMQ,但必須進行驗證。
要確保VMQ已啟用,請按Windows鍵並搜尋Hyper-V Manager。
進入Hyper-V Manager後,按一下左側(1)的本地主機,然後按一下右鍵要驗證是否已啟用VMQ的虛擬機(2),然後按一下Settings(3)。
進入設定後,導航至Network Adapter(1)並展開。展開後,按一下Hardware Acceleration(2)。最後,驗證Enable Virtual Machine Queue框是否已選中(3)。
此處時,您還需要驗證是否未勾選「Enable SR-IOV」(4)。
接下來,確保已禁用正在使用的虛擬交換機上的Microsoft Windows平台過濾。為此,請導航到Hyper-V管理器,然後按一下Virtual Switch Manager(1)。
從此處展開您正在使用的交換機(1),然後點選擴展(2)。然後取消選中Microsoft Windows Platform Filtering(3)。
禁用Microsoft Windows篩選平台
注意:如果您在Windows中使用帶有成組NIC的vSwitch,則必須在CIMC中以相同方式配置所有vNIC。
此外,請確保為要啟用VMQ的每個介面啟用接收端擴展(RSS)。要執行此操作,請按Windows鍵並搜尋「Device Manager」。
在裝置管理器中,找到Network Adapters(1),並為要啟用VMQ的介面選擇Properties(2)。
導覽至Advanced(1),然後向下滾動以找到Receive Side Scaling(2),並確保它已Enabled(3)。
驗證
CIMC
從CIMC的角度無法進行驗證。
Windows
檢查VMQ是否處於活動狀態的第一個位置是在Hyper-V管理器中的Windows中。
開啟Hyper-V管理,然後點選要驗證的虛擬機器。然後按一下底部的Networking(1)。在Status(2)下面,可以看到OK(VMQ Active)。
驗證VMQ在Windows中是否處於活動狀態
如果您在狀態中只看到正常,在狀態中看不到正常(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管理器的「網路」頁籤下,您看到狀態為正常,則可能是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可能會令人沮喪,而且非常困難。必須確保VMQ隊列結構在CIMC中正確配置。