PowerEdge: PCI-doorvoer 'Module 'DevicePowerOn' Power On Failed' bij gebruik van GPU's met virtuele machines op vSphere
Summary: De VM wordt niet ingeschakeld na het configureren van PCI-apparaatdoorvoer op de ESXi-host en het toevoegen van het apparaat aan de VM. Het blijft hangen bij 80% en resulteert vervolgens in een foutmelding "totaal aantal benodigde pagina's (4206594) overschrijdt de limiet (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.

Voorrondes
Uw host-BIOS moet correct worden geconfigureerd om NVIDIA GPU voor passthrough in te schakelen en de virtuele machine die is bestemd om deze versnelde workloads uit te voeren, moet aan specifieke vereisten voldoen. In dit gedeelte worden al deze vereisten beschreven.
Welke apparaten?
Dit artikel is alleen relevant als uw PCI-apparaat geheugenregio's toewijst die in totaal groter zijn dan 16 GB. Volg de door VMware KB 1010789 gepubliceerde instructies om passthrough-apparaten onder vSphere in te schakelen. In de regel zijn kaarten die meer dan 16 GB geheugentoewijzing nodig hebben high-end kaarten. Volg de instructies in dit artikel om ze in te schakelen voor gebruik in de passthrough-modus op een virtuele machine.
Host-BIOS
Uw host-BIOS moet worden geconfigureerd om de grote geheugengebieden te ondersteunen die nodig zijn voor deze hoogwaardige PCI-apparaten. Om dit in te schakelen, zoekt u de BIOS-instelling van de host voor "memory mapped I/O above 4 GB" en schakelt u deze in.

Opmerking: Deze optie is niet beschikbaar op 16G, maar is standaard geactiveerd en u kunt 48 GB GPU toewijzen aan een VM.
Gast-besturingssysteem
Om toegang te krijgen tot deze grote geheugentoewijzingen, moet u verbinding maken met de VMware-site Gastbesturingssysteem moet opstarten met EFI
De beschikbaarheid van het PCI-apparaat op de hostserver bewerken
Een geïnstalleerd PCI-compatibel GPU-hardwareapparaat wordt in eerste instantie herkend door de vSphere-hypervisor tijdens het opstarten van de server zonder dat er specifieke drivers in de hypervisor zijn geïnstalleerd.
vSphere herkent op deze manier alle PCI-apparaten. U kunt de lijst met PCI-apparaten in de vSphere Client Tool bekijken door de specifieke hostserver te kiezen waaraan u werkt en de menukeuzes te volgen: Configureren >Hardware >PCI-apparaten >Bewerk om de lijst weer te geven, zoals te zien is in het voorbeeld in afbeelding 2 hieronder.
Als het specifieke GPU-apparaat niet eerder is ingeschakeld voor DirectPath I/O, kunt u het GPU-apparaat in de Direct Path I/O-modus (passthrough) plaatsen door te klikken op het selectievakje op de apparaatinvoer, zoals te zien is in het voorbeeld van het NVIDIA-apparaat.

Geavanceerde apparaten inschakelen in VM-bestand
Als aan de bovenstaande vereisten is voldaan, moeten twee vermeldingen worden toegevoegd aan het VMX-bestand van de VM, hetzij door het bestand rechtstreeks te wijzigen, hetzij door de vSphere-client te gebruiken om deze mogelijkheden toe te voegen. De eerste vermelding is:
pciPassthru.use64bitMMIO="TRUE"
Het opgeven van de tweede invoer vereist een eenvoudige berekening. Tel de GPU-geheugengroottes op van alle GPU-apparaten(*) die u wilt doorgeven aan de VM en rond vervolgens af naar de volgende macht twee. Als u bijvoorbeeld passthrough wilt gebruiken met 4 A2-apparaten van 16 GB, is de waarde: 32 + 32 = 64, afgerond op de volgende macht van twee om 128 op te leveren. Gebruik deze waarde in het tweede item:
pciPassthru.64bitMMIOSizeGB="128"
Volg met deze twee wijzigingen in het VMX-bestand de VMware KB 1010789 standaard vSphere-instructies voor het inschakelen van passthrough-apparaten op hostniveau en voor het opgeven van welke apparaten moeten worden doorgegeven aan uw VM. De VM zou nu correct moeten opstarten met uw apparaat in passthrough-modus.
Geavanceerde apparaten inschakelen in de gebruikersinterface
Kies in de vSphere Client opnieuw de virtuele machine en gebruik de opties: Instellingen> bewerken VM-opties> Geavanceerd>Configuratieparameters>Edit Configuration om naar de onderstaande lijst met PCI-gerelateerde opties te gaan.

We berekenen de waarde van de parameter "64bitMMIOSizeGB" met behulp van een eenvoudige benadering. Tel het aantal hoogwaardige PCI GPU-apparaten dat u wilt doorgeven aan deze VM. Dit kunnen één of meerdere GPU's zijn. Vermenigvuldig dat getal met 16 en rond het naar boven af op de volgende macht van twee.
Als u bijvoorbeeld de passthrough-modus wilt gebruiken met twee GPU-apparaten in één VM, is de waarde: 4 * 16 = 64, naar boven afgerond op de volgende macht van twee om 128 te geven.
Een GPU-apparaat toewijzen aan een virtuele machine
In dit gedeelte wordt de toewijzing van het GPU-apparaat aan de VM beschreven. Schakel de virtuele machine uit voordat u het GPU-apparaat eraan toewijst.
Als u een virtuele machine toegang wilt geven tot een PCI-apparaat, selecteert u in de vSphere Client de virtuele machine, gebruikt u de optie Instellingen bewerken en bladert u omlaag naar de lijst met PCI-apparaten. Als uw apparaat daar nog niet wordt vermeld, gebruikt u de knop Nieuw apparaat toevoegen om het aan de lijst toe te voegen. Nadat uw virtuele machine is toegevoegd, moeten de instellingen er ongeveer hetzelfde uitzien als in Afbeelding 7. In dit voorbeeld is de relevante vermelding PCI-apparaat 0.

Geheugen reserveren
Wanneer het PCI-apparaat aan een VM is toegewezen, moet de virtuele machine een geheugenreservering hebben voor de volledig geconfigureerde geheugengrootte voor de VM. Dit doet u in de vSphere-client door de VM te kiezen, met behulp van Edit Settings>Virtual Hardware>Memory om toegang te krijgen tot de waarde in het reserveringsgebied en deze te wijzigen.
Schakel ten slotte de virtuele machine in. Nadat u de virtuele machine hebt ingeschakeld, meldt u zich aan bij het gastbesturingssysteem en controleert u of de GPU-kaart aanwezig is met behulp van de opdrachten:
- Gebruik op een virtuele Linux-machine de opdracht:
"lspci | grep nvidia"
- Op een Windows-besturingssysteem gebruikt u Apparaatbeheer vanuit het Configuratiescherm om de beschikbare GPU-apparaten te controleren
De GPU is nu gereed voor gebruik in de passthrough-modus.
Additional Information
Probleemoplossing
Als u de bovenstaande instructies hebt gevolgd en uw VM nog steeds niet correct opstart met de apparaten ingeschakeld, kan het materiaal in dit gedeelte nuttig zijn. Als je de onderstaande suggesties hebt geprobeerd en nog steeds problemen ondervindt, neem dan contact met ons op en we kunnen je helpen.
Toewijzingsprobleem:
Als u een fout ziet die lijkt op de volgende in het vmware.log-bestand van de VM:
1 I120: PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160)
Uw BIOS-instellingen voldoen niet aan de ESXi-vereisten voor het inschakelen van dit type passthrough-apparaat. ESXi 6.0 p4 t/m ESXi 6.5 vereisen dat het geheugen dat is toegewezen voor PCI-apparaten allemaal kleiner zijn dan 16 TB. Het is mogelijk om dit probleem te omzeilen als uw BIOS de mogelijkheid ondersteunt om te bepalen hoe hoog in de geheugenadresruimte van de host PCI-geheugengebieden worden toegewezen. Sommige fabrikanten, zoals SuperMicro, hebben BIOS-opties om te wijzigen hoe hoog dit geheugen is toegewezen. Op SuperMicro-systemen kan de MMIOHBase-parameter worden gewijzigd in een lagere waarde dan de standaardwaarde van 56 TB. Sugon-systemen hebben ook een vergelijkbare (verborgen) BIOS-instelling. Neem contact op met uw systeemleverancier om te weten te komen of uw BIOS deze hertoewijzingsfunctie ondersteunt. Een andere oplossing is om uw ESXi-versie bij te werken naar 6.5 u1 of hoger, waardoor de beperking van 16 TB is verwijderd.
Onjuiste configuratie:
Een fout in het vmware.log bestand van de volgende vorm:
1 2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing
Geeft aan dat u toewijzingen van meer dan 4 GB in uw host-BIOS niet correct hebt ingeschakeld, zoals beschreven in het gedeelte Host-BIOS hierboven, of dat u de VMX-vermeldingen niet correct hebt opgegeven.
Kan apparaat niet gebruiken:
Als u alle bovenstaande instructies hebt gevolgd en uw VM correct is opgestart, maar u een bericht ziet dat lijkt op het volgende bij het uitvoeren van de nvidia-smi hulpprogramma in uw gastbesturingssysteem:
1 Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error
We raden u aan rechtstreeks contact op te nemen met NVIDIA of te zoeken op internet met behulp van deze tekenreeks om aanvullende informatie te vinden die nuttig kan zijn.