Categories: Software

Hyper-V und Hyper-V-Container auf HPE-Servern betreiben

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.

ANZEIGE

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.

Auf HPE-Servern lässt sich Hyper-V auf Basis von Windows Server 2016 installieren (Screenshot: Thomas Joos).

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.

In den BIOS/UEFI-Einstellungen muss die Unterstützung für die Virtualisierung aktiviert werden, um Hyper-V oder vSphere 6.5 effizient zu nutzen (Screenshot: Thomas Joos).

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.

Hyper-V lässt sich auf HPE-Servern auch auf Basis der Nano-Installation von Windows Server 2016 betreiben (Screenshot: Thomas Joos).

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.

Auf HPE-Servern kann auch die Nano-Installation von Windows Server 2016 verwendet werden (Screenshot: Thomas Joos).

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.

Mit der eingebetteten Virtualisierung kann Hyper-V innerhalb von Hyper-V-VMs installiert werden. Sinnvoll ist das für Testumgebungen oder Container-Hosts (Screenshot: Thomas Joos).

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.

ZDNet.de Redaktion

Recent Posts

Forscher entwickeln Exploits per GPT-4 aus Sicherheitswarnungen

Die Tests basieren auf tatsächlich existierenden Sicherheitslücken. GPT-4 erreicht eine Erfolgsquote von 87 Prozent. Alle…

17 Stunden ago

HostPress für Agenturen und E-Commerce Betreiber

Vorstellung Im Jahr 2016 hat Marcus Krämer die Firma HostPress gegründet, da es zu diesem…

18 Stunden ago

V-NAND: Samsung steigert Bit-Dichte um 50 Prozent

Die neue V-NAND-Generation bietet die derzeit höchste verfügbare Bit-Dichte. Samsung steigert auch die Geschwindigkeit und…

24 Stunden ago

Bericht: Google entwickelt App-Quarantäne für Android

Die Sicherheitsfunktion taucht in einer Beta eines kommenden Android-Updates auf. Die Quarantäne beendet unter anderem…

2 Tagen ago

Kostenloser Kurs zum Ausbau von Low-Code-Programmierung

Die OutSystems Developer School hilft Entwicklern, in 2 Wochen komplexe reaktive Anwendungen mit der Low-Code-Plattform…

2 Tagen ago

Cloudflare: DNS-basierte DDoS-Angriffe steigen im ersten Quartal um 80 Prozent

Das Jahr 2024 beginnt laut Cloudflare mit einem Paukenschlag. Die automatischen Systeme des Unternehmens wehren…

2 Tagen ago