NVIDIA PCI-Passthrough funktioniert mit teurer RXT-Hardware nicht.

second.name

Lieutenant
Registriert
Sep. 2009
Beiträge
691
Hallo Community,

hier ein doch sehr spezielles Anliegen. Vielleicht kann der Ein oder Andere etwas dazu sagen:

Ich betreibe eine kleine HP-Z240-SFF-Workstation als leistungsstarken Heim-Server (Projekt kann ich bei Gelegenheit mal vorstellen). Als OS läuft ESXi-8.0U1a Enterprise Plus.​
Neben einigen Linux- und Windows-VM’s reiche ich per PCI-Passthrough eine Grafikkarte an eine Windows-VM durch, bei welcher ich dann auch den nativen DisplayPort als VGA-Ausgang für den vorhandenen Monitor nutze. (Die für dieses PCI-Gerät konfigurierte VM muss also eingeschalten sein, damit ich am Monitor also auch etwas sehe.)​
Zum Anliegen:​
Bis jetzt hatte ich als GPU immer eine „Quadro K1200“ verwendet. -> Funktionierte super: VM ein- und ausschalten, andere VM mit dieser GPU startet, usw. -> alles lief problemlos. Nach einem (teuren) Upgrade auf die „RTX A2000 12GB“ startet jetzt aber die VM nur einmal ordentlich, nach einem Neustart der VM wird die GPU dann aber nicht mehr erkannt (-> der berühmte Error „Code 43“). Hier wird exakt der Fehler beschrieben: https://community.spiceworks.com/topic/2338890-gpu-passthrough-error-code-43-once-vm-restarted
Genau das sollte aber seit Treiber-Version 465.89 nicht mehr passieren, da NVIDIA offiziell dieses Feature [PCI-Passthrough] implementiert hat (https://www.storagereview.com/news/nvidia-enables-beta-support-for-virtualization-on-geforce-gpus).​
Meine indes wochenlange Recherche der Logs und im Internet ergab, dass die GPU seitens des NVIDIA-Windows-Treibers tatsächlich nicht ordnungsgemäß im PCI-Slot freigegeben/zurückgesetzt wird und man dies nur durch einen Host-Neustart bereinigen kann. NVIDIA selbst kennt dieses Verhalten und hat hierfür extra eine wenige KB-große INF-Treibererweiterung für div. GPU’s bereitgestellt, nicht aber für meine „RTX A2000 12GB“ (GA106). (https://docs.nvidia.com/datacenter/tesla/gpu-passthrough/index.html)​
Ich „werkel“ seit Wochen herum und habe indes sämtliche Konfigurationen getestet (Host-BIOS, ESXi-Setting, VM-BIOS, VM-Setting, VM-Guest-Setting, uvm…) und kann indes behaupten, dass es höchstwahrscheinlich seitens NVIDIA nicht gewollt ist, PCI-Passthrough mit der „A2000“ zu nutzen. …Und genau das ärgert mich: Die „A2000 12GB“ kostet ca. 600,- EUR und verweigert scheinbar diese Funktionalität, die alte und günstige „Quadro K1200“ kann es aber.​
Hat jemand eine Idee?​

Danke für euer Feedback. 👍
 

Anhänge

  • NVIDIA-Treibererweiterung.PNG
    NVIDIA-Treibererweiterung.PNG
    50,6 KB · Aufrufe: 126
Zuletzt bearbeitet:
Ich bin mir nicht sicher, ob das Feature jemals aus dem Beta-Stadium rausgekommen ist.
Alle GPU-Hersteller deaktivieren bzw. entfernen das Feature extra, damit die günstigeren
Consumer-Karten nicht für professionellen Einsatz genutzt werden können, wenn man PCI-Passthrough
benötigt.

Sage erst mal "nein", gibt es nicht und wird es nie geben, weil man soll doch bitte Quadro und co. kaufen.
 
Mal geschaut ob es mit einem anderen hypervisor auch nicht klappt? Proxmox unraid? Nicht das es an VMware liegt...
 
GTrash81 schrieb:
Sage erst mal "nein", gibt es nicht und wird es nie geben, weil man soll doch bitte Quadro und co. kaufen.
Danke für deine Info - da bin ich auch bei dir. ...Nur ist die "A2000" eben keine "Consumer-Karten", sondern im wahrsten Sinne eine "professional": https://www.nvidia.com/en-us/design-visualization/rtx-a2000/
Ergänzung ()

Matthias80 schrieb:
Mal geschaut ob es mit einem anderen hypervisor auch nicht klappt? Proxmox unraid? Nicht das es an VMware liegt...
Ich möchte schon gern bei vmware bleiben, aber gelesen habe ich, dass man bei Proxmox gezielt Kernel-Parameter editieren kann und man speziell NVIDIA damit "austrickst"...

 
second.name schrieb:
Ich möchte schon gern bei vmware bleiben
Schon klar.
Aber wer a sagt muss auch b sagen.
Ist ja nur zum test. Ob nvidia hier der Spielverderber ist oder VMware.
Hab z. B. Jahrelang normale geforce mit unraid durchgereicht. Es ist ersteinmal nix unmöglich!
 
Matthias80 schrieb:
Ist ja nur zum test. Ob nvidia hier der Spielverderber ist oder VMware.
Mit Proxmox wird es definitiv funktionieren, da man dort die PCI-Interrupts direkt editieren/zurücksetzen kann. vmware ist (zu) proprietär und gestattet dieses Editieren nicht.

Dennoch habe ich Hoffnung, es irgendwie noch hinzubekommen. ..."Die Hoffnung stirbt zuletzt."
 
Muss man da nicht das BIOS ändern. Ich habe mal sowas im Internet gelesen, aber mangels 2. GPU nicht weiter verfolgt.
 
Don_2020 schrieb:
Muss man da nicht das BIOS ändern.
...Nein, bzw. das, was aktiviert/deaktiviert sein muss, habe ich natürlich beachtet -> mit der "K1200" funtkioniert ja auch alles.

Kennt sich jemand mit dem NVIDIA-Support aus? Würde die mal anschreiben und hier dann berichten.
 
Die unterstützten GPUs scheinen alle so Datacenter Teile (z.B. Tesla) zu sein, also das was man dann z.B. bei einer Azure VM mieten kann, da hats überhaupt keine Pro Karten aufgeführt.
Ich denke das ist nochmals einen Level weiter und so Teile wie Quadros und RTX A reichen da nicht mehr.

Da Nvidia den Treiber aber angepasst hat für das benötigte Feature (und es ja mit der alten Quadro klappt), denke ich liegt das Problem effektiv bei Vmware.
Würde drum - und da Du scheins ja so ein Enterprise Version hast - eher deren Support schreiben.
Weil Nvidia wird Dir sagen dass der Treiber das kann und sonst kauf Dir ne Tesla Karte.
 
  • Gefällt mir
Reaktionen: thuering und Matthias80
vmware brauche ich gar nicht erst anschreiben: Die "RTX A2000" steht nicht in der Liste unterstützter Hardware und auch mein Host "kann offiziell kein ESXi". -> Da kenne ich deren Antwort schon. Aber NVIDIA habe ich soeben angeschrieben und melde mich mit etwaigen Neuigkeiten. 👍
 
Was @Lawnmower schreibt. Mit Einführung der A-Reihe (Ampere) im Quadro-Segment hat man die Unterstützung für Virtualisierung zurechtgestutzt! Das, was früher auch Quadro konnte (und nun "RTX" ist) kann nicht mehr durchgereicht werden. Dazu braucht es Teslas. Die sind nochmal deutlich teurer als ihre RTX-Professional-Geschwister und haben gar keinen physischen Bildausgang - hilft dir für dein Setup also gar nicht.
Eine traurige Entwicklung.
Ergänzung ()

P.S.: Du kannst sonst mal in den Channel von https://www.youtube.com/@CraftComputing
CraftComputing reinschauen. Der baut solche ESXi-Multi-Gaming-Station-PCs. Vielleicht weiß der mehr. Ich habe mich damit länger nicht beschäftigt.
 
  • Gefällt mir
Reaktionen: Lawnmower und second.name
ich bin zwar UNRaid user, aber kannst ja mal folgendes probieren, früher hatte man das ab und an gebraucht bei manchen Karten ...

- device natürlich anpassen, evtl. 2. mal für Audio zusätzlich ... remove
echo "1" | tee -a /sys/bus/pci/devices/0000\:01\:00.0/remove
echo "1" | tee -a /sys/bus/pci/devices/0000\:01\:00.1/remove

- rescan
echo "1" | tee -a /sys/bus/pci/rescan

könnte jetzt auf ESXi auch leicht abgewandelt sein ... da die Karte beim ersten Start ja geht schließe ich Nvidia und Treiber mal aus, denke eher der Host hat ein Reset Problem ...

Das Thema Nvidia und VM's läuft ja seit ein paar Jahren ganz geschmeidig ...
 
alturismo schrieb:
/sys/bus/pci/devices/
Danke alturismo, aber diese Pfade gibt's im ESXi nicht. Habe schon versucht dies auf ESXi zu adaptieren, bin aber leider nicht fündig geworden. :-(

thuering schrieb:
Mit Einführung der A-Reihe (Ampere) im Quadro-Segment hat man die Unterstützung für Virtualisierung zurechtgestutzt!
Danke auch dir thuering für deine Infos. ...Das höre ich gar nicht gern 🤬 und ich kann's auch nicht so recht verstehen. -> Die Karten sind wirklich sehr teuer und gerade bei diesen wurde diese Funktionalität beschnitten!? ...Gibt's das seitens NVIDIA irgendwo nachzulesen?
 
Zuletzt bearbeitet:
second.name schrieb:
Habe schon versucht dies auf ESXi zu adaptieren, bin aber leider nicht fündig geworden. :-(
schade ... wäre einen Versuch wert gewesen ... vielleicht fragst du mal in einem ESXi Forum nach ob da jemand helfen kann zum Thema "pci device reset"

hier mal ein Beispiel wonach du selbst suchen kannst, find / ...

root@AlsServer:~# ls -la /sys/bus/pci/devices/0000\:01\:00.0/re*
--w--w---- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/remove
--w------- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/rescan
--w------- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/reset
-rw-r--r-- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/reset_method
-r--r--r-- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource
-rw------- 1 root root 16777216 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource0
-rw-r--r-- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource0_resize
-rw------- 1 root root 17179869184 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource1
-rw-r--r-- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource1_resize
-rw------- 1 root root 17179869184 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource1_wc
-rw------- 1 root root 33554432 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource3
-rw-r--r-- 1 root root 4096 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource3_resize
-rw------- 1 root root 33554432 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource3_wc
-rw------- 1 root root 128 Jul 15 07:02 /sys/bus/pci/devices/0000:01:00.0/resource5
-r--r--r-- 1 root root 4096 Jul 21 07:09 /sys/bus/pci/devices/0000:01:00.0/revision
root@AlsServer:~#

second.name schrieb:
Danke auch dir thuering für deine Infos. ...Das höre ich gar nicht gern 🤬 und ich kann's auch nicht so recht verstehen. -> Die Karten sind wirklich sehr teuer und gerade bei diesen wurde diese Funktionalität beschnitten!? ...Gibt's das seitens NVIDIA irgendwo nachlesen?
ich schätze bevor etwas vermischt wird, passthrough wurde nicht limitiert meines Wissens nach sondern was immer ein Thema ist, vgpu setup der Pro Karten ... sprich, das gleichzeitige parallele Nutzen der Karte in mehreren VM's, auf dem Host, ...

https://www.nvidia.com/en-us/data-center/virtual-solutions/
 
Breaktivity schrieb:
Das Deaktivieren sorgte dafür, dass der Treiber die GPU in einem sauberen Zustand hinterlässt.
Vielen Dank für Deine Antwort Breaktivity. Tatsächlich beschreibt Dein Link exakt dieses technische Problem und sobald ich aus meinem Urlaub zurück bin, beschäftige ich mich damit. Leider glaube ich, dass diese Lösung sich konkret auf AMD-Hardware mit Linux-Hosts fokussiert.

So-oder-so bin ich z.Z. mit NVIDIA im Austausch und mir wurde bestätigt, dass "es wie ein Bug aussieht" und das Thema jetzt mit der Treiberentwicklung besprochen wird. ...Man will sich bei mir melden.

...Und ich melde mich, sobald ich etwas Neues weiß. 👍
 
Zurück
Oben