PowerEdge:在 VMware ESXi SR-IOV 中安裝多個 Intel X520 或 X540 配接卡時,發生不正確的連接埠虛擬功能列舉

摘要: Intel X520/X540 VMware ESXi SR-IOV 組態max_vfs

本文章適用於 本文章不適用於 本文無關於任何特定產品。 本文未識別所有產品版本。

症狀

在單一 PowerEdge 伺服器中使用多張 Intel X520 或 Intel X540 網路卡時,可能會導致 VMware ESXi SR-IOV 出現訊息。

VMware 報告有不正確的連接埠虛擬功能列舉。

根據 Intel 的白皮書嘗試設定 SR-IOV 時可能會遇到此問題,網址為:
http://www.intel.com/content/dam/www/public/us/en/documents/technology-briefs/converged-network-adapter-sr-iov-on-esxi-5-1-brief.pdf此超連結會帶您前往 Dell Technologies 以外的網站。
http://www.intel.com/content/dam/www/public/us/en/documents/reference-guides/sr-iov-guide-ethernet-can-x710-xl710-vmware-vsphere-6-brief.pdf此超連結會帶您前往 Dell Technologies 以外的網站。

出現此問題時,在從命令列公用程式 (CLI) 使用 max_vfs 參數啟用虛擬功能後,連接埠虛擬功能列舉 會顯示與嘗試指派不一致的內容。在以這種方式從 CLI 啟用虛擬功能後,檢視 Web UI 也可能會顯示 不一致的連接埠虛擬功能列舉

 

原因

無原因

解析度

VMware 已察覺此問題,目前正在調查修正方法。VMware 說明文件建議使用者使用 vSphere Web Client 啟用 SR-IOV 虛擬功能。

使用命令行介面 (CLI) 設定 SR-IOV 時,請確定備妥最新的驅動程式和 Web 用戶端,才建議使用 Web 用戶端方法啟用虛擬功能。 

 

進階 CLI 因應措施

此 CLI 因應措施為進階使用者提供。
視使用的命令而定,ESXi 核心會以三種不同的方式掃描和排序 PCI 裝置。

瓣:公共汽車:裝置:功能 (區段 = 網域,在 Linux 術語中為 0)

  1. PCI 樹狀結構掃描順序,即為裝置附加順序
  2. VMkernel 會從 Root 橋接器進行掃描,並從組態空間以「depth-first-search」的遞迴方式讀取所有子節點。
     沒有文檔,但它類似於 http://wiki.osdev.org/PCI#Recursive_Scan_With_Bus_Configuration此超連結會帶您前往 Dell Technologies 以外的網站。
  3. Vmnic 名稱:亦為 vmnic1、vmnic1x,...VMNIC2、VMNIC2X,...,VMNIC3

接著,可遵循以下三種方法中的任何一種,以運用各種工具列出裝置:

  1.  Lspci 依 S、B、D、F 排序
  2. esxcfg-nics-l' 是依 vmnicX 名稱排序。
  3. Web 用戶端按 S、B、D、F 排序。
  4. Esxcfg-module -s max_vsf= 依 PCI 樹狀結構掃描排序 orderDmesg 顯示根據 PCI 樹狀結構掃描順序排序的 PCI 裝置。

為了正確設定/啟用 SR-IOV (設定 max_vfs 使用命令列),使用者應根據 PCI 樹狀結構掃描順序啟用 PCI 裝置,可透過以下方式達成:

-流動的 dmesg 以取得資訊並將資訊解析為PCI設備資訊,然後設定 max_vfs 根據 dmesg 產量。
-執行 lspci.py 文稿(如下)並設定 max_vfs 根據指令檔列出的順序。

此指令檔會查詢 PCI,並根據 PCI 樹狀結構掃描順序排序。
例如,僅執行此指令檔,且可能無法在所有 ESXi 核心版本上執行。
這已通過 ESXi 6.0U3 測試。

將以下指令檔儲存在具有 .py 副檔名 (例如 lspci.py) 的個別檔案中。 

#!/usr/bin/env python

import vmware
import vmware.vsi as vsi

VSI_HW_PCI_DEVICES = '/hardware/pci/devices'
VSI_HW_PCI_ROOT    = '/hardware/pci'
VSI_SYS_MOD_ROOT   = '/system/modules'

modInfo = {}

for m in vsi.list(VSI_SYS_MOD_ROOT):
   general = vsi.get("%s/%s/general" % (VSI_SYS_MOD_ROOT, m))
   id = int(general['moduleId'])
   modInfo[id] = m

for ptr in vsi.list(VSI_HW_PCI_DEVICES):
   dev = vsi.get("%s/%s/info" % (VSI_HW_PCI_DEVICES, ptr.strip()))
   s, b, d, f = dev['seg'], dev['bus'], dev['dev'], dev['func']
   nodePath = "%s/seg/%d/bus/%d/slot/%d/func/%d" % (VSI_HW_PCI_ROOT, s, b, d, f)
   cfg = vsi.get("%s/seg/%d/bus/%d/slot/%d/func/%d/pciConfigHeader" % (VSI_HW_PCI_ROOT, s, b, d, f))
   modName = modInfo[cfg['moduleID']] if cfg['moduleID'] != 0xffffffff else " " * 8
   print("%04d:%02d:%02d:%d\t%-16s\t%s" % (s, b, d, f, modName, cfg['name']))

受影響的產品

Intel PRO Family of Adapters, OEMR R440, OEMR R540, OEMR R640, OEMR R6415, OEMR R740, OEMR R740xd, OEMR R740xd2, OEMR R7415, OEMR R7425, OEMR R840, OEMR R940, OEMR R940xa, OEMR T640, PowerEdge C6420, PowerEdge FC640, PowerEdge M640 , PowerEdge M640 (for PE VRTX), PowerEdge R440, PowerEdge R540, PowerEdge R640, PowerEdge R6415, PowerEdge R740, PowerEdge R740XD, PowerEdge R740XD2, PowerEdge R7415, PowerEdge R7425, PowerEdge R840, PowerEdge R940, PowerEdge R940xa, PowerEdge T640 ...
文章屬性
文章編號: 000137659
文章類型: Solution
上次修改時間: 05 6月 2025
版本:  4
向其他 Dell 使用者尋求您問題的答案
支援服務
檢查您的裝置是否在支援服務的涵蓋範圍內。