Hallo,
es gibt ja hier im Portal recht gute Tutorials zum Thema Virtualisierung mit Xen/Xenserver (wieder einmal ist hier viel Content von fnu zusammengetragen worden). Meist geht es beim Durchreichen von Hardware dann um DVB-S2-Karten (PCI-Passthrough). Dies läuft nach Berichten recht gut und halbwegs einfach, wenn man auf die VT-Eigenschaften der verwendeten Hardware achtet.
Im Gegensatz dazu ist die Erfolgsquote beim Durchreichen von Grafikkarten an eine VM immer noch erheblich niedriger und der Frustfaktor dabei höher. Mit Xenserver arbeiten beispielsweise bisher entweder nur einige AMD-Karten oder Nvidia-Quadro-Karten zusammen oder Nvidia-Karten, die per Lötkolben so modifiziert worden sind, dass sie sich als Quadro-Karten ausgeben.
Hier im Portal dokumentierte Versuche, eine GPU durchzureichen, waren dann bisher auch nicht mit Erfolgsmeldungen versehen:
- Kann man eine Grafikarte an eine VM durchreichen?
- [0.2] XEN, 9400GT, NVIDIA GPU is not supported
- [Virtualisierung] XEN - Durchreichen einer NVIDIA Karte an yaVDR
- Grafikkarte in esxi durchreichen, hat es wer ausprobiert
Ich habe momentan geeignete Testhardware daheim und wollte gern schauen, ob es einen Weg gibt, meine zum Spielen angeschaffte Nvidia Geforce GTX 660 an eine virtuelle Maschine zu binden. Das Mainboard ist das in meinem Haswell-Review verwendete Asrock B85M HDS ([Review] ASRock B85M-HDS & Intel Celeron G1820 (Haswell)). Die CPU ist ein Intel Core i5-4670, 4x 3.40GHz (Haswell). Alle Komponenten unterstützen VT-d/VT-x.
Meine ersten Gehversuche habe ich am Wochenende mit Xenserver gemacht, und zwar mit der aktuellen Vorabversion von Xenserver Creedence (=Xenserver 6.5, Alpha 4). Es hat mich fasziniert, wie schnell und komfortabel ich damit eine Windows 8.1 Maschine anlegen konnte (und diese dann in ein Template verwandeln konnte). Nur leider habe ich bisher keine Möglichkeit entdeckt, meine Nvidia GTX 660 oder die Intel-Onboard-Grafik an eine Maschine zu binden. Wie oben gesagt, man braucht hier entweder bestimmte AMD-Karten oder oder spezielle Quadro-Karten von Nvidia oder fängt todesmutig an, auf der Nvidia-Karte herumzulöten.
Bei meiner Recherche ist mir nun bewusst geworden, dass Nvidia mit Absicht das Ziel verfolgt, dass professionelle Virtualisierung nur mit ihren Profi-Karten (Quadro) machbar sein soll. Andersherum ist es natürlich im Profi-Bereich eine unschätzbare Hilfe, wenn man sich darauf verlassen kann, eine fest definierte Liste an funktionierenden Karten zu haben, wo man bedenkenlos einkaufen kann.
Allerdings habe ich gestern Abend weiter recherchiert und bin auf interessante Alternativen gestoßen: Zwar würde ich gern weiterhin bei Xenserver bleiben, aber anscheinend gibt es via gepatchtem KVM/QEMU das gewünschte Killer-Feature geschenkt: Es gibt eine Archlinux-Anleitung, wie man mit KVM VGA-Passthrough via vfio-vga mit beliebigen Grafikkarten umsetzen kann.
(Bei diesem Feature geht es aber wohl auch immer darum, vor dem Grafikkartentreiber zu verstecken, dass die Consumer-Grafikkarte einer virtuellen Maschine zugeordnet ist. Der Nvidia-Treiber unter Windows checkt wohl, ob das der Fall ist, und verweigert dann bei Consumer-GPUs die Zusammenarbeit (Error Code 43). Das ist also wohl immer ein Wettrennen zwischen Patches und Treiber-Updates.)
Da die Anleitung schon aus dem Mai 2013 stammt, würde mich interessieren, ob diese Features schon von jemandem hier in der Praxis getestet worden ist bzw. wie leicht man dies auf aktuellen Linux-Distributionen einrichten kann (Ubuntu?) und ob man Xenserver Creedence nicht auch diese Features beibringen könnte.
Es gibt Tutorials, Videos und Diskussionen zu verschiedenen Distributionen:
Archlinux (die Mutter aller Diskussionen zu diesem Thema): https://bbs.archlinux.org/viewtopic.php?id=162768
Fedora: Relativ aktuelles Tutorial.
Debian: Wiki: https://wiki.debian.org/VGAPassthrough / Für Debian Jessie gibt's ein rockendes Youtube-Video: https://www.youtube.com/watch?v=pLByu1-ptzI
Gentoo: Youtube-Video https://www.youtube.com/watch?v=37D2bRsthfI
Ubuntu: Multiheaded NVIDIA Gaming using Ubuntu 14.04 + KVM / KVM VGA passthrough and USB device sharing
Übergreifend: http://rafalcieslak.wordpress.…-vm-with-vga-passthrough/
Hat jemand von Euch sowas schon am Laufen?
Viele Grüße
hepi