Virtualisierungstechniken für Server

Das richtige Abbild

15. Dezember 2009, 10:46 Uhr | Rolf Kersten/jos

Betreiber von Unternehmenssoftware verbinden mit dem Thema "Virtualisierung" zwei Ziele: bessere Ausnutzung vorhandener Systemressourcen und mehr Flexibilität und Geschwindigkeit durch Entkopplung von Applikationen und Services von einer bestimmten Hardware beim Betrieb dieser Dienste.

Bei der Server-Virtualisierung unterscheidet man heute drei Ansätze: Die Hardwarepartitionierung, die logische Partitionierung mit Hypervisor-Technik und die Abschottung von Applikationen mit Betriebssystemmitteln. Die Techniken unterscheiden sich dabei in der Granularität, mit der Ressourcen einzelnen Applikationen zugewiesen werden können und in der Abschottung von Instanzen untereinander. So bietet heute die Hardwarepartitionierung immer noch die maximale Abschottung innerhalb eines Servers. Ein Server, der zum Beispiel in drei Hardwarepartitionen unterteilt ist, schottet selbst Hardwarefehler zwischen den Partitionen voneinander ab. Dies geht zu Lasten der Granularität, da die hardwaremäßige Partitionierung nur auf CPU-Basis gelingt. Im Gegensatz dazu bietet die Applikationsvirtualisierung mit Betriebssystemmitteln die geringste Abschottung zwischen Applikationen, aber eine maximale Flexibilität bei der Ressourcenzuweisung bei minimalem Overhead.
Welche Technik eignet sich für welchen Einsatzzweck? Für geschäftskritische Anwendungen empfiehlt sich heute weiterhin die Hardwarepartitionierung. So kann man in einem Highend-Server parallel ein Produktionssystem und ein Qualitätssicherungssystem betreiben. Wenn dann beispielsweise ein neuer Hostbus-Adapter in das Produktionssystem eingebaut werden soll, so kann dieser zunächst in der Qualitiätssicherungspartition intensiv getestet werden. Wenn alle Tests erfolgreich verlaufen sind, kann dieser Hostbus-Adapter dann – auch während des laufenden Betriebs – von der QS-Partition in die Produktionspartition wandern.
Die Unterteilung des Servers ist dabei sicher sehr grob, aber die Sicherheitsabschottung zwischen den Domains ist optimal. Auch bei strengen Sicherheitsanforderungen zur Abschottung bietet sich heute die Hardwarepartitionierung an
Die derzeit am häufigsten eingesetzte Virtualisierungstechnik ist die Unterteilung eines Servers in mehrere logische Partitionen mit Hilfe eines Hypervisors. In jeder Partition lässt sich dann ein Betriebssystem installieren. Die zugrunde liegende Technik ist eine Abstraktionsschicht – meist als virtuelle Maschine bezeichnet, die die vorhandene Hardware soweit abstrahiert, dass jedes Betriebssystem „seinen“ Server sieht. Über den Hypervisor ist für die virtuellen Maschinen eine feinere Ressourcenzuteilung möglich als bei den Hardwarepartitionen. Die Sicherheitsabschottung zwischen den Instanzen ist jedoch geringer. Ein Hardwarefehler führt immer zum Totalausfall aller Instanzen, während bei Hardwarepartitionen nur die Instanz betroffen ist, in deren Partition der Fehler auftrat – daher sollten bei der Virtualisierung durch logische Partitionen sehr zuverlässige Server gewählt werden. Außerdem ist zu beachten, dass die Betriebssysteme ebenfalls Ressourcen verbrauchen. Auch kann der Hypervisor das I/O-Verhalten sehr anspruchsvoller Applikationen negativ beeinflussen. Deshalb lohnt sich oft eine Analyse, ob denn tatsächlich für alle Applikationen jeweils eine separate Betriebssysteminstanz erforderlich ist.
Mit und ohne Hypervisor
Applikationen auf einem Server, der mit nur einem Betriebsystem ohne Hypervisor betrieben wird, lassen sich – entsprechenden Betriebssystemsupport vorausgesetzt – allerdings trotzdem und entsprechend ressourcenschonender virtualisieren. Auf dem Betriebssystem laufen dann mehrere Container. Innerhalb des Containers kann die Applikation dann agieren, wie sie möchte. Sie kann die Grenzen des Containers aber nicht verlassen. Der Vorteil liegt auf der Hand: Es läuft nur eine Betriebssysteminstanz, und nur diese eine Instanz verbraucht Ressourcen. Der Overhead der eigentlichen Container liegt bei circa einem Prozent – unabhängig von der Anzahl der Container. Der Nachteil bei diesem Ansatz: Die Applikationen müssen alle auf dem gleichen Betriebssystem ablauffähig sein. Mittlerweile gibt es hier aber Weiterentwicklungen, die es ermöglichen, auch Applikationen, die unterschiedliche Betriebssystemversionen brauchen, in einzelnen Containern ablaufen zu lassen. So ist es beispielweise möglich, in Sun Solaris 10 für Applikationen, die nur für Solaris 8 zertifiziert sind, einen Solaris-8-Container bereitzustellen. Solaris-9- oder Linux-Umgebungen sind ebenso möglich.
Benchmarks, die die gleiche Applikation in allen drei Szenarien testen sind selten. Benchmark-Ergebnisse aus virtualisierten Umgebungen können durchaus eine höhere Leistung nachweisen, als dies mit der physischen Hardware möglich wäre. Dies gilt allerdings nur für solche Applikationen, die auf modernen Mehrprozessor- und Mehrkern-Servern nicht skalieren und daher die bereitgestellten Ressourcen allein nicht ausnutzen können. In diesem Fall wird der Betrieb von mehreren virtualisierten Instanzen solcher Applikationen einen höheren Gesamtdurchsatz zeigen als der Betrieb nur einer Instanz direkt auf der dann viel zu wenig ausgelasteten Hardware.
Benchmark
Der SAP-SD 2-Tier-Benchmark eignet sich gut für diesen Vergleich, denn erstens skaliert SAP-SD auch ohne Virtualisierungshilfe auf moderner Hardware mit Mehrkernprozessoren, und zweitens liegen Benchmark-Ergebnisse auf identischer Hardware für beide oben beschriebenen Virtualisierungstechniken (Hypervisor und Container) vor. Die Performance von Hardware-Partitionierung lässt sich als äquivalent zum Betrieb von Applikationen ohne Virtualisierung ansehen und wird in diesem Vergleich daher nicht betrachtet.
Die Ergebnisse zeigt die Tabelle oben. Es ist zu erkennen, dass die ressourcenschonendere Virtualisierungsvariante eine 36 Prozent höhere Applikationsperformance ermöglicht.
In vielen Fällen wird daher für jede Applikation einzeln zu entscheiden sein, welche Virtualisierungstechnik für welche Applikationen das effizienteste Mittel ist. Daher ist es wichtig, dass das System-Management zum Überwachen, Installieren und Patchen von Systemen sowohl mit virtuellen Instanzen (gleichgültig welcher Technik) als auch ohne Virtualisierung betriebenen Servern umgehen kann und beide in einer gemeinsamen Oberfläche präsentiert.
Definition der Ziele
Letztendlich ist für jedes Virtualisierungsprojekt festzulegen, welche Ziele gelten. Welche Abschottung der Applikation und der Anwender voreinander ist notwendig? Wie ist der Ressourcenbedarf der Applikationen? Wie ist das Verhältnis von Performanceeinbuße zum Zuwachs und zur Flexibilität? Wie granular muss die Ressourcenzuteilung sein? Gesetzliche Vorschriften, Regeln und Lizenzfragen sind mit zu berücksichtigen – und letztendlich muss auch der Anwender mit in den Entscheidungsprozess eingebunden werden, denn die Akzeptanz bei dem Einsatz von Virtualisierung trägt entscheidend zum Erfolg eines Virtualisierungsprojektes bei.

Rolf Kersten ist Leiter Produktmarketing bei Sun Microsystems.


Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu Lampertz GmbH & Co. KG

Matchmaker+