Nested Virtualization: ESXi und Hyper-V unter ESXi 5.1 ausführen


    Tags: ,

    ESXi 5.1 in einer virtuellen MaschineSeit der Version 4.1 bietet ESXi die Möglichkeit, weitere Hypervisor innerhalb von virtuellen Maschinen auszuführen. Eine solche Konfiguration eignet sich sehr gut, um für Labs, Schulungen oder Testzwecke eine ganze vSphere-Umgebung auf einem einzigen leistungsfähigen Rechner zu installieren. Die dafür nötige Konfiguration hält jedoch einige Fallstricke bereit.

    Die verschachtelte Virtualisierung ist auch ein Feature der VMware Workstation 9, die ESXi oder Hyper-V in VMs ausführen kann und dabei 64-Bit-Gäste unterstützt. Die Konfiguration ist dort weitgehend über die GUI möglich und daher wesentlich einfacher als unter ESXi. Andererseits hat ein Typ-1-Hypervisor wie ESXi den Vorteil, dass er den Ballast eines Host-Betriebssystems, wie es die VMware Workstation benötigt, vermeidet und die Hardware-Ressourcen besser kontrollieren kann.

    Andere Einstellungen in ESXi 5.1

    Die Konfiguration verschachtelter ESXi-Installationen wirkt deswegen verwirrend, weil sie sich seit ESXi 4.1 mit jedem Update des Produkts geändert hat. Die meisten Anleitungen beziehen sich auf ESXi 5.0, wo man noch die Datei /etc/vmware/config in der physikalischen ESXi-Instanz editieren musste. Diese Anpassung bleibt in der neuesten Version wirkungslos und führt höchstens dazu, dass man keine 64-Bit-Gäste ausführen kann, weil man die wirklich erforderlichen Konfigurationsschritte unterlässt.

    Die physikalische Installation von ESXi 5.1 direkt auf die Hardware erfolgt wie gewohnt und bedarf keinerlei Anpassungen, um eine weitere Instanz von ESXi in einer virtuellen Maschine ausführen zu können. Allerdings muss nach dem Aufspielen des Hypervisors in der Konfiguration des vSwitch der Promiscuous Mode zugelassen werden, damit die untergeordneten ESXi-Instanzen Zugriff auf das Netzwerk erhalten.

    Konfiguration des vSwitch

    Zu diesem Zweck wechselt man im vSphere Client zur Registerkarte Konfiguration und folgt in der Box Hardware dem Link Netzwerk. Anschließend öffnet man den Dialog Eigenschaften und bearbeitet die Einstellungen von vSwitch. Im folgenden Dialog wechselt man zum Reiter Sicherheit und stellt dort Promiscuous-Modus auf den Wert Akzeptieren.

    Der Promiscuous Mode muss zugelassen werden, um dem virtualisierten ESXi Zugriff auf das Netzwerk zu geben.

    SLAT/EPT erforderlich

    Bevor man sich daran macht, einen weiteren ESXi in eine VM zu installieren, sollte man prüfen, ob das System die Hardware-Voraussetzungen für Nested Virtualization erfüllt. Dazu gehört seit der Version 5.1 vor allem die Unterstützung für Second Level Address Translation (SLAT), das auch mit Extended Page Table (EPT) bezeichnet wird. Sie wird für die Ausführung von 64-Bit-Gästen benötigt.

    Unter dieser URL kann man Informationen über die Fähigkeiten des Systems abrufen, darunter auch den Wert für nestedHVSupported.

    Selbst wenn die CPU dazu in der Lage ist, kann eine falsche Firmware-Einstellung dazu führen, dass diese Funktion nicht verfügbar ist. Ob aus der Sicht von ESXi diese Bedingung erfüllt ist, kann man herausfinden, indem man sich über einen Web-Browser mit dem Host verbindet, und zwar mit dieser Adresse:

    https://name-des-hosts/mob/?moid=ha-host&doPath=capability

    Der Hypervisor gibt darauf eine Tabelle zurück, aus denen die Fähigkeiten des Systems zu entnehmen sind. Dort findet sich ein Eintrag mit der Bezeichnung nestedHVSupported, der den Wert true haben muss.

    VM für ESXi einrichten

    Im nächsten Schritt richtet man eine VM ein, in die ESXi installiert werden soll. Wenn man dafür den vSphere Client verwendet, dann bietet der Wizard bei der Auswahl des Gastbetriebssystems im Gegensatz zur VMware Workstation keinen Eintrag für ESXi. Deshalb wählt man hier am besten Anderes Linux-System (64-Bit).

    Erst nach dem Anlegen einer VM bietet der vSphere Client in den Einstellungen der VM ESXi als Gastsystem zur Auswahl an.

    Nachdem die VM angelegt worden ist, bietet der vSphere Client in den Einstellungen der VM unter Optionen => Allgemeine Optionen in der Liste der Gastbetriebssysteme unter Andere sowohl ESXi 4.x als auch ESXi 5.x an. Dort sollte man den korrekten Wert wählen, weil damit der Eintrag guestOS in der .vmx-Konfigurationsdatei auf vmkernel5 gesetzt wird, mit dem sich ESXi auf den besonderen Gast einstellt.

    Virtualisierung von VT-x und AMD-V

    Darüber hinaus muss man die Virtualisierung von VT-x oder AMD-V veranlassen. Dies erfolgt in den Einstellungen der VM unter Optionen => CPU/MMU-Virtualisierung, wo man die letzte der 4 Optionen wählt ("Intel VT-x/AMD-V für die Virtualisierung des Befehlssatzes und Intel EPT/AMD RVI für die Virtualisierung der MMU verwenden").

    Für die Virtualisierung von Intel VT und AMD-V wählt man in der VM für ESXi die vierte Option.

    Grundsätzlich könnte man nun ESXi in die neu angelegte VM installieren. Allerdings wird der Hypervisor dort nur 32-Bit-Gäste unterstützen. Um auch mit 64-Bit-Systemen klarzukommen, bedarf es noch weiterer Einstellungen. So muss man in die .vmx-Datei der eben angelegten VM die Zeile

    vhv.enable = "true"

    hinzufügen.

    Virtuelle Hardware 9 wird benötigt

    Eine Hürde für den erfolgreichen Start eines 64-Bit-Gastes stellt der vSphere Client dar, dessen Wizard zum Anlegen einer neuen VM nicht auf der Höhe der Zeit ist. Egal ob man die Variante Typisch oder Benutzerdefiniert gewählt hat, in beiden Fällen wird die VM mit der Version 8 der Virtual Hardware konfiguriert. Benötigt wird aber die Version 9. Aufgrund dieser Fehlkonfiguration erhält man deshalb beim Start einer 64-Bit-VM die Fehlermeldung "This virtual machine is configured for 64-bit guest operating systems. However, 64-bit operation is not possible. This host does not support VT."

    Bei der Auswahl der virtuellen Hardware ist der vSphere Client noch auf dem Stand von ESXi 5.0.

    Dieses Problem kann man beheben, indem man die virtuelle Hardware der VM auf den neuesten Stand bringt. Wenn die virtuelle Maschine ausgeschaltet ist, dann öffnet man in der Bestandliste des vSphere Client das Kontextmenü der VM und führt dort den Befehl Upgrade virtueller Hardware durchführen aus.

    Hyper-V in VM unter ESXi

    Nach dem gleichen Muster wie ESXi kann man auch Hyper-V als Gast in einer VM ausführen. Die Auswahl des Betriebssystems fällt hier leichter, weil Windows Server 2012 (64-Bit) in der Liste enthalten ist. Zusätzlich zu den Einstellungen für ESXi muss man für Hyper-V eine weitere Zeile in die .vmx-Datei eintragen:

    hypervisor.cpuid.v0 = FALSE

    Zu bedenken ist auch hier, dass zur Ausführung von 64-Bit-Gästen die Virtual Hardware 9 benötigt wird.

    5 Kommentare

    Bild von pathfinder
    pathfinder sagt:
    23. April 2013 - 9:23

    Hallo, das mit der Virtual Hardware 9 kann ich nicht ganz nachvollziehen. Ich habe meinen Hyper-V Failovercluster zu Testzwecken in der Hardwareversion 8 und es läuft einwandfrei?!
    Hab mich an die Anleitung von Veeam gehalten und es funzt: http://www.veeam.com/blog/nesting-hyper-v-with-vmware-workstation-8-and-...

    Bild von Wolfgang Sommergut
    23. April 2013 - 11:55

    Und wie sieht es mit der Unterstützung von 64-Bit-Gästen im virtualisierten Hyper-V aus? Die Systemvoraussetzungen von VMware für virtualized HV sind jedenfalls recht eindeutig: http://communities.vmware.com/docs/DOC-8970

    Bild von pathfinder
    pathfinder sagt:
    23. April 2013 - 12:15

    OK, stimmt, ich hab bis dato nur einen 32-Bit-Gast im virtualisierten Hyper-V am laufen. 64-Bit hab ich noch nicht getestet.

    Bild von Kaze
    Kaze sagt:
    27. Juni 2013 - 18:36

    Guten Tag,

    ich habe Hyper-V auf einem Heimserver installiert und bekomme keine Verbindung aufgrund von Berechtigungen und dieser Beitrag lässt mich an meiner Installation schon zweifeln. Brauche ich noch ESXI über HyperV?, oder kann ich HyperV auch auf eine blanke Platte installieren und dann virtuelle Maschinen wie Debian und Windows Server 2012 laufen lassen?

    Gruß

    Kaze :)

    Bild von Volker Sternemann
    28. Juni 2013 - 14:03

    Wolfgang, Du bist der Größte!

    Wie lange habe ich nach so einem Tutorial suchen müssen, um nicht immer diese nervigen "BlueScreens" nach einer nested Installation eines Hyper-V (Win2012) erleben zu müssen...

    Vielen Dank, exakt so wie Du es beschrieben hast, läuft es auch.

    Schönes Wochenende!

    Volker.