Die aktuellen HPE-Server sind kompatibel mit Windows Server 2016. Windows Server- und Hyper-V-Container setzen auf Windows Server 2016 auf und sind damit ebenso kompatibel und nutzbar. HPE erweitert die Kompatibilität der verschiedenen ProLiant-Server durch Service Packs. Daher ist es durchaus auch möglich, dass auf älteren ProLiant-Servern Windows Server 2016 installiert werden kann.
So lassen sich Risiken bei der Planung eines SAP S/4HANA-Projektes vermeiden
Ziel dieses Ratgebers ist es, SAP-Nutzern, die sich mit SAP S/4HANA auseinandersetzen, Denkanstöße zu liefern, wie sie Projektrisiken bei der Planung Ihres SAP S/4HANA-Projektes vermeiden können.
Allerdings muss hier auf kompatible Treiber gesetzt werden. Die Einrichtung der Container-Technologie Docker aus Windows Server 2016 auf HPE-Servern erfolgt entweder direkt auf dem Hyper-V-Host selbst oder es wird auf dem HPE-Hyper-V-Host noch ein virtueller Server installiert auf dem ebenfalls Hyper-V verwendet wird. . Auch hier gilt darauf zu achten, dass die Treiber für den Server kompatibel mit Windows Server 2016 sind. Windows 2016 ist zwingend erforderlich für die Nutzung von Windows Server- und Hyper-V-Container. Früheren Versionen von Windows unterstützen dies Container-Technologie nicht.
Um Windows Server 2016 und Hyper-V 2016 auf einem HPE ProLiant-Server zu installieren, sollte im ersten Schritt überprüft werden, ob der entsprechende Server kompatibel mit Windows Server 2016 ist. Microsoft stellt hier den Windows Server Catalog zur Verfügung.
In Windows Server 2016 lässt sich in Hyper-V die eingebettete (nested) Virtualisierung verwenden, wenn auf dem Gast-System ebenfalls Windows Server 2016 verwendet wird. Dadurch lassen sich zum Beispiel recht schnell kleinere Produktivumgebungen aufbauen, aber auch Test- und Entwicklungsumgebungen. Alles was dazu notwendig ist, stellen Microsoft mit Windows Server 2016 und HPE mit aktuellen Treibern für Windows Server 2016 zur Verfügung. Sobald ein Server Windows Server 2016 und Hyper-V unterstützt, lässt sich auch die eingebettete Virtualisierung nutzen.
Windows Server 2016 als Grundlage für Hyper-V und Hyper-V-Container
Um Hyper-V und damit Hyper-V-Container in Windows Server 2016 zu betreiben, ist zunächst eine stabile Installation von Windows Server 2016 auf dem Server notwendig. Wichtig ist hier auch die Installation der neuesten Treiber, die auf der jeweiligen Treiberseite des HPE-Servers zur Verfügung gestellt werden. Hier ist es auch wichtig, möglichst das aktuelle Service Pack von HPE für den ProLiant-Server zu installieren. ZDNet.de hat die Installation in einem eigenen Beitrag erläutert.
Sobald der Server eingerichtet ist, lässt sich Hyper-V auf verschiedenen Wegen installieren und einrichten. Die Installation von Hyper-V ist Voraussetzung für den Betrieb von Hyper-V-Containern. Generell lassen sich auf einem Server parallel virtuelle Server auf Basis von Hyper-V betreiben und Hyper-V-Container auf Basis von Windows Server 2016 inklusive der Container-Technologie. Dabei können Unternehmen auf die herkömmliche Installation von Windows Server 2016, mit grafischer Oberfläche, setzen, oder auf Core-Server und die neue Nano-Installation. Sobald ein Server kompatibel mit Windows Server 2016 ist, lassen sich auch alle Varianten von Windows Server 2016 auf dem Server installieren.
Server für die Installation von Hyper-V vorbereiten
Sobald der Server installiert und eingerichtet ist, sollten über Windows-Update in den Einstellungen alle Aktualisierungen des Servers installiert werden.
Vor der Installation von Hyper-V sollte außerdem darauf geachtet werden, dass in den BIOS/UEFI-Einstellungen alle Unterstützungen für die Virtualisierung, und damit Hyper-V aktiviert sind. In den meisten BIOS/UEFI-Einstellungen von HPE-Servern sind diese Einstellungen über „System Options\Virtualization Options“ zu finden. Alle Funktionen sollten dazu auf „Enabled“ gesetzt werden.
Intel Virtualisierungserweiterungen: VT-x, VT-d, EPT
Seit 2006 bietet Intel Prozessoren, die spezielle Virtualisierungsfunktionen beinhalten. Diese wurden in der Zwischenzeit erweitert und werden allgemein als Intel Virtualization Technology (VT-x) bezeichnet. Die entsprechenden Optionen sind im BIOS/UEFI von HPE-Servern zu finden, und sollten aktiviert werden. Neben VT-x bietet die Xeon-Plattform außerdem noch VT-d (Virtualization Technology for Directed I/O), wodurch Virtualisierungslösungen direkten Zugriff auf Peripheriegeräte wie Netzwerkkarten erhalten. Zudem erlaubt die in neueren Xeon-Prozessoren verfügbare CPU-Erweiterung Extended Page Tables (EPT), auch bekannt als Second-Level-Address-Translation (SLAT), der Virtualisierungslösung einen beschleunigten Speicherzugriff. Eine Übersicht der für Virtualisierung optimierten Xeon-Prozessoren findet sich auf der Intel-Webseite.
Intel unterstützt IT-Verantwortliche mit dem „Intel IT Server Sizing Tool“. Dieses hilft bei der Konfiguration von Servern auf Basis der gemessenen, notwendigen Leistung der VMs und Container. Zusätzlich bietet Microsoft das Tool Coreinfo, um zu testen, welche Funktionen ein Prozessor unterstützt. Hyper-V bietet in Windows Server 2016 neue Maximalwerte. Diese sollten Administratoren beim Kaufen von neuen Servern berücksichtigen. Die neuen Maximalwerte sind in der Tabelle zu sehen.
Maximale CPUs pro Host | 512 |
Maximaler Arbeitsspeicher pro Host | 24 TB |
Maximaler Arbeitsspeicher pro VM | 16 TB |
Maximale Anzahl an virtuellen CPUs pro VM | 240 |
Tabelle 1: Maximale Ausbaustufe Hyper-V-Hosts mit Windows Server 2016
Hyper-V installieren
Sobald der Server vorbereitet ist, kann Hyper-V installiert werden. Zur Installation wird entweder der Server-Manager verwendet, oder die PowerShell. Sicherlich ist die Verwendung des Server-Managers die einfachste Möglichkeit, um Hyper-V auf einem Server mit Windows Server 2016 zu installieren. Über Verwalten/Rollen und Features hinzufügen wird der Server ausgewählt, auf dem Hyper-V installiert werden soll. Anschließend wird die Serverrolle Hyper-V ausgewählt. Hier unterscheiden sich ProLiant-Server nicht von anderen Servern.
Da aktuelle HPE-Server Windows Server 2016 unterstützen, wird auch die neue Nano-Installation unterstützt. Diese lässt sich auf physischen Servern betreiben, aber auch als virtueller Server auf Basis eines HPE-Hyper-V-Hosts mit Windows Server 2016. Die Einrichtung dazu erfolgt entweder über den Microsoft Nano Server Image Builder, oder mit der PowerShell. Der Nano Server Image Builder zeigt am Ende des Assistenten die notwendigen Befehle für die PowerShell ebenfalls an. Soll das Nano-Image auf einem physischen HPE ProLiant-Server verwendet werden, sollten in das Image alle aktuellen Windows Server 2016-Treiber des Servers eingebunden werden. Dieser Vorgang erfolgt über einen Assistenten im Microsoft Nano Server Image Builder.
Neben dem Server-Manager kann auch die PowerShell zur Installation von Hyper-V genutzt werden. Mit dem Cmdlet-Aufruf Get-WindowsFeature Hyper-V* wird angezeigt, ob die Rolle und die Verwaltungstools bereits installiert sind. In Windows Server 2016 kann der Befehl mit der Option -Computername die Installation von Hyper-V auch auf Remoteservern im Netzwerk überprüfen.
Um Hyper-V zu installieren, wird das Cmdlet Install-WindowsFeature verwendet. Mit Install-WindowsFeature Hyper-V wird die Serverrolle installiert, mit der Option -IncludeManagementTools inklusive der Verwaltungstools. Soll der Server gleich automatisch neu starten, wird noch die Option -Restart verwendet.
Eingebettete Virtualisierung nutzen
Um Hyper-V-Container auf Basis eines virtuellen Servers zu nutzen, besteht auf einem Hyper-V-Host mit Windows Server 2016 die Möglichkeit die eingebettete Virtualisierung zu aktivieren. Liegt ein Nano-Server-Image vor, kann dieses als virtueller Server über den Hyper-V-Manager in Hyper-V eingebunden werden. Als Basis dazu dient das Image, beziehungsweise die virtuelle Festplatte, die wiederum mit dem Nano Server Image Builder erstellt wurde.
Bevor auf einem virtuellen Server auf Basis von Hyper-V die eingebettete Virtualisierung genutzt werden kann, müssen einige Vorbereitungen getroffen werden. Zunächst muss der dynamische Arbeitsspeicher für die VM deaktiviert werden, falls dieser eingeschaltet ist. Außerdem müssen die Virtualisierungs-Erweiterungen für die vCPU aktiviert werden, genauso wie MAC Adress Spoofing. Die Virtualisierungs-Erweiterungen werden am besten in der PowerShell des Hosts aktiviert, indem der folgende Befehl in der PowerShell eingegeben wird:
Set-VMProcessor -VMName „VMName“ -ExposeVirtualizationExtensions $true
Das Spoofing der MAC-Adressen wird in den Einstellungen der VM über den Menüpunkt „Erweiterte Features“ unterhalb des virtuellen Netzwerkadapters eingestellt. Die Funktion kann aber auch in der PowerShell erfolgen:
Get-VMNetworkAdapter -VMName „VMName“ | Set-VMNetworkAdapter -MacAddressSpoofing On
Generell muss darauf geachtet werden, dass bei der Verwendung dieser Virtualisierung viele Funktionen in der VM nicht mehr funktionieren oder eingeschränkt sind. Livemigration ist genauso wenig möglich, wie das Erstellen und Verwenden von Snapshots. Auch das Speichern des Zustands der VM ist nicht möglich, die VM muss bei Änderungen immer neu gestartet werden. Eine solche Konfiguration ist daher vor allem für Test- und Entwicklungsumgebungen interessant.
Die eingebettete Virtualisierung wird über ein PowerShell-Skript aktiviert, das direkt auf dem HPE-Hyper-V-Host heruntergeladen und gestartet werden kann:
Invoke-WebRequest https://raw.githubusercontent.com/Microsoft/Virtualization-Documentation/master/hyperv-tools/Nested/Enable-NestedVm.ps1 -OutFile ~/Enable-NestedVm.ps1
Danach wird das Skript gestartet:
~/Enable-NestedVm.ps1 -VmName „<Name der VM>“
Sobald die eingebettete Virtualisierung aktiviert ist, kann in der VM Hyper-V installiert werden. Dieser Vorgang kann ebenfalls in der PowerShell auf dem Host gestartet werden. Dazu kann auch die neue PowerShell Direct-Funktion in Windows Server 2016 verwendet werden. Diese erlaubt das Ausführen von PowerShell-Befehlen auf dem Host zu den VMs:
Invoke-Command -VMName „w2k16“ -ScriptBlock { Enable-WindowsOptionalFeature -FeatureName Microsoft-Hyper-V -Online; Restart-Computer }
Natürlich kann auch die PowerShell innerhalb der VM oder der Server-Manager in der VM verwendet werden. Anschließend steht Hyper-V in der VM zur Verfügung. Die Verwaltung von Hyper-V erfolgt identisch mit der Verwaltung von Hyper-V auf einem Hyper-V-Host.
Container-Host und Hyper-V-Container nutzen
Um parallel zu Hyper-V auch Hyper-V-Container auf einem HPE-Server zu nutzen, muss der Server zusätzlich noch zum Container-Host heraufgestuft werden. Dazu ist zunächst die Installation des Container-Features auf dem Server notwendig. Die Installation kann entweder über den Server-Manager oder die PowerShell erfolgen. In der PowerShell wird dazu der Befehl Install-WindowsFeature Containers verwendet. Beim Erstellen eines neuen Nano-Servers muss die Container-Funktion in das Image mit eingebunden werden.
Die Windows Server Container-Technologie auf Basis von Docker ist Grundlage für den Betrieb von Hyper-V-Containern. Um Windows Server Container zu verwalten, müssen einige Erweiterungen installiert werden. Dazu muss der Server über eine Internetverbindung verfügen, denn über die Online-Funktion der PowerShell lassen sich diese Funktionen am einfachsten installieren:
Install-Module -Name DockerMsftProvider -Force
Install-Package -Name docker -ProviderName DockerMsftProvider -Force
Restart-Computer -Force
Um ein Image auf Basis von Windows Server 2016 zur Verfügung zu stellen, müssen zuerst die notwendigen Daten Images bei Microsoft/Docker heruntergeladen und auf dem Server integriert werden:
docker pull microsoft/windowsservercore
docker pull microsoft/nanoserver
Mit dem Docker-Client kann der Docker-Hub nach Images auf Basis von Windows Server 2016 durchsucht werden:
docker search Microsoft
Mit dem Befehl Install-Module posh-docker laden Administratoren die Vervollständigungs-Automatik für den Docker-Client herunter und integrieren ihn in der PowerShell. Nach der Installation kann mit der Tabulator-Taste durch die Befehle und Optionen des Docker-Clients durchgeschaltet werden, ähnlich wie in der Eingabeaufforderung. In der PowerShell wird das Modul mit Import-Module posh-docker integriert.
Hyper-V-Container erstellen und konfigurieren
Zunächst gibt es keine Unterschiede zwischen Hyper-V-Containern und herkömmlichen Windows-Server-Containern. Beim Erstellen eines Hyper-V-Containers mit Docker wird der Parameter –-isolation=hyperv verwendet. Wollen Entwickler einen herkömmlichen Container mit Docker zu einem Hyper-V-Container konvertieren, muss eine Isolierungs-Markierung gesetzt werden. Der Befehl sieht dann zum Beispiel folgendermaßen aus:
Docker run –rm -it –isolation=hyperv nanoserver cmd
Die Vorteile lassen sich an einem Beispiel zeigen. Wird zum Beispiel mit dem folgenden Befehl ein Container erstellt, und in diesem Container ein dauerhaften Ping-Befehl gestartet, ist der Prozess auf dem Host selbst zu erkennen:
docker run -d Microsoft/windowsservercore ping localhost -t
Der erfolgreich erstellte Container wird mit docker ps angezeigt. Mit docker top <Name des Containers> lassen Sie sich die Prozesse im Container anzeigen.
In diesem Beispiel ist anschließend der Ping-Prozess und dessen ID zu sehen. Mit dem Befehl get-process -Name ping lassen sich diese Informationen anzeigen. An dieser Information ist zu erkennen, dass der Prozess die gleiche ID hat, wie im Container.
Administratoren erstellen einen Hyper-V-Container mit dem gleichen Befehl, zum Beispiel mit:
docker run -d –isolation=hyperv microsoft/nanoserver ping -t localhost
Hier kann jetzt auf dem gleichen Weg die ID des Prozesses für den Ping-Befehl abgerufen werden. Dazu wird wieder docker top verwendet. Wird erneut nach dem Prozess auf dem Host gesucht, ist dieser nicht zu sehen. Auf dem Host wird in diesem Fall aber der Prozess einer neuen VM sichtbar. Dabei handelt es sich um den virtuellen Computer, der den Hyper-V-Container kapselt und die ausgeführten Prozesse vor dem Hostbetriebssystem schützt.
Fazit
Hyper-V und Hyper-V-Container lassen sich optimal auf HPE-Servern betreiben. Wichtig ist, dass auf dem Server die neuesten Treiber und das aktuelle Service Pack installiert sind und dass BIOS/UEFI so eingestellt ist, dass die Virtualisierung optimal unterstützt ist.