Schritte zur Bereitstellung von Hyper-V-VMs auf einem VMware ESXi-Server
Es gibt viele großartige Möglichkeiten, die modernen Hypervisor-Systeme zu nutzen, um geschäftliche Probleme und technische Herausforderungen zu lösen. Eine der wirklich tollen Möglichkeiten, die sich mit den heutigen Hypervisoren wie VMware vSphere bieten, ist die Konfiguration verschachtelter Virtualisierung. Dies eröffnet viele verschiedene Möglichkeiten zum Testen und Ausführen von Hypervisoren innerhalb von VMware vSphere.
Ein häufiger Anwendungsfall für die verschachtelte Virtualisierung innerhalb von VMware vSphere ist die Ausführung von Microsofts Hyper-V-Hypervisor zu Test- und Lernzwecken.
In diesem Beitrag werfen wir einen Blick auf die Konfiguration von verschachtelten Hyper-V-VMs auf einem VMware ESXi-Server und sehen, wie dies für die Verwendung in einem Labor oder einer anderen Umgebung konfiguriert werden kann.
Was ist verschachtelte Virtualisierung
Bevor wir uns ansehen, wie VMware vSphere konfiguriert wird, um die verschachtelte Virtualisierung von Hyper-V innerhalb eines ESXi-Servers zu aktivieren, werfen wir einen Blick darauf, was verschachtelte Virtualisierung genau ist. Bei der verschachtelten Virtualisierung handelt es sich um die Ausführung eines Hypervisors innerhalb eines Hypervisors. Das bedeutet, dass Sie Hypervisoren vom Typ 1 wie VMware vSphere ESXi und Hyper-V innerhalb einer VM auf VMware vSphere ESXi ausführen können.
Der Hypervisor, der in der VM auf dem VMware vSphere ESXi-Server läuft, betrachtet die VM-Hardware einfach als seine physische Host-Hardware, auf der er virtuelle Gastmaschinen ausführen kann. Dies ermöglicht einige sehr interessante Szenarien, wenn Sie Ihre VMware vSphere-Umgebung nutzen, um andere Hypervisoren wie Microsoft Hyper-V zu hosten.
Ein wichtiger Punkt in Bezug auf VMware vSphere ist, dass die verschachtelte Virtualisierung anderer Hypervisoren wie Hyper-V innerhalb einer vSphere-VM kein unterstütztes Szenario ist. Das gilt nicht nur für andere Hypervisoren außerhalb von VMware vSphere. Auch die Ausführung von ESXi innerhalb einer physischen ESXi-Hostumgebung wird nicht unterstützt. Dies wird von VMware offiziell im KB-Artikel Support for running ESXi/ESX as a nested virtualization solution (2009916) erwähnt.
Die folgenden Konfigurationen sind technisch möglich, wenn VMware ESXi innerhalb anderer VMware-Hypervisor-Produkte ausgeführt wird, werden jedoch nicht unterstützt. Dazu gehören die folgenden.
- VMware ESXi/ESX, das in VMware Workstation oder VMware Fusion ausgeführt wird
- VMware ESXi/ESX, das in VMware ESXi/ESX ausgeführt wird
- VMware ESXi/ESX, das in anderen Hypervisor-Lösungen von Drittanbietern ausgeführt wird
Natürlich fällt die Ausführung von Hyper-V unter dieselbe Art von Support-Ausschluss. Es gibt nur eine Situation, in der verschachtelte Virtualisierung unterstützt wird, und das ist die verschachtelte vSAN Witness-Appliance.
Außerhalb dieses unterstützten Anwendungsfalls mit der vSAN Witness-Appliance wird verschachtelte Virtualisierung für die Produktionsumgebung nicht unterstützt. Mit anderen Worten, wenn Sie bei der verschachtelten Virtualisierung auf Probleme stoßen, sind Sie mit dem Support auf sich allein gestellt.
Solange Sie das Support-Szenario mit verschachtelter Virtualisierung verstehen, ist es eine großartige Funktion, die Sie für andere Zwecke nutzen können. Sie kann sehr effektiv für Laborumgebungen, Entwicklungs-, Test- und andere ähnliche Szenarien eingesetzt werden.
Warum Hyper-V innerhalb von VMware ausführen
Warum sollten Sie einen Hypervisor innerhalb eines anderen Hypervisors ausführen? Genauer gesagt, warum sollten Sie Hyper-V innerhalb einer VMware ESXi-VM ausführen wollen? Wie bereits erwähnt, ist dies keine unterstützte Konfiguration für den Produktionseinsatz. Die Ausführung von Hyper-V innerhalb von VMware bietet viele große Vorteile. Betrachten wir die folgenden Punkte:
- Laborumgebungen
- Keine zusätzliche Hardware oder Netzwerkausrüstung erforderlich
- Einfache Bereitstellung und Demontage von Hyper-V-Hosts
Laborumgebungen
Dies ist wohl der häufigste Anwendungsfall für die Bereitstellung eines Hyper-V-Hosts innerhalb einer virtuellen VMware-Maschine. Die verschachtelte Virtualisierung ermöglicht die einfache Bereitstellung von Laborumgebungen, Entwicklungs- und Testumgebungen sowie anderen möglichen Anwendungsfällen. Hyper-V-Labore können verwendet werden für:
- Lernen
- Softwaretests
- POC’ing Hyper-V für verschiedene Teile Ihrer Infrastruktur oder als Ersatz
- Nachahmung einer Hyper-V-Umgebung in einem anderen Teil Ihrer Infrastruktur
- Patch-Tests
In vielen kleinen bis mittelgroßen Umgebungen ist möglicherweise nur eine VMware vSphere-Umgebung verfügbar und keine Hyper-V-Hosts. Wenn Administratoren einen Hyper-V-Host nutzen möchten, um ihre Fähigkeiten außerhalb des VMware ESXi-Hypervisors zu erlernen und weiterzuentwickeln, bieten die verschachtelten Virtualisierungsfunktionen von VMware vSphere die perfekte Möglichkeit, einen Hyper-V-Host innerhalb einer VMware vSphere-Umgebung bereitzustellen.
Es wird keine zusätzliche Hardware oder Netzwerkausrüstung benötigt
Mit dieser Möglichkeit, Hyper-V innerhalb von VMware vSphere zu verschachteln, ist es nicht erforderlich, zusätzliche Hardware für eine Laborumgebung oder eine Art POC zu finden. Dies alles kann innerhalb von vSphere bereitgestellt werden. Die robusten virtuellen Netzwerkfunktionen von vSphere ermöglichen auch die Bereitstellung aller speziellen Netzwerke, die Sie benötigen, wenn Sie sich für die Bereitstellung eines Hyper-V-Clusters entscheiden. Dazu gehören Live-Migration-, Storage- und Cluster-Netzwerke, um nur einige zu nennen. Mit virtuellen Switch-Port-Gruppen können Sie die Konfigurationen simulieren, die sonst mit physischen Netzwerkgeräten durchgeführt werden müssten.
Einfaches Bereitstellen und Abreißen von Hyper-V-Hosts
Dieser Vorteil ist nicht spezifisch für die verschachtelte Virtualisierung, sondern für die VMware vSphere-Virtualisierung im Allgemeinen. VMware verfügt über sehr umfangreiche Automatisierungstools, darunter PowerCLI. Damit lassen sich VMs ganz einfach nach Bedarf einrichten und zerstören. Ganze Laborkonstrukte können für das Provisioning und Deprovisioning automatisiert werden. Dies macht die verschachtelte Virtualisierung mit den einfachen Möglichkeiten zur Automatisierung Ihrer Infrastruktur noch nützlicher.
Voraussetzungen für verschachtelte Hyper-V VMs auf einem VMware ESXi Server
Wenn Sie sich für die verschachtelte Virtualisierung entschieden haben, können Sie dann einfach eine neue VM in vSphere ESXi erstellen und mit dem Laden Ihrer Hyper-V VM beginnen? Nicht ganz, aber der Prozess ist immer noch sehr einfach, wenn man bedenkt, welch enorme Komplexität unter der „Haube“ erforderlich ist, damit verschachtelte Virtualisierung tatsächlich funktioniert. Bei den Anforderungen für die Ausführung verschachtelter Hyper-V-VMs auf einem VMware ESXi-Server gibt es im Wesentlichen zwei Bereiche zu beachten. Dazu gehören:
- Hardwaregestützte Virtualisierung für das Gastbetriebssystem freigeben
- MAC-Adressfälschungsübertragungen aktivieren
Lassen Sie uns einen Blick auf jeden dieser Bereiche und ihre Bedeutung für die Ausführung von verschachtelten Hyper-V VMs auf einem VMware ESXi Server werfen.
Hardware-gestützte Virtualisierung für das Gastbetriebssystem freilegen
Diese erste Anforderung ist absolut notwendig. Es handelt sich um eine Einstellung unterhalb der Einstellungen für die einzelne VM, die Sie zur Unterbringung Ihrer Hyper-V-Installation verwenden. Bearbeiten Sie die Einstellungen auf Ihrer verschachtelten Hyper-V-VM, erweitern Sie CPU und setzen Sie ein Häkchen neben Hardware-unterstützte Virtualisierung für das Gastbetriebssystem anzeigen.
Was passiert, wenn Sie dieses Flag für die hardwareunterstützte Virtualisierung in VMware für Ihre Hyper-V VM nicht aktivieren? Bei der einfachen Installation Ihres Windows Server-Betriebssystems wird kein Fehler auftreten, da dies wie die Installation jeder anderen VM funktioniert. Wenn Sie jedoch zur Installation der Hyper-V-Rolle kommen, wird ein Fehler angezeigt, wenn diese Einstellung für die virtuelle Maschine nicht aktiviert ist. Beachten Sie die folgende Fehlermeldung: „Hyper-V kann nicht installiert werden: Der Prozessor verfügt nicht über die erforderlichen Virtualisierungsfähigkeiten“.
Als Nebenbemerkung: Dieses Flag muss entweder für Hyper-V Core-Installationen oder mit der Hyper-V-Rolle in Windows Server mit installierter Desktop Experience gesetzt werden. Diese Fähigkeit ist für jede verschachtelte Installation der Hyper-V-Rolle innerhalb von VMware vSphere erforderlich.
Sie können dieses Flag auch mit ein wenig PowerCLI-Code setzen, der es ermöglicht, das Flag einfach auf der angegebenen VM zu setzen.
$vmName = ‚MyHyperVVM‘
$vm = Get-VM -Name $vmName
$spec = New-Object VMware.Vim.VirtualMachineConfigSpec
$spec.nestedHVEnabled = $true
$vm.ExtensionData.ReconfigVM($spec)
Enabling Promiscuous Mode and MAC Address Forged Transmits
Wenn Sie eine verschachtelte Hyper-V-Installation innerhalb von VMware vSphere konfigurieren, möchten Sie höchstwahrscheinlich nicht nur einen Server mit der Hyper-V-Rolle installieren, sondern auch eine verschachtelte Hyper-V-VM auf dem von Ihnen ausgeführten verschachtelten Hyper-V-Server ausführen können.
Es kann sein, dass Ihnen die Möglichkeit der Netzwerkkonnektivität mit der Hyper-V-VM egal ist, aber Sie möchten in der Lage sein, eine echte Netzwerkkonnektivität mit der verschachtelten virtuellen Maschine herzustellen, die auf dem verschachtelten Hyper-V-Host in der virtuellen VMware-Maschine ausgeführt wird.
Wenn Sie diese Funktionalität haben möchten, gibt es eine Reihe von Netzwerkkonfigurationseinstellungen, die Sie auf Ihrem VMware vSwitch vornehmen müssen, mit dem Ihr verschachtelter Hyper-V-Host verbunden ist.
Dies kann notwendig sein, da es seit der Veröffentlichung von VMware vSphere 6.7 eine neue Entwicklung in der VMware vSwitch-Technologie und der verschachtelten Virtualisierung gibt. Vor der Veröffentlichung von VMware vSphere ESXi 6.7 hat VMware das MAC-Lernen auf einem vSwitch nicht so implementiert, wie es bei einem echten physischen Switch der Fall ist. Dies galt sowohl für den vSphere Standard Switch als auch für den vSphere Distributed Switch.
Da dies beim VMware vSwitch vor vSphere 6.7 der Fall ist, werden Pakete verworfen, wenn ein virtueller Switch Pakete empfängt, deren MAC-Adresse nicht mit der pNIC-MAC-Adresse des verschachtelten Hypervisor-Hosts vmnic übereinstimmt (im Falle eines verschachtelten ESXi-Hosts).
Um diese Einschränkung zu umgehen, müssen zwei Einstellungen auf dem vSwitch aktiviert werden, der Promiscuous-Modus und gefälschte Übertragungen.
Was ist mit vSphere 6.7 und höher? Vor der Veröffentlichung von vSphere ESX 6.7 begann VMware mit der Arbeit im Bereich der verschachtelten Virtualisierung und der MAC-Learning-Funktionalität im Zusammenhang mit virtuellen Switches. Es wurde ein „MAC Learning Fling“ veröffentlicht, mit dem die MAC-Lernfunktionalität eingeführt wurde, damit Sie den Promiscuous-Modus und gefälschte Übertragungseinstellungen nicht aktivieren müssen.
Diese Einstellung wurde mit der Veröffentlichung von VMware vSphere 6.7 ESXi implementiert.
Was sind die Voraussetzungen für die neue MAC-Lernfunktion in ESXi 6.7?
Es gibt ein paar Voraussetzungen, die Sie erfüllen müssen, bevor Sie die neue MAC-Lernfunktion in vSphere 6.7 nutzen können. Diese sind wie folgt:
- Upgrade von vCenter Server und ESXi-Servern auf vSphere 6.7
- Ausführen des vSphere Distributed Switch (vDS)
- Upgrade des vDS auf die neueste Version (6.6)
- Verwaltet per vSphere Distributed Switch Port Group Basis
- Aktuell verwaltet mit der vSphere API
Eine Sache zu beachten, die neue MAC Learning Funktionalität mit vSphere 6.7 und einem vDS 6.6 vSwitch ist standardmäßig nicht aktiviert. Sie müssen die Flags entsprechend mit der API setzen.
Um diesen Prozess zu vereinfachen, hat William Lam, ein Mitarbeiter der Solution Architecture, einige PowerCLI-Funktionen geschrieben, mit denen Sie den Status von MAC Learning überprüfen und MAC Learning in Ihrer vSphere-Umgebung sehr einfach einstellen können. Laden Sie das PowerCLI-Skript von William aus seinem Github-Repository hier herunter:
https://github.com/lamw/vghetto-scripts/blob/master/powershell/MacLearn.ps1
Ein Beispiel für die Ausgabe der Funktion Get-MacLearn zur Überprüfung einer vSphere Distributed Switch Port Group sieht wie folgt aus. Beachten Sie die Felder:
- MacLearning
- NewAllowPrimiscuous
- NewForged Transmits
- NewMacChanges
- Limit
- LimitPolicy
So sieht eine vDS 6.7 vSwitch-Portgruppe mit Standardeinstellungen aus.
Für verschachtelte ESXi-Installationen und damit auch für Hyper-V-VMs, die innerhalb Ihres vSphere ESXi-Hypervisors ausgeführt werden, möchten Sie die folgenden Einstellungen vornehmen:
- MAC Learning: true
- Promiscuous mode: False
- Forged Transmit: True
- MAC Changes: False
- Limit: 4096 (Sie können dies einstellen oder den Standardwert belassen)
- Limit Policy: Drop (Sie können dies einstellen oder den Standardwert beibehalten)
Die oben genannten Empfehlungen können mit dem folgenden PowerCLI-Code eingestellt werden:
- Set-MacLearn -DVPortgroupName @(„DPG-Servers“) -EnableMacLearn $true -EnablePromiscuous $false -EnableForgedTransmit $true -EnableMacChange $false
Wie Sie oben sehen, ist die Einstellung für den Promiscuous-Modus auf False gesetzt. Selbst bei aktiviertem MAC-Learning ist die gefälschte Übertragung immer noch auf True gesetzt.
Die in vSphere 6.7 enthaltene MAC-Learning-Funktionalität ermöglicht es, einige der Sicherheitsimplikationen des Betriebs einer verschachtelten VM innerhalb Ihrer vSphere 6.7-Umgebung zu vermeiden, indem sie verhindert, dass der Promiscuous-Modus aktiviert werden muss.
Können Sie verschachtelte Umgebungen sichern?
Auch wenn die verschachtelte Virtualisierung nur von VMware vSphere für die vSAN Witness-Appliance unterstützt wird, möchten Sie möglicherweise Ihre verschachtelte Umgebung sichern, wenn Sie verschachtelte Hyper-V-VMs innerhalb von VMware vSphere ESXi ausführen. Kann dies durchgeführt werden?
Ja, absolut.
Mit einer modernen Backup-Lösung wie Vembu BDR Suite können Sie nicht nur Ihre VMware vSphere- oder Microsoft Hyper-V-Produktionsumgebung sichern, sondern auch alle verschachtelten Installationen von ESXi oder Hyper-V, die Sie in der Umgebung haben.
Zusammenfassung
Verschachtelte Hyper-V-VMs auf einem VMware ESXi-Server bieten Ihnen die Möglichkeit, mit Hyper-V herumzuspielen, auch wenn Sie nur eine VMware vSphere-Umgebung haben. Wie gezeigt, gibt es viele gute Anwendungsfälle für verschachtelte Virtualisierung. Dazu gehören Lernen, Softwaretests, POC’ing und das Patchen von Hyper-V-Hosts.
So leistungsfähig die verschachtelte Virtualisierung in VMware vSphere auch ist, man könnte annehmen, dass der Prozess zu ihrer Aktivierung extrem schwierig ist. Bei der Bereitstellung einer VMware vSphere-VM, die die Hyper-V-Installation enthält, müssen Sie jedoch nur einige Überlegungen anstellen. Dazu gehören die Freigabe des Flags für die hardwaregestützte Virtualisierung auf der virtuellen CPU der Hyper-V-VM und die Implementierung des Promiscuous Mode oder des MAC-Learnings für die Verbindung aller verschachtelten Hyper-V-VMs mit dem Netzwerk.
Alles in allem sind verschachtelte Hyper-V VMs auf einem VMware ESXi Server eine extrem leistungsstarke Funktion und ermöglichen es Ihnen, Hyper-V zu testen und zu erlernen, ohne die physische Ausrüstung für den Betrieb des Hyper-V Hypervisors.
Folgen Sie unseren Twitter- und Facebook-Feeds für neue Versionen, Updates, aufschlussreiche Beiträge und mehr.