PowerEdge: PCI-Passthrough "Einschalten des Moduls DevicePowerOn fehlgeschlagen" bei Verwendung von GPUs mit virtuellen Maschinen auf vSphere
Summary: Die VM wird nach der Konfiguration des PCI-Geräte-Passthrough auf dem ESXi-Host und dem Hinzufügen des Geräts zur VM nicht eingeschaltet. Es bleibt bei 80 % hängen und führt dann zu einem Fehler "Die Gesamtzahl der benötigten Seiten (4206594) überschreitet das Limit (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.

Vorbereitungen
Das Host-BIOS muss korrekt konfiguriert sein, um die NVIDIA-GPU für Passthrough zu aktivieren, und die virtuelle Maschine, die diese beschleunigten Workloads ausführen soll, muss bestimmte Anforderungen erfüllen. In diesem Abschnitt werden alle diese Anforderungen beschrieben.
Betroffene Geräte
Dieser Artikel ist nur relevant, wenn Ihrem PCI-Gerät Arbeitsspeicherregionen von insgesamt mehr als 16 GB zugeordnet sind. Befolgen Sie die in VMware KB 1010789 veröffentlichten Anweisungen zum Aktivieren von Passthrough-Geräten unter vSphere. In der Regel sind Karten mit einer erforderlichen Speicherzuordnung von mehr als 16 GB High-End-Karten. Es wird empfohlen, die Weisungen in diesem Artikel zu befolgen, um sie für die Verwendung im Passthrough-Modus innerhalb einer virtuellen Maschine zu aktivieren.
Host-BIOS
Das Host-BIOS muss so konfiguriert sein, dass es die großen Arbeitsspeicherbereiche unterstützt, die von diesen High-End-PCI-Geräten benötigt werden. Um dies zu aktivieren, suchen Sie die Host-BIOS-Einstellung für „Memory Mapped I/O above 4 GB“ und aktivieren Sie sie.

Hinweis: Diese Option ist bei 16G nicht verfügbar, aber standardmäßig ist sie aktiviert und Sie können einer VM 48 GB GPU im Passthrough zuweisen.
Gastbetriebssystem
Um auf diese großen Speicherzuordnungen zuzugreifen, stellen Sie eine Verbindung zum VMware-Standort her. Das Gastbetriebssystem muss mit EFI
PCI-Geräteverfügbarkeit auf dem Hostserver bearbeiten
Ein installiertes PCI-kompatibles GPU-Hardwaregerät wird anfänglich vom vSphere-Hypervisor beim Serverstart erkannt, ohne dass bestimmte Treiber im Hypervisor installiert sind.
vSphere erkennt alle PCI-Geräte auf diese Weise. Sie können die Liste der PCI-Geräte im vSphere Client-Tool anzeigen, indem Sie den Hostserver auswählen, auf dem Sie arbeiten, und die Menüoptionen befolgen: Konfigurieren >Hardware >PCI-Geräte >Bearbeiten, um die Liste anzuzeigen, wie im Beispiel in Abbildung 2 unten zu sehen.
Wenn das jeweilige GPU-Gerät zuvor nicht für DirectPath-I/O aktiviert wurde, können Sie das GPU-Gerät in den Direct Path-I/O-Modus (Passthrough) versetzen, indem Sie auf das Kontrollkästchen des Geräteeintrags klicken, wie im Beispiel mit dem NVIDIA-Gerät zu sehen ist.

Aktivieren von High-End-Geräten in VM-Datei
Wenn die oben genannten Anforderungen erfüllt sind, müssen der VMX-Datei zwei Einträge hinzugefügt werden, entweder durch direktes Ändern der Datei oder durch Verwendung des vSphere-Clients, um diese Funktionen hinzuzufügen. Der erste Eintrag lautet:
pciPassthru.use64bitMMIO="TRUE"
Die Angabe des zweiten Eintrags erfordert eine einfache Berechnung. Addieren Sie die GPU-Speichergrößen aller GPU-Geräte(*), die Sie an die VM übergeben möchten, und runden Sie dann auf die nächste Zweierpotenz auf. Um beispielsweise Passthrough mit 4 16-GB-A2-Geräten zu verwenden, wäre der Wert: 32 + 32 = 64, aufgerundet auf die nächste Zweierpotenz lautet das Ergebnis 128. Verwenden Sie diesen Wert im zweiten Eintrag:
pciPassthru.64bitMMIOSizeGB="128"
Befolgen Sie bei diesen beiden Änderungen an der VMX-Datei den VMware-Wissensdatenbank- 1010789 vSphere-Standardanweisungen zum Aktivieren von Passthrough-Geräten auf Hostebene und zum Angeben, welche Geräte an Ihre VM übergeben werden sollen. Die VM sollte jetzt korrekt mit Ihrem Gerät im Passthrough-Modus gestartet werden.
Aktivieren von High-End-Geräten in der Benutzeroberfläche
Wählen Sie im vSphere Client erneut die virtuelle Maschine aus und verwenden Sie die folgenden Optionen: Einstellungen> bearbeiten VM-Optionen> Fortgeschritten>Konfigurationsparameter>Bearbeiten Sie die Konfiguration, um zur unten gezeigten Liste der PCI-bezogenen Optionen zu gelangen.

Wir ermitteln den Wert des Parameters „64bitMMIOSizeGB“ mithilfe einer einfachen Rechnung. Zählen Sie die Anzahl der High-End-PCI-GPU-Geräte, die Sie an diese VM übergeben möchten. Dabei kann es sich um eine oder mehrere GPUs handeln. Multiplizieren Sie diese Zahl mit 16 und runden Sie sie auf die nächste Zweierpotenz auf.
Um beispielsweise den Passthrough-Modus mit zwei GPU-Geräten in einer VM zu verwenden, wäre der Wert: 4 × 16 = 64, aufgerundet auf die nächste Zweierpotenz ergibt das 128.
Zuweisen eines GPU-Geräts zu einer virtuellen Maschine
In diesem Abschnitt wird die Zuweisung des GPU-Geräts zur VM beschrieben. Schalten Sie die virtuelle Maschine aus, bevor Sie ihr das GPU-Gerät zuweisen.
Um einer virtuellen Maschine den Zugriff auf ein PCI-Gerät zu ermöglichen, wählen Sie im vSphere Client die virtuelle Maschine aus, verwenden Sie die Option Edit Settings und scrollen Sie nach unten zur Liste PCI Device. Wenn Ihr Gerät dort noch nicht aufgeführt ist, verwenden Sie die Schaltfläche Neues Gerät hinzufügen, um es zur Liste hinzuzufügen. Nach dem Hinzufügen sollten ihre Einstellungen für die virtuelle Maschine ähnlich aussehen wie in Abbildung 7. In diesem Beispiel ist der relevante Eintrag PCI Device 0.

Arbeitsspeicherreservierung
Wenn das PCI-Gerät einer VM zugewiesen ist, muss die virtuelle Maschine über eine Arbeitsspeicherreservierung für die vollständig konfigurierte Arbeitsspeichergröße für die VM verfügen. Dies erfolgt im vSphere-Client, indem Sie die VM auswählen und über Edit Settings>Virtual Hardware>Memory auf den Wert im Bereich Reservation zugreifen und diesen ändern.
Schalten Sie schließlich die virtuelle Maschine ein. Melden Sie sich nach dem Einschalten der virtuellen Maschine beim Gastbetriebssystem an und überprüfen Sie mithilfe der Befehle, ob die GPU-Karte vorhanden ist:
- Verwenden Sie auf einer virtuellen Linux-Maschine den Befehl:
"lspci | grep nvidia"
- Verwenden Sie auf einem Windows-Betriebssystem den Geräte-Manager in der Systemsteuerung , um die verfügbaren GPU-Geräte zu überprüfen
Die GPU ist jetzt für die Anwendungsnutzung im Passthrough-Modus bereit.
Additional Information
Troubleshooting
Wenn Sie die obigen Weisungen befolgt haben und Ihre VM immer noch nicht ordnungsgemäß startet, wenn die Geräte aktiviert sind, können die Informationen in diesem Abschnitt hilfreich sein. Wenn Sie die folgenden Vorschläge ausprobiert haben und weiterhin Probleme haben, kontaktieren Sie uns und wir können Ihnen helfen.
Zuordnungsproblem:
Wenn in der vmware.log Datei der VM ein Fehler ähnlich dem folgenden angezeigt wird:
1 I120: PCIPassthru: 0000:82:00.0 : Device BAR 0 requested 64-bit memory address that exceeded MPN type (62105227100160)
Ihre BIOS-Einstellungen erfüllen nicht die ESXi-Anforderungen an die Aktivierung dieser Art von Passthrough-Gerät. ESXi 6.0 p4 bis ESXi 6.5 erfordert, dass der PCI-Geräten zugeordnete Arbeitsspeicher jeweils unter 16 TB liegt. Dieses Problem kann umgangen werden, wenn Ihr BIOS eine Steuerungsmöglichkeit dafür unterstützt, wie hoch der Arbeitsspeicher-Adressraum des Hosts ist, dem PCI-Arbeitsspeicherbereiche zugeordnet werden. Einige Hersteller wie SuperMicro bieten beispielsweise BIOS-Optionen, um zu ändern, wie hoch dieser Arbeitsspeicher zugeordnet wird. Auf SuperMicro-Systemen kann der MMIOHBase-Parameter von seinem Standardwert von 56 TB auf einen niedrigeren Wert geändert werden. Sugon-Systeme verfügen auch über eine ähnliche (ausgeblendete) BIOS-Einstellung. Wenden Sie sich an Ihren Systemanbieter, um zu erfahren, ob Ihr BIOS diese Neuzuordnungsfunktion unterstützt. Eine weitere Lösung besteht darin, Ihre ESXi-Version auf 6.5 u1 oder höher zu aktualisieren, wo die Einschränkung auf 16 TB entfernt wurde.
Falsche Konfiguration:
In der Datei vmware.log ist ein Fehler in der folgenden Form zu finden:
1 2016-07-07T09:18:37.624Z| vmx| I120: PCIPassthru: total number of pages needed (2097186) exceeds limit (917504), failing
Zeigt an, dass Sie mehr als 4 GB-Zuordnungen in Ihrem Host-BIOS nicht korrekt aktiviert haben, wie im Abschnitt Host-BIOS oben beschrieben, oder die VMX-Einträge nicht korrekt angegeben haben.
Gerät kann nicht verwendet werden:
Wenn Sie alle oben genannten Anweisungen befolgt haben und Ihre VM ordnungsgemäß gestartet wurde, aber eine Meldung ähnlich der folgenden angezeigt wird, wenn Sie den Befehl nvidia-smi Dienstprogramm in Ihrem Gastbetriebssystem:
1 Unable to determine the device handle for GPU 0000:13:00.0: Unknown Error
Wir empfehlen, sich direkt an NVIDIA zu wenden oder eine Websuche mit dieser Zeichenfolge durchzuführen, um zusätzliche Informationen zu finden, die möglicherweise hilfreich sind.