Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Create and access a list of your products
  • Manage your Dell EMC sites, products, and product-level contacts using Company Administration.

PowerEdge:在 vSphere 上使用 GPU 與虛擬機器時,PCI 傳遞顯示「Module 'DevicePowerOn' power on failed」

Summary: 在 ESXi 主機上設定 PCI 裝置傳遞,並將裝置新增至虛擬機器後,虛擬機器無法開啟。它會卡在 80%,然後發生錯誤 2022-04-22T03:04:15.771Z| vmx| | I005: PCIPassthru: total number of pages needed (4206594) exceeds limit (917504), failing 2022-04-22T03:04:15.771Z| vmx| | I005: Module 'DevicePowerOn' power on failed. ...

This article may have been automatically translated. If you have any feedback regarding its quality, please let us know using the form at the bottom of this page.

Article Content


Instructions

PCI error.PNG


初步作業

您的主機 BIOS 必須正確設定,才能將 Nvidia GPU 用於傳遞,而執行這些加速工作負載的虛擬機器必須符合特定需求。本節說明所有這些需求。

哪些裝置?

本文僅涉及 PCI 裝置對應的記憶體區域總大小超過 16 GB 的情況。請遵循 VMware KB 1010789 所發佈的指示,在 vSphere 下啟用傳遞裝置。通常,需要超過 16 GB 記憶體對應的卡片是高階介面卡。您應遵循本文中的指示,讓它們能在虛擬機器內以傳遞模式使用。
 

主機 BIOS

您的主機 BIOS 必須設定為支援這些高階 PCI 裝置所需的大型記憶體區域。若要啟用此功能,請尋找「記憶體對應 I/O 4 GB 以上」的主機 BIOS 設定,並啟用。

MMIO.png


客體作業系統 

注意:只有當 BIOS 開機模式設為 UEFI 時才需要這些設定,如果 BIOS 開機模式為傳統或 BIOS 模式,您可以忽略以下內容。

若要存取這些大型記憶體對應,請連線至 VMware 網站客體作業系統必須使用 EFI 開機。也就是您必須在虛擬機器中啟用 EFI,然後執行客體作業系統的 EFI 安裝。
 

編輯主機伺服器上的 PCI 裝置可用性

在伺服器開機時,vSphere Hypervisor 便會識別已安裝的 PCI 相容 GPU 硬體裝置,不需要在 Hypervisor 中安裝任何特定驅動程式。

vSphere 以這種方式識別所有 PCI 裝置。您可以選擇您正在使用的特定主機伺服器,然後按照功能表選項操作,即可查看在 vSphere Client 工具中找到的 PCI 裝置清單。

」設定「 > 硬體」 > 「PCI 裝置」 > 「編輯」以查看清單,如以下圖 2 範例所示。

如果特定 GPU 裝置以前未啟用過 DirectPath I/O,您可以按一下裝置項目上的核取方塊,將 GPU 裝置置於直接路徑 I/O (傳遞) 模式,如 NVIDIA 裝置範例所示。

image.png


在虛擬機器檔案中啟用高階裝置

在滿足上述需求後,必須將兩個項目新增至 VM 的 VMX 檔案,您可以直接修改檔案,或使用 vSphere Client 新增這些功能。第一個項目是:

pciPassthru.use64bitMMIO="TRUE"

指定第二個項目需要進行簡單的計算。將您要傳遞至虛擬機器的所有 GPU 裝置 (*) 的 GPU 記憶體大小加總,然後算出最靠近的下一個 2 的冪。例如,若要搭配 4 個 16 GB 的 A2 裝置使用通道,該值會是:32 + 32 = 64,最靠近的下一個 2 的冪,即得到 128。在第二個項目中使用此值:

pciPassthru.64bitMMIOSizeGB="128"

對 VMX 檔案進行這兩項變更後,請依照 VMware KB 1010789 標準 vSphere 說明,在主機層級啟用傳遞裝置,並指定哪些裝置應傳遞至您的虛擬機器。虛擬機器現在應可正確開機,您的裝置也會處於傳遞模式。
 

UI 中啟用高階裝置

再次在 vSphere Client 中選取虛擬機器,並使用相關選項。

」編輯設定 > VM 選項 >進階 > 組態參數 > 編輯組態」,以取得如下所示的 PCI 相關選項清單。

image.png


我們用簡單的方法來計算「64bitMMIOSizeGB」參數的值。算出您要傳遞至此虛擬機器的高階 PCI GPU 裝置數量。這可以是一或多個 GPU。將該數字乘以 16,並算出最靠近的下一個 2 的冪。

例如,若要在一個虛擬機器中搭配兩個 GPU 裝置使用通道模式,該值會是:4 * 16 = 64,算出最靠近的下一個 2 的冪,即得到 128。
 

將 GPU 裝置指派給虛擬機器

本節說明如何將 GPU 裝置指派給虛擬機器。請先關閉虛擬機器電源,再將 GPU 裝置指派給它。

若要使虛擬機器存取 PCI 裝置,請在 vSphere Client 中選取虛擬機器,使用「編輯設定」選項並向下捲動至 PCI 裝置清單。如果您的裝置尚未列於此處,請使用「新增裝置」按鈕將其新增至清單。新增後,您的虛擬機器設定應該會與圖 7 類似。在此範例中,相關項目為「PCI Device 0」。

image.png


記憶體保留

將 PCI 裝置指派給虛擬機器時,虛擬機器必須保留虛擬機器完整設定記憶體大小的記憶體。這是在 vSphere Client 中,透過選擇虛擬機器來完成,使用「編輯設定 > 虛擬硬體 > 記憶體」存取和變更「保留」區域中的值。

最後,開啟虛擬機器。開啟虛擬機器後,請登入客體作業系統,並檢查 GPU 卡是否存在。

  • 在 Linux 虛擬機器上,使用命令
"lspci | grep nvidia"

  • 在 Windows 作業系統上,使用控制台的「裝置管理員」來檢查 GPU 裝置是否可用


GPU 現已準備就緒,可供應用程式在傳遞模式下使用。

Additional Information

故障診斷

如果您已遵循上述指示,且您的虛擬機器仍無法在啟用裝置時正確開機,本節的內容可能有所助益。如果您已嘗試下列建議,但問題仍然存在,請與我們聯絡,讓我們為您提供協助。
 

對應問題:
如果您在 VM 的 vmware.log 檔案中看到類似以下錯誤:

1 I120: PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160)

您的 BIOS 設定不符合啟用此類型傳遞裝置的 ESXi 需求。ESXi 6.0 p4 至 ESXi 6.5 要求對應 PCI 裝置的記憶體皆低於 16 TB。如果您的 BIOS 可控制主機記憶體位址空間為 PCI 記憶體區域對應記憶體的數量,則可以解決此問題。如 SuperMicro 等部分製造商具有 BIOS 選項,可變更此記憶體對應的數量。在 SuperMicro 系統上,可將 MMIOHBase 參數從預設的 56 TB 變更為較低值。Sugon 系統也有類似的 (隱藏) BIOS 設定。請洽詢您的系統廠商,瞭解您的 BIOS 是否支援此重新對應功能。另一個解決方法是將您的 ESXi 版本更新為 6.5 u1 或更新版本,這些版本已移除 16 TB 的限制。

不正確的組態:
vmware.log 檔案中出現下列形式的錯誤:

1 2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing

這表示您未按照上方「主機 BIOS」章節所述,在主機 BIOS 中正確啟用「4 GB 以上」的對應,或未正確指定 VMX 項目。

無法使用裝置:
如果您已遵循上述所有指示,且 VM 已正確開機,但在客體作業系統中執行 nvidia-smi 公用程式時,您會看到類似以下的訊息:

1 Unable to determine the device handle for GPU 0000:13:00.0: 未知錯誤

我們建議您直接聯絡 Nvidia,或使用此字串執行網路搜尋,尋找可能有所説明的其他資訊。

Article Properties


Affected Product

Servers, PowerEdge

Last Published Date

15 Dec 2022

Version

4

Article Type

How To