Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
virtualisierung:proxmox_kvm_und_lxc:grafikkartenpassthrough_proxmox_ab_version_4.3 [2017/05/26 18:47] – [Zu übergebende Karte vom Host abkoppeln] boospyvirtualisierung:proxmox_kvm_und_lxc:grafikkartenpassthrough_proxmox_ab_version_4.3 [2017/07/01 16:23] (aktuell) boospy
Zeile 4: Zeile 4:
  
  
-Zum einen ist es wichtig hier eine VM und Grafikkarte mit UEFI Support zu haben. Getestet wurde das ganze hier mit Windows Server 2012r2 und Kubuntu 16.04 mit aktiven Kubuntu/backports PPA. Wichtig ist vorab zu sagen das diese Technologie sehr Hardware abhängig ist, hat z.B. das Motherboard die Devices in falschen oder besser gesagt unbrauchbaren Konstellationen zusammengeschlossen, wie z.B. PCIe-Slot und Netzwerknic, ist es mehr als unbrauchbar. Auch noch zu erwähnen das GPUpassthrough von Proxmox selbst nicht supportet wird. Erfolgreich getestet wurde es hier mit Supermicro. Wir gehen hier im ganzen Artikel von INTELchips aus. Lässt man den Grafikteil weg, ist das ganze hier auch für normalen PCIe Passthrough gültig, dabei wird auch kein UEFI benötigt.+Zum einen ist es wichtig hier eine VM und Grafikkarte mit UEFI Support zu haben. Getestet wurde das ganze hier mit Windows Server 2012r2 und KDEneon. Wichtig ist vorab zu sagen das diese Technologie sehr Hardware abhängig ist, hat z.B. das Motherboard die Devices in falschen oder besser gesagt unbrauchbaren Konstellationen zusammengeschlossen, wie z.B. PCIe-Slot und Netzwerknic, ist es mehr als unbrauchbar. Auch noch zu erwähnen das GPUpassthrough von Proxmox selbst nicht supportet wird. Erfolgreich getestet wurde es hier mit Supermicro. Wir gehen hier im ganzen Artikel von INTELchips aus. Lässt man den Grafikteil weg, ist das ganze hier auch für normalen PCIe Passthrough gültig, dabei wird auch kein UEFI benötigt.
  
  
Zeile 47: Zeile 47:
 Interrupt remapping will only be enabled if every IOMMU supports it. Interrupt remapping will only be enabled if every IOMMU supports it.
  
-If your system doesn't support interrupt remapping, +Wenn das System interrupt remapping nicht unterstützen solltekann man unsichere interrupts erlauben. Aber davon sollte man abraten. 
-you can allow unsafe interrupts with:+
      
   echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf   echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
Zeile 64: Zeile 63:
  
 Nach dem Neustart kann man die Garte dem Gast übergeben. Vorher prüfen wir noch die Iommu Gruppen.  Nach dem Neustart kann man die Garte dem Gast übergeben. Vorher prüfen wir noch die Iommu Gruppen. 
-To have pci passthrough working fine, you need dedicated iommu group for your pci devices.+Damit das ganze funktioniert benötigt man eine eigenen Iommu Gruppe
      
   find /sys/kernel/iommu_groups/ -type l   find /sys/kernel/iommu_groups/ -type l
  
-Mit etwas Glück hängt der Slot alleine auf unserem Board. So wie hier+Mit etwas Glück hängt der Slot alleine auf unserem Board. Hier hängt wie schön sieht noch Device dabei, das ist ein kleiner PCIe-Slot, in dem steckte eine Netzwerkkarte, die musste in einem anderen Slot.
 <code> <code>
 /sys/kernel/iommu_groups/0/devices/0000:00:00.0 /sys/kernel/iommu_groups/0/devices/0000:00:00.0
 +
 /sys/kernel/iommu_groups/1/devices/0000:00:01.0 /sys/kernel/iommu_groups/1/devices/0000:00:01.0
 /sys/kernel/iommu_groups/1/devices/0000:01:00.0 /sys/kernel/iommu_groups/1/devices/0000:01:00.0
 /sys/kernel/iommu_groups/1/devices/0000:01:00.1 /sys/kernel/iommu_groups/1/devices/0000:01:00.1
 +
 /sys/kernel/iommu_groups/2/devices/0000:00:02.0 /sys/kernel/iommu_groups/2/devices/0000:00:02.0
 /sys/kernel/iommu_groups/3/devices/0000:00:03.0 /sys/kernel/iommu_groups/3/devices/0000:00:03.0
Zeile 119: Zeile 120:
  
 Bevor man das tut sollte aber sicher sein das man per Remote auf den Host zugreifen kann, also VNC und RDP, oder bei Linux Nomachine und VNC. Warum? Ganz einfach da eine Konsole in PVE dann nicht mehr verfügbar ist. Man kann auch einen Monitor direkt an der Grafikkarte anschließen, dann hat man die VM direkt auf dem Schirm. Könnte man so auch über einen HardwareKVM lösen. Hat man alle Einstellungen getroffen, Host nochmal durchstarten. Bevor man das tut sollte aber sicher sein das man per Remote auf den Host zugreifen kann, also VNC und RDP, oder bei Linux Nomachine und VNC. Warum? Ganz einfach da eine Konsole in PVE dann nicht mehr verfügbar ist. Man kann auch einen Monitor direkt an der Grafikkarte anschließen, dann hat man die VM direkt auf dem Schirm. Könnte man so auch über einen HardwareKVM lösen. Hat man alle Einstellungen getroffen, Host nochmal durchstarten.
 +
 +===== Benchmarks =====
 +Also gut wie sieht das ganze nun der Praxis aus? Ich hab natürlich einige Tests gemacht die ich hier natürlich auch gerne präsentiere. Bei allen Tests gabs die gleiche Auflösung, eine Nvidia Quadro K4000 und die gleichen Einstellungen. 
 +
 +Der Erste Test ist mit Windows Server 2012r2. Zugriff erfolge mit [[https://bintray.com/tigervnc/stable/tigervnc/1.7.1#files/ubuntu-16.04LTS/amd64|VNC]]. Als Servervariante verwende ich hier TightVNC. Als Test kam die [[https://unigine.com/|Unigine]] Heaven zum Einsatz. VNC fühlt sich wie nativ auf der Maschine an, auch die Performance. Das einzige Manko: Gigabit Netzwerk bremst das ganze ein wenig. Hier sollte man ungedingt auf 10Gbit pro Client setzen. 
 +
 +{{youtube>7At-xdJ85dY}}
 +
 +Als zweites das gleiche Szenario aber mit der Valley Testumgebung.
 +
 +{{youtube>qyuqCBSGjig}}
 +
 +Ich habe mir auch kurz die Verbindung über RDP angesehen. Vom Netzwerkdurchsatz wird (obwohl alle Einstellungen auf maximale Qualität gestellt waren) um gut die Hälfte weniger benötigt. Es leidet aber merklich am Client die Qualität der Applikation. 
 +
 +Zu guter letzt habe ich noch ein [[https://neon.kde.org/|KDEneon]] 5.9 mit [[https://www.nomachine.com/|Nomachine]] als Clientzugriff getestet. Die Qualität ist relativ gleich dem VNC. VNC ist hier eine Spur schöner, ist ja auch völlig unkomprimiert. Aber jetzt zum Sehr postiven: Nomachine benötigt im Netzwerkdurchsatz gerade mal 1 - 2MB/s. Also nur ein Hundertstel gegenüber VNC. Leider ist nomachine, wenn man mehr als einen User auf dem Linux/Windows Terminalserver lassen möchte nicht ganz gratis. Da wäre es natürlich schön es hier mal eine vernüftige Lösung von x2go geben würde. 
 +Hier das Video dazu :)
 +
 +{{youtube>pkEzH_55k1s}}
 +
 +===== Fazit =====
 +Um Grunde funktioniert das ganze sehr gut und die Einrichtungszeit ist gering. Zum Anderen sind 10Gbit am Client natürlich nicht ganz günstig. Geschweige dem was man am Server benötigt. Zum Anderen reichen Gigiabit Interfaces für normale Office Applicationen "doch" völlig aus. 
 +Der Test sollte einfach mal zeigen was möglich ist. 
 +Eine Idee wäre natürlich hier auf den [[http://store.steampowered.com/app/353380/Steam_Link|Steamlink]] zu setzen. Der nach meinen eigenen Tests auch schon ganz gut funktioniert. Leider noch lange nicht mit allen Spielen, aber brauchbar.
 +Auch [[https://supertuxkart.net|Supertuxkart]] lief bei meinen Tests auf Windowsserver und KDEneon einwandfrei. 
 +
 +Auch funktioniert GPU-Passthrough nicht mit jedem Board. HP ML350G6/G7... damit hat man keine Freude. Ich vermute mal das es mit G9 nicht anders ist. Hier scheint das ganze per Hardware deaktiviert zu sein. Trotz richtiger Flags im Bios lies sich hier die Grafikarte nicht durchreichen. So wie es die Erfahrung zeigt und man es auch im Netz liest, ist man mit Supermicro gut beraten. Aber natürlich sollte man auch hier vor dem Kauf nochmal gründlich nachforschen. 
 +
 +Closed Lösung von Nvidia, event. auch interessant: http://www.nvidia.com/object/grid-technology.html \\
 +Und etwas ähnliches in der OpenSourcewelt: http://moonlight-stream.com/