Hyper-V: Schlank, aber oho

Endlich hat Microsoft seinen Hypervisor freigegeben. Hyper-V kann überzeugen, lässt aber auch Lücken für künftige Verbesserungen offen.

Artikel erschienen in Swiss IT Magazine 2008/13

     

Lange hat’s gedauert, nun hat Microsoft seine neue Virtualisierungstechnologie Hyper-V endlich fertiggestellt. Das kostenlose Add-on für die Standard-, Enterprise- und Datacenter-Editionen von Windows Server 2008 steht in seiner finalen Fassung zum Download bereit. Wir haben Hyper-V etwas genauer auf den Zahn gefühlt.


Die Hypervisor-Architektur

Microsofts bisherige Virtualisierungsprodukte, Virtual Server und Virtual PC, basierten auf der sogenannten Hosted-Virtualisierung. Dabei läuft die eigentliche Virtualisierungslösung auf einem Host-Betriebssystem und stellt virtuelle Umgebungen für weitere Gastsysteme zur Verfügung.



Der Nachteil dieses Verfahrens ist der Overhead, der durch den Betrieb des Host-Systems verursacht wird. Bei Hyper-V geht Microsoft einen anderen Weg: Statt auf einem Host-Betriebssystem wird die Virtualisierungssoftware direkt auf der Hardware aufgesetzt. Dabei handelt es sich um eine schlanke Softwareschicht, die auch Hypervisor genannt wird und auf der dann die virtualisierten Betriebssysteme betrieben werden. Eines dieser Systeme fungiert als Parent-System (auch Parent- oder Root-Partition genannt), welches für das Management der übrigen Child-Systeme (Child Partitions) zuständig ist.
Hyper-V basiert auf einem Microkernel-Hypervisor. Bei diesem Konzept werden die Treiber für die Hardware nicht in den Hypervisor integriert. Statt dessen werden die Gerätetreiber der jeweiligen virtuellen Maschine genutzt, was für bessere Performance sorgt und das Sicherheitsrisiko vermindern soll.




Hierzu setzt Microsoft auf sogenannte synthetische Gerätetreiber. Anders als bisher werden hier die einer virtuellen Umgebung zur Verfügung gestellten Geräte nicht einfach emuliert, sondern in Form eines für die Virtualisierung optimierten Treibers zur Verfügung gestellt. Im Gegensatz zu den bisher verwendeten Geräteemulationen arbeiten synthetische Geräte wesentlich schneller, da sie mit weniger Overhead auskommen und über einen speziellen Bus (VMBus) via Parent Partition mit der physisch vorhandenen Hardware kommunizieren. Um den Betrieb von älteren Betriebssystemen zu gewährleisten, gibt es aber auch unter Hyper-V nach wie vor emulierte Gerätetreiber.



Neben der Kommunikation mit der Hardware übernimmt die Parent Partition aber auch noch andere Aufgaben: So wird hier der eigentliche Virtualisierungs-Stack betrieben, über den die Arbeitsprozesse und der WMI-Provider für die Steuerung der Virtualisierungsfunktionen bereitgestellt werden. Damit wird auch deutlich, dass die Parent Partition auch beim Hypervisor-Konzept deutlich mehr Aufgaben übernehmen muss als die Child-Systeme. Insofern ist zu überlegen, ob das Parent-System noch für weitere produktive Serverdienste oder ausschliesslich als Virtualisierungssystem genutzt werden soll.



Die Architektur von Hyper-V


Ohne 64-Bit geht nix

Hyper-V stellt relativ hohe Anforderungen an die Hardware. Es wird zwingend 64-Bit-Hardware benötigt mit CPUs, welche die Virtualisierung nativ unterstützen (AMD-V oder Intel VT). Natürlich muss ausserdem entsprechend viel Speicher – Hyper-V kann bis zu einem Terabyte adressieren – vorhanden sein, um mehrere Systeme sinnvoll parallel ausführen zu können.



Dafür gibt es denn auch für die Leistungsfähigkeit der einzelnen VMs bloss wenig Grenzen – es lassen sich problemlos auch sehr komplexe virtuelle Maschinen ausführen. Hyper-V unterstützt sowohl 32- als auch 64-Bit-Gastsysteme mit bis zu vier virtuellen Prozessoren. Pro Gastsystem können bis zu 32 Gigabyte RAM adressiert werden.
Hyper-V lässt sich zudem in einem Cluster mit bis zu 16 Nodes betreiben (allerdings nur mit den Editionen Enterprise und Datacenter von Windows Server 2008).


Geladene Gäste

Bei den Gastbetriebssystemen bietet Hyper-V offiziellen Support für die 32- und 64-Versionen von Windows Server 2008, Windows Server 2003 mit Service Pack 2 und Suse Linux Enterprise Server 10 mit Service Pack 1. Bei den Clients werden Windows Vista mit SP1 (Business, Enterprise und Ultimate) sowie Windows XP Professional mit SP3 in ihren jeweiligen 32-Bit-Versionen unterstützt.



Wichtig im Zusammenhang mit den Clientsystemen sind die Integration Components (auch Integration Services genannt). Dabei handelt es sich um eine Sammlung von Treibern und Diensten, die einerseits eine bessere Integration zwischen Parent- und Child-Systemen ermöglichen und andererseits einer Virtual Machine zu einer besseren Performance verhelfen, indem sie die Nutzung von synthetischen Treibern ermöglichen. Zu den Integration Components, welche die bisherigen VM Additions ersetzen, gehören Dienste für die Zeit-Synchronisation, VMBUS (Transportbus für synthetische Geräte), Shutdown-Funktion für Child-Systeme und eine Reihe von synthetischen Treibern wie beispielsweise für Video, Storage oder Networking.





Die Integration Components stehen allen oben genannten, offiziell unterstützten Betriebssystemen zur Verfügung. Für Suse Linux Enterprise Server 10 gibt es die Integration Services derzeit als Vorabversion via http://connect.microsoft.com. Diese bieten als Besonderheit eine engere Integration mit einem Xen-aktivierten Linux-Kernel. Xen-spezifische Virtualisierungs-Calls werden dabei in Hyper-V-Calls übersetzt und die Kommunikation mit dem Parent-System erfolgt hier ebenfalls über den VMBus, was wiederum zu einer höheren Geschwindigkeit führt. Etwas enttäuschend ist, dass sich der Linux-Support auf die genannte Suse-Distribution beschränkt. Microsoft prüft allerdings derzeit die Unterstützung von weiteren Linux-Varianten.



Unter Hyper-V lassen sich auch ältere Betriebssysteme (Microsoft spricht hier von sogenannten Legacy-OS) wie beispielsweise Windows 2000 oder NT betreiben, für die keine Integration Components verfügbar sind. Diese müssen dann allerdings auf emulierte Gerätetreiber zurückgreifen und auf die VMBus-Architektur verzichten. Dadurch arbeiten sie deutlich langsamer.


Installation sehr einfach

Die Installation von Hyper-V auf einem Windows Server 2008 geht recht einfach vonstatten und ist eine Sache von wenigen Minuten. Man braucht dazu lediglich die entsprechende Hyper-V-Server- Rolle einzurichten. Vorgängig prüft der Assistent, ob die vorhandene Hardware die notwendigen Vor­aussetzungen erfüllt.


Neben den oben bereits beschriebenen Vorgaben für die Hardware gibt es auch Voraussetzungen, was die auf dem Server installierten Funktionen und Programme betrifft. So kann Hyper-V beispielsweise nicht auf Domänencontrollern eingerichtet werden. Ausserdem verträgt sich Hyper-V nicht mit Virtual PC oder Virtual Server.
Alternativ lässt sich die Hyper-V-Rolle auch auf einer Server-Core-Installation aufsetzen. Da beim Server Core auf die grafische Benutzeroberfläche und anderen zusätzlichen Ballast verzichtet wird, lässt sich hier durchaus noch einmal etwas mehr Performance herausschinden.


Management: Spartanische Ausstattung

Im Gegensatz zu Virtual Server wird Hyper-V nicht mehr über ein Web-Interface, sondern über eine auf der MMC 3.0 basierende Windows-GUI verwaltet. Dabei lässt sich eine Hyper-V-Installation auch im Fernbetrieb über die Management-Konsole warten, was insbesondere auch bei einer Server-Core-Installation nützlich ist. Dies setzt allerdings zwingend einen weiteren Windows Server 2008 oder Windows Vista mit SP1 (das entsprechende MMC-Snap-in gibt es als separaten Download) voraus. Support für Windows XP oder Windows Server 2003 gibt es bislang nicht.


In der Hyper-V-Management-Konsole stehen die üblichen Funktionen zum Starten, Stoppen oder Pausieren von Virtual Machines oder zum Auslösen von Snapshots (siehe weiter unten) zur Verfügung. Zudem kann der aktuelle Zustand einer VM im laufenden Betrieb in eine Datei geschrieben und zu einem späteren Zeitpunkt wieder an derselben Stelle fortgesetzt werden. Von der Hyper-V-Konsole aus erhält man auch Zugriff auf die Einstellungsoptionen der einzelnen VMs. Darüber hinaus stehen Wizards bereit, über die man virtuelle Harddisks komprimieren, erweitern oder zwischen dynamischer und fixer Grösse konvertieren kann.



Das Angebot an Verwaltungsfunktionen beschränkt sich aber auf das nötigste. Auch ist die Durchführung einiger Standardaufgaben sehr umständlich gelöst. Will man etwa eine bestehende virtuelle Maschine kopieren, muss dies auf Umwegen über die Import- und Export-Funktionen vollzogen werden.


Alternativ kann Hyper-V auch über die Kommandozeile oder mit Scripts verwaltet werden. Dies lässt sich wahlweise mit der Windows Powershell oder mit Scripts, die über die Windows Instrumentation (WMI) auf Hyper-V zugreifen, bewerkstelligen. Der besondere Reiz an diesem Verfahren ist, dass sich damit Routineaufgaben komplett automatisieren lassen.


Aufsetzen von virtuellen Maschinen

Über die Hyper-V-Management-Konsole erhält man auch Zugriff auf die Einstellungen der einzelnen VMs und kann einen Wizard zum Einrichten von neuen virtuellen Umgebungen starten. Das Aufsetzen von neuen Virtual Machines geht mit Hilfe des zur Verfügung gestellten Wizard recht einfach vonstatten. Schrittweise wird man durch die nötigen Konfigurationsoptionen geführt, bei der unter anderem die Grösse des Speichers, die Netwerkumgebung, die virtuelle Harddisk und ein Installationslaufwerk (physisches Laufwerk oder ISO-Image) angegeben werden kann. Anschliessend wird die Virtual Machine gestartet und man kann das gewünschte Betriebssystem einrichten. Während des Setup eines Betriebssystems fühlt sich eine Virtual Machine recht träge an. Das liegt daran, dass während der Installation noch mit den langsameren, emulierten Gerätetreibern gearbeitet wird. Werden anschliessend an die Installation die Integration Services eingerichtet, wird die Performance schlagartig besser.


Mit neueren Windows-Versionen bestückte Virtual Machines unter Virtual Server 2005 und Virtual PC können relativ problemlos in eine Hyper-V-Umgebung übernommen werden. Dabei empfiehlt es sich, vorgängig das aktuellste Service Pack zu installieren und die Virtual Machine Additions zu deinstallieren. Damit lässt sich sicherstellen, dass man die Integration Services nach der Übernahme der VM ohne Probleme installieren kann. Ein Migrationspfad von Hyper-V nach Virtual Server 2005 oder Virtual PC gibt es dagegen nicht. Einmal übernommene VMs lassen sich
mit den älteren Virtualisierungs­lösungen nicht mehr betreiben.



Schmerzlich vermisst haben wir ausserdem eine Konvertierungsroutine, mit der sich ein physisches System (P2V) oder eine virtuelle Maschine, die in einer Umgebung eines anderen Herstellers (beispielsweise VMware) läuft (V2V), in eine Hyper-V-Virtual-Machine überführen lässt. Hierzu bringt Microsoft allerdings mit dem System Center Virtual Machine Manager 2008 in Kürze ein kostenpflichtiges Tool auf den Markt, das neben anderem genau das bewerkstelligen kann (siehe Kasten Seite 19).


Fernsteuern mit VMC

Für den Zugriff auf Virtual Machines gibt es wie in Virtual Server die Anwendung Virtual Machine Connection (VMC), welche den Desktop einer VM, ähnlich wie bei einer Remote Desktop Connection (RDC), in einem Fenster anzeigt. Im Gegensatz zur RDC – die sich natürlich zur Bedienung von virtualisierten Windows-Systemen ebenfalls verwenden lässt – bietet die Virtual Machine Connection über eine eigene Toolbar direkten Zugang zu den Steuerbefehlen wie «Ctrl+Alt+Del», Starten, Pausieren, Herunterfahren oder Einfrieren. Ausserdem lassen sich über die VMC Snapshots erstellen, Disks oder ISO-Files «einlegen» und «auswerfen» sowie die Installation der Integration Services mit einem simplen Mausklick durchführen.


Backups und Snapshots

Wie bereits Virtual Server 2005 bietet auch Hyper-V Unterstützung für die Volume Shadow Copy Services (VSS), über die sich in Betrieb befindende VMs gesichert werden können. VSS-Backups lassen sich mit Microsofts Data Protection Manager oder mit einem Backup-Werkzeug eines Drittherstellers, das VS-Writer-Unterstützung bietet, durchführen.


Hyper-V kommt mit einer neuen Snapshot-Funktion, welche die etwas umständlich zu benutzenden Undo-Disks in Virtual Server 2005 ablösen soll. Mittels Snapshots kann der Zustand einer VM zu jedem beliebigen Zeitpunkt – auch im laufenden Betrieb – auf Knopfdruck gesichert werden. Dabei können von einer virtuellen Maschine auch mehrere Snapshots parallel verwaltet werden. Zu einem späteren Zeitpunkt kann dann auf Knopfdruck wieder zu einem früheren Stadium zurückgekehrt werden. Alternativ lässt sich ein Snapshot auch verwerfen und somit die zwischenzeitlich gemachten Änderungen in die Ursprungs-VM überführen. Snapshots sind vor allem dann hilfreich, wenn man schnell eine kritische Änderung an einem System durchführen muss (z.B. Aufspielen eines Service Pack, Installieren von Software etc.) und vorgängig sicherstellen möchte, dass man im Fehlerfall rasch wieder zum Ursprungszustand zurückkehren kann.



Das Konzept der Differencing Disks wird bei Hyper-V weiterhin unterstützt. Mit dieser Funktion lassen sich von einer virtuellen Disk weitere Subsysteme ableiten. So kann man beispielsweise eine Basisinstallation von Windows Server aufsetzen und diese «einfrieren». Davon lassen sich nun beliebig viele neue virtuelle Systeme ableiten, weitere Windows-Server-Systeme mit unterschiedlichen Rollen (AD, IIS etc.) oder Serveranwendungen. Auf den virtuellen Harddisks der neuen VM-Installationen werden nur die Unterschiede zum Ursprung gespeichert, was eine Menge Platz sparen kann. Ableitungen lassen sich auch mehrstufig verschachteln, so dass man von einem abgeleiteten System weitere Subsysteme erzeugen kann.


Fazit

Mit Hyper-V ist Microsoft im Bereich der Virtualisierung einen wesentlichen Schritt vorangekommen und kann den Vorsprung von Vmware um einiges reduzieren. Noch fehlen aber einige Funktionen, welche bei der Konkurrenz zu finden sind. Neben den bereits erwähnten Einschränkungen bei der Betriebssystemunterstützung und bei den Verwaltungsfunktionen gehört dazu etwa die Life Migration, wie sie etwa bei VMware ESXi zu finden ist.

Dabei lässt sich eine Virtual Machine von einem physischen Server ohne Unterbrechung auf einen anderen verschieben. Hyper-V bietet eine Funktion mit der Bezeichnung Quick Migration, mit deren Hilfe sich VMs in einem Cluster von einem Hyper-V-System auf ein anderes schieben lässt. Dies erfordert allerdings einen Restart der Virtual Machine auf dem neuen Server, was zu einer kurzen Downtime führt. In produktiven Umgebungen mit hohen Anforderungen an die Verfügbarkeit ist dieses Verfahren eher ungeeignet. Eine weitere absente Funktion ist das sogenannte Memory Overcommitment, mit dem sich einzelnen VMs im laufenden Betrieb insgesamt mehr Speicher zuweisen lässt als physisch tatsächlich vorhanden. Das von den VMs benötige Memory wird bei diesem Verfahren vom Hypervisor dynamisch zugewiesen.



Für einen 1.0-Release stellt Hyper-V einen soliden Einstand in die Welt der Hypervisor-Virtualisierung dar. Und dass Redmond bald einige der vermissten Funktionen nachreichen wird, ist so sicher wie das Amen in der Kirche.


SCVMM 2008

Mit dem System Center Virtual Machine Manager 2008 will Microsoft im 3. Quartal eine neue Ausgabe seines Verwaltungswerkzeugs für virtuelle Infrastrukturen auf den Markt bringen. Mit SCVMM 2008 können neu neben Virtual Server 2005 auch Hyper-V- und VMware-ESX-Umgebungen verwaltet werden. Das Tool beherrscht die Migration von physischen Systemen in eine Hyper-V-VM (P2V), kann bestehende VMware-VMs konvertieren (V2V) und bietet Werkzeuge, um die Performance und Ressourcenzuweisung optimieren zu können. Ausserdem stellt SCVMM 2008 eine Reihe von Deployment- und Library-Werkzeugen bereit, mit denen sich neue virtuelle Server sehr schnell bereitstellen und bereits vorhandene einfacher verwalten lassen.




Artikel kommentieren
Kommentare werden vor der Freischaltung durch die Redaktion geprüft.

Anti-Spam-Frage: Was für Schuhe trug der gestiefelte Kater?
GOLD SPONSOREN
SPONSOREN & PARTNER