In diesem Exposé geht es um das optimierte Verwenden von Peripherie an einem BareMetal-Server, insbesondere um das Durchreichen von Grafikkartenadaptern zu virtuellen Maschinen in einem Hypervisor 1 System von VMWare (ESXi). Diese Technik ist jedoch auch produktunabhängig und lässt sich selbstverständlich auch mit KVM oder XEN durchführen. Die meisten Ausführungen dieses Exposés sind jedoch spezialisiert auf das ESXi System.

Über die Jahre ist Virtualisierung ein wesentlicher Bestandteil der IT-Infrastrukturen unserer Zeit geworden. Die ehemaligen Nachteile dieser Technik wie Performanceverlust durch starken Virtualisierung-Overhead oder Lizensierungsprobleme gehören der Vergangenheit an oder sind auf eine vertretbare Größe minimiert worden. In den letzten Jahren (2-5) beherrschten auch immer mehr Marketing-Begriffe wie Augmented Reality oder KI unsere Fachmedienwelt. Zumal dazu gesagt werden muss, dass es sich in diesen Fällen nicht nur um Marketing-Mist handelt, sondern in diesen Technologien (die übrigens schon länger existieren, als man/frau vielleicht denkt) steckt eine ganze Menge Potential. Aber das ist ein anderes Thema. Der Verweis auf diese Thematik erfolgt nur, weil diese Technologien ein hohes Maß an Rechenleistung erfordern können und dieser Bedarf lässt sich mittlerweile nicht mehr so gut mit den herkömmlichen CPUs unserer Zeit decken (nein, auch 64-Kern Prozessoren kommen an ihre Grenzen). Auch wenn die Architekturen ähnlich funktionieren, sind GPUs eine andere Welt und eine große Chance den Bedarf an Rechenleistung zu decken. Die großen Hersteller haben deshalb auch schon reagiert und es existieren nicht erst seit gestern Grafikkartenadapter mit guter Virtualisierungsunterstützung im kommerziellen Bereich (nVidia Quadro, Tesla, etc). Auch Intel ist auf den Zug aufgesprungen und möchte mehr in die GPU Sparte investieren. Diese GPUs sind natürlich sehr leistungsfähig, aber für kleine Firmen unbezahlbar (auch die Lizenzgebühren) und auch im ersten Schritt nicht rentabel. Letzendlich beschäftigt man sich als Software-Haus nicht mehr mit der Architektur. Man/Frau hat ja schließlich seine Dienstleister und die kloppen dann da schon einmal die GPU rein, wenn man es braucht. Letztendlich ist dieser Standpunkt auch vertretbar und richtig (lass das mal die Experten machen oder „Lass das mal den Papa machen, der Papa macht das gut“). Aber wieso sollte man sich nicht auch einmal mit dieser Technologie beschäftigen und ein wenig damit experimentieren, bevor man sich gleich die 10000€ Lizenzkosten pro Monat ins Haus holt (Achtung: Hyperbelalarm).

Also genug geschwafelt. Sei X eine innovative Firma, die eine Forschungsabteilung (der/die nette Praktikant-/in von nebenan, nennen wir ihn/sie mal Hermaphrodit Kim) hat und gerne etwas mit KI/AR/Ballerspielen experimentieren möchte, um die Thematik besser zu verstehen und eventuell einen kleinen Marktanteil für sich zu erschließen oder bestehende Produkte damit technologisch aufzuwerten.

Das ist Hermaphrodit Kim

Wähle zudem eine-/n Vorgesetzt-/en/in namens Inno Sparsam (Innovativ, aber sparsam). Dann folgt (Achtung: Pseudoimplikation) ein kleines Bauprojekt bestehend aus:

  • einem Gehäuse, das mehr aushält als eine Holzspanplatte mit Heißkleber
  • einem beliebigen Mainboard, für das gilt: IOMMU-fähig (Die Entscheidung zwischen AMD oder Intel Sockel ist dabei so wichtig wie wir Menschen im Universum), jedoch sollte der Netzwerk-Chipsatz (für LAN) kompatibel mit ESXi sein
  • einer beliebigen CPU, die zum Sockel des Mainboards passt und auch dieses ominöse IOMMU kann (bei Intel heißt es Vt-d…)
  • einem beliebigen Consumer Grafikkartenadapter (empfehlenswert sind die etwas älteren Nvidia Chips GPUs GK104 bzw. GTX 680 bis GTX 8XX, die kosten nicht so viel, oder AMD RX 570/580)
  • genug Arbeitsspeicher für die Testzwecke (8GB-128GB, woher soll ich wissen, was ihr vorhabt)
  • einer SSD mit möglichst mehr als 32GB Netto-Kapazität (je nach dem, was getan werden soll)

Die Hardware riecht doch schon einmal ganz gut. Jetzt geht’s an die OS-Geschichte. Der Hypervisor ESXi allein lässt sich kostenfrei aus dem Store von VMWare laden, wenn man sich dort registiert. Dadruch ist die Skalierung der Peripherie und Hardware begrenzt, aber das eingerichtete System ist ohnehin nur ein Testsystem und selbst da ist VMWare noch großzügig.

Disclaimer: Ich bin eher ein Anhänger von Open Source-Lösungen (KVM, Libvirt, XEN, etc). ESXi macht das erste Aufsetzen und Testen jedoch erst einmal einfacher. Daher ist es zum ersten Testen und für das Erfolgsgefühl angenehmer.

  1. Herunterladen der neuesten ESXi ISO (Aktuell: 6.7) und auf die SSD installieren.
  2. Nach der Installation neustarten und mit einem anderen PC auf die Konfigurationswebsite der Maschine zugreifen

TODO