16766

Facetten der Virtualisierung

Wenn Sie an Virtualisierung denken, fallen Ihnen wahrscheinlich VMware, vielleicht Xen oder sogar OpenVZ ein. Höchste Zeit, sich einen Überblick über die verschiedenen Virtualisierungstechnologien zu verschaffen.

Von Kirill Kolyshkin

Jeder Virtualisierungstyp wie Emulation, Paravirtualisierung und Betriebssystem-Virtualisierung hat Vor- und Nachteile, die sich auf seine Anwendung auswirken. Per Emulation kann etwa jedes nicht modifizierte Betriebssystem, das die Plattform unterstützt, auf der emulierten Plattform laufen. Implementierungen in dieser Kategorie reichen von reinen Emulatoren (wie Bochs) bis hin zu Lösungen, bei denen Code auf einer echten CPU nativ ausgeführt wird oder während der Laufzeit gepatcht wird, um die Performance zu steigern.

Die wichtigsten Nachteile der Emulation sind die vergleichsweise geringe Performance und Dichte. Beispiele hierfür sind die Produkte von VMware (www.vmware.de) und Parallels (www.parallels.com), Qemu von Fabrice Bellard (http://fabrice.bellard.free.fr/qemu/) sowie das Open-Source-Projekt Bochs (http://bochs.sourceforge.net/).

Paravirtualisierung ist eine Technik, bei der mehrere modifizierte Betriebssysteme auf einer dünnen Schicht betrieben werden, die Hypervisor oder Virtual Machine Monitor genannt wird. Paravirtualisierung zeigt eine bessere Performance als Emulation. Ihr Nachteil ist die notwendige Modifizierung des Gast-Betriebssystems. Beispiele hierfür sind Xen und UML (User Mode Linux).

Die Betriebssystem-Virtualisierung ermöglicht hingegen zahlreiche isolierte Ausführungsumgebungen in einem einzelnen Betriebssystem-Kernel. Sie verfügt über die bestmögliche (fast native) Performance und Dichte mitsamt dynamischer Ressourcenverwaltung. Allerdings kann diese Technologie nicht unterschiedliche Kernel von unterschiedlichen Betriebssystemen gleichzeitig ausführen. Beispiele für diese Technik sind FreeBSD Jail , Solaris Zones/Containers , Linux-VServer , OpenVZ und Virtuozzo .

Virtuelle Umgebung im Detail

Schauen wir uns das Konzept der virtuellen Umgebung an ("virtual environment" = VE, auch als VPS, Container, Partition etc. bekannt). Eine virtuelle Umgebung ist eine isolierte Umgebung zur Programmausführung und sieht (aus der Perspektive ihres Besitzers) wie ein unabhängiger physikalischer Server aus. Eine virtuelle Umgebung verfügt über eine eigene Menge an Prozessen, die bei "init" beginnen, ein eigenes Dateisystem, eigene Benutzer (inklusive root), Netzwerkschnittstellen mit IP-Adressen, Routing-Tabellen und Firewall-Regeln (netfilter/iptables). Zahlreiche virtuelle Umgebungen können nebeneinander auf einem physikalischen Server existieren. Während unterschiedliche virtuelle Umgebungen unterschiedliche Linux-Distributionen ausführen können, operieren alle virtuellen Umgebungen unter demselben Kernel.

Betrachten wir nun den OpenVZ-Kernel etwas näher. Er ist ein modifizierter Linux-Kernel und bietet Virtualisierung und Isolierung mehrerer Subsysteme, Ressourcenverwaltung und Checkpointing. Durch Virtualisierung und Isolierung können viele virtuelle Umgebungen innerhalb eines Kernels existieren. Das Ressourcenverwaltungs-Subsystem begrenzt Ressourcen wie Prozessor, Arbeitsspeicher und Festplattenplatz für jede virtuelle Umgebung (und garantiert diese Ressourcen in manchen Fällen). Checkpointing ist der Prozess des "Einfrierens" einer virtuellen Umgebung – es speichert den kompletten Status auf einer Festplattendatei und macht es möglich, diesen Status später wiederherzustellen.

0 Kommentare zu diesem Artikel
16766