Kosteneinsparungen durch Serverkonsolidierung sind heute in aller Munde. Und immer taucht dabei der Begriff Virtualisierung auf. Welche Chancen und Risiken für IT-Manager mit dem Thema verbunden sind, erläutert ZDNet.
Die Versprechungen der Anbieter von Virtualisierungssoftware und -lösungen sind hoch. Doch eine Virtualisierung kann durchaus in der Praxis einige Fragestellungen aufwerfen, die häufig im konkreten Projekt zu spät bemerkt werden.
Virtualisierung ist oftmals ein Thema, wenn es gilt, mehrere Serverapplikationen von verschiedenen Servern auf einem großen, sehr leistungsfähigen Multiprozessorserver zusammenzufassen, es aber nicht möglich ist, diese Serverapplikationen gleichzeitig auf einer Maschine zu betreiben. Ein offensichtlicher Fall liegt vor, wenn die Applikationen unter verschiedenen Betriebssystemen laufen. Diese können nur mittels Virtualisierung auf einen Rechner gebracht werden. Aber auch unter dem gleichen Betriebssystem können Inkompatibilitäten auftreten.
Zwar ist es relativ einfach möglich, zum Beispiel einen Exchange-Mailserver und einen MS-SQL-Datenbankserver auf einer Maschine zu betreiben, aber insbesondere bei Serverapplikationen verschiedener Hersteller wird ein gemischter Betrieb oftmals nicht unterstützt. In der Praxis führt er tatsächlich zu Problemen, die vielfach erst nach einigen Monaten auffallen. Ein relativ einfaches Beispiel: Man betreibt zwei Applikationen unter Windows 2003. Einige Zeit später entscheidet man sich, eine der Applikationen auf eine neuere Version upzudaten, die allerdings dann Service Pack 1 verlangt, während die andere Version noch nicht für Service Pack 1 freigegeben ist oder gar nicht damit läuft. In so einem Fall müssten die beiden Applikationen dann auf zwei Rechner getrennt werden.
Hier kann eine Virtualisierung natürlich Abhilfe schaffen. Jede Applikation läuft dabei unter einer Version des eventuell gleichen Betriebssystems, das dann jedes für sich auf den notwendigen Releasestand und in die notwendige Konfiguration gebracht werden kann. Weitere Vorteile liegen natürlich auf der Hand:
- Flexible Zuteilung von Ressourcen wie Speicher und CPU-Leistung bei einer Änderung des Bedarfs, auch zum Beispiel nach Tages- und Nachtzeiten.
- Einfacher Umzug eines kompletten virtuellen Servers von einem Rechner auf den anderen ohne Neuinstallation und -konfiguration.
- Möglichkeit eines "Snapshots" eines ganzen virtuellen Servers, um diesen in Kopie, zum Beispiel für Testzwecke und experimentelle Konfigurationsänderungen zu verwenden, ohne den Betrieb des Produktivservers zu beeinflussen.
- Einfaches Deployment von Serverfarmen, in denen fast identische Konfigurationen auf mehreren physikalischen Servern betrieben werden, zum Beispiel im Hosting oder bei verteilten Standorten.
Allerdings muss man sich darüber im Klaren sein, dass Virtualisierung immer Performance kostet. Die Virtualisierungssoftware benötigt immer einen nicht unerheblichen Teil der Rechnerleistung, um wirklich völlig unabhängig voneinander arbeitende virtuelle Rechner zu schaffen.
Dies gilt insbesondere für die klassischen Prozessorarchitekturen von AMD und Intel, die keine explizite Unterstützung für Virtualisierung bieten. Die neuen Generationen von Prozessoren bieten bereits hardwareseitig eine erhebliche Unterstützung für Virtualisierung, was den Performanceverlust tatsächlich auf einen geringen Bruchteil schrumpfen, jedoch nicht völlig verschwinden lässt. Wer heute über ein Virtualisierungsprojekt nachdenkt, für den ist eine Verwendung dieser neuen Prozessorarchitekturen unverzichtbar, um nicht eine Fehlinvestition zu tätigen.
Prozessoren mit Unterstützung für Virtualisierung
Unterstützung durch den Prozessor ist jedoch nicht alles, was bei einer Virtualisierung notwendig ist. Auch andere Hardwarekomponenten, im Serverbereich vor allem die Netzwerkkarte, müssen korrekt in den virtuellen Maschinen dargestellt werden. Dazu wird in den gängigen Virtualisierungslösungen ein bestimmtes Modell in allen virtuellen Maschinen softwaremäßig emuliert. Die Zugriffe auf die Hardwareports werden abgefangen. Dieses Prinzip gilt für alle emulierten Geräte.
Jedoch ist die softwaremäßige Portemulation Gift für die Performance. Für Netzwerkkarten gibt es hier für die meisten gängigen Betriebssysteme so genannte virtuelle Treiber, die dieses Manko umgehen. Daher ist darauf zu achten, dass die Virtualisierungslösung diese Unterstützung für das Gastbetriebssystem bietet, um nicht eine deutliche Schwachstelle aufzuweisen. Hierbei ist vor allem darauf zu achten, dass die Unterstützung auch bei einem Upgrade des Gastbetriebssystems erhalten bleibt.
Weiterhin muss daran gedacht werden, dass in den virtuellen Maschinen bestimmte erweiterte Funktionen einer Netzwerkkarte nicht genutzt werden können. Karten, die hardwaremäßig IP, TCP und HTTP beherrschen, werden heute noch in keiner Virtualisierungsumgebung unterstützt, so dass bei hohem Netzwerkdurchsatz eine 1-GBit/s-Netzwerkanbindung nicht annähernd aus den virtuellen Maschinen heraus genutzt werden kann.
Weniger relevant ist die Unterstützung einer Grafikkarte im Serverbereich. Alle Serverbetriebssysteme bieten heute eigene Remote-Login-Mechanismen, und ein Zugriff über die Remote-Control-Funktionen der jeweiligen Virtualisierungsumgebungen muss nur im Ausnahmefall erfolgen. Ebenfalls gilt es zu beachten, dass in der Regel nur Standardhardware emuliert werden kann. Betreibt man beispielsweise einen Mailserver mit einer integrierten Faxlösung, die auf einer Hardwarekomponente, zum Beispiel einer Multiport-ISDN-S0-Karte basiert, so kann diese in einer virtuellen Maschine nur dann genutzt werden, wenn eine explizite Unterstützung dieser Karte gegeben ist. Dies ist heute in der Regel nicht der Fall. Ein Virtualisierungsprojekt kann dann nicht eins zu eins durchgeführt werden. Hier ist noch viel Zusammenarbeit der Hardwarehersteller mit den Anbietern von Virtualisierungslösungen in der Zukunft erforderlich.
Administrationsaufwand durch Virtualisierung
Auch muss man sich von der Vorstellung verabschieden, dass der Administrationsaufwand von mehreren virtuellen Servern geringer ist als der von mehreren physikalischen Servern. Dieser Eindruck entsteht oft, weil jetzt nur noch eine physikalische Maschine im Rechenzentrum steht, während es vorher vielleicht fünf waren. Der Konfigurations- und Administrationsaufwand der einzelnen Server bleibt jedoch bestehen.
Bei der Planung eines Virtualisierungsprojektes stellt sich zunächst die Frage nach dem Hostbetriebssystem, wobei im wesentlichen Linux oder Windows zur Auswahl stehen. Einige Virtualisierungslösungen, darunter der ESX-Server von Vmware, kommen ganz ohne Hostbetriebssystem aus und verwenden nur einen Mini-Layer, wobei man aber von einem modifizierten Linux-Kernel ausgehen kann.
Auf den ersten Blick scheint Linux aufgrund der höheren Modularität grundsätzlich deutlich geeigneter als Windows. So müssen bei Linux nur die Teile installiert werden, die für den Betrieb der Virtualisierungssoftware erforderlich sind. Windows verlangt grundsätzlich eine Komplettinstallation. Wegen der hohen Abhängigkeit der einzelnen Komponenten voneinander werden vieler dieser Komponenten auch permanent im Hauptspeicher gehalten, ohne dass die gesamte Funktionalität des installierten Windows überhaupt benötigt wird. Die Vorstellung, dass eine virtuelle Umgebung umso schneller ist, je weniger Hostbetriebssystem benötigt wird, ist nicht ganz falsch. Es muss aber auch bedacht werden, dass ein Betriebssystem auch sinnvolle Gesamtaufgaben übernehmen kann. Ein Beispiel hierfür ist der Virenschutz.
Hat man eine Virenschutzlösung, die in Echtzeit den Netzwerkverkehr auf Viren und andere Schädlinge überwacht, so ist es sinnvoller, diesen Virenschutz einmal auf dem Hostbetriebssystem zu implementieren, als in jeder einzelnen Gastmaschine. Das Scannen von Viren im Dateisystem bleibt natürlich weiterhin Aufgabe der Gastmaschinen.
Zu bedenken gilt es auch, dass in jeder einzelnen Gastmaschine eine eigene Kopie des Betriebssystems läuft und entsprechend viel Hauptspeicher in Anspruch nimmt. Auch hier bietet Linux wegen der Modularität wieder deutliche Vorteile. Auf einem Server kann man unter Linux auf die gesamte Desktopoberfläche leicht verzichten, was bei Windows nicht der Fall ist. Hier sind auf jeden Fall die Betriebssystemhersteller gefragt, die Virtualisierungsunterstützung zu verbessern. Denn bei gleichen Betriebssystemversionen in den Gastmaschinen wäre es mit Unterstützung der Virtualisierungstechnik durch das Betriebssystem möglich, viele Komponenten des Betriebssystems nur einmal im physikalischen Hauptspeicher zu halten, ohne die völlige Eigenständigkeit der Betriebssysteme in den Gastmaschinen aufzugeben.
Einschränkungen bei der Virtualisierung
Gleiches gilt auch für die Verwaltung von Ressourcen. Die Virtualisierungsanbieter bieten zwar heute exzellente Unterstützung für das dynamische Verwalten von Speicher und CPUs, jedoch ist betriebsystem- und applikationsseitig Unterstützung vonnöten. Weder Betriebssysteme noch Anwendungen kommen damit zurecht, wenn im laufenden Betrieb plötzlich mehr oder weniger Hauptspeicher zur Verfügung steht.
Auch erfordert das Hinzufügen oder Entfernen einer CPU den Reboot einer oder mehrerer virtueller Maschinen. Lediglich der Anteil der Rechenleistung der CPUs kann dynamisch auf die einzelnen Gastmaschinen verteilt werden. CPUs mit Virtualisierungsunterstützung bieten hier klare Vorteile. Jeder Gastmaschine kann die gleiche Anzahl CPUs zugewiesen werden, die tatsächlich physikalisch vorhanden sind. Dann reicht eine zeitscheibengesteuerte Performanceverteilung in der Regel aus. Der wirklich einfache Umzug einer virtuellen Maschine von einem Rechner auf den anderen kann derzeit nur in der High-End-Lösung von Vmware realisiert werden. Damit ist es möglich, eine virtuelle Maschine umzuziehen, ohne den laufenden Betrieb zu unterbrechen. Bei allen anderen Lösungen geht es nicht ganz unterbrechungsfrei.
Zwar können virtuelle Festplatten und Partitionen problemlos auf jeden Rechner mit der gleichen Virtualisierungslösung gebracht werden, jedoch muss man sich Gedanken über das optimale Vorgehen machen. Am einfachsten ist es mit einem Storagesystem. So kann einfach eine andere Maschine die virtuelle Festplatte übernehmen. Dann lässt sich bei guter Planung unmittelbar nach dem Herunterfahren der alten virtuellen Maschine die gleiche virtuelle Maschine auf einem neuen Rechner wieder starten. Bei Rechnern mit dediziertem Festplattensystem muss die virtuelle Maschine kopiert oder zumindest umgehängt werden.
Ebenfalls sollte man sich Gedanken über Disaster-Recovery-Szenarien machen. Viele Backup- und Restore-Lösungen können auch in einer virtuellen Maschine betrieben werden, andere jedoch nicht. Auf jeden Fall gilt es zu beachten, dass auch die virtuellen Maschinen selbst wiederhergestellt werden müssen, was aber relativ leicht zu bewerkstelligen ist. Die Planungen für den Fall eines Unglücks müssen sorgfältig überarbeitet werden. In vielen Fällen bietet die Virtualisierungslösung sogar Unterstützung für Backup-Restore-Szenarien, da es in der Regel möglich ist, mit einem Snapshot und einer Differenz dazu zu arbeiten.
Fazit
Virtualisierung, wenn sie an der richtigen Stelle eingesetzt wird, kann heute in vielen Fällen bereits zu Kosteneinsparungen führen, sofern Kosten und Nutzen sauber gegeneinander abgewogen werden. Insbesondere gilt es, den zu erwartenden Performanceverlust gegen eine wesentlich höhere Flexibilität in Relation zu setzen.
Allerdings steht diese Technologie erst ganz am Anfang. Die CPU-Hersteller beginnen gerade mit der Unterstützung von Virtualisierung. Die Hersteller von Hardwarekomponenten müssen nachziehen, damit ihre Produkte auch performant und zuverlässig in einer virtuellen Maschine funktionieren. Gleiches gilt für die Betriebssystemhersteller, die dynamische Ressourcenzuteilung durch die Virtualisierungssoftware beherrschen müssen. Auch die Schaffung von Standards über Betriebssystem- und Herstellergrenzen hinweg ist eine dringende Notwendigkeit. Sollten diese Voraussetzungen eines Tages erfüllt sein, so wird niemand mehr darüber ernsthaft nachdenken, ein Rechenzentrum mit nicht-virtualisierten Servern zu betreiben, da die Vorteile dann wirklich ohne Kompromisse genutzt werden können.