Windows Server 2016 Hyper-V: Sicherer, aber nicht schneller

Mit Windows Server 2016 hat Microsoft eine lange Liste von Verbesserungen an Hyper-V eingeführt. Neben funktionalen Ergänzungen wie Containerunterstützung, verschachtelter Virtualisierung und erhöhten Speicher- und vCPU-Grenzwerten finden Sie eine Reihe neuer Funktionen, darunter Prüfpunkte für die Produktion und die Möglichkeit, Speicher und Netzwerkadapter im laufenden Betrieb hinzuzufügen, um die Verwaltung zu vereinfachen.

Das Hauptziel von Microsoft in der Hyper-V-Version 2016 scheint jedoch die Verbesserung der Sicherheit gewesen zu sein. Ich würde sogar sagen, dass die neue Killer-Funktion von Hyper-V geschützte VMs sind, die mit BitLocker-Verschlüsselung und einem Guardian-Service arbeiten, um sicherzustellen, dass virtuelle Maschinen nur auf autorisierten Hosts ausgeführt werden.

Wenn mich eine Hyper-V 2016-Funktion zum Upgrade drängen würde, wäre dies die abgeschirmte VM-Funktion. Die Möglichkeit, VMs der zweiten Generation mehr Speicher zuzuweisen, und die Möglichkeit, Virtualisierungshosts Speicher und Netzwerkadapter im laufenden Betrieb hinzuzufügen, sind ebenfalls große Vorteile.

Ein Bereich, den Hyper-V 2016 möglicherweise nicht verbessert, ist die VM-Leistung. Tatsächlich weisen meine Sandra-Benchmark-Tests einer virtuellen Windows Server 2012 R2-Maschine auf Hyper-V 2012 R2 im Vergleich zu Hyper-V 2016 auf einen Rückschritt hin. Ich würde diese Ergebnisse keinesfalls als endgültig bezeichnen, aber denken Sie daran, wenn Sie Windows Server 2016 Hyper-V für Ihre eigenen Workloads evaluieren.

Der Hyper-V-Einrichtungsprozess

Für die Zwecke dieser Überprüfung habe ich einen vorhandenen Windows Server 2012 R2-Server auf Windows Server 2016 aktualisiert. Der Aktualisierungsprozess war größtenteils fast identisch mit dem der Installation von Windows Server 2012 R2. Der Unterschied bestand darin, dass der Setup-Assistent eine Warnmeldung anzeigt, dass Windows Server-Upgrades nicht empfohlen werden und Sie eine Neuinstallation durchführen sollten. Der Setup-Assistent hindert Sie nicht daran, ein direktes Upgrade durchzuführen. Sie müssen jedoch auf die Schaltfläche Bestätigen klicken, um die Warnmeldung zu bestätigen.

Ich habe den Upgrade-Prozess fortgesetzt (obwohl ich seitdem mehrere Neuinstallationen durchgeführt habe), weil ich sehen wollte, was passieren würde. Außerdem wurde auf dem von mir aktualisierten Server eine Neuinstallation von Windows Server 2012 R2 ausgeführt. Ich hatte die Hyper-V-Rolle installiert und einige virtuelle Maschinen erstellt, aber keine zusätzliche Software (außer Microsoft-Patches) installiert oder abnormale Konfigurationseinstellungen aktiviert.

Der Windows Server-Aktualisierungsprozess verlief reibungslos. Alle meine vorhandenen Betriebssystemeinstellungen wurden beibehalten, und meine virtuellen Maschinen blieben nach dem Upgrade funktionsfähig. Darüber hinaus fühlte sich der Hyper-V-Manager immer noch völlig vertraut. Obwohl Microsoft in Windows Server 2016 eine Reihe neuer Hyper-V-Funktionen eingeführt hat, hat sich am Hyper-V-Manager nur wenig geändert. Administratoren mit Vorkenntnissen in Hyper-V fühlen sich bei Verwendung der neuen Version sicher wie zu Hause.

Rollende Hyper-V-Cluster-Upgrades

Obwohl ich ursprünglich ein direktes Upgrade eines einzelnen Hyper-V-Hosts durchgeführt habe, unterstützt Microsoft auch fortlaufende Upgrades von Cluster-Hyper-V-Bereitstellungen. Dies bedeutet, dass Server, auf denen Windows Server 2016 Hyper-V ausgeführt wird, zu vorhandenen Windows Server 2012 R2-Hyper-V-Clustern hinzugefügt werden können und im Wesentlichen Windows Server 2012 R2-Hyper-V-Hosts emulieren, sodass sie vollständig am Cluster teilnehmen können. Virtuelle Windows Server 2012 R2 Hyper-V-Maschinen können live auf Windows Server 2016 Hyper-V-Knoten migriert werden, wodurch ein Upgrade des Cluster-Betriebssystems ermöglicht wird, ohne dass eine der virtuellen Maschinen offline geschaltet werden muss.

Während des Schreibens dieser Überprüfung habe ich einen Cluster mit drei Knoten von Windows Server 2012 Hyper-V-Servern bereitgestellt und dann einen Windows Server 2016 Hyper-V-Knoten hinzugefügt. Ich konnte den Knoten erfolgreich mit dem Cluster verbinden und VMs zwischen den beiden verschiedenen Hyper-V-Versionen live hin und her migrieren. Kurz gesagt, der fortlaufende Cluster-Upgrade-Prozess hat einwandfrei funktioniert.

Ich habe mein Cluster-Upgrade im Laufe eines Nachmittags abgeschlossen, aber Microsoft ermöglicht eine langfristige Koexistenz zwischen Hyper-V-Versionen innerhalb eines Clusters. Die langfristige Koexistenz wird jetzt sicherlich einfacher, da Microsoft den Hyper-V-Manager überarbeitet hat, sodass er gleichzeitig mit mehreren Hyper-V-Versionen verwendet werden kann. Über den Hyper-V-Manager in Windows Server 2016 können Sie Hyper-V auch unter Windows Server 2012 und Windows Server 2012 R2 verwalten.

Ein Nachteil des neuen Hyper-V-Managers: Da Microsoft jetzt Updates für die Hyper-V-Integrationsdienste über den normalen Patch-Verwaltungsprozess bereitstellt, scheint die Option zum Bereitstellen der Integrationsdienste entfernt worden zu sein. Die Installation von Integrationsdiensten über Windows Update klingt nach Fortschritt, aber es würde nicht schaden, wenn die alte Methode als Fallback verfügbar wäre.

Beachten Sie, dass Sie nicht mehr Windows Server 2012 R2-Knoten hinzufügen können, sobald auf allen Clusterknoten Windows Server 2016 Hyper-V ausgeführt wird und Sie die Funktionsebene des Clusters aktualisiert haben (eine absichtliche Verwaltungsaktion, die Sie über PowerShell ausführen) Cluster. Nachdem Sie die Funktionsebene des Clusters aktualisiert haben, gibt es kein Zurück mehr.

Geschirmte virtuelle Maschinen

Während im Laufe der Jahre viel Arbeit geleistet wurde, um VMs vor externen Bedrohungen zu schützen, waren virtuelle Maschinen (einschließlich solcher auf konkurrierenden Plattformen wie VMware, Xen und KVM) weiterhin anfällig für Kompromisse durch einen betrügerischen Administrator. Nichts hindert einen Administrator daran, eine gesamte VM auf ein USB-Flash-Laufwerk zu kopieren und damit zur Tür hinauszugehen. Sicher, es war früher möglich, virtuelle Festplatten zu verschlüsseln, aber ein autorisierter Administrator kann jede Verschlüsselung auf VM-Ebene problemlos rückgängig machen.

In Windows Server 2016 Hyper-V verschlüsselt die geschützte VM-Funktion die Festplatten und den Status einer virtuellen Maschine so, dass andere als VM- oder Mandantenadministratoren die VM nicht starten oder auf deren Inhalt zugreifen können. Die Funktion nutzt eine neue Windows Server-Funktion namens Host Guardian Service, die die Schlüssel zum Ver- und Entschlüsseln geschützter VMs enthält.

Der Host Guardian Service prüft, ob der Hyper-V-Host zum Ausführen der virtuellen Maschine berechtigt oder "attestiert" ist. Das ist richtig - Administratoren können geschützte VMs einschränken, sodass sie nur auf bestimmten Hosts ausgeführt werden, die den Bestätigungstest bestehen. Dies bedeutet, dass, wenn ein nicht autorisierter Administrator eine abgeschirmte VM auf ein Flash-Laufwerk kopieren würde, die VM-Kopie für den Administrator unbrauchbar wäre. Die VM kann nicht außerhalb der Organisation ausgeführt werden, und auf deren Inhalt kann nicht zugegriffen werden, da die zum Entschlüsseln der VM erforderlichen Schlüssel vom Host Guardian-Dienst geschützt werden.

Der Host Guardian Service unterstützt zwei verschiedene Attestierungsmodi: Admin-vertrauenswürdige Attestierung und TPM-vertrauenswürdige Attestierung. Die vom Administrator vertrauenswürdige Bescheinigung ist der einfachere der beiden Bereitstellungsmodi, jedoch bei weitem nicht so sicher wie die von TPM vertrauenswürdige Bescheinigung. Von Administratoren vertrauenswürdige Hosts basieren auf der Mitgliedschaft in einer Active Directory-Sicherheitsgruppe, während von TPM vertrauenswürdige Hosts auf der TPM-Identität und sogar auf Boot- und Code-Integritätsprüfungen basieren.

Zusätzlich zu seinem komplexeren Konfigurationsprozess stellt die TPM-vertrauenswürdige Bescheinigung einige Hardwareanforderungen. Geschützte Hosts müssen TPM 2.0 und UEFI 2.3.1 oder höher unterstützen. Im Gegensatz dazu stellt die vom Administrator vertrauenswürdige Bescheinigung keine wesentlichen Hardwareanforderungen dar, die über die für die Ausführung von Hyper-V erforderlichen Anforderungen hinausgehen.

Obwohl sich der Großteil der Medienberichterstattung zur Sicherheit von Hyper-V 2016 auf abgeschirmte VMs konzentriert hat, hat Microsoft weitere Sicherheitsverbesserungen eingeführt. Beispielsweise unterstützt Hyper-V jetzt Secure Boot für einige Linux-VMs. Laut Microsoft umfassen die unterstützten Linux-Versionen Ubuntu 14.04 und höher, Suse Linux Enterprise Server 12 und höher, Red Hat Enterprise Linux 7.0 und höher sowie CentOS 7.0 und höher.

Eine weitere wichtige Sicherheitsverbesserung ist die Unterstützung der BitLocker-basierten Betriebssystem-Festplattenverschlüsselung in virtuellen Maschinen der 1. Generation. Diese besondere Sicherheitsverbesserung hat in der Presse nicht viel Beachtung gefunden, ist jedoch aufgrund der Anzahl der VMs der Generation 1, die in Produktionsumgebungen ausgeführt werden, von Bedeutung. Schließlich werden VMs der 2. Generation nur für die Verwendung mit bestimmten Gastbetriebssystemen unterstützt. Obwohl die Liste der unterstützten Gastbetriebssysteme im Laufe der Jahre gewachsen ist, werden einige Linux-Bereitstellungen, die möglicherweise auf VMs der 2. Generation ausgeführt werden könnten, weiterhin auf VMs der 1. Generation ausgeführt, da die VM-Version nicht geändert werden kann.

Windows-Container

Eine der in Windows Server 2016 eingeführten Hauptfunktionen sind Container, von denen es zwei Typen gibt. Windows Server-Container teilen sich einen Betriebssystemkern mit dem Host (und allen anderen Containern, die möglicherweise auf dem Host ausgeführt werden), während Hyper-V-Container den Hypervisor und ein leichtes Gastbetriebssystem (Windows Server Core oder Nano Server) verwenden, um eine höhere Ebene bereitzustellen der Isolation. Stellen Sie sich Hyper-V-Container als leichte virtuelle Maschinen vor.

Bisher habe ich einige Zeit damit verbracht, mit beiden Arten von Behältern zu experimentieren. Meine Einschätzung: Obwohl Container wie angekündigt zu funktionieren scheinen, ist mit ihrer Verwendung eine steile Lernkurve verbunden. Container müssen in der Befehlszeile (im Gegensatz zur Verwendung des Hyper-V-Managers) über die Docker-Befehlssyntax erstellt und verwaltet werden, die sich stark von anderen Befehlszeilenumgebungen wie PowerShell unterscheidet.

Ich denke, Container werden sich für Windows-Administratoren als relevant erweisen, aber ich empfehle dringend, Zeit in einer Laborumgebung zu verbringen, um sich an Docker und seine vielen Nuancen zu gewöhnen, bevor Container in der Produktion bereitgestellt werden.

Leistungsfragen

Um die Leistung von Windows Server 2016 zu testen, habe ich einen neuen Server online gestellt und eine Neuinstallation von Windows Server 2012 R2 Hyper-V ausgeführt. Dieser Server war mit veralteter Low-End-Hardware ausgestattet. Angesichts des Ziels, die relative Leistung zu überprüfen, war jedoch keine Hardware auf dem neuesten Stand der Technik erforderlich.

Mit dem neuen Hyper-V-Server für Windows Server 2012 R2 online habe ich eine virtuelle Maschine der Generation 2 erstellt, auf der Windows Server 2012 R2 ausgeführt wird. Sowohl das Host- als auch das Gastbetriebssystem wurden vollständig gepatcht, und meine Test-VM war die einzige auf dem Host vorhandene virtuelle Maschine.

Sobald das neue Gastbetriebssystem betriebsbereit war, installierte ich Sandra 2016 in der virtuellen Maschine, um die Leistung der virtuellen Maschine zu bewerten. Ich interessierte mich hauptsächlich für CPU-, Speicher-, Speicher- und Netzwerkleistung. 

Mit einem Basissatz von Metriken in der Hand habe ich den Hyper-V-Host auf Windows Server 2016 aktualisiert. Microsoft rät von direkten Upgrades ab, entschied sich jedoch für eine anstelle einer Neuinstallation, um meine Testumgebung so konsistent wie möglich zu halten über alle Tests möglich.

Nach Abschluss des Upgrades habe ich die VM gestartet, auf der noch Windows Server 2012 R2 ausgeführt wurde. Als Nächstes habe ich versucht, die Hyper-V Integration Services auf der VM zu aktualisieren, aber Microsoft hat die Option zum manuellen Ausführen entfernt. Die Integration Services werden jetzt über Windows Update bereitgestellt.

Nachdem ich den Windows Server 2016 Hyper-V-Host vollständig gepatcht hatte, wiederholte ich die Benchmark-Tests, um festzustellen, ob die neue Version von Hyper-V zu Leistungssteigerungen führen würde. In der Tat erwies sich das Gegenteil als wahr. Meine VM verzeichnete einen deutlichen Leistungsabfall.

Für meinen letzten Test habe ich ein direktes Upgrade des Gastbetriebssystems auf Windows Server 2016 durchgeführt. Ich habe das neue Gastbetriebssystem vollständig gepatcht und meine Benchmark-Tests ein letztes Mal wiederholt. Diesmal hat sich meine VM-Leistung erheblich verbessert, jedoch nicht ganz auf das Niveau der ursprünglichen Windows Server 2012 R2-VM, die auf einem Windows Server 2012 R2-Host ausgeführt wird, und bei einigen Tests wurde die Leistung weiter verringert.

Ich habe die Metriken, die ich verglichen habe, und die Ergebnisse unten aufgelistet.

Sandra 2016 Test Windows Server 2012 R2-Host und Windows Server 2012 R2-VM Windows Server 2016-Host und Windows Server 2012 R2-VM Windows Server 2016-Host und Windows Server 2016-VM

Prozessorarithmetik (native Gesamtleistung)

27,73 GOPS

20,82 GOPS

26.31 GOPS

Kryptographie-Bandbreite

435 MBit / s

390 MBit / s

400 MBit / s

Prozessor-Intercore-Bandbreite

2,12 GBit / s

2,08 GBit / s

2 GBit / s

Physische Festplatten (Laufwerksbewertung)

975,76 MBit / s

831,9 MBit / s

897 MBit / s

Dateisystem-E / A (Gerätebewertung)

242 IOPS

238 IOPS

195 IOPS

Speicherbandbreite (Gesamtspeicherleistung)

10,58 GBit / s

10 GBit / s

10 GBit / s

Speichertransaktionsdurchsatz

3 MTPS

3 MTPS

2,92 MTPS

Netzwerk-LAN (Datenbandbreite)

7,56 MBit / s

7,21 MBit / s

7,16 MBit / s

Wie Sie sehen, war die Windows Server 2012 R2-VM gemäß meinen Sandra-Tests unter Windows Server 2016 Hyper-V nicht so leistungsfähig wie in der vorherigen Hyper-V-Version. Ich habe jeden Benchmark mehrmals ausgeführt (während der Host inaktiv war), um sicherzustellen, dass meine Metriken korrekt waren. Die Leistung der virtuellen Maschine wurde verbessert, als das Gastbetriebssystem auf Windows Server 2016 aktualisiert wurde, jedoch nicht auf das Niveau des Windows Server 2012 R2-Gasts, der unter Windows Server 2012 R2 Hyper-V ausgeführt wird.

Natürlich sollten Sie diese (und alle anderen) Benchmark-Ergebnisse mit einem Körnchen Salz nehmen. Benchmarks spiegeln nicht immer die Realität wider, und diese Ergebnisse stellen nur eine Reihe von Tests für eine Hardwarekonfiguration dar. Darüber hinaus bin ich bereit, Microsoft den Vorteil eines Zweifels zu geben, da die Metriken auf einem Host erfasst wurden, der von einer früheren Windows Server-Version aktualisiert wurde, anstatt auf einem Host, auf dem eine Neuinstallation ausgeführt wird.

Ihr einziger aussagekräftiger Test für die Hyper-V-Leistung von Windows Server 2016 sind Ihre tatsächlichen Workloads auf Ihrer tatsächlichen Hardware. Angesichts der Ergebnisse der Sandra-Tests sollten Sie die Leistung von Hyper-V 2016 genau beobachten.