Server-Virtualisierung kostenlos

Praxis: Microsoft Virtual Server 2005 im Einsatz

23.11.2006 von THOMAS WOELFER 
Ziel der Server-Virtualisierung ist es, die verfügbare Rechenleistung besser ausnutzen zu können. Microsoft bietet dazu den Virtual Server 2005 kostenlos an. Wir geben Ihnen wichtige Tipps zur Installation, Wartung und Script-Steuerung von virtuellen Maschinen auf Basis des Virtual Server.

In den letzten Jahren ist die zur Verfügung stehende Rechenleistung gängiger Serverhardware nahezu explodiert. Zwar gibt es auch sehr performance-hungrige Server-Anwendungen, aber viele Server werden über lange Zeitspannen nur zu einem Bruchteil ihrer Leistungsfähigkeit ausgelastet. So liegen Performancereserven brach, die nicht ausgelasteten Rechner verbrauchen aber trotzdem elektrische Energie und Manpower für die Administration.

Die Server-Virtualisierung bietet jedoch eine Lösung an: Server, die mehrere Betriebssysteme und damit auch von einander getrennte Aufgaben gleichzeitig ausführen, reduzieren die Anzahl der benötigten Maschinen und führen zu einer besseren Auslastung der vorhandenen Hardware.

Daneben hat die Server-Virtualisierung aber auch andere Vorteile zu bieten. Virtuelle Maschinen verfügen alle über die gleiche (virtualisierte) Hardware, ganz gleichgültig, welche Hardware sich im physikalischen System befindet. Die Server-Lösung lässt sich damit gegenüber dem herkömmlichen Ansatz deutlich vereinfachen.

Darüber hinaus ist auch ein späterer Umzug dramatisch einfacher: Die ganze virtuelle Maschine lässt sich einfach auf andere Server-Hardware kopieren - und zwar einschließlich aller installierter Programme sowie sämtlicher Konfigurationsdaten.

Schließlich gibt es noch ein weiteres Einsatzgebiet für virtuelle Maschinen: der einfache Test neuer Anwendungen in einer virtuellen Umgebung. Bereitet die Anwendung Probleme, kann einfach eine Kopie der ursprünglichen virtuellen Maschine eingespielt werden.

Virtual PC und Virtual Server: Wo sind die Unterschiede

Für Windows bietet Microsoft momentan zwei kostenlose Werkzeuge zur Virtualisierung an: Den Microsoft Virtual PC 2004, der für Workstations gedacht ist, und den Virtual Server 2005 (R2), der für den Einsatz auf Servern gedacht ist.

So bietet Virtual PC eine ganz normale Benutzeroberfläche, wie man sie von einem Windows-Programm erwartet. Virtual Server hingegen wird über eine per IIS zur Verfügung gestellte Verwaltungsoberfläche administriert - für den Betrieb des Virtual Servers geht Microsoft davon aus, dass der Administrator mit Tätigkeiten aus dem Bereich der Server-Verwaltung vertraut ist.

Im Wesentlichen ist Virtual PC für den Support von veralteten Betriebssystemen in einem Windows XP System gedacht, für Help-Desk-Umgebungen sowie für den Test von Desktop-Anwendungen. Virtual Server ist für den Betrieb multipler Server-Anwendungen auf einem physischen Server ausgelegt.

Virtual Server 2005 Systemvoraussetzungen

Wer den Virtual Server einsetzen möchte, kann das auf einem relativ moderat ausgestatteten System tun. Benötigt wird eine CPU mit mindestens 550 MHz, ein Host-System mit einer von Windows 2003 Server unterstützten CPU, mindestens 256 MByte RAM sowie 2 GByte Festplattenplatz. Als Host-System kommt der Windows 2003 Server zum Einsatz. Windows XP Professional SP2 lässt sich ebenfalls verwenden, ist allerdings nicht für den produktiven Einsatz geeignet.

Ein System mit diesen Minimalanforderungen ist natürlich für eine groß angelegte Serverkonsolidierung nicht geeignet: Letztlich müssen sich die parallel installierten System den vorhandenen Speicher und die verfügbare CPU Performance teilen: Je mehr virtuelle Systeme zum Einsatz kommen sollen, umso mehr Prozessoren, Prozessorgeschwindigkeit und Speicher wird auch benötigt. In der Theorie können bis zu 64 virtuelle Maschinen auf einem einzelnen physischen Host betrieben werden.

Runterladen und installieren

Den Virtual Server 2005 R2 können Sie kostenlos bei Microsoft herunterladen. Dabei gibt es sowohl eine x86- als auch eine x64-Version. Die Installation des Servers ist denkbar einfach: Es muss lediglich der IIS auf dem Host installiert sein. Den Rest der Arbeit übernimmt das Setup.

Dabei passieren im Kern zwei Dinge: Zum einen wird eine administrative Webseite angelegt, über die Sie den Virtual Server und die darin betriebenen virtuellen Maschinen verwalten. Zum anderen wird der eigentliche Virtual Server installiert. Dieser kommt in Form eines Dienstes, der später ganz normal in der Computerverwaltung unter den Diensten aufgelistet wird. Zusätzlich installiert Setup noch ein paar Einträge im Startmenü.

Installation - und dann?

Nach der Installation gibt es einen kleinen Stolperstein: Zwar findet man problemlos den Startmenü-Eintrag für den Virtual Server, aber darin befindet sich kein Link zum Virtual Server "Programm". Stattdessen findet sich nur ein Link zu einer "Administrations Website", ein Link zu einem "Remote Control" Programm und ein paar Hilfetexte. Es findet sich aber nichts, was man "starten" könnte.

Der Grund: Es gibt auch nichts, was zu starten wäre. Der eigentliche Server ist als Dienst implementiert, und der läuft bereits. Es geht nur noch darum, diesen Dienst zu verwalten - und das erfolgt über die „administrative Webseite“.

Wichtig: VMRC

Besonders viel gibt es dort aber nicht zu verwalten. Unter den "Server Properties" des "Virtual Server" können Sie im Wesentlichen ein paar Sicherheitsparameter einstellen und das Virtual Server Remote Control (VMRC) aktivieren. Dabei handelt es sich um eine alternative Verbindungsmethode zu den virtuellen Maschinen, die statt der Remote Desktop Verbindung verwendet werden kann.

Das VMRC benötigen Sie, solange kein RDP in der virtuellen Maschine zur Verfügung steht. Also beispielsweise zu dem Zeitpunkt, an dem Sie das Betriebssystem in der virtuellen Maschine installieren möchten. Denn solange kein Windows in der virtuellen Maschinen eingerichtet ist, steht logischerweise auch kein RDP zur Verfügung.

Wollen Sie andere Betriebssysteme als Windows in der VM einrichten, kommen Sie ebenfalls nicht an VMRC vorbei.

Die erste virtuelle Maschine einrichten

Um nun eine virtuelle Maschine einzurichten, müssen Sie diese zunächst über die administrative Webseite per "Create" anlegen. Dazu geben Sie den Pfad zur Datei für die virtuelle Maschine an und legen fest, wie viel RAM und Festplattenplatz die Maschine erhalten soll. Es gibt verschiedene Arten von virtuellen Festplatten, aber Art und Größe dieser virtuellen Festplatte können Sie später auch noch ändern, genau wie die zugeteilte Menge an RAM. Ebenso können Sie später zusätzliche virtuelle Festplatten anlegen oder die virtuelle Maschine mit bereits existierenden virtuellen Festplatten verbinden.

Ist die virtuelle Maschine angelegt, können Sie diese im Prinzip starten, um dann das Gastbetriebssystem zu installieren. Der Start der virtuellen Maschine erfolgt über den Punkt "Navigation -> Master Status" in der Verwaltungswebsite. Dort finden Sie eine Liste aller vorhandenen virtuellen Maschinen. Auf jede davon können Sie mit der rechten Maustaste klicken, und finden dann im Objektmenü unter anderem den Befehl zum Starten der Maschine.

Stolperstein: Betriebssystem installieren

Beim ersten Start der Maschine passiert allerdings nicht mehr, als dass die virtuelle Maschine startet und dann aufgrund eines fehlenden Boot-Mediums direkt wieder stehen bleibt. „Sehen“ können Sie das jedoch nicht, denn es öffnet sich kein Fenster für diese virtuelle Maschine. Es gibt also keinerlei optisches Feedback. Um das zu erhalten, müssen Sie erst VMRC starten und sich mit der virtuellen Maschine verbinden. Dann haben Sie ein Fenster, in dem Sie den Bootscreen mit Meldung sehen, dass kein Boot-Medium gefunden wurde.

Dieses Medium müssen Sie der Maschine nun zur Verfügung stellen. Dazu rufen Sie das Menu "Virtual Machines -> Configure" auf. Der einfachste Weg ist es, dort unter den Optionen für "CD/DVD" ein ISO-Image einer bootfähigen CD/DVD als Laufwerk zuzuweisen. Dazu geben Sie einfach den Pfad zum ISO-Image an. Bevor Sie das tun, müssen Sie allerdings über das Objektmenu die gerade gestartete virtuelle Maschine anhalten.

Alternativ zum ISO-Image können Sie der virtuellen Maschine auch Zugriff auf ein physisch vorhandenes Laufwerk geben, und in diesem Laufwerk das bootfähige Medium platzieren.

Danach verfügt die virtuelle Maschine über ein Laufwerk mit einem bootfähigem System: Sie können die Maschine dann wieder starten und sich per VMRC verbinden, um den Installationsprozess durchzuführen.

Virtual Machine Additions installieren

Nach der Installation des Betriebssystems, sollten Sie als erstes die "Virtual Machine Additions" einrichten. Trotz des Namens geht es dabei nicht um Zusätze für die virtuelle Hardware, sondern um Erweiterungen für das Gastbetriebssystem. Die "Additions" sind also abhängig vom in der virtuellen Maschine installierten System. Sie führen nicht nur zu einer besseren Performance des Gastsystems, sondern statten das System auch mit zusätzlichen Features aus. Dazu gehört zum Beispiel die Synchronisation der virtuellen Systemuhr mit der des Hostsystems oder auch die Möglichkeit, das Gastsystem von der administrativen Webseite aus sauber herunterzufahren. Die "Virtual Machine Additions" werden im einfachsten Fall über "Virtual Machines -> Configure" installiert.

Einige der Additions - im Besonderen die für andere Betriebssysteme als Windows - müssen Sie zunächst manuell herunterladen. Dort finden Sie eine Liste der Linux-Gastsysteme, für die Microsoft Additions anbietet. Momentan ist dies für acht Versionen von RedHat und Suse Linux-Distributionen der Fall, weitere sind aber für das SP1 des Virtual Servers angekündigt.

Nach der Installation der Machine Additions ist die VM eigentlich "fertig", und daher ist dies ein guter Zeitpunkt, das komplette Verzeichnis der virtuellen Maschine mit allen darin befindlichen Dateien zu sichern. Auf diese Weise haben Sie später eine Vorlage für weitere virtuelle Maschinen - bei der bereits das Betriebssystem, die Service-Packs und alle anderen benötigten oder erwünschten Pakete installiert sind.

Virtuelle Maschinen verwalten

Unter dem Punkt "Configure" verwalten Sie Ihre virtuelle Maschine. Einen der wichtigsten Konfigurationsoptionen finden Sie unter den "General Properties". Dort legen Sie nämlich fest, was mit der virtuellen Maschine passieren soll, wenn der Virtual Server (Dienst) selbst startet oder stoppt. Im Normalfall werden Sie hier einstellen, dass die virtuellen Maschinen ebenfalls gestartet oder gestoppt werden. Darüber hinaus können Sie die Hardware der virtuellen Maschine konfigurieren: Dazu gehören beispielsweise die Menge an RAM, die virtuellen Festplatten, CD/DVD Laufwerke, SCSI Adapter oder Netzwerkadapter.

Auf der Konfigurationsseite können Sie außerdem noch Skripte definieren, die bei bestimmten Ereignissen mit der virtuellen Maschine ausgeführt werden sollen. So können Sie beispielsweise ein Skript festlegen, das bei jedem Start der virtuellen Maschine ausgeführt wird.

Virtuelle Festplatten

Der Virtual Server kennt vier unterschiedliche Festplatten-Typen. Dabei geht es nicht um die virtuelle Hardware, die das Gastbetriebssystem sieht, sondern um die Art und Weise in der der Virtual Server die als Datei im Hostsystem abgelegten virtuellen Festplatten verwaltet.

Eine Disk mit der Bezeichnung "Dynamically expanding" braucht im Hostsystem zunächst nur wenig Platz. Die Größe der Datei wächst aber, je mehr Daten in der virtuellen Maschine auf die virtuelle Festplatte geschrieben werden. Dabei können Sie angeben, wie viel Platz die Datei der virtuellen Festplatte maximal auf der physischen Festplatte belegen darf. Das ist der Default-Typ bei der Einrichtung einer neuen virtuellen Maschine.

Bei einer "Fixed Size"-Disk reserviert Virtual Server bereits beim Anlegen der virtuellen Platte den kompletten für sie vorgesehenen Platz auf der physischen Festplatte. Es geht dadurch zwar Flexibilität verloren, der Vorteil besteht dafür beispielsweise darin, dass die Container-Datei nicht fragmentiert ist.

Eine "Differencing Virtual Hard Disk" besteht eigentlich aus zwei Festplatten: Einer festen "Vater"-Festplatte und einer "Kind"-Festplatte. Die Vater-Platte bleibt dabei unverändert, denn alle Änderungen aufgrund von Schreibvorgängen in der virtuellen Maschine werden ausschließlich in der Kind-Festplatte vorgenommen. Mit dieser Methode können Sie also beispielsweise unterschiedliche Betriebssystem-Konfigurationen, die alle auf der gleichen Ursprungskonfiguration beruhen, testen.

Dabei haben Sie auch die Möglichkeit, Änderungen die in der Kind-Festplatte gespeichert wurden, mit der Vater-Platte zu mischen, um so eine neue Konfiguration als Vater-Konfiguration zu erhalten. Wenn Sie die Vater-Platte schreibschützen, können Sie diese als Vater-Platte für mehrere parallel betriebene "Differencing"-Setups verwenden.

Mit einer "Linked" Disk können Sie im normalen Betrieb nicht besonders viel anfangen: Dieser Festplattentyp ist im Wesentlichen dafür gedacht, eine physische Festplatte in eine virtuelle umzuwandeln - also um eine vorliegende Konfiguration eines physisch vorhandenen Servers in eine virtuelle abzubilden.

Virtuelle Netzwerke

Der Virtual Server unterstützt auch so genannte "Virtual Networks". Bei diesen virtuellen Netzwerken handelt es sich um Netzwerke zwischen virtuellen Maschinen, oder um Netzwerke zwischen einer virtuellen Maschine und einer physischen Maschine. Ein virtuelles Netzwerk kann mit einer physisch vorhandenen Netzwerkkarte verbunden werden. Ist das der Fall, dann haben alle virtuellen Maschinen, die mit diesem virtuellen Netzwerk verbunden sind, Zugriff auf alle Netzwerke, auf die die Netzwerkkarte selbst Zugriff hat.

Wenn Sie keinen Netzwerkadapter angeben, nehmen alle mit dem adapterlosen Netzwerk verbundenen virtuellen Maschinen an einem internen virtuellen Netzwerk teil, über das die virtuellen Maschinen kommunizieren können. Die einzelnen virtuellen Netzwerke sind dabei vollständig von einander isoliert.

Performance-Tuning von VMs

Der Virtual Server bietet eine Reihe von Möglichkeiten für die Überwachung und Zuteilung von Systemressourcen an virtuelle Maschinen. So können Sie beispielsweise den Performance Monitor verwenden, um neben dem Host-System auch (Windows basierte) Gastsysteme zu überwachen. Zusätzlich gibt es zwei WMI-Objekte für die Überwachung der virtuellen Maschine und des virtuellen Netzwerks.

Unter dem Punkt "Resource Allocation" können Sie in der administrativen Webseite festlegen, wie viel CPU-Leistung den einzelnen virtuellen Maschinen zugeordnet werden soll: Dort gibt es auch einen einfachen graphischen Monitor, mit dem Sie die CPU-Auslastung durch die virtuellen Maschinen überwachen können.

Der zentrale Performance-Tipp für den Virtual Server ist dieser: Je schneller die Host-Festplatte, um so besser. Die Verwendung von SCSI-Platten wird die beste Performance für virtuelle Maschinen bieten, ebenso sind RAID-Systeme oder multiple Controller und Platten hilfreich: Wenn irgend möglich, sollte die virtuelle Festplatte über einen anderen Controller erreichbar oder zumindest auf einer anderen Festplatte als das Hostsystem selbst installiert sein.

Wenn Sie Antivirus-Software oder ähnliches verwenden, dann sollten Sie die Dateien der virtuellen Festplatten von Scans ausschließen. Die VHD-Dateien tendieren dazu, extrem groß zu werden, was den Scan-Vorgang alles andere als beschleunigt.

Operationen per Skript automatisieren

Der Virtual Server bietet ein Scripting-Interface, mit dessen Hilfe Sie automatisiert mit virtuellen Maschinen kommunizieren können. Hier ein paar Beispiele für derartige Skripte:

Beispiel: Virtuelle Festplatten untersuchen

Mit dem folgenden Skript erfahren Sie, wie groß die Platte in der virtuellen Maschine ist, und wie viel Platz sie dafür im Hostsystem benötigt. Beim Aufruf müssen Sie auf der Kommandozeile den Pfad der zu untersuchenden .VHD-Datei angeben.

Set virtualServer = CreateObject("VirtualServer.Application")
Set aVirtualHardDisk = virtualServer.GetHardDisk(WScript.Arguments(0))
GuestSize = clng(cdbl(aVirtualHardDisk.SizeInGuest) / 1048576)
HostSize = clng(cdbl(aVirtualHardDisk.SizeOnHost) / 1048576)

wscript.echo "Die virtuelle Platte '" & WScript.Arguments(0) & "' hat eine Größe von " & GuestSize & " MB in der virtuellen Maschine. Sie braucht momentan " & HostSize & " MB im Host."

Beispiel: Programm in der virtuellen Maschine von außen starten

Mit dem folgenden Skript können Sie ein Programm innerhalb einer virtuellen Maschine starten - und zwar von außerhalb der virtuellen Maschine. Dabei handelt es sich allerdings nicht um ein Feature des Virtual Servers, sondern einfach um eine von Haus aus bei Windows vorgesehene Funktionalität.

Im Beispielcode wird "Notepad" gestartet, Sie können aber natürlich auch jedes andere Programm damit ausführen. Voraussetzung: Die benötigten Rechte einen Prozess in der anderen Maschine zu starten - und eine Netzwerkverbindung zur virtuellen Maschine.

strComputer = "NameDerVirtuellenMaschine"
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2:Win32_Process")
objWMIService.Create("notepad.exe", null, null, intProcessID)

Beispiel: Alle virtuellen Maschinen stoppen, sichern und starten.

Ein anderes, deutlich umfangreicheres Beispiel finden Sie hier online. Das dort vorliegende Skript können Sie verwenden, um einen Virtual Server mit einer Downtime von unter einer Minute zu sichern. Der Trick dabei ist der, dass der Server kurz angehalten, eine Shadow-Copy davon angelegt und der Server dann fortgesetzt wird.

Viele weitergehende Beispiele finden Sie hier im Microsoft Technet. (mha)