Hyper-V in "Windows 8"

In diesem Beitrag behandeln wir die Unterstützung für Virtualisierung im Windows Client-Betriebssystem. Diese Technologie war ursprünglich in Windows Server enthalten und hat sich dort als äußerst beliebt und erfolgreich erwiesen. Wir wollten die Virtualisierung für bestimmte, grundlegende Szenarien zur professionellen Arbeit mit Windows übernehmen. Die beiden am häufigsten Szenarien hierbei betreffen Softwareentwickler, die mit verschiedenen Plattformen, Clients und Servern arbeiten, sowie IT-Experten, die virtuelle Clients und Server problemlos verwalten möchten. Mathew John, der diesen Beitrag verfasst hat, ist einer der Programmmanager des Hyper-V-Teams. Beachten Sie bei diesem Beitrag, dass wir (wie bei allen Artikeln) die technische Entwicklung erörtern und nicht die Features, die im veröffentlichten Produkt enthalten sein werden. Die Entscheidung über die Aufnahme von Features in das fertige Produkt erfolgt zu einem späteren Zeitpunkt. –Steven 
PS: Soviel Beiträge unmittelbar hintereinander zu veröffentlichen war nicht geplant. Daher kehren wir zu einem etwas gemäßigteren Tempo zurück. Im Augenblick nimmt die Vorbereitung auf die BUILD unsere gesamte Zeit in Anspruch!

Ganz gleich, ob es sich bei Ihnen um einen Softwareentwickler, einen IT-Administrator oder einfach um einen begeisterten Benutzer handelt – viele von Ihnen müssen mehrere Betriebssysteme ausführen, und dies in der Regel auf unterschiedlichen Computern. Nicht alle von uns haben genügend Raum für so viele Rechner und können daher mit Virtualisierung Platz und Zeit sparen.

Bei der Entwicklung von Windows 8 haben wir daran gearbeitet, Hyper-V, die Computervirtualisierungstechnologie aus den beiden letzten Versionen von Windows Server, auch in das Client-Betriebssystem zu integrieren. Kurz gesagt, können Sie mit Hyper-V mehrere x86-Betriebssysteme mit 32-Bit oder 64-Bit gleichzeitig auf demselben Computer ausführen. Statt unmittelbar auf die Hardware des Computers zuzugreifen, werden die Betriebssysteme auf einem virtuellen Computer(Virtual Machine, VM) ausgeführt.

Hyper-V ermöglicht Entwicklern die problemlose Verwaltung mehrerer Testumgebungen und bietet eine einfache Möglichkeit, rasch zwischen den Umgebungen zu wechseln, ohne dass zusätzliche Hardwarekosten anfallen. Beispielsweise veröffentlichen wir für Webentwickler vorkonfigurierte virtuelle Computer mit älteren Versionen von Internet Explorer. IT-Administratoren profitieren zudem von identisch eingerichteten virtuellen Computern und einer gemeinsamen Verwaltungsumgebung über Hyper-V in Windows Server und Windows Client. Außerdem verwenden zahlreiche Benutzer die Virtualisierung für Experimente, ohne das Risiko von Änderungen am eigentlich verwendeten Computer einzugehen.

Eine Einführung in Hyper-V

Für Hyper-V ist ein 64-Bit-System mit Second Level Address Translation (SLAT) erforderlich. SLAT ist ein Feature der aktuellen 64-Bit-Prozessoren von Intel und AMD. Außerdem benötigen Sie eine 64-Bit-Version von Windows 8 und mindestens 4 GB RAM. Hyper-V unterstützt sowohl das Erstellen von 32-Bit- als auch von 64-Bit-Betriebsssystemen in VMs.

Der dynamische Speicher von Hyper-V ermöglicht das bedarfsorientierte Zuweisen und Aufheben der Zuweisung von Speicher für die VM (Sie geben ein Minimum und ein Maximum an) sowie das Aufteilen nicht verwendeten Speichers zwischen VMs. Sie können 3 oder 4 VMs auf einem Computer mit 4 GB RAM ausführen, für weitere VMs ist jedoch mehr Speicher erforderlich. Das Spektrum reicht bis zum Erstellen großer VMs mit 32 Prozessoren und 512 GB RAM.

Windows bietet zwei unterschiedliche Benutzeroberflächen für den Zugriff auf VMs: die VM-Konsole und die Remotedesktopverbindung.

Die VM-Konsole (auch als VMConnect bezeichnet) ist eine Konsole zum Anzeigen der VM. Die Konsole stellt eine Einzelbildschirmanzeige der VM mit einer Auflösung von bis zu 1600 x 1200 in 32-Bit-Farbe bereit. In der Konsole können Sie den Startvorgang der VM verfolgen.

Eine funktionsreichere Oberfläche für die VM stellt die Remotedesktopverbindung dar. Mit der Remotedesktopverbindung bietet die VM dieselben Möglichkeiten wie ein physischer PC. Beispielsweise kann die Ausgabe der VM ggf. auf mehreren Bildschirmen dargestellt werden. Ebenso kann ein Touchscreen für die VM verwendet werden. Die VM zeichnet sich zudem durch vollständige Multimediafunktionen aus, indem Lautsprecher und Mikrofon des physischen Systems verwendet werden. Die Zwischenablage und Ordner des Stammbetriebssystems (d. h. das Windows-Betriebssystem, über das die VMs verwaltet werden) können ebenso für die VMs freigegeben werden. Außerdem können Sie mit der Remotedesktopverbindung auch beliebige USB-Geräte direkt an die VM anschließen.

Zu Speicherzweckenkönnen mehrere Festplatten zu den IDE- bzw. SCSI-Controllern für die VM hinzugefügt werden. Sie können Virtual Hard Disks (VHD- bzw. VHDX-Dateien) oder physische Festplatten verwenden, die unmittelbar der VM zugewiesen werden. VHDs können sich auch auf einem Remotedateiserver befinden, sodass vordefinierte VHDs problemlos verwaltet und vom gesamten Team verwendet werden können.

Die "Live Storage Move"-Funktion von von Hyper-V ermöglicht die praktische Unabhängigkeit der VMs vom zugrundeliegenden Speicherplatz. So können Sie den Speicherplatz der VM von einem lokalen Laufwerk auf ein anderes, auf einen USB-Stick oder eine Remotedateifreigabe verschieben, ohne die VM anhalten zu müssen. Dieses Feature ist für schnelle Bereitstellungen besonders praktisch: Wenn ich schnell eine VM benötigte, starte ich diese aus der VM-Bibliothek auf einer Dateifreigabe und verschiebe den Speicherplatz der VM auf meine lokale Festplatte.

Ein weiteres hervorragendes Feature von Hyper-V ist die Möglichkeit, Momentaufnahmen des virtuellen Computers aufzuzeichnen, während dieser ausgeführt wird. In eine Momentaufnahme werden alle Informationen des virtuellen Computers gespeichert. Damit bietet sich die Möglichkeit, den virtuellen Computers zu einem vorherigen Zeitpunkt wiederherzustellen, was besonders beim Debuggen schwieriger Probleme sehr nützlich ist. Gleichzeitig bieten virtuelle Hyper-V-Computer sämtliche Verwaltungsvorteile von Windows. Hyper-V-Komponenten können mit Windows Update aktualisiert werden, ohne dass eine zusätzliche Wartung erforderlich wird. Außerdem können bei einer Installation über Hyper-V weiterhin alle Vorteile von Windows genutzt werden.

Trotz allem bestehen bei der Virtualisierung Einschränkungen. Features oder Anwendungen, die von spezieller Hardware abhängen, können auf VMs nur eingeschränkt verwendet werden. So funktionieren Windows BitLocker und Measured Boot, die TPM (Trusted Platform Module) benötigen, auf einer VM möglicherweise nicht ordnungsgemäß. Außerdem funktionieren Spiele oder Anwendungen möglicherweise nicht richtig, für die GPU-Verarbeitung (ohne Software-Fallback) erforderlich ist. Auch Anwendungen, die Timer mit weniger als 10 Millisekunden erfordern, z. B. latenzsensitive Hochpräzisionsanwendungen, wie Programme zum Abmischen von Live-Musik usw., können auf VMs Probleme verursachen. Das Stammbetriebssystem wird auch über der Hyper-V-Virtualisierungsebene ausgeführt, besonders ist hierbei jedoch der Direktzugriff auf die gesamte Hardware. Daher können Anwendungen mit besonderen Hardwareanforderungen ohne Probleme im Stammbetriebssystem ausgeführt werden, bei hochpräzisen Anwendungen können jedoch auch hier Probleme auftreten.

Denken Sie daran, dass auch für alle Betriebssysteme auf VMs eine Lizenz erforderlich ist.

Es folgt ein kurzer Überblick über die Funktionsweise von Hyper-V in Windows 8.

HTML5-Video wird in Ihrem Browser nicht unterstützt.

Laden Sie dieses Video herunter, und spielen Sie es in einem geeigneten Media-Player ab:
MP4 in hoher Qualität | MP4 in niedriger Qualität

Unterstützung von VM-Kommunikation über drahtlose NICs

Wie Sie in der Demo gesehen haben, ist das Erstellen eines externen Netzwerk-Switches besonders einfach. Sie müssen lediglich einen physischen Netzwerkadapter (Physical Network Adapter, NIC) aus einer Dropdownliste auswählen und auf "OK" klicken. Dies funktionierte bereits unter Windows Server Hyper-V, jedoch musste diese Funktion auch mit drahtloses NICs verwendet werden können, um in Windows 8 vergleichbare Ergebnisse zu erzielen – eine neue Herausforderung.

Das Problem

Der virtuelle Switch in Hyper-V ist ein "Layer-2 Switch", d. h. zum Schalten (z. B. dem Ermitteln, wie ein bestimmtes Ethernet-Paket geroutet wird) wird die MAC-Adresse verwendet, mit der jede (physische und virtuelle) Netzwerkkarte eindeutig identifiziert wird. Die MAC-Adresse des Quell- und Zielcomputers werden mit jedem Ethernet-Paket gesendet. Der Layer-2-Switch ermittelt hiermit, wohin das eingehende Paket gesendet werden soll. Eine externer virtueller Switch ist über einen physischen NIC mit der Außenwelt verbunden. Ethernet-Pakete, die von einer VM an einen Computer in der Außenwelt gesendet werden, verwenden diesen physischen NIC. Das bedeutet, dass der physische NIC Datenverkehr von allen VMs übertragen muss, die mit diesem virtuellen Switch verbunden sind. Daraus folgt, dass die über den physische NIC gesendeten Pakete mehrere MAC-Adressen enthalten (jeweils eine für jeden virtuellen NIC einer VM). Dies wird bei verdrahteten physischen NICs unterstützt (indem der NIC in den "Promiscuous Mode" geschaltet wird), jedoch nicht bei drahtlosen NICs, da der Drahtloskanal des WiFi-NICs und dessen Zugriffspunkt ausschließlich Ethernet-Pakete mit der MAC-Adresse des WiFi-NICs zulassen. Anders ausgedrückt, Hyper-V wäre mit der aktuellen Architektur für virtuelle Switches nicht in der Lage, WiFi-NICs für einen externen Switch zu verwenden.

Dargestellt wird eine Stammpartition einer VM, die auf Computer 1 gehostet wird. Beide Computer sind (in dieser Reihenfolge) mit Computer 2 verbunden: virtueller NIC auf der Stammpartition (MAC: A), verbunden mit einem virtuellen externen Switch, verbunden mit einem physischen verdrahteten NIC (MAC: Ph1), verbunden mit einem physischen NIC an Computer 2 (MAC: Ph2). Und der virtuelle NIC auf der VM (MAC: B), verbunden mit einem virtuellen externen Switch, verbunden mit einem physischen verdrahteten NIC (MAC: Ph1), verbunden mit einem physischen NIC an Computer 2 (MAC: Ph2).Abbildung 1: Netzwerkverbindung zwischen einer VM und einem externen Computer mithilfe einer Kabelverbindung

Die Lösung

Wir haben die Microsoft Bridging-Lösung verwendet, um diese Einschränkung zu umgehen. Diese Lösung nutzt ARP-Proxying (für IPv4) und Neighbor Discovery-Proxying (für IPv6), um bei ausgehenden Paketen die MAC-Adresse des virtuellen NICs durch die MAC-Adresse des WiFi-Adapters zu ersetzen. Die Brücke enthält die interne Zuordnung zwischen der IP-Adresse des virtuellen NICs und dessen MAC-Adresse, um sicherzustellen, das Pakete aus der Außenwelt an den entsprechenden virtuellen NIC gesendet werden.

Hyper-V integriert die Brücke beim Erstellen des virtuelles Switches, sodass beim Erstellen eines virtuellen externen Switches mithilfe eines WiFi-Adapters Hyper-V Folgendes ausführt:

  1. Erstellen einer einzelnen Adapterbrücke mit Verbindung zum WiFi-Adapter
  2. Erstellen eines externen virtuellen Switches
  3. Verbinden des externen virtuelles Switches mit der Brücke anstelle einer direkten Bindung an den WiFi-Adapter

In diesem Modell erfolgt das Ethernet-Switching noch immer im virtuellen Switch, und die MAC-Übersetzung erfolgt in der Brücke. Endbenutzer, die ein externes Netzwerk erstellen, bemerken keinen Unterschied bei der Auswahl eines kabelgebundenen oder drahtlosen NICs.

Dargestellt wird eine Stammpartition und eine VM, die auf Computer 1 gehostet wird. Beide Computer sind (in folgender Reihenfolge) mit Computer 2 verbunden: virtueller NIC auf der Stammpartition (MAC: A), verbunden mit einem virtuellen externen Switch, verbunden mit einer Microsoft Bridge (MAC-Übersetzung), verbunden mit einem WiFi-NIC (MAC: Ph1), verbunden mit einem physischen NIC (MAC: Ph2) an Computer 2. Und der virtuelle NIC auf der VM (MAC: B), verbunden mit einem virtuellen externen Switch, verbunden mit einer Microsoft Bridge (MAC-Übersetzung), verbunden mit einem WiFi-NIC (MAC: Ph1), verbunden mit einem physischen NIC (MAC: Ph2) an Computer 2.
Abbildung 2: Netzwerkverbindung zwischen einer VM und einem externen Computer mithilfe einer WiFi-Verbindung

Letztendlich war es uns mithilfe der Übertragung von Hyper-V von Windows Server auf Windows Client möglich, eine stabile Virtualisierungstechnologie bereitzustellen, die in Hinsicht auf die Anforderungen an Skalierbarkeit, Sicherheit, Zuverlässigkeit und Leistung der meisten Rechenzentren entwickelt wurde. Mit Hyper-V können Entwickler und IT-Experten ab sofort effizientere und kostengünstigere Umgebungen für Tests auf mehreren Computern erstellen.

– Mathew John