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 Passthrough "Module 'DevicePowerOn' power on failed"(PCI 直通 - 模块“DevicePowerOn”开机失败)

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 知识库文章 1010789 已发布的说明进行操作,以便在 vSphere 下启用直通设备。通常,需要超过 16 GB 内存映射的卡是高端卡。您应该按照本文中的说明进行操作,以使它们能够在虚拟机内以直通模式使用。
 

主机 BIOS

您的主机 BIOS 必须配置为支持这些高端 PCI 设备所需的大型内存区域。要启用这一点,请找到主机 BIOS 中的“memory mapped I/O above 4 GB”设置并启用它。

MMIO.png


来宾操作系统 

提醒:只有当您的 BIOS 启动模式设置为 UEFI 时,才需要这些设置,如果它是传统模式或 BIOS 模式,您可以忽略以下内容。

要访问这些大型内存映射,请连接到 VMware 站点来宾操作系统必须使用 EFI 启动(英文版)。也就是说,您必须在虚拟机中启用 EFI,然后执行来宾操作系统的 EFI 安装。
 

编辑主机服务器上的 PCI 设备可用性

安装的与 PCI 兼容的 GPU 硬件设备最初由 vSphere 虚拟机管理程序在服务器启动时识别,而无需在虚拟机管理程序中安装任何特定驱动程序。

vSphere 以这种方式识别所有 PCI 设备。您可以通过选择您正在处理的特定主机服务器并遵循菜单选项来查看在 vSphere Client 工具中找到的 PCI 设备的列表。

Configure“”Hardware“ >> ”PCI Devices“ > ”Edit“以查看列表,如下面图 2 中的示例所示。

如果特定 GPU 设备之前未针对 DirectPath I/O 启用,您可以通过单击设备条目上的复选框将 GPU 设备置于 Direct Path I/O(直通)模式,如 NVIDIA 设备示例中所示。

image.png


在虚拟机文件中启用高端设备

满足上述要求后,必须将两个条目添加到虚拟机的 VMX 文件中,您可以直接修改该文件,也可以使用 vSphere Client 来添加这些功能,两种方法均能实现目标。第一个条目是:

pciPassthru.use64bitMMIO="TRUE"

指定第二个条目需要简单的计算。将想要传递到虚拟机的所有 GPU 设备 (*) 的 GPU 内存大小相加,然后四舍五入到下一个 2 的次幂。例如,要在具有 4 个 16 GB A2 设备的情况下使用直通,该值将为:32 + 32 = 64,四舍五入到下一个 2 的次幂,结果为 128。在第二个条目中使用此值:

pciPassthru.64bitMMIOSizeGB="128"

对 VMX 文件进行这两项更改后,请按照 VMware 知识库文章 1010789 标准 vSphere 说明进行操作,以便在主机级别启用直通设备,并指定哪些设备应传递到虚拟机。在您的设备处于直通模式的情况下,虚拟机现在应该可以正常启动。
 

UI启用高端设备

再次在 vSphere Client 中,选择虚拟机并使用选项。

Edit SettingsVM > OptionsAdvanced >>Configuration Parameters > Edit Configuration“,以转至如下所示的 PCI 相关选项列表。

image.png


我们使用一种直接的方法来计算“64bitMMIOSizeGB”参数的值。计算要传递到此虚拟机的高端 PCI GPU 设备的数量。这可以是一个或多个 GPU。将该数字乘以 16,然后四舍五入到下一个 2 的次幂。

例如,在一个虚拟机中具有两个 GPU 设备的情况下,要使用直通模式,该值将为:4 * 16 = 64,四舍五入到下一个 2 的次幂,得到 128。
 

将 GPU 设备分配给虚拟机

此部分介绍如何将 GPU 设备分配给虚拟机。关闭虚拟机电源,然后再将 GPU 设备分配给虚拟机。

要启用虚拟机对 PCI 设备的访问,请在 vSphere Client 中选择该虚拟机,使用“Edit Settings”选项并向下滚动到“PCI Device”列表。如果您的设备尚未在那里列出来,请使用“Add New Device”按钮将其添加到列表中。添加后,您的虚拟机设置应该与图 7 所示的相似。在此示例中,相关条目是“PCI Device 0”。

image.png


内存预留

当 PCI 设备分配给虚拟机时,虚拟机必须为适用于虚拟机的完整配置的内存大小预留内存。在 vSphere Client 中,通过选择虚拟机,使用“Edit SettingsVirtual > Hardware > Memory”访问并更改 Reservation区域中的值,可执行此操作。

最后,打开虚拟机。开启虚拟机后,登录到来宾操作系统,并检查 GPU 卡当前是否正在使用中。

  • 在 Linux 虚拟机上,使用以下命令
"lspci | grep nvidia"

  • 在 Windows 操作系统上,使用控制面板中的“设备管理器”,以检查可用的 GPU 设备


GPU 现在已经准备好在直通模式下供应用程序使用。

Additional Information

故障处理

如果您已按照上述说明操作,并且在启用了设备的情况下虚拟机仍然无法正常启动,则此部分中的材料可能会很有帮助。如果您已尝试下面的建议,但仍有问题,请联系我们,我们可以帮助您。
 

映射问题:
如果您在虚拟机的 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 版本更新到已消除 16 TB 限制的 6.5 u1 或更高版本。

不正确的配置:
vmware.log 文件中以下形式的错误:

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

指示您未正确启用主机 BIOS 中的“above 4 GB”映射(如上面的“主机 BIOS”部分所述),或者未正确指定 VMX 条目。

无法使用设备:
如果您已按照上面所有说明操作,并且虚拟机已正常启动,但在来宾操作系统中运行 nvidia-smi 实用程序时,您看到类似于以下内容的消息:

1 Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error

我们建议直接联系 Nvidia 或使用此字符串执行 Web 搜索,以查找可能有帮助的其他信息。

Article Properties


Affected Product

Servers, PowerEdge

Last Published Date

15 Dec 2022

Version

4

Article Type

How To