Mit dem neusten Insider Preview von Windows 10 (Build 10565) wurde eine neue Funktion in Hyper-V aufgenommen – “Nested Virtualization”. Dies ermöglicht Hyper-V in Hyper-V zu installieren. Warum man dies tun sollte, werden sich sicherlich einige Fragen. Hierzu gibt es einige Szenarien, wie z.B. Hosting oder für mich einfach als Labor-Umgebung. Die “gekapselte Virtualisierung” lässt für mich letztendlich auch die Möglichkeit zu, die Docker-Integration näher zu betrachten.
Allgemeine Informationen zum Nano-Server
Was steckt hinter einem Nano-Server? Warum entwickelt Microsoft ein solches Produkt? Was hat es den für Vorteile einen solchen Server einzusetzen?
Solche Fragen sind es, die einem schnell durch den Kopf schießen, wenn man Nano-Server hört.
Die Idee dahinter ist ein schmaler Server, der weniger Hardware-Ressourcen nutzt, weniger Wartung benötigt, und nach einem Neustart die Dienste schnell wieder zur Verfügung stehen. In einem Beitrag vom Windows Server Blog wurde der Nano-Server mit einer üblichen Installation verglichen mit folgenden Ergebnissen:
- 93 % weniger Festplattengröße (VHD)
- 92 % weniger kritische Updates
- 80 % weniger Neustarts
Damit dies gelingt, wurden viele Teile des Betriebssystems entfernt. So gibt es keine GUI, kein 32-Bit Support und MSI mehr. Eine lokale Anmeldung oder einen Remote Desktop existiert auch nicht. Der Nano-Server wird remote über WMI und Powershell administriert. Derzeit kann auf einem Nano-Server die Rollen bzw. Funktionen
- Hyper-V Servers,
- Failover-Clusters,
- Files- und Storage-Server,
- Windows Defender,
- Basis Treiber für Netzwerkkarten und Storage-Controller
installiert werden.
Auch wenn ich in diesem Beitrag eine virtuelle Maschine erstelle, kann der Nano-Server auf physischer Hardware per WDS oder System Center Configuration Manager 2016 installiert werden.
Voraussetzungen
Damit die Laborumgebung aufgebaut werden kann, wird folgendes vorausgesetzt.
- mind. Windows 10 Insider Build 10565
- Hyper-V Rolle muss installiert sein
- Windows Server 2016 Technical Preview 3
Es bleibt zu erwähnen, dass es sich bei der gekapselten Virtualisierung um eine Beta-Version handelt. Um diese Funktion testen zu können, müssen noch einige Einschränkungen in Kauf genommen werden:
- Dynamic Memory wird (noch) nicht unterstützt
- Sichern und Widerherstellen funktioniert noch nicht
- Live-Migration ist noch nicht möglich
- Hyper-V Replica ist noch nicht möglich
- MAC-Spoofing muss aktiviert sein, sofern Netzwerkfunktionalitäten benötigt werden
- Virtual Based Security darf nicht aktiv sein
- Derzeit wird nur Intels Virtualisierungstechnik VT-x unterstützt, AMD-V wird folgen.
Vorbereitung
Die Installation erfolgt nicht wie üblich über ein ISO-Image. Es wird über ein WIM-Image zur Verfügung gestellt, das auf dem Windows Server 2016 TP 3 hinterlegt ist. Ich verwende das Windows 10 Insider Build 10565 als Hyper-V-Host und binde ich das Windows Server 2016 Image als Laufwerk E:\ ein.
Darüber hinaus wird eine administrative Powershell-Sitzung benötigt. Dabei spielt es keine Rolle ob es sich um die CLI oder die ISE handelt.
Installation des Nano-Servers mit der Hyper-V-Rolle
In der Grundkonfiguration werden keine Serverrollen installiert. Dies bedeutet, dass man diese ggf. bereits mit der Installation hinzufügt oder später einzeln kopiert und installiert.
In dem nachfolgenden Beispiel wird ein virtueller Hyper-V-Server installiert, der nach der Installation in eine Domäne aufgenommen wird. Eine direkte Aufnahme in die AD mit der Installation ist ebenfalls möglich. Wer mehr zur Installation wissen möchte lege ich den Technet-Artikel: Getting Started with Nano Server nahe.
Nano-Server-Installation in einer virtuellen Umgebung
Die Rahmenparameter:
- Name der VM: srv-nano01
- Domäne: lab.dom
- Admin-Kennwort: AendereMich!
- IP-Adresse: 10.0.0.101/24
- Temp-Verzeichnis: D:\tmp
- Installations-Verzeichnis: D:\VMs\srv-nano01.lab.dom
- eingebundenes Server-ISO: E:\
- Hyper-V-Switch-Name: vSw_internal (mit der Installation allerdings vSw_external, Erklärung folgt)
Die Installation (srv-nano01)
Es gibt neben den hier vorgestellten Variante ein weiteres Script aus der Technet Gallery. Ich werde es bei Gelegenheit ausprobieren Laut Dokumentation sind einige Vereinfachungen, wie z.B. Integration der IP-Adresse umgesetzt worden. Nun aber zum Ursprung.
- Kopie der Scripte vom eingebundenen Server-ISO-Datei in ein Verzeichnis
copy -Recurse E:\NanoServer D:\tmp
- Einrichtung der Umgebung zur Installation
. .\\new-nanoserverimage.ps1
- Erstellung der VHD für die VM
New-NanoServerImage -MediaPath E:\ -BasePath .\Base -TargetPath D:\VMs\srv-nano01.lab.dom -ComputerName srv-nano01 -GuestDrivers –Compute –AdministratorPassword (convertto-securestring –string "AendereMich!" –asplaintext –force) –Language en-us
- Erstellung der VM
New-VM –Name srv-nano01 –MemoryStartupBytes 4GB –SwitchName vSw_external –VHDPath D:\VMs\srv-nano01.lab.dom\srv-nano01.lab.dom.vhd –Path d:\VMs\srv-nano01.lab.dom –Generation 1
Die Installation ist soweit durchgelaufen und der Nano-Server kann nun gestartet werden. In der Console meldet man sich mit Administrator und seinem Kennwort an.
Nach der Anmeldung erhält man die Netzwerkübersicht. Mit der Tab-Taste, erhält man die Möglichkeit einen Adapter auszuwählen um alle Informationen zur Einstellung angezeigt zu bekommen.
Es läuft nun ein Hyper-V-Server unter Hyper-V. Ich möchte nicht unterschlagen, dass der Nano-Server für mein Lab vorgesehen ist und ich diesen in mein aktuelles Produktiv-Netz betreibe. Dies hat den Hintergrund, dass ich diesen mit der Installation nicht vollständig vorkonfigurieren konnte. Dies hole ich nun nach und logge mich per Powershell auf den Nano-Server ein.
Hinweis:
Es gibt selbstverständlich die Möglichkeit mit dism und einem unattended-File zu arbeiten. Dies erspare ich mir aber in der aktuellen Beta-Phase und wähle den oben beschriebenen Weg. Auf dem Beitrag von Getting Started with Nano Server gibt es auch einen Absatz (Configuring command to run on first boot -> To inject a static IP address) der sich damit beschäftigt.
Die Konfiguration des Nano-Servers
- Ich möchte den Server über Powershell verwalten und muss diesen erstmals als vertrauenswürdig bekannt machen. Auf meinem Windows 10-Host geschieht dies über
Set-Item WSMan:\localhost\Client\TrustedHosts "192.168.1.172"
- Sollte bei diesem Befehl ein Fehler auftreten, ist vermutlich der Dienst (WinRM) nicht gestartet. Ein
Start-Service WinRM
schafft Abhilfe. - Die Remoteverbindung über Powershell kann nun aufgebaut werden.
Enter-PSSession -ComputerName 192.168.1.172 -Credential 192.168.1.172\Administrator
- Umschreiben der IP-Adresse. !Vorsicht: sobald der Befehl abgesetzt wird, wird die IP-Adresse sofort umgeschrieben, die Session bricht ab.
Netsh interface ip set address Ethernet static 10.0.0.101. 255.255.255.0
- Durch den Wechsel in die Hyper-V-Konsole kann nun der Switch der Maschine gewechselt werden oder man bemüht die Powershell hierfür
Connect-VMNetworkAdapter -VMName srv-nano01 -SwitchName "vSw_internal"
- Damit ich die Maschine in meinem Lab nutzen kann, muss ich diese nun auch wieder als vertrauenswürdig einstufen.
Set-Item WSMan:\localhost\Client\TrustedHosts "10.0.0.101"
- Die Verbindung sollte nun auch funktionieren
Enter-PSSession -ComputerName 10.0.0.101 -Credential 10.0.0.101\Administrator
Beitritt in die Domäne
In Folgenden wird der Server in die Domäne aufgenommen.
- [vm-nano01] Öffnen des Firewall zum Zugriff auf das Dateisystem des Nano-Servers.
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=yes
- [dc01] Erstellung einer Blob-Datei (auf dem Domänencontroller)
djoin.exe /provision /domain lab.dom /machine srv-nano01 /savefile .\odjblob
- [dc01] Kopieren der Datei
net use z: \\10.0.0.101\c$ md z:\tmp copy odjblob z:\tmp net use z: /delete
- [vm-nano01] Domänen-Join ausführen
djoin /requestodj /loadfile c:\tmp\odjblob /windowspath c:\windows /localos
- [vm-nano01] Neustart
shutdown /r /t 5
Quellen/Verweise:
- Microsofts Technet (entlisch): Allgemeine Informationen zum Nano-Server
Microsoft Announces Nano Server for Modern Apps and Cloud - Microsofts Technet (englisch): Informationen zum Nano-Server
Getting Started with Nano Server (englisch) - Petri.com (englisch): Information zur Einrichtung eines Nano-Servers
How to Install Windows Server 2016 Nano in a VM - Golem.de: Informationen zu Docker und Server 2016
Vorschau auf Windows Server 2016 enthält Container - Technet Gallery, ein aktuelleres Script, dass die der TP3 ersetzt
Create a New Nano Server VHD/VHDx
The post Installation Nano-Server als Nested Hyper-V appeared first on blog.alekel.de.