Testumgebungen mit virtuellen Maschinen erleichtern Entwicklern, Technikern sowie Helpdesk-Mitarbeitern die Fehlersuche und erlauben den Aufbau flexibler Schulungs- oder Demoszenarien. Es existieren mehrere Konzepte und Werkzeuge für den Einsatz - vom lokalen PC bis hin zur zentralen firmenweiten Anwendung.
Für virtuelle Test-, Demo- oder Schulungslandschaften steht eine wachsende Anzahl von Angeboten bereit. Neben den bekannten Desktop-Produkten wie VMware Workstation und Virtual PC bieten sich die kostenlosen Serverprodukte VMware Server, Microsoft Virtual Server oder Xen für eine zentrale Bereitstellung virtueller Maschinen an. Bei Bedarf arbeitet unter dem kostenpflichtigen Datacenter-Produkt VMware ESX Server eine große Zahl von Mitarbeitern auf Dutzenden VMs mit der Managementsoftware Virtual Center, verteilt auf mehrere Hosts.
Alternativen wären Parallels Workstation oder aus dem Open-Source-Lager Qemu und Bochs. Ihnen fehlen allerdings für umfangreichere Testumgebungen die Bedienoberflächen und Verwaltungswerkzeuge. Virtuozzo oder OpenVZ sind weitere Kandidaten, die aber architekturbedingt immer nur mehrere Instanzen ein und desselben Betriebsystems darstellen, ebenso wie Suns Solaris Container. Sie eignen sich für Testumgebungen nur bedingt. Für Xen liefert XenSource das kommerzielle Produkt XenEnterprise 3.1 zur Verwaltung von Hosts und Gästen.
Labor: Auf der Bedienoberfläche im Web-Interface erscheinen übersichtlich sämtliche virtuellen Konfigurationen.
Spezielle Verwaltungswerkzeuge, sogenannte „Lab Manager“, können komplette Konfigurationen aus mehreren zusammengehörigen VMs zentral bereitstellen, datenbankgestützt verwalten und archivieren. Damit holt etwa ein Helpdesk-Mitarbeiter eine gespeicherte Kundenumgebung mit Domänencontroller, Exchange-Server sowie Clients per Mausklick aus dem Archiv und startet sie binnen weniger Sekunden auf einem freien Host. Auf ähnliche Weise testen Entwickler neue Programmversionen in komplexen Szenarien, wie sie die Qualitätssicherung zusammengestellt hat. Die Verwaltung der virtuellen Umgebungen erfolgt über ein Web-Interface des Lab Managers mit Fernzugriff auf die Gastsysteme. Die VMs laufen auf Servern, ohne die Rechner der Anwender zu belasten.
Beim Aufbau einer Testumgebung sollte zuerst für häufig benötigte CDs, etwa die zur Installation von Betriebssystemen, ein Archiv aus ISO-Images entstehen. Anschließend füllen die Anwender nach und nach einen Pool mit vorgefertigten lauffähigen Gastsystemen als Muster-VMs, sogenannte Templates. Dazu installieren sie in einer neuen VM das gewünschte Betriebssystem, spielen Patches ein und fügen häufig genutzte Tools hinzu. Weiterhin sollten die VMware Tools und die Virtual Machine Additions nicht fehlen. Es handelt sich um herstellerspezifische Treiber und Werkzeuge in den VMs, die zum Beispiel einen Datenaustausch per Cut&Paste ermöglichen oder den Bildschirm des Gastes automatisch an die Fenstergröße des Virtualisierers anpassen.
Derart vorbereitete VMs lassen sich später durch einfaches Kopieren vervielfältigen. Auf dem Weg entsteht nach und nach eine Sammlung von virtuellen Systemen in verschiedenen Ausbaustufen, etwa Windows-Versionen mit und ohne Service Packs, mit oder ohne Applikationen. Die Vorlagen dienen nicht zum Testen, sondern bleiben immer im sauberen Grundzustand erhalten, und liegen zentral im Netz.
Abbilder physischer Rechner lassen sich ebenfalls als Testumgebung übernehmen, beispielsweise mit dem kostenlosen „VMware Virtual Machine Importer“ oder dem als Beta-Version vorliegenden „VMware Converter 3“. der sogar das Klonen laufender Rechner erlaubt [i].
Freigabe: Liegen die virtuellen Platten der VMs auf gemeinsamem Speicher, können die Gäste ohne Weiteres auf anderen Hosts starten.
Da die Muster-VMs später häufig kopiert werden und viel Platz belegen, lohnt eine Optimierung des Gastsystems, etwa das Ausräumen nicht benötigter Dateien, Defragmentieren und Verdichten (Shrinken) der virtuellen Platten. Ein nützliches Werkzeug, das die Arbeiten automatisiert, bietet Invirtus mit „VM Optimizer“ [ii].
Beim Klonen der Muster-VMs für eigene Testkonfigurationen sparen Snapshots und linked Clones unter VMware oder die Differenzplatten unter Microsofts Windows viel Platz und Zeit. Dabei setzt auf einer virtuellen Platte der Vorlage-VM eine weitere virtuelle Platte auf, die nur die geänderten Sektoren speichert, die das Gastsystem schreibt. Lesezugriffe kombinieren beide Inhalte, der Gast bemerkt von der Umleitung nichts.
Grundlage: Snapshots und linked Clones (VMware) oder differenzierende Platten (Microsoft) erlauben den Zugriff mehrerer VMs auf eine Basisinstallation.
Das System kann Änderungen jederzeit verwerfen, die Snapshots von VMware und die „Rückgängigdatenträger“ von Microsoft nutzten genau dieses Prinzip. Damit sind außerdem sogenannte Deltakonfigurationen realisierbar, wobei mehrere unabhängige VMs mit ein und derselben Grundinstallation arbeiten, ohne dass jedes Mal eine Kopie der virtuellen Platte entstehen muss, ein Klon ist in Sekunden erstellt, ganze Verzweigungsbäume können heranwachsen. Allerdings ist die Verwaltung der entstehenden Abhängigkeiten komplizierter als bei unabhängigen Kopien, und beim Verlust der Basis-VM funktionieren alle aufsetzenden Klone nicht mehr.
Zu jeder VM gehört unbedingt eine akribische Dokumentation der VMs. Die beste Vorlage nutzt nichts, wenn man später nicht mehr weiß, welche Patches und Einstellungen bereits vorgenommen wurden. Eine einfache, aber bewährte Methode ist es, im Verzeichnis der VM eine Textdatei zu pflegen, in der jeder jede Änderung mit Datum dokumentiert. Diese Datei wird beim Vervielfältigen der Muster-VM mitkopiert, weiter fortgeführt und immer wieder an weitere Kopien mitgegeben. So ergibt sich ein lückenloses Bild des Werdegangs jedes Clones und seiner Abkömmlinge.
Patchmanagement und die Anwendungsbereitstellung in den Gästen sind weitere Themen. Automatische Updates sollten in den Templates nicht aktiv sein. Zum einen verhindert das ungewollte Veränderungen an den sauberen Templates. Außerdem kommt es sonst zu immer wiederkehrenden Patchvorgängen, wenn die geklonten Test-VMs mittels Snapshot/Revert wieder in alte Zustände zurückfallen. Bei Bedarf ruft der Anwender den Patch-Day besser selbst auf. Idealerweise erfolgt das über einen zentralen WSUS-Server (Windows Server Update Services) im eigenen LAN, damit für Dutzende Test-VMs nicht immer wieder alle Updates aus dem Internet kommen müssen.
Ähnliches gilt für die Verteilung der Applikationen in den Gästen. Es erspart zig Templates für jede erdenkliche Anwendungs-Kombination, wenn man die benötigten Applikationen aus einer zentralen Sammlung nach Bedarf in die frisch geklonte VM installiert, eventuell durch Skripte automatisiert.
Jeder Anwender kann sich aus dem entstehenden Pool von Vorlagen bedienen und eigene Testumgebungen zusammenstellen. Eine kopierte VM hat als 1:1-Klon der Vorlage aber denselben Namen, dieselbe SID, MAC- und IP-Adresse. Zur notwendigen Anpassung kann beispielsweise sysprep dienen. Nachträglich lassen sich IP-Adressen und Namen auch manuell oder per Skript anpassen. Einen neuen Security Identifier (SID) bei Windows vergibt das kostenlose Werkzeug newsid [iii].
Zwar bieten alle Produkte die Unterstützung durch DHCP-Server, bei Testumgebungen mit Serveranwendungen braucht man aber oft feste IP-Adressen.
Für größere Umgebungen wünscht man sich bald eine Verwaltungsplattform, um nicht den Überblick über die entstehende virtuelle Welt zu verlieren und um einige Aufgaben, etwa das Klonen, zu automatisieren. Zur reinen Verwaltung einer virtuellen Infrastruktur existieren etablierte Werkzeuge. Viele verwenden den ESX Server 3 zusammen mit Virtual Center 2. Für den kostenlosen VMware Server ist Virtual Center 1.4 als Zusatzprodukt erhältlich. Microsofts „System Center Virtual Machine Manager“ befindet sich noch im Beta-Stadium [iv].
Ein weiteres Werkzeug bietet die schweizerische Dunes mit ihrem „Virtual Service Orchestrator“ [v], der komplexe Vorgänge per Workflow abbildet, etwa den Werdegang von der Beantragung einer VM über die Benachrichtigung des Admins bis zur Erstellung und Rückmeldung an den Anwender.
Alle diese Tools vereinfachen den Umgang mit virtuellen Infrastrukturen deutlich, für Testumgebungen fehlen aber immer noch wichtige Funktionen, etwa die Verwaltung mehrerer zusammenhängender VMs als Einheit.
Den kompletten Artikel finden Sie in der aktuellen Print-Ausgabe. Außerdem im Heft: ein Artikel über virtuelle Rechner auf den Desktop sowie der zweite Teil des Xen-Tutorials.
Dieser Text ist der Zeitschriften-Ausgabe 02/2007 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.