Containervirtualisierung in Linux: So funktioniert lxc

Für die Containervirtualisierung ist ab Kernel 2.6.29 kein Zusatzprodukt wie OpenVZ mehr nötig. ZDNet zeigt, wie man eine komplette Distribution in einem Container ausführt, aber auch, dass es Defizite bei der Administration gibt.

Containervirtualisierung gehört neben Para- und Vollvirtualisierung zu den wichtigsten Virtualisierungstechnologien.Wer bei einem Hoster wie Strato, 1&1 oder Host Europe einen virtuellen Server anmietet, bekommt meist einen virtuellen Container, der mit einem Produkt wie OpenVZ, Virtuozzo oder VServer realisiert ist.

Doch solche Produkte könnten im Linux-Umfeld bald überflüssig werden, denn seit Kernel 2.6.29 bietet das OS Unterstützung für Namespace Isolation. Zusammen mit cgroups und POSIX Capabilities lassen sich einzelne Container einrichten. Die dazugehörigen Usermode-Befehle werden meist unter dem Begriff lxc (Linux Containers) zusammengefasst.

Bei der Containervirtualisierung laufen verschiedene Instanzen von Betriebssystemen auf demselben Kernel. Diese Container werden in der Regel als VPS (Virtual Private Server) bezeichnet. Anders als bei Voll- und Paravirtualisierung treten nahezu keine Performanceverluste durch die Virtualisierung auf.

Unter Linux ist es möglich, verschiedene Distributionen, etwa openSUSE 11.1 und Ubuntu 10.10, gleichzeitig auf demselben Rechner laufen zu lassen. Da bei Windows eine viel größere Abhängigkeit der Usermode-Libraries vom Kernel besteht, lassen sich zwar mehrere Instanzen derselben Windows-Version starten, der gleichzeitige Betrieb beispielsweise von Windows XP und Vista ist jedoch nicht möglich.

Mit lxc lassen sich noch mehr weitaus Szenarien realisieren als nur VPS-Systeme, also der Betrieb kompletter virtueller Maschinen. So ist es beispielsweise möglich, einem Serverprozess, der unter dem Benutzer root laufen muss, zu beschränken: Man kann ihm zum Beispiel nur Zugriffe auf die Dateien und Verzeichnisse geben, die er benötigt.

Ferner lassen sich seine Rechte (Capabilities), etwa Zugriff auf den gesamten Speicher, beschränken, und ein Limit auf bestimmte Ressourcen setzen, beispielsweise CPU-Zeit und Netzwerk-I/O. Sollte ein solcher Serverprozess, zum Beispiel durch einen Pufferüberlauf, gehackt werden, ist die Handlungsmöglichkeit des Hackers eingeschränkt.

Linux ist im Vergleich zu anderen Unix-Varianten relativ spät dran mit einer Containerlösung. Solaris und BSD haben das seit vielen Jahren implementiert, wobei Container im BSD-Jargon "Jails" genannt werden.

Wer einen ganzen virtuellen Server unter Linux betreiben möchte, etwa einen Debian-5.0-Server unter Ubuntu 10.10, konnte das bisher mit OpenVZ oder VServer kostenlos realisieren, allerdings mit einem entscheidenden Nachteil: Man muss dazu einen speziellen Kernel installieren, der Container beziehungsweise VPS unterstützt.

Die stabilen Versionen sind meist nicht die aktuellsten Kernel. Oftmals fehlt es daher an der Unterstützung der neuesten Hardware. Wer lxc benutzt, kann mit dem Kernel seiner Distribution arbeiten – vorausgesetzt, dass es sich mindestens um Version 2.6.29 handelt.

Themenseiten: Linux, Open Source, Plattform, Server, Servers, Software, Storage, Storage & Server, Virtualisation, Virtualisierung

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

ZDNet für mobile Geräte
ZDNet-App für Android herunterladen Lesen Sie ZDNet-Artikel in Google Currents ZDNet-App für iOS

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu Containervirtualisierung in Linux: So funktioniert lxc

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *