Frage ESXi / proxmox / Virtualisierung

HerrRossi

Urgestein
Mitglied seit
Jul 25, 2018
Beiträge
6.778
Bewertungspunkte
2.243
Punkte
113
Ich habe jetzt ein bisschen mit ESXi rumgespielt, das ist leicht zu installieren und zu benutzen, zumindest bei einem ersten oberflächlichen Test.

Die erste VM (Linux MInt 19) war flott installiert, der Start der VM geht ruckzuck (virt. "Festplatte" auf SSD) und es lief auch halbwegs flüssig. Nur wird angezeigt, dass der Software Rendering Modus aktiv sei, obwohl der Treiber für die VMware "Grafikkarte" geladen war, auch die VMware Tools hatte ich installiert.

Verstehe ich das richtig, man zwingend einen zweiten PC braucht, um eine VM ausführen zu können? Direkt auf dem Host ist das nicht möglich?

Falls dem so ist, dann ist EXSi glaube ich nicht das, was ich suche. Oder ist die Verzögerung über das Netzwerk zu vernachlässigen? Außerdem hätte ich dann hier drei PCs laufen: NAS, EXSi-Host und der PC um die VM anzuzeigen, das erscheint mir dann doch overkill.
 
Sehr gut, hatte auch schon überlegt, einen eigenen Thread dafür aufzumachen. :)

Zu ESXi und Deinen Fragen, bin mir allerdings noch nicht sicher, ob ich Deine Frage zum "zweiten PC" richtig verstehe:

Man braucht (zunächst) für die Konfiguration - vor allem der ersten VM - einen zweiten PC, bzw. genauer, irgendwas mit einem Webbrowser.

Wenn die VM konfiguriert ist und läuft, läuft die natürlich völlig autark auf dem Host. Du kannst die VM auch so konfigurieren, dass sie automatisch beim Starten des Hosts anläuft. Man kann auch Verzögerungen, Reihenfolgen usw. für einen solchen automatischen Start festlegen.

Und Du kannst eine VM so konfigurieren, dass du sogar keinen zweiten Rechner brauchst, "um die VM anzeigen zu lassen": jedenfalls wenn Du damit meinst, dass das Bild der VM über einen am Host angeschlossenen Monitor direkt ausgegeben werden soll (und mit USB-Geräten direkt bedienbar ist).

Bevor wir da tiefer einsteigen, fehlt Dir (glaube ich) noch ein bestimmtes Stück Verständnis zum Thema Host und Virtualisierung: ESXi als "echter" Hypervisor beschränkt sich auf die Minimalfunktionalität - das gibt's auch bei Microsoft mit dem Hyper-V Server 2019. Das heißt:

1. Diese bringen eben von Haus aus quasi KEINE GUI mit und vor allem KEINE GUI-FUNKTIONALITÄTEN zu Management oder Verwaltung. Die Verwaltung am Host selbst beschränkt sich im Wesentlichen darauf, den Hypervisor ins Netz zu bringen und dann eben von einem anderen Rechner aus verwaltbar zu machen.

2. Die Hypervisoren sind in ihrer Grundkonfiguration und Leistungsumfang "nackt" - d.h. der Hypervisor selbst kann nichts, was über das Laufenlassen von VMs hinaus geht (und eine Verbindung ins Netzwerk bereitstellen geht natürlich auch). Das macht auch Sinn, denn denen sollen ja die Hardware-Ressourcen in möglichst weitgehenden Umfang zur Verfügung stehen - der Hypervisor ist ja nur Mittel zum Zweck bzw. "notwendiges Übel". ;) Wer sonstige weitere Dienste (PFUI!) auf dem Hypervisor laufen lässt, macht so ziemlich alles falsch...

3. Der Grundgedanke eines Hypervisors beruht darauf, dass eigentlich nie jemand wirklich direkt vor der Hardware sitzt - warum auch, die Dinger stehen normalerweise irgendwo im RZ, da ist's dunkel, laut, kalt, generell recht ungemütlich und meistens muss man stehen... :p

4. VMs sind grundsätzlich auch darauf ausgelegt, dass sie Services für die Nutzung durch andere Rechner/User/Sonstiges bereitstellen, also im Prinzip selbst "Server" sind. Früher liefen die VMs halt auf'm bzw. als Blech, und auch alle im RZ und nicht im Büro, am Arbeitsplatz oder auf dem Schreibtisch zu Hause. D.h. für die Standard-VMs gelten Nr. 1 bis 3 analog, vor allem Nr. 3...

5. ...und deshalb besteht die Aufgabe der "virtuelle Standard-Hardware" einer VM zunächst einmal darin, die Benutzung der VM über die Verwaltungsoberfläche des Hosts zu ermöglichen, wofür eine rudimentäre 2D-Grafik für eine Konsole oder zur Not eine Windows-GUI vollkommen ausreicht. Zur Erinnerung: es geht bis hierher dem Grundsatz immer nur darum, von einem anderen Rechner Host und VMs zu administrieren, die danach autark, brav und geräuschlos ihren Dienst als "Server" für andere verrichten.

So, und jetzt kommen wir. :D

Weil ESXi einfach in dem was es macht so sensationell gut, effizient und flexibel (oder universell einsetzbar) ist, kann man ESXi eben auch dafür vergewaltigen, auf dem Host eine VM laufen zu lassen, die

A) eben selbst kein Server sondern ein vollwertiger Client ist (also vor allem mit einem Client OS wie Windows 10 läuft) und
B) als VM Hardware zugewiesen bekommt, dass die VM aus ihrer virtuellen Welt ausbrechen kann und nicht nur Dienste für Clients zur Verfügung stellt, sondern quasi der Client IST.

Denn wenn einer sich selbst so hübsch zurücknimmt, um virtuellen Servern in den VMs maximale Ressourcen zur Verfügung zu stellen, dann müsste doch auch bei einem Client-OS als VM das Maximum ankommen... richtig? Richtig!

Dafür muss man also der VM die nötigen Schnittstellen zur Verfügung stellen, um direkt mit der analogen Außenwelt (=Mensch) zu kommunizieren. Normalerweise würde nun jeder Hypervisor-Admin einem mit großer Lust 'nen Vogel zeigen und unter Begleitung von entsprechendem Wachpersonal vom Gelände verweisen. Aber ESXi (und im Prinzip auch Hyper-V) bringen die Basistechnologie dafür mit.

Konkret heißt das, die VM benötigt für die Anzeige Zugang zu einem physischen Grafikausgang (zum Anschluss eines Monitors) sowie entsprechende USB-Eingabegeräte (Keyboard und Maus).

Exkurs: Unterschied zwischen Consumer- und Datacenter-Gedöns
Genau da unterscheiden sich eben die Datacenter-Geräte von unseren Spielzeugen: z.B. Nvidia's Tesla- oder Gridkarten lassen sich z.T. in virtuelle GPUs so aufteilen, dass diese verschiedenen VMs zugewiesen werden können, die dann auch direkte(re)n Zugang auf die Hardware haben. Damit lassen sich z.B. prima virtuelle Renderfarmen bauen (da stört auch eine Verzögerung durchs Netz nicht, denn da kommt es schließlich nicht auf FPS am Bildschirm des Nutzers an, sondern primär auf die Berechnungszeit). Diese Funktionalitäten wollen aber - gerade bei den GPU-Herstellern - teuer bezahlt werden und die Consumer-GPUs sind da eingeschränkt bzw. (vor allem bei Nvidia) generell in Servern ungern gesehen.

Ähnliches gibt's übrigens auch unter dem Stichwort "SR/IOV": da bringen dann auch Geräte die Funktion mit, sich selbst quasi in eine Vielzahl von Geräten zu virtuell zu "clonen" und an VMs jeweils als "dedizierte Netzwerkkarte" einbinden zu lassen. Eine einzelne phyische NIC stellt so z.B. bis zu 8 virtuelle Netzwerkkarten bereit. Das entlastet dann die CPU, da die CPU das ganze Netzwerkgedöns dann nicht in Software virtualisieren muss, sondern das macht dann halt das Gerät selbst in Hardware. Das freut, dann kann die CPU spannendere Dinge machen.

Leider macht es ESXi uns nun nicht so einfach, dass man einfach einen Haken irgendwo setzen könnte, und z.B. Displayport 1, die USB-Tastatur und USB-Maus sind in der VM - bei der GPU dann auch mit voller Leistung bei Bedarf bitteschön.

Bei USB-HID (Human Interface Devices wie Keyboards, Mäuse & Co.) geht ESXi davon aus, dass der einzige Human der "interfacen" darf, der Admin ist, wenn er denn tatsächlich ausnahmsweise mal am Server steht. Wenn man die jetzt in eine VM packt, kann man damit ja gar nicht mehr am Host selbst arbeiten (ESXi kennt da kein "sowohl als auch"). Die lassen sich also schonmal per se gar nicht oder nur mit viel Aufwand in eine VM kleben. Wäre ja auch echt doof, wenn der Admin dann mal da steht und gar nix eintippen kann... ;)

Und bei GPUs ist das ähnlich: da gibt's standardmäßig auf der primären GPU das langweilige Bild von ESXi selbst mit Basisinfos und der Rest bleibt im Zweifel dunkel.

Das Zauberwort der Rettung lautet nun "PCIe-Passthrough": damit lassen sich ganze PCIe-Geräte komplett in eine VM bringen, die dann darauf exklusiv zugreifen kann. "Exklusiv" heißt, dass das Gerät sowohl für den Host nicht (mehr) existiert, also auch andere VMs darauf nicht zugreifen können. Ein für PCIe-Passthrough konfiguriertes Gerät kann also auch nur EINER VM zugewiesen werden.
Per PCIe-Passthrough können wir nun also quasi beliebige PCIe-Geräte in eine VM bringen, die dann wirklich dieses Gerät vollständig und ausschließlich beherrscht und nutzt. Eine per PCIe-Passthrough in eine VM durchgereichte Grafikkarte wird also in der VM als grds. genau diese Grafikkarte erkannt und zeigt an einem an ihr angeschlossenen Monitor dann auch (nur) das Bild der VM. Und wenn man einen per PCIe angeschlossenen USB-Controller per PCIe-Passthrough an eine VM durchreicht, bekommt die VM eben alle daran (oder per USB-Hub) angeschlossenen USB-Geräte... egal ob USB-HID oder nicht.

Exkurs: PCIe-Passthrough
PCIe-Passthrough ist bei ESXi (aber wie auch eigentlich allen anderen Hypervisors) im Prinzip ein "Ausnahmefall", sozusagen "frowned upon" und wenn dann nur für ganz bestimmte Szenarien vorgesehen, da damit diverse Themen einhergehen, die den Charme von Virtualisierung einschränken. So lassen sich VMs mit dedizierter Hardware nicht mehr in einem Cluster von einem Host zum anderen "hin-und-her" schubsen - denn die dedizierte Hardware kann halt nur in einem Host stecken. Failover-Funktionalitäten gehen also verloren. Auch macht das Durchreichen die ganze Adressverwaltung komplexer, so dass man VMs - jedenfalls bei ESXi - nicht mehr dynamisch im laufenden Betrieb der VM mehr (oder weniger) RAM zuweisen kann. Auch beim Schlafenlegen/Starten/Stoppen/Backup von VMs können sich Einschränkungen ergeben.

Die gute Nachreicht: All die Einschränkungen betreffen uns im Homelab regelmäßig nicht wirklich oder sind verschmerzbar.

Auch die Hardware muss insgesamt mehr können: ohne vT-D (Intel) oder AMD-Vi geht's nicht (so zumindest mein letzter Stand). Außerdem muss man auf die IOMMU-Gruppen achten, also alles was in einer Gruppe hängt, kann nur zusammen (oder gar nicht) durchgereicht werden.

Das gilt aber grundsätzlich unabhängig vom Hypervisor, also auch analog für Hyper-V, Proxmox order sonstige Linux-Virtualisierungstechniken.
 
Zuletzt bearbeitet :
...pfff... wieder mal nur 10.000 Zeichen. Also weiter:

Hat man dann also eine Windows-VM mit einer GPU und USB als Passthrough Devices erfolgreich konfiguriert und am Laufen, kann man fröhlich vor seinem Server sitzen, sieht auf dem daran angeschlossenen Monitor "sein" Windows 10 und kann ganz bequem über Maus und Keyboard daddeln und hört mit einer ggf. angeschlossenen USB-Soundkarte den Ton. (Eine PCIe-Soundkarte ließe sich im Zweifel auch per Passthrough durchreichen, aber Slots und Lanes werden idR eh schnell knapp und USB-Sound tuts ja meistens auch.) Tief im Verborgenen rödelt "darunter" und unsichtbar der Hypervisor und beschäftigt sich ggf. nebenbei noch mit all den anderen VMs, die für den Windows-Nutzer quasi ebenfalls unsichtbar still und unauffällig vor sich hin werkeln.

Bonus: mit der Windows-VM kann man dann natürlich auch bequem den ESXi-Server über die Web-GUI administrieren. :D

Und wie das Ganze ganz konkret geht, zeige ich dann demnächst bei Gelegenheit mal in einem kleinen HowTo mit Bildern/Screenshots. ;)

EDIT: richtig Spaß macht das Erstellen eines HowTos aber erst, wenn ich wieder ein Mainboard mit IPMI übrig hab. Zum Abfotographieren eines Monitors beim ESXi-Install bin ich echt zu alt / faul.
 
Danke schonmal für die Erklärungen, von ESXi habe ich keinerlei Ahnung. Ich kenn den ganzen Virrtualisierungskram auch bisher nur von Virtualbox und da sitze ich direkt am Rechner und starte die VM. Wenn ich jetzt dazu noch das Passthroughgedöns dazu nehme, bekomme ich das, was ich möchte: Linux als Host und Windows als Gast mit schneller GPU. Leider funktioniert Passthrough bei Virtualbox nicht. Daher sitze ich gerade an meiner Manjaro-Installation und hantiere mit Qemu/KVM rum. Und kotze ab, weil ich nur noch 2GB auf home frei habe und auch wieder nix machen kann :sick: Man, ich bin gerade maximal genervt von diesem Dual Boot-Scheiß. Im Prinzip müsste ich jetzt alle Partitionen sichern und mit Gparted hantieren, worauf ich exakt NULL Lust habe weil das auch wieder Ewigkeiten dauert :poop: Kann nicht einfach mal was einfach funktionieren, muss bei mir immer alles so kompliziert sein ????
 
Du, das ist mit ESXi prinzipiell echt ganz simpel:

ESXi-HOST
1. ESXi-Installer booten (ich installiere nur noch mit ISO auf so'nem virtuellen CD-Laufwerk auf'ner SSD)
2. ESXi auf USB-Stick installieren (alle anderen Platten bleiben unberührt)
3. USB-Stick booten
4. Ggf. Management-Netzwerk und Hostname anpassen

WEB-GUI
5. Über Web-GUI grundlegende Funktionen festlegen:
5.1 Lizenzkey eingeben (gibt's bei vmware im Downloadbereich für den freien Hypervisor, zeitlich unbegrenzt)
5.2 virtuelle Netze festlegen
5.3 Speicherplatz für VMs festlegen (z.B. NFS-Netzwerkfreigabe auf NAS o.ä.)
5.4 Passthrough-Devices festlegen

6. Reboot Host (warten...warten...warten...dann wieder im WebGUI anmelden) ;)

7. Über Web-GUI VM-Settings festlegen
7.1 CPU-Kerne / RAM (Achtung: "gesamten Arbeitsspeicher reservieren")
7.2 Passthrough-Devices hinzufügen
7.3 virtuellen Netzwerkadapter konfigurieren (vmxnet3 statt E1000)
7.4 ein paar manuelle Anpassung der VM-Settings (hypervisor.cpuid.v0 = False uvm.)
7.5 Windows ISO beim Hypervisor hochladen
7.6 Windows ISO als virtuelles DVDROM festlegen
7.7 Größe der virtuellen Festplatte festlegen (für nur Windows reicht 64GB locker - zumindest zum Testen, thin provisioning auswählen)
7.8 VM-Starten

VM (immer noch WEB-GUI)
8. Ganz normal Windows 10 Installieren
9. vmwaretools installieren
9.1 rechtsklick auf die VM im ESXi-Webgui "vmwaretools installieren"
9.2 in der VM setup64 auf der virtuellen CDROM ausführen --> "vollständig" installieren
10. Reboot VM
11. Nvidia-Treiber herunterladen und installieren
12. Monitor an Nvidia-Graka als primäres Anzeigegerät auswählen, ggf. Grafiksettings anpassen (Auflösung usw.)
13. im Device Manager die "vmware Grafikkarte" deaktivieren
14. ggf. sonstige Treiber (USB-Geräte) installieren.

Fertig. (Ohne Gewähr, nur mal eben aus dem Kopf heraus.)

Aber Du hast immer noch keine ESXi-taugliche Netzwerkkarte, oder?
 
Aber noch was ganz anderes: Wenn es Dir um Win 10 und Linux parallel geht, lässt sich das am besten mit Windows 10, aktivierter Hyper-V Rolle und einem LINUX als Gast in einer VM umsetzen. Also quasi genau umgekehrt wie von Dir beschrieben. :D

Kein gparted, kein Dual boot, generell keine grundlegenden Systemeingriffe erforderlich. Und wenn Du mir jetzt kommst, Du hast nur Win 10 Home, kannst Du mir echt den Buckel herunterrutschen... :D
 
Wieder mal 1000 Dank für die Erklärung!

Fertig. (Ohne Gewähr, nur mal eben aus dem Kopf heraus.)
Und wie starte ich dann die Windows VM auf dem Host? Das müsste ich dann doch mit einem separaten Computer machen und könnte mich erst dann an den Hauptrechner setzen und loszocken, oder!?

Aber Du hast immer noch keine ESXi-taugliche Netzwerkkarte, oder?
Mein Hauptrechner hat eine Intel NIC auf dem MB (X470 Strix), das funktioniert soweit, ich hatte ja auch schon ein Linux auf EXSi installiert.

Also quasi genau umgekehrt wie von Dir beschrieben.
Aber genau das möchte ich nicht, sonst könnte ich mir ja auch mit Virtualbox eine Linux VM machen. Windows soll maximal noch als VM laufen. Warum? ZB. darum: https://www.pcgames.de/Windows-10-S...e-dringend-warnung-aeltere-versionen-1321981/ Nenn mich paranoid, aber ich habe auf diesen Schweizer Käse keine Lust mehr und sollte die VM dann irgendwann mal infiziert sein, wird sie gelöscht und gut ist. Alles was zB. mit Geld zu tun hat, mache ich über Linux, auch Paypal. Also mal eben flott was mit Paypal kaufen bedeutet: raus aus Windows, neu booten, Linux starten, kaufen, raus aus Linux, neu booten, rein in Windows. Und wenn ich arbeite - was ich auch einzig und alleine über Linux mache - ist es auch jedesmal dieser Aufwand, wenn man mal ein halbes Stündchen zocken oder irgendwas testen will.

Kein gparted, kein Dual boot, generell keine grundlegenden Systemeingriffe erforderlich.
Ich habe mein home jetzt kurzerhand auf eine separate SSD geschoben, jetzt hab ich zum testen erstmal 240GB :cool:

Und wenn Du mir jetzt kommst, Du hast nur Win 10 Home, kannst Du mir echt den Buckel herunterrutschen... :D
Win10 Pro :ROFLMAO:
 
Ja, die VM musst du einmal starten bzw. so konfigurieren, dass sie mit dem Host startet. Aber das Starten der VM geht zur Not auch mit dem Handy-Browser.
 
Okay, Smartphone oder Tablet wäre kein Problem. Könnte ich dann mit zwei Grafikkarten auch zwei VM gleichzeitig starten? Einmal Linux und einmal Windows und per Tastenkombination oder mit dem Smartphone/Tablet hin- und herschalten?
 
Sodele, Windows läuft jetzt schonmal in einer Qemu/KVM-Maschine auf meiner Manjaro-Installation. Morgen werde ich eine zweite Grafikkarte einbauen und mich dann am passthrough versuchen. Ich trink mir jetzt erstmal ein Bierchen ????‍☠️ ????

Ich muss nur auch mal eruieren, wie das mit Maus und Tastatur läuft...
 
Ne. Die verhalten sich ja wie physische Rechner. Also KVM-Switch oder 2x Monitor, Maus und Keyboard.

Ich würd dann eher von VM1 auf VM2 mit Remotdesktop, VNC o.ä. zugreifen. Wenn Du mit Linux keine 3D-Ansprüche hast, reicht für normalen Desktopspaß evtl. auch die virtuelle „VMware Graka“ als Pixelschleuder in der Linux-VM. Müsstest Du mal ausprobieren. Bzw. könnte ich auch mal machen.
 
Ok, für Gimp und Videobearbeitung kommste mit der virtuellen Graka wohl eher nicht aus. Ich setzt später mal eine Linux VM auf.
 
Was mich auch mal in Sachen Hosting oder Cloud interessieren würde: welches Filesystem nutzt so ein Anbieter eigentlich?
 
Welches Linux härteste gern?
 
Gnome, KDE, Architect, XFCE...?
 
Ok
 
Mein Plan ohne ESXi sieht so aus: Manjaro Linux als Host mit dedizierter Grafikkarte, hier habe ich die Wahl zwischen einer HD 7950 oder eine GTX 1060, wobei die wahrscheinlich beide zu viel Strom brauchen, evtl. kaufe ich noch eine passive GT 710, die braucht auch keinen PCIe-Stecker und macht keinen zusätzlichen Krach, der Windows Gast bekäme dann die 2080 Ti. Und wenn Threadripper 3000 der Oberhammer sein sollte, kann ich sogar noch einen weiteren Windows Gast mit der 1060 machen. Nicht, weil ich es bräuchte, sondern just 4 fun :)
Aber dazu muss der ganze Kram erstmal grundsätzlich funktionieren und auch performant sein, ich glaube schon, dass ESXi diesbezüglich Vorteile hat.
 
Oben Unten