ESXi 7: Passthrough-GPU nach Zuweisung an VM gesperrt

eehm

Lieutenant
Registriert
Juli 2009
Beiträge
557
Hallo,

wenn ich eine Grafikkarte (Nvidia Quadro K2000) an eine VM, nennen wir sie im folgenden VM1 und VM2, per Passthrough durchreiche, dann funktioniert das nach dem Reboot des Hosts problemlos.

Gehen wir davon aus, dass als Grundzustand VM1 mit GPU wie gewünscht läuft und VM2 ausgeschaltet ist.
Wenn ich aber jetzt folgendes mache:

1. VM1 herunterfahren
2. VM2 starten
Zwischenergebnis: VM2 gibt kein Bild auf dem Monitor aus

3. ESXi-Host Neustart
4. VM2 starten
Zwischenergebnis: VM2 gibt ein Bild auf dem Monitor aus

5. VM2 herunterfahren
6. VM1 starten
Ergebnis: VM1 gibt jetzt kein Bild auf dem Monitor aus

Jetzt könnte man die Reihe natürlich unendlich fortsetzten, aber es geht pro Start des Host nur ein EINMALIGES Zuweisen der GPU an eine VM. Danach scheint die GPU durch irgendeinen Prozess oder ähnlichem im Hintergrund für die weitere Verwendung gesperrt zu sein. :(
Hatte ggf. hier jemand schon ein ähnliches Problem und kennt eine Lösung bzw. einen Workaround?
 
Vielleicht hilft dir das weiter.

Bekommst du kein Bild über die vmware Console? Wie ist es wenn du dich per RDP verbindest, falls ein Windows ist? Kannst du die virtuelle Maschine pingen?

Beachte den letzten Absatz vom folgenden Eintrag.
 
co-pilot schrieb:
Bekommst du kein Bild über die vmware Console? Wie ist es wenn du dich per RDP verbindest, falls ein Windows ist? Kannst du die virtuelle Maschine pingen?
Ja ich bekomme ein Bild über die Konsole, wenn ich die interne SVGA von vmware aktiv lasse sonst nicht. Also das ist alle i.O. RDP geht ohne Probleme und Ping auch.
 
Ja natürlich wird das nur einmal zugewiesen. Alles andere würde vGPU erfordern.
 
RalphS schrieb:
Ja natürlich wird das nur einmal zugewiesen. Alles andere würde vGPU erfordern.
vGPU ist doch, wenn ich eine GPU für mehrere VMs gleichzeitig nutzen will.
Ich will die GPU nicht teilen (virtualisieren) sondern ich will sie verschiedenen VMs zuweisen können, aber immer nur EINER zur gleichen Zeit!
 
Nimmst du die Grafikkarte der VM1 dann weg? Oder lässt du die verbunden, auch wenn sie aus ist?
 
co-pilot schrieb:
Nimmst du die Grafikkarte der VM1 dann weg? Oder lässt du die verbunden, auch wenn sie aus ist?
Nehme ich Ihr weg also sowohl die Grafikkarte als auch den HDMI-Audio-Controller
 
co-pilot schrieb:
Danke für den Hinweis.
Könnte es das hier sein?

2022-03-11T22:51:12.821Z cpu6:1057042)PCIPassthru: 3753: pcipDevInfo(0x430c29a01bd0) allocated for 0000:01:00.0
2022-03-11T22:51:12.821Z cpu6:1057042)PCI: 1330: Skipping device reset on 0000:01:00.0 because PCIe link to the device is down.
2022-03-11T22:51:12.821Z cpu6:1057042)PCIPassthru: 3753: pcipDevInfo(0x430c29b11c60) allocated for 0000:01:00.1
2022-03-11T22:51:12.821Z cpu6:1057042)PCIPassthru: 3753: pcipDevInfo(0x430c29b11f70) allocated for 0000:03:00.0
2022-03-11T22:51:16.838Z cpu0:1057043)CpuSched: 817: user latency of 1057053 LSI-1057043:0 0 changed by 1057043 vmm0:UbuntuTestGPU -6
 
Scheint so, zumindest haben die hier ein ähnliches Phänom. Geht es denn, wenn du es auf vGPU umstellst?
 
co-pilot schrieb:
Geht es denn, wenn du es auf vGPU umstellst?
vGPU geht mit der K2000 leider nicht! :(
Da bräuchte man eine größere Karte.
Und die iGPU der CPU kann ich leider aufgrund des Mainboards nicht einsetzten.

Ich habe jetzt auch noch stundenlang mit der passthru.map experimentiert:
# Quadro K2000
10de 0ffe link false
10de 0e1b link false

oder

# Quadro K2000
10de 0ffe d3d0 false
10de 0e1b d3do false

In beiden Fällen funktioniert zwar das Passthrough, aber die Karte wird auch mit diesen Einstellungen nach dem Herunterfahren der VM nicht für die Nutzung in einer anderen VM freigegeben! :(
Das ist wirklich sehr ärgerlich, dass das nicht funktionieren will! :(
 
Wenn ich mir Notes von Nvidia durchlese, vermute ich fast, das die K2000 im ESXi 7 nicht mehr unterstützt wird:
"This release supports all NVIDIA GPUs with vGPU and in pass-through mode that support NVIDIA vGPU software on VMware vSphere." Ohne vGPU Unterstützung geht es wohl nicht mehr, bzw. wird halt nicht offiziell untersützt.
 
Ich habe heute stundenlang weiter getestet und noch weiter Windows und Linux-VMs angelegt.

Leider nicht ganz von Erfolg gekrönt, trotzdem bin ich ein wenig weiter gekommen.
Wenn ich den GPU-Wechsel mit diversen Linux-VMs teste, dann kann ich die GPU nach dem herunterfahren der einen VM ohne Probleme an die nächste Linux-VM durchreichen und bekomme ein Bild auf dem Monitor.
Also generell scheint es zu funktionieren. :)
Sobald ich allerdings einer Windows10-VM die GPU durchreiche, kann ich sie nur noch in Windows10-VM benutzen.

Die Erkenntnis:
Wenn die GPU in ein Linux System eingebunden wurde, kann sie nach dem Herunterfahren der VM entweder in ein beliebiges Windows oder beliebiges Linux System wieder eingebunden werden.

Wenn die GPU in ein Windows10 System eingebunden wurde, kann sie nach dem Herunterfahren der VM nur noch in ein beliebiges Windows10 System eingebunden werden.

Die Frage ist jetzt nur:
Was macht hier Windows falsch, dass die GPU "gesperrt" wird und wie kann man das vielleicht lösen?
 
ich nutze jetzt kein ESXi sondern unraid, da geht das bei mir wunderbar, egal ob ich vorwärts oder rückwaärts oder seitwärts wechsel ;)

Jetzt kenn ich die ESXi VM Anlage nicht,
Bios Type ? ovmf (uefi) gewählt ?
Mashine type q35 oder i440.. gewählt ?
und dann, vbios der GPU durchreichen ?

dieses "hängen" einer GPU gab/gibt es eigentlich nur bei AMD GPU's (Reset Patch etc ...) wobei das wieder andere Symptome sind.
 
alturismo schrieb:
Jetzt kenn ich die ESXi VM Anlage nicht,
Bios Type ? ovmf (uefi) gewählt ?
Mashine type q35 oder i440.. gewählt ?
und dann, vbios der GPU durchreichen ?
Also es ist alles uefi und 440BX Desktop Reference Platform.
Wie finde ich raus, ob das vbios durchgereicht wird? :)
 
eehm schrieb:
Also es ist alles uefi und 440BX Desktop Reference Platform.
mal mit ovmf als mashine type getestet ?

eehm schrieb:
Wie finde ich raus, ob das vbios durchgereicht wird? :)
hast du ein vbios für deine GPU erstellt ? und hast du das auch eingebunden ?

wie gesagt, ich kenne ESXi nicht.
 
  • Gefällt mir
Reaktionen: eehm
alturismo schrieb:
mal mit ovmf als mashine type getestet ?
Nein, aber das ist noch ein guter Ansatz. Das werde ich am Wochenende mal testen, das könnte ggf. etwas bringen.
Vielen Dank für den Hinweis!

alturismo schrieb:
hast du ein vbios für deine GPU erstellt ? und hast du das auch eingebunden ?
Nein, ich habe in der Richtung überhaupt nichts gemacht.
Muss auch zugeben, dass ich nicht wüsste, was ich da machen müsste um das zu erstellen! :(
 
Hallo
eehm schrieb:
Hatte ggf. hier jemand schon ein ähnliches Problem
Hallo eehm,
bei mir funktioniert es mit ESXi7 und einer K1200 problemlos und auch mit anderen PCIe-Devices funktioniert es (PCIe-USB3.0, PCIe-5GbE).
Der Hypervisor schimpft nur, wenn ich eine VM starte, welche Ressourcen nutzen möchte, die gegenwärtig in einer anderen (eingeschalteten) VM verwendet werden. --> Diese dann ausschalten, die "neue" VM einschalten und dann klappt's bei mir. 👍

Mit einer günstigen PCIe-USB3.0-Karte hatte ich aber auch einmal ähnliche Probleme, da musste ich tatsächlich noch eine (etwas teurere) kaufen, mit welcher dann alles lief. 👍

...Ich behaupte mal, dass es mit deiner K2000 schon laufen sollte. (Das hier sicher schon gelesen, oder? https://www.lawlor.cloud/vmware-esxi-7-gpu-passthrough/ )
 
Zurück
Oben