Nested Virtualization in Windows Server 2016, Container und Nano-Server

Zuletzt aktualisiert am 25. Dezember 2023 von Lars

Für Nested Virtualization (oder für die Deutsch-Freaks unter uns "Verschachtelte Virtualisierung) hat sich Microsoft lange überhaupt nicht interssiert. Dabei wird auf einer VM eine weitere VM virtualisiert. VMware kann das schon recht lange. Aber wofür sollte man das auch wollen? Höchstens für Laborumgebungen, mit denen man sich z.B. auf einem gut ausgestatten Rechner eine Umgebung mit mehreren Servern und Clients zum üben aufbauen will (oder muss). Oder für Demos bei Kunden.

Mit Server 2016 kann nun Microsoft Hyper-V auch Nested Virtualization. Das funktioniert so einfach, dass hier keine Schritt für Schritt Anleitung folgt.

Für eine VM mit dem Namen "Nested1" ist zusätzlich das Kommando...

set-vmprocessor -vmname "nested1" -exposevirtualizationextensions $true

...in der Powershell eingeben und ab geht es...

Nested Virtualization in Windows Server 2016

Hier ist ein Windows Server 2016 TP4 auf einem Windows Server 2016 TP4 zu sehen, der wiederrum auf einem VMWare ESXi virtualisiert ist.

Für produktive Umgebungen wird das nicht empfohlen. Für nicht produktive Umgebungen nur mit Windows Server 2016, nach einem ersten Test scheint das aber auch mit älteren Betriebssstemen zu funktionieren.

Warum funktioniert nun endlich "Nested Virtualization" in Hyper-V? Die Antwort dürfte lauten, da Windows in Server 2016 Container einführen wird.

Docker

Docker ist einOpen-Source-Tool, mit dem Anwendungen mithilfe von Betriebssystemvirtualisierung in Container isoliert werden können. Container sind einfacher zwischen Servern zu migrieren und zu installieren werden als herkömmliche Anwendungen. Ausserdem sind sie voneinander getrennt und können sich so nicht gegenseitig beeinflussen. Erklärung Docker bei Wikipedia

Docker war früher unter Windows nicht nutzbar. Damit sich das ändert, sind Docker und Microsoft für Windows Server 2016 eine Partnerschaft eingegangen.

Microsoft bietet für die Unterstützung zwei verschiedene Arten von Container an.

Windows Server Container

Container laufen über der sogenannten Docker Engine. Dadurch kann das Windows-Betriebssystem Applikationen in einer isolierten, VM-ähnlichen Art laufen lassen. Windows Server Container teilen sich aber den Kernel des Host Betriebssystems, was eine hohe Trennung nicht möglich macht.

Windows Server 2016 - Windows Server Container

Hyper-V Container

Hyper-V Container funktionieren erst einmal ähnlich wie Windows Server Container, legen aber zusätzlich eine Hyper-V Schicht unter die Applikation, was eine bessere Isolation der Anwendungen ermöglich. Mag das für kleinere Umgebungen unsinnig erscheinen, so macht das Sinn, wenn man an grössere Umgebungen, Cloud-Lösungen wie Azure denkt, bei denen die Anbieter die Kunden nicht auf Host-Ebene "rumrutschen" lassen wollen.

Windows Server 2016 - Hyper-V Container

Nano-Server

Für die Container bringt Microsoft die Bereitstellungsvariante "Nano-Server" mit Windows Server 2016 auf den Markt. Damit sind nochmal wesentlich schlankere Server als mit der Core-Variante möglich.

Es fehlt:

  • Komplette graphische Benutzeroberfläche
  • 32-Bit-Support (Wow64)
  • Diverse Serverkomponenten
  • Remote-Desktop-Support möglich

Das Management erfolgt über WMI und PowerShell.

Lauf dem Artikel auf ZDNET soll der Nano-Server:

  • 93 Prozent Platz sparen
  • 80 Prozent Reboots sparen
  • 92 Prozent weniger kritische Aktualisierungen haben
  • 73 statt 98 Treiber (Server Core) laden
  • 22 statt 46 Dienste (Server Core) laden
  • 12 statt 31 Ports (Server Core) offen haben
Windows Server 2016 - Nested Virtualization in Windows Server 2016

Einschränkungen

Was nicht unterstützt wird, ist...

  • Dynamic memory
  • Runtime memory resize
  • Checkpoints
  • Live migration
  • Save/restore

Kein Netzwerk

Interessanterweise bekam ich die "verschachtelte" Virtualisierung sogar auf einer Hyper-V VM, die bereits unter VMware ESXi virtualisiert war, zum laufen (sogar ohne Powershell-Kommando). Allerdings lief zunächt bei mir in beiden Fällen (Hyper-V Host / VMware Host) das Netzwerk in der verschachtelten VM nicht mehr.

Auf dem Hyper-V Host war des Rätsels Lösung die Aktivierung des Mac-Adress-Spoofings, dann wird die LAN-Schnittstelle bis in die VM heruntergereicht.

Windows Server 2016 - Nested Virtualization in Windows Server 2016

Beim unter ESXi virtualisierten Host funktioniert das leider nicht, wahrscheinlich weil sich mir entzieht, wie ich das MAC Adress Spoofing unter ESXi aktiviere. Weiss das jemand?

Du willst meine Arbeit unterstützen? Dann freue ich mich über eine kleine Spende!

Schreibe einen Kommentar