Virtualisierungsebenen

In den letzten Jahren haben sich 2 wesentliche Bereiche für Virtualisierungslösungen herauskristallisiert: Die Systemvirtualisierung und die Anwendungsvirtualisierung. Die Ansätze für beide Virtualisierungsebenen werden im Folgenden genauer erklärt.

 

Systemvirtualisierung (Hardware)

Klassische EDV- Systeme bestehen aus der passenden Kombination von dedizierter Hardware und auf dieser Hardware installierter Software- in der Regel einem Betriebssystem (OS= Operating System). Das Betriebssystem muss dabei in der Lage sein mit den verbauten Hardwarekomponten kommunizieren zu können, also Daten auszutauschen oder Einstellungen an den Hardwarekomponenten vornehmen zu können.
Bei der Systemvirtualisierung mittels Virtualisierungs- Software wird eine Abstraktionsschicht zwischen der Hardware und dem Betriebssystem eingefügt. Diese "Hypervisor" genannte Zwischenschicht vermittelt zwischen der eigentlichen Hardware und dem Gast- Betriebssystem, indem die speziellen Hardwarekomponenten der konkreten Hardware dem Gast- Betriebssystem als einheitliche Standardkomponenten präsentiert werden. Dieses Verfahren bietet mehrere Vorteile:

Die für die Installation der Gast- Betriebssysteme notwendigen Gerätetreiber (also die Zugriffskomponenten für die Hardware) sind bei jedem Hypervisor des jeweiligen Herstellers immer gleich. Deshalb kann ein Gast- Betriebssystem ohne Änderungen von einem Hypervisor zu einem anderen übertragen werden und sind dort unmittelbar lauffähig. Dies funktioniert auch, wenn die Virtualisierungs- Hosts von unterschiedlichen Herstellern stammen oder einer anderen Gerätegeneration angehören. Die eigentliche Installation (die "virtuelle Maschine" oder VM) beispielsweise des Windows- oder Linux- Betriebssystems besteht nur aus deren Daten- und Konfigurationsdateien der Virtualisierungsumgebung. Bei einem Hardware- Defekt müssen diese nur auf eine Ersatzhardware mit installiertem Hypervisor (z.B. "VMWare vSphere", "Microsoft Hyper-V" oder "Oracle VirtualBox") übetragen werden und sind dann sofort lauffähig. Dies führt zu einer maximalen Unabhängigkeit von konkreter Hardware. Der Daten- und Installationsstand bleibt auch bei einer geplanten Erneuerung der Hardware erhalten.

Ein weiterer Vorteil dieser Konstruktion ist die Möglichkeit mehrerer Betriebssystem- Installationen parallel auf der gleichen Hardware ausführen zu können und so die vorhandenen Ressourcen wesentlich besser auszunutzen. Es ist z.B. problemlos möglich mehrere Windows- Server parallel laufen zu lassen oder auch heterogene Netzwerke aus z.B. Windows und Linux Installationen zu betreiben. So lassen sich die Vorteile der verschiedenen Welten auf ein und derselben Hardware nutzen. Das war ohne die Hardware- Virtualisierung nicht möglich- man benötigte für jede Installation eigene Server- Hardware. Die Aufteilung der in einem Netzwerk benötigten Server- Rollen (z.B. Dateiserver oder Datenbankserver) für zu einer wesentlich besseren Skalierbarkeit der Anlage bei steigendem Bedarf z.B. an Speicherkapazität oder Rechenleistung. Die vituellen Maschinen der einzelnen Rollen können einfach auf mehr physikalische- also Hardware- Server aufgeteilt werden, ohne Betriebssysteme und Software neu installieren zu müssen. Die reine Datenübertagung der virtuellen Maschinen erfolgt einfacher und viel schneller mit demenstprechend weniger Betriebsunterbrechungen.

 

Anwendungsvirtualisierung (Software- Container)

Klassische Software- Installation bestehen aus der passenden Kombination von installiertem Betriebssystem und installierter Anwendungs- Software. Die Software muss dabei in der Lage sein, sich auf die spezifischen Gegebenheiten des Betriebssystems einzustellen (z.B. spezielle Dateistruktur des Betriebssystems).

Bei der Betriebssystem- Virtualisierung wird auf der Ebene des Betriebssystems (OS= Operating System) virtualisiert. Dafür wird bestimmten Computerprogrammen eine abgeschlossene Laufzeitumgebung zur Verfügung gestellt, die gegenüber anderen Anwendungsprogrammen völlig gekapselt ist. Dieser geschlossene Container ermöglicht die Bereitstellung der nötigen Dateistrukturen innerhalb des Containers. Deshalb ist für diese Art der Anwendungsprogramme keine klassische Installation mehr notwendig, sondern es muss nur der Anwendungscontainer in die Laufzeitumgebung kopiert werden. Eine sehr einfache und schnelle Verteilung neuer Programmversionen ist die Folge. Es ist davon auszugehen, dass in absehbarer Zukunft der Standardweg für die Verteilung (neuer) Software die Veröffentlichung von Containern sein wird, da so auch dieselben Container für unterschiedliche Betriebssysteme benutzt werden können.
Außerdem wird es so möglich verschiedene Instanzen desselben Programms (APP= APPlication software) gleichzeitig laufen zu lassen. Die Trennung der genutzten Ressourcen stellt sicher, dass kein Container Zugriff auf die Ressourcen eines anderen Containers hat, wodurch die mehrmalige Ausführung derselben Software zur gleichen Zeit möglich wird.
Die bekannteste Laufzeitumgebung dieser Art ist "Docker".