PowerEdge: Paso de PCI: "Error en el encendido del módulo 'DevicePowerOn'" cuando se usan GPU con máquinas virtuales en vSphere
Summary: La VM no se enciende después de configurar el acceso del dispositivo PCI en el host ESXi y de agregar el dispositivo a la VM. Se atasca en un 80 % y, a continuación, genera el error "la cantidad total de páginas necesarias (4206594) supera el límite (917504)". ...
Instructions
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.

Preliminares
El BIOS del host debe estar configurado correctamente a fin de habilitar la GPU NVIDIA para el acceso, y la máquina virtual destinada a ejecutar estas cargas de trabajo aceleradas debe cumplir con requisitos específicos. En esta sección, se describen todos estos requisitos.
¿Qué dispositivos?
Este artículo solo corresponde si el dispositivo PCI asigna regiones de memoria cuyos tamaños sumen más de 16 GB. Siga las instrucciones publicadas 1010789 la base de conocimientos de VMware para habilitar los dispositivos de acceso en vSphere. Como regla general, las tarjetas que requieren más de 16 GB de asignación de memoria son tarjetas de alto nivel. Debe seguir las instrucciones de este artículo a fin de habilitarlas para su uso en el modo de acceso en una máquina virtual.
BIOS del host
El BIOS del host debe estar configurado para soportar las regiones de memoria grandes que necesitan estos dispositivos PCI de alto nivel. Para habilitar esto, busque el ajuste del BIOS del host de "memory mapped I/O above 4 GB" y habilítelo.

Nota: Esta opción no está disponible en 16G, pero de manera predeterminada está activada y podría asignar una GPU de 48 GB en el paso a una máquina virtual.
SO huésped
Para acceder a estas asignaciones de memoria grande, conéctese al sitio de VMware El SO huésped debe arrancar con EFI
Edición de la disponibilidad de dispositivos PCI en el servidor host
El vSphere Hypervisor reconoce inicialmente un dispositivo de hardware de GPU compatible con PCI instalado durante el arranque del servidor sin tener controladores específicos instalados en el hipervisor.
vSphere reconoce todos los dispositivos PCI de esta manera. Puede ver la lista de dispositivos PCI que se encuentran en la herramienta vSphere Client seleccionando el servidor de host específico en el que está trabajando y siguiendo las opciones del menú: Configurar >Hardware >Dispositivos > PCI Edite para ver la lista, como se muestra en el ejemplo de la Figura 2 a continuación.
Si el dispositivo GPU específico no se habilitó previamente para I/O de DirectPath, puede colocar el dispositivo de GPU en modo de I/O de ruta directa (transferencia) haciendo clic en la casilla de verificación de la entrada del dispositivo, como se muestra en el ejemplo del dispositivo NVIDIA.

Habilitación de dispositivos de alto nivel en un archivo de VM
Con los requisitos anteriores satisfechos, se deben agregar dos entradas al archivo VMX de la VM, ya sea mediante la modificación directa del archivo o mediante vSphere Client para agregar estas funcionalidades. La primera entrada es:
pciPassthru.use64bitMMIO="TRUE"
La especificación de la segunda entrada requiere un cálculo simple. Sume los tamaños de todas de las memorias GPU de todos los dispositivos GPU(*) que desee transferir a la VM y, luego, redondee a la siguiente potencia de dos. Por ejemplo, para usar el acceso con 4 dispositivos A2 de 16 GB, el valor sería: 32 + 32 = 64, redondeado hacia arriba a la siguiente potencia de dos para que el resultado sea 128. Utilice este valor en la segunda entrada:
pciPassthru.64bitMMIOSizeGB="128"
Con estos dos cambios en el archivo VMX, siga las instrucciones de VMware KB 1010789 estándar de vSphere para habilitar dispositivos de acceso en el nivel de host y para especificar qué dispositivos se deben pasar a la VM. La VM ahora debe arrancar correctamente con el dispositivo en modo de acceso.
Habilitación de dispositivos de alto nivel en la interfaz de usuario
En vSphere Client nuevamente, elija la máquina virtual y utilice las opciones: Editar configuración>Opciones> de VMAvanzado>Parámetros> de configuración Edite Configuration para ir a la lista de opciones relacionadas con PCI que se muestra a continuación.

Calculamos el valor del parámetro "64bitMMIOSizeGB" mediante un enfoque directo. Cuente la cantidad de dispositivos GPU PCI de alto nivel que desee transferir a esta VM. Puede ser una o más GPU. Multiplique ese número por 16 y redondéelo hacia arriba hasta la siguiente potencia de dos.
Por ejemplo, para utilizar el modo de acceso con dos dispositivos GPU en una VM, el valor sería: 4 * 16 = 64, redondeado hacia arriba a la siguiente potencia de dos para que el resultado sea 128.
Asignación de un dispositivo GPU a una máquina virtual
En esta sección, se describe la asignación del dispositivo GPU a la VM. Apague la máquina virtual antes de asignarle el dispositivo GPU.
Para permitir el acceso de una máquina virtual a un dispositivo PCI, en vSphere Client, seleccione la máquina virtual, utilice la opción Edit Settings y desplácese hacia abajo hasta la lista PCI Device. Si su dispositivo aún no aparece en la lista, use el botón Agregar nuevo dispositivo para agregarlo a la lista. Una vez agregado, los ajustes de la máquina virtual deben lucir similares a lo que se muestra en la Figura 7. En este ejemplo, la entrada pertinente es PCI Device 0.

Reserva de memoria
Cuando el dispositivo PCI se asigna a una VM, la máquina virtual debe tener una reserva de memoria para el tamaño de memoria configurado completamente de la VM. Esto se realiza en vSphere Client mediante la selección de la VM y el uso de Edit Settings>Virtual Hardware>Memory para acceder y cambiar el valor en el área Reservation.
Por último, encienda la máquina virtual. Después de encender la máquina virtual, inicie sesión en el SO huésped y compruebe que la tarjeta GPU esté presente mediante los comandos:
- En una máquina virtual Linux, utilice el comando:
"lspci | grep nvidia"
- En un sistema operativo Windows, utilice el Administrador de dispositivos desde el Panel de control para comprobar los dispositivos GPU disponibles
La GPU ahora está lista para el uso de la aplicación en el modo de acceso.
Additional Information
Solución de problemas
Si siguió las instrucciones anteriores y la VM aún no arranca correctamente con los dispositivos habilitados, el material de esta sección puede ser útil. Si probó las sugerencias a continuación y todavía tiene problemas, comuníquese con nosotros para que podamos ayudarlo.
Problema de asignación:
Si ve un error similar al siguiente en el archivo vmware.log de la máquina virtual:
1 I120: PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160)
Los ajustes del BIOS no cumplen con los requisitos de ESXi para habilitar este tipo de dispositivo de acceso. ESXi 6.0 p4 a ESXi 6.5 requiere que la memoria asignada para todos los dispositivos PCI sea inferior a 16 TB. Es posible solucionar este problema si el BIOS soporta la capacidad de controlar qué tan alto se asignan las regiones de memoria PCI del espacio de direcciones de la memoria del host. Algunos fabricantes, por ejemplo, SuperMicro, tienen opciones de BIOS para cambiar qué tanto se asigna esta memoria. En los sistemas SuperMicro, el parámetro MMIOHBase se puede cambiar a un valor menor de su valor predeterminado de 56 TB. Los sistemas Sugon también tienen un ajuste de BIOS similar (oculto). Consulte con el proveedor del sistema para saber si el BIOS soporta esta característica de reasignación. Otra solución es actualizar su versión de ESXi a 6.5 u1 o superior, lo que eliminó la limitación de 16 TB.
Configuración incorrecta:
se produjo un error en el archivo vmware.log del siguiente formato:
1 2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing
Indica que no se han habilitado correctamente las asignaciones de más de 4 GB en el BIOS del host, como se describe en la sección anterior BIOS del host , o que no se especificaron correctamente las entradas VMX.
No se puede utilizar el dispositivo:
Si siguió todas las instrucciones anteriores y su VM arrancó correctamente, verá un mensaje similar al siguiente cuando ejecute nvidia-smi en su SO invitado:
1 Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error
Sugerimos ponerse en contacto directamente con NVIDIA o realizar una búsqueda web mediante esta cadena para encontrar información adicional que pueda ser de ayuda.