目錄

簡介

背景資訊

VMWare OS系統影響

解析

因應措施

缺陷

簡介

本檔案介紹各種第三代C系列虛擬介面卡(VIC)配接器上的網路介面卡(NIC)重新排序問題。在參考虛擬網路介面卡(VNIC)/虛擬主機匯流排介面卡(vHBA)的位置、裝置順序、外圍元件互聯(PCI)列舉時發現行為更改，並且導致從各種作業系統(OS)中看到PCI重新排序問題。

背景資訊

導致此問題的原因如下：

- 新增/刪除vNIC

- 重新啟動伺服器

- 升級伺服器

此問題是由在應用BIOS、韌體、修補程式升級或為了新增新NIC之後發生的NIC列舉引起的。

根據虛擬機器網路介面控制器(VMNIC)名稱配置向外部世界提供網路通訊的虛擬交換機(vSwitch)。如果重新命名了所有NIC，vSwitch會將資料包路由到不再存在的介面。

Unified Computing System Manager(UCSM)處理VIC13XX主機埠時遵循標準負載平衡演算法。

請注意：

1. vNIC的總數根據其相對容量比率按比例進行分配。

2. 系統嘗試在具有較高vNIC容量的介面卡卡上放置更多vNIC，而在容量較低的介面卡卡上放置更少的vNIC。結果，系統相應地將Actual Placement分配給vNIC，而vNIC則對映到預期的外圍裝置元件互連列舉(PCIe)介面卡卡。此放置按其實際順序執行。

3. 在混合Mezz設定的情況下，只要所有介面卡卡都支援所需功能，負載分配演算法就可以確保每個介面卡卡上至少放置一個vNIC和一個vHBA。

VMWare OS系統影響

PCI ID與VMNIC的編號關係在啟動時確定，並自動輸入到/etc/vmware/處的esx.conf檔案中以保持持續性。ESX/ESXi主機首先掃描序列號，然後掃描匯流排號、插槽號，最後掃描功能號。此順序可確保同一多埠NIC上的埠按順序編號。

安裝ESXi/ESX時，VMNIC的順序是連續的。隨著NIC被移除和其他NIC被新增，這種情況會隨著時間的推移而改變。這會導致不理想的VMNIC順序，並且與其他ESX/ESXi主機上的命名約定不一致。

ESXi在列舉VMNIC和vHBA裝置時，並不總是遵循PCI地址順序。初始安裝時，遵循PCI地址。但是，在移除和新增裝置時，會有一個特定的演算法來處理順序。這可能會導致服務配置檔案與作業系統之間的VNIC/vHBA訂單不正確或不同步。

請參閱VMware KB:http://kb.vmware.com/kb/2019871

ESXi 5.5和6.0已更改其順序演算法，即使這些症狀繼續存在。請參閱：http://kb.vmware.com/kb/ 2091560

解析

在初始安裝時，新名稱方案會嘗試按物理位置的可預測順序分配名稱。此後，即使向系統中新增或刪除其他裝置，它也會保持裝置名稱穩定。在安裝時，通常整合在系統主機板上的裝置會按系統機箱上其輸出埠編號的順序收到編號最低的名稱，而位於可插拔插槽中的裝置會按機箱上插槽編號的順序收到編號第二高的名稱。讀取器應注意，此過程會忽略未找到驅動程式的裝置。

因應措施

此問題可通過以下解決方案解決：

步驟1.重新安裝ESXi。

步驟2.手動更正從ESXi Secure Shell(SSH)重新排序的內容。

步驟3.在UCSM中建立vNIC/vHBA放置策略。

步驟2.手動更正從ESXi SSH重新排序：

1.從伺服器的UCSM GUI獲取MAC地址對映，如下圖所示：

2.從ESXi CLI獲取MAC地址對映。

[root@ucs-116:~] esxcli network nic list

3.驗證UCSM的MAC地址是否與esxcli network nic list輸出匹配。

在此輸出中，MAC地址不匹配，vmnic2和vmnic4被交換。這是由PCI匯流排重新訂購問題引起的。

4.檢查esxcli上的PCI匯流排訂購。

localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias list | grep -i vmnic | sort -k3

vmnic2和vmnic4之間的PCI匯流排訂購被交換。

5.注意PCI匯流排號，然後使用以下命令來修復重新排序問題：

localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --alias

vmnic2 --bus-address s00000000:05.00 --bus-type pci

localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --alias

vmnic4 --bus-address s00000000:07.00 --bus-type pci

6.重新啟動，並在主機啟動後，驗證PCI訂購和nic列表：

您已成功更正PCI重新排序。

步驟3.在UCSM中建立vNIC/vHBA放置策略

在UCSM中，導航到Service Profile > Network > Modify vNIC/vHBA Placement。

1.初始安裝期間：導覽至Modify vNIC/vHBA Placement策略，如下圖所示。

2.現在您會看到Admin Host Port 作為ANY。這將是一個循環分配，將vnic0置於主機埠1上，將vnic1置於主機埠2上。如果要將另外兩個vNIC新增到服務配置檔案中，請首先匹配已存在的vNIC的已分配主機埠：

3.然後，將任何新的vNIC僅新增到主機埠2。這將保留先前存在的vNIC的PCI地址，並且不會導致任何重新分配：

附註：現在，主機埠1上有1個vNIC，主機埠2上有3個vNIC。負載均衡的點是使負載和頻寬均勻分佈。如果一個主機埠上的負載較高，則可能導致效能/頻寬影響。如果必須建立超過2個額外的vNIC，建議您計畫重新安裝作業系統，以使主機埠分佈均勻。

缺陷

- CSCut78943 - VIC1340/1380 vNIC和vHBA的放置順序錯誤。

- CSCuv19605 — 使用連線策略時無法為vNIC設定host-port。

一個增強缺陷被提出。HX安裝程式應建立vNIC/vHBA放置策略以避免PCI NIC重新排序。

附註：對vCON放置策略（vCON或管理主機埠）的修改可能會導致不同的PCIe列舉更改。vCON1 vNIC在vCON2 vNIC之前列舉。