Event details

Linux Containers

von Patrick Westphal (Inqbus GmbH & Co. KG)

Wednesday, 23.05.2012, Europa I, 10:45-11:30 Uhr

In Bezug auf die Realisierung einer virtuellen Umgebung existieren verschiedene Spielarten, die sich jeweils im Grad der Kapselung unterscheiden. Diese reichen von einem System mit komplett emulierter Hardware über vollvirtualisierte Systeme bis hin zu einfachen chroot-Umgebungen. Interessant für den Einsatz in Hosting-Umgebungen oder für die Separierung verschiedener Anwendungsgruppen sind dabei leichtgewichtigere Containering-Ansätze wie zum Beispiel Linux VServer, OpenVZ oder Linux Containers.

Während die beiden erstgenannten Lösungen mit einem eigenen Kernel daherkommen, setzen die Linux Containers auf Strukturen und Fähigkeiten des Linux Kernels auf, die schon seit einiger Zeit verfügbar sind. Damit stützen sich die Linux Containers auf etablierte Bordmittel, die nach und nach Einzug in den Betriebssystemkern erhalten haben.

Mit Linux Containers lassen sich sowohl Containering-Lösungen als auch einfache chroot-Umgebungen abbilden. Dabei können die Dimensionen der Virtualisierung weitgehend frei bestimmt werden: Soll ein Linux Container mit eigenem root-Verzeichnis gestartet werden? Wird ein virtuelles Netzwerk benötigt? Sollen Ressourcen wie Hauptspeicher, Rechenzeit oder IO-Prioritäten beschränkt werden? Auf welche Gerätedateien darf ein Linux Container zugreifen? Alle diese Fragestellungen lassen sich individuell anpassen.

Die Linux Containers können daher als eine Art Virtualisierungsbaukasten verstanden werden. Eine Grundlage dessen stellen die Control Groups dar, welche bereits seit der Version 2.6.24 standardmäßig im Linux Kernel integriert sind. Diese ermöglichen es, Ressourcen für bestimmte Prozesse einzustellen und diese voneinander zu separieren. Damit sind gegenwärtige Kernel-Versionen bereits in der Lage, viele Problemstellungen zu lösen, bei denen man früher möglicherweise auf erweiterte chroot-Umgebungen anderer Betriebssysteme, etwa FreeBSD-Jails oder Solaris Containers, zurückgegriffen hat.

Im Vortrag sollen, beginnend mit den Control Groups und deren Schnittstelle über ein virtuelles Dateisystem, Grundlagen der Linux Containers dargestellt werden. Nach der Vorstellung verfügbarer Control-Group-Subsysteme soll gezeigt werden, wie man mit einfachen Shell-Kommandos Ressourcen von Prozessen und Prozessgruppen einstellen kann. Anschließend möchte ich die beiden Betriebsarten der Linux Containers und die Userland Tools vorstellen. Schließlich soll der Umfang und die Möglichkeiten der Konfiguration eines Linux-Containers aufgezeigt werden.

Der Vortrag soll einen Einblick in die generelle Architektur und Bedienung der Linux Containers geben.

Über den Autor Patrick Westphal:

Patrick Westphal arbeitet als Software- und Systementwickler bei der Inqbus GmbH & Co. KG. Kernbereiche sind Linux-basierte Umgebung diverser hochverfügbarer Dienste und Hosting-Plattformen für Python Web Application Frameworks.