Anzeige
Anzeige
Hardware & Gadgets

Emulation, Paravirtualisierung, Betriebssystem-Virtualisierung: Virtualisierung hat viele Facetten

Das Thema Virtualisierung ist in aller Munde. Betreiber von Rechenzentren konsolidieren damit ihre Serverparks, Agenturen entwickeln ihre Desktop- und Web-Applikationen auf virtueller Hardware und auch Privatanwender können ihr Betriebssystem dank Virtualisierung mit einem Klick wechseln. T3N stellt die unterschiedlichen Virtualisierungsarten vor und wirft einen genaueren Blick auf OpenVZ.

7 Min.
Artikel merken
Anzeige
Anzeige

Durch Serverkonsolidierung kann eine Organisation die Anzahl der
genutzten physikalischen Server senken, indem ihre Anwendungen in
virtuelle Umgebungen verschoben werden. Dabei bleibt die Anzahl der
Betriebssystem-Umgebungen gleich. Dies spart Hardwarekosten, Platz für
Server-Racks, Strom und Verwaltungsaufwand.

Anzeige
Anzeige

Die Sicherheit kann erheblich verbessert werden, wenn jeder
Netzwerkdienst (beispielsweise Webserver, Mailserver etc.) in eine separate
virtuelle Umgebung verschoben wird. Wenn eine der Applikationen eine
Sicherheitslücke aufweist, sind die anderen nicht betroffen.
Zusätzliche Vorteile bieten die Fähigkeiten der dynamischen
Ressourcenverwaltung und die Live-Migration von Applikationen.

Entwickler und Tester benötigen normalerweise Zugriff auf eine
Handvoll Linux-Distributionen und sie müssen diese oft neu
installieren. Dank Virtualisierung können Entwickler zahlreiche
Distributionen bei nativer Performanz betreiben, indem sie einen
einzelnen Server nutzen und nicht neu booten müssen. Eine neue
virtuelle Umgebung kann in nur einer Minute erstellt werden. Das Klonen
von virtuellen Umgebungen ist ebenfalls einfach.

Anzeige
Anzeige

Auch im Bereich von Lehre und Ausbildung kann Virtualisierung
hilfreich sein. So könnte jeder Student Zugriff auf eine eigene
virtuelle Umgebung erhalten, in der er mit unterschiedlichen
Linux-Distributionen experimentieren kann.

Anzeige
Anzeige

Die bekannten Größen wie VMware, Xen, Parallels oder OpenVZ bieten ihre Lösungen teilweise kostenlos an, zum Teil oder vollständig auch als Open Source, setzen aber auf unterschiedliche Technologien. Jeder Virtualisierungstyp hat dabei Vor- und Nachteile, die sich auf seine Anwendung auswirken.

Emulation

Mit Emulation kann jedes nicht modifizierte Betriebssystem, das von dem Emulator unterstützt wird, auf der emulierten Plattform laufen. Implementierungen in dieser Kategorie reichen von reinen Emulatoren wie Bochs [1] 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 Performanz zu steigern. Typische Anwender sind Entwickler, die Programme für verschiedene Hardware-Plattformen schreiben und diese auf der Maschine testen wollen, an der sie gerade arbeiten – auch wenn sie mit völlig anderer Hardware ausgestattet ist. Die größten Nachteile von Emulation sind die relativ geringe Performanz und Dichte. Ein bekannter Emulator neben Bochs ist QEmu [2].

Anzeige
Anzeige

Paravirtualisierung

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 Performanz als Emulation, ihr Nachteil ist jedoch, dass das „Gast“-Betriebssystem modifiziert werden muss. Beispiele für Paravirtualisierung sind Xen [3] und UML [4].

Sollen verschiedene unmodifizierte x86- oder x64-Betriebssysteme gleichzeitig eingesetzt werden (z. B. Windows und Linux), beispielsweise um die Kompatibilität von Webservern und Websites zu erhöhen oder um entsprechende Plugins auf Windows-, Linux- und Mac-Browsern zu testen, muss auch dafür nicht jeweils ein eigener PC oder Mac gekauft werden: Ein Hypervisor setzt sich als zusätzliche Schicht zwischen das installierte Betriebssystem (den Host oder das Host-Betriebssystem) und die vorhandene Hardware. Die Befehle der Gast-Betriebssysteme für den jeweils exklusiven Zugriff auf die Hardware konkurrieren untereinander und mit dem Host. Für deren Koordination sorgt der Hypervisor, der die Befehle abfängt, verarbeitet und direkt an die Hardware weiterleitet oder selbst emuliert und die Ergebnisse wieder an den Gast übermittelt. Da jeweils vollständige Betriebssysteme mit all ihren Ressourcenanforderungen geladen werden, passen in der Regel zwei bis sechs Gäste auf einen Host. Anbieter, die Paravirtualisierung nutzen, sind beispielsweise VMware [5] oder Parallels [6].

Betriebssystem-Virtualisierung

Betriebssystem-Virtualisierung ermöglicht zahlreiche isolierte Ausführungsumgebungen in einem einzelnen Betriebssystem-Kernel. Sie verfügt über die bestmögliche (fast native) Performanz und Dichte und bietet eine dynamische Ressourcenverwaltung. Allerdings kann diese Technologie, anders als Paravirtualisierung, nicht unterschiedliche Kernel von unterschiedlichen Betriebssystemen gleichzeitig ausführen. Beispiele für Betriebssystem-Virtualisierung sind FreeBSD Jail [7], Solaris Zones/Containers [8], Linux-VServer [9], OpenVZ [10] und Virtuozzo [11].

Anzeige
Anzeige

Kernpunkt der Betriebssystem-Virtualisierung ist das Konzept der virtuellen Umgebung, auch „virtual environment“ (VE), VPS, Container oder Partition genannt. 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, ein eigenes Dateisystem, eigene Benutzer (inkl. root), Netzwerkschnittstellen mit IP-Adressen, Routing-Tabellen, Firewall-Regeln (netfilter/iptables) und vieles mehr.

Zahlreiche virtuelle Umgebungen können nebeneinander auf einem physikalischen Server existieren. Zwar können unterschiedliche virtuelle Umgebungen unterschiedliche Linux-Distributionen ausführen, alle virtuellen Umgebungen operieren dabei aber unter dem selben Kernel.

OpenVZ

OpenVZ ist eine Open-Source-Software zur Betriebssystem-Virtualisierung, die die Basis der kommerziellen Virtualisierungssoftware Virtuozzo von SWsoft bildet. OpenVZ besitzt einen modifizierten Linux-Kernel und bietet Virtualisierung und Isolierung mehrerer Subsysteme, Ressourcenverwaltung und Checkpointing (Einfrieren des Systems).

Anzeige
Anzeige

Durch Virtualisierung und Isolierung können viele virtuelle Umgebungen innerhalb eines Kernels existieren. Das Ressourcenverwaltungs-Subsystem begrenzt Ressourcen wie CPU, RAM und Festplattenplatz für jede virtuelle Umgebung und ist in der Lage, diese Ressourcen zu garantieren. Beim sogenannten Checkpointing wird eine virtuelle Umgebung „eingefroren“ – der komplette Status wird in einer Datei auf der lokalen Festplatte gespeichert und lässt sich später wiederherstellen.

Die Ressourcenverwaltung ist bei der Betriebssystem-Virtualisierung von vorrangiger Bedeutung, da es innerhalb eines Kernels eine begrenzte Menge an Ressourcen gibt, die von zahlreichen virtuellen Umgebungen gemeinsam genutzt werden. All diese Ressourcen müssen auf eine Art und Weise verwaltet werden, durch die viele virtuelle Umgebungen auf einem System nebeneinander existieren können und sich nicht beeinträchtigen.

Das Subsystem zur Ressourcenverwaltung von OpenVZ besteht aus drei Komponenten:

Anzeige
Anzeige
  1. Zwei-Ebenen-Festplattenquota: Der Administrator eines OpenVZ-Servers kann Festplattenquotas für den Festplattenplatz und die Anzahl an Inodes für jede virtuelle Umgebung festlegen (erste Ebene). Auf der zweiten Ebene des Festplattenquotas kann der Administrator einer virtuellen Umgebung („VE root“) Standardwerkzeuge für ein Unix-Quota nutzen und Festplattenquotas pro Benutzer und pro Gruppe festlegen.
  2. „Fairer“ CPU-Planer: Auch der CPU-Planer von OpenVZ besteht aus zwei Ebenen. Auf der ersten Ebene entscheidet er, welche virtuelle Umgebung den Zeittakt erhält und berücksichtigt dabei die CPU-Priorität und Limit-Einstellungen der virtuellen Umgebung. Auf der zweiten Ebene entscheidet der Standard-Linuxplaner, welcher Prozess in der virtuellen Umgebung den Zeittakt erhält und nutzt dabei Standard-Prozessprioritäten.
  3. User Beancounters: Dies sind eine Menge an Zählern, Begrenzungen und Garantien für jede virtuelle Umgebung. Circa 20 Parameter wurden sorgfältig ausgewählt und decken alle Aspekte des Betriebs einer virtuellen Umgebung ab, so dass eine einzelne virtuelle Umgebung keine der für den ganzen Computer begrenzten Ressourcen übermäßig beanspruchen kann. Andernfalls würde eine einzelne virtuelle Umgebung die anderen virtuellen Umgebungen beeinträchtigen. Bei den aufgezeichneten und kontrollierten Ressourcen handelt es sich hauptsächlich um Speicher und In-Kernel-Objekte wie IPC-Share-Memory-Segmente, Netzwerk-Puffer etc.

Dank Checkpointing erlaubt OpenVZ die „Live“-Migration einer virtuellen Umgebung auf einen anderen physikalischen Server. Die virtuelle Umgebung wird dazu „eingefroren“, auf eine andere Maschine transferiert und kann dort wiederhergestellt werden. Da der gesamte Prozess nur wenige Sekunden benötigt, erscheint er aus der Perspektive des Kunden wie eine Verzögerung in der Verarbeitung, nicht aber wie eine Ausfallzeit, denn die bestehenden Netzwerkverbindungen werden ebenfalls migriert.

Werkzeuge

OpenVZ liefert ein vzctl-Werkzeug mit, das eine hochwertige Kommandozeilen-Oberfläche zur Verwaltung von virtuellen Umgebungen bietet. Um eine neue virtuelle Umgebung zu erstellen oder zu starten, benötigt der Administrator beispielsweise nur zwei Befehle: „vzctl create“ und „vzctl start“.

Für die Änderung zahlreicher Parameter von virtuellen Umgebungen steht der Befehl „vzctl set“ zur Verfügung. Alle Ressourcen, beispielsweise die Größe des virtuellen Speichers einer virtuellen Umgebung, können während der Laufzeit geändert werden. Dies ist bei anderen Virtualisierungstechnologien wie Emulation oder Paravirtualisierung entweder schwierig zu implementieren oder unmöglich.

Anzeige
Anzeige

Templates

Damit Administratoren eine neue virtuelle Umgebung möglichst schnell und einfach erzeugen können, nutzt OpenVZ sogenannte Templates. Dies sind fertig erstellte Images für verschiedene Betriebssysteme, mit denen eine neue virtuelle Umgebung erzeugt wird. Es beinhaltet eine Paketzusammenstellung und einen Template-Cache (das Tarball-Archiv einer Chroot-Umgebung), in der die Pakete installiert sind. Dieses Tarball wird mit „vzctl“ entpackt. Mit der Technik des Template-Cache kann eine neue virtuelle Umgebung in wenigen Sekunden erstellt werden, was schnelle Einsatzszenarien möglich macht.

Mit den vzpkg-Tools wird zudem die Erstellung des Template-Cache vereinfacht. Zurzeit werden RPM- und yum-basierte Repositorys unterstützt. Zur Erstellung eines Templates der Fedora-Core-5-Distribution muss beispielsweise eine Menge von (yum-)Repositorys mit FC5-Paketen sowie eine Reihe der zu installierenden Pakete spezifiziert werden.

Auch pre- und post-install-Skripte können zur weiteren Optimierung und Modifizierung eines Template-Cache genutzt werden. Alle oben genannten Daten (wie Repositorys, Paketlisten, Skripte und GPG-Keys) bilden die Metadaten des Templates. Mit den Metadaten eines Templates kann das vzpkgcache-Werkzeug automatisch ein Template-Cache erstellen. Es lädt die aufgelisteten Pakete in eine temporäre virtuelle Umgebung, installiert sie dort und packt das Ergebnis in einen Template-Cache. Auch für Nicht-RPM-Distributionen können Template-Caches erstellt werden, obwohl dies mehr manuellen Aufwand erfordert.

Anzeige
Anzeige

Fazit

Virtualisierung kommt heute in unzähligen Anwendungsgebieten zum Einsatz. Den Nutzern stehen dabei die unterschiedlichsten Produkte und Virtualisierungstechnologien zur Auswahl. Die Betriebssystemvirtualisierung, beispielsweise mit OpenVZ, eignet sich besonders dann, wenn mehrere identische Linux-Distributionen parallel auf einem Rechner virtualisiert werden sollen, beispielsweise in einem Rechenzentrum.

Das OpenVZ-Projekt arbeitet derzeit aktiv daran, Betriebssystemvirtualisierung in den Mainstream-Linux-Kernel einzubringen. Einige Fortschritte wurden beispielsweise mit dem Pre-Patch für den stabilen Linux-Kernel-Baum 2.6.19-rc1 bereits erzielt, der Beiträge von OpenVZ, IBM und Eric Biederman enthält. Diese Initiative wird weiter verfolgt.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige