Open Source im professionellen Einsatz
Linux-Magazin 11/2015
© Jozef Polc, 123RF

© Jozef Polc, 123RF

Die Etablierten der Linux-Containerlandschaft

Alteingesessen

Container-Virtualisierung ist keine Erfindung der Gegenwart. Tatsächlich existieren solche Lösungen für Linux bereits seit Jahren. Das Linux-Magazin stellt die Platzhirsche und ihren Charakter vor.

725

Wenn es heute um Linux und Container-Virtualisierung geht, fällt fast immer nur ein Name: Docker. Tatsächlich ist es Docker gelungen, dieses Thema mit beachtlicher Wucht zurück ins Bewusstsein von Admins und IT-Strategen zu befördern. Regelmäßig entsteht sogar der Eindruck, Docker habe Container-Virtualisierung auf Linux-Systemen überhaupt erst erfunden. Doch das ist nicht richtig, es gibt sie seit rund 15 Jahren und sie wird auch schon seit längerer Zeit produktiv eingesetzt.

Wodurch werden Container für Admins überhaupt interessant? Der folgende Artikel verrät, warum Container für Admins so attraktiv sind und welche grundsätzlichen Ansätze sich gegenüberstehen.

Container versus Vollvirtualisierung

Virtualisierung gibt es bekanntlich in mehreren Geschmacksrichtungen. Auf der einen Seite steht die vollständige Virtualisierung in Form virtueller Computer. Hier entsteht ein komplettes System mit virtuellem Bios, das für die auf ihm laufende Software wie ein physischer Server aussieht. Unter normalen Umständen merkt die Software in der VM gar nicht, dass sie nicht auf echtem Blech läuft. Heute verwenden Admins meist diesen Ansatz. Besonders die Paravirtualisierung hat geholfen Vollvirtualisierung bekannt zu machen: Bei der Paravirtualisierung nutzt der Virtualisierer die Hardware des Hosts besser aus, wodurch sich eine bessere Performance ergibt.

Vollvirtualisierung hat allerdings einen großen Nachteil: Weil bei diesem Ansatz stets ein kompletter Computer simuliert wird, entsteht Overhead. Anders formuliert: Der Host, auf dem mehrere VMs etwa mit KVM und Qemu oder Xen laufen, verbrät alleine dafür Ressourcen, die den virtualisierten Rechnern dann nicht zur Verfügung stehen.

Im kleinen Maßstab ist der Effekt nicht so tragisch, aber bekanntlich macht eben auch Kleinvieh Mist. Insbesondere Cloudanbieter sind betroffen: Je mehr VMs in einem Setup laufen und zu verwalten sind, desto größer ist der Overhead. Damit ist auch die Dichte virtueller Maschinen pro Host oder Rack beschränkt, mit der Anbieter großer Rechenzentren planen können.

Container-Virtualisierung kommt da wie gerufen: Bei Containern emuliert der Host eben keinen kompletten Host, kein virtuelles Bios und auch keinen Kernel auf dem virtuellen Host. Alle Container eines Systems teilen denselben Kernel des Betriebssystems und greifen unmittelbar auf die Hardware zu, die der Hostkernel verwaltet. Damit entfällt der Overhead durch den Vollvirtualisierer praktisch vollständig.

Spötter behaupten, dass Container gar keine echte Virtualisierung seien. Denn "virtuell" ist bei Containern nur das Dateisystem. Der ganze Rest passiert über Funktionen des Hostkernels, die dafür sorgen, dass sich diverse Container nicht in die Haare kriegen.

Vom Kernel abhängig

Egal ob man Container als Virtualisierung betrachtet oder nicht: In jedem Fall muss der Kernel des Hostsystems Funktionen bereitstellen, damit die Container wie gewünscht funktionieren. Diese Funktionen waren in der Vergangenheit regelmäßig Grund für Zwist in der Riege der Kernelentwickler.

Doch der Reihe nach: Vor einigen Jahren trat Open VZ, dessen kommerzielle Variante sich später Virtuozzo nannte, als eine der ersten Container-Lösungen für Linux überhaupt auf den Markt. Im Linux-Kernel war Container-Virtualisierung damals kein Thema und entsprechende Funktionen fehlten komplett.

Open VZ löste das Problem durch einen eigens gepatchten Frankenstein-Kernel, der zwingend nötig war, um Open-VZ-Container auf dem Host zu verwenden. Viele Anläufe, die Patches für Open VZ in den Kernel zu bekommen, schlugen aber aus technischen Gründen fehl. Am Ende wurden Teile von Open VZ zur Basis für Cgroups und Network Namespaces, die heute das Rahmenwerk für Container in Linux bilden. Bis heute braucht Open VZ aber einen eigens gepatchten Kernel, wenn Admins die volle Funktionalität einsetzen wollen, die die Software ihnen anbietet.

Mit einem Rahmenwerk für Container im Kernel war das freie Betriebssystem relativ spät dran: Besonders Free BSD bot frühzeitig eigene Container-Implementierungen. Das sagt natürlich nichts über die technische Qualität der Linux-Implementierung aus: Cgroups gelten im Allgemeinen als zuverlässig. LXC war die erste Lösung, die auf Basis von Cgroups tatsächlich die Möglichkeit bot, Container mit Linux zu nutzen. Praktisch alle Container-Lösungen der Gegenwart für Linux setzen auf die Cgroups und ihre diversen Namespaces für Netzwerke und Prozesse auf.

Docker hat sich von Anfang an auf die Kernelfunktionalität zum Containern eingeschossen. Andere Lösungen wie der V-Server für Linux gehen hingegen bis heute ihren eigenen Weg, was ihren Einsatz meist komplizierter gestaltet. Doch der Pionier in Sachen Container verdient besondere Erwähnung.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • CaaS: Xen kooperiert mit Hyper

    Viele betrachten Container ja ohnehin als Hype-Thema. Da ist es nur folgerichtig, wenn Xen eine Partnerschaft mit einem Anbieter namens Hyper eingeht. Der liefert eine Hypervisor-agnostische Docker-basierte CaaS-Lösung.

  • Parallels benennt Server um -Unterstützung für Docker

    Der kommerzielle Parallels Cloud Server heißt ab sofort Virtuozzo. Wie das Unternehmen Parallels bekannt gab, unterstützt der Server ab sofort auch Docker.

  • Container

    In dem Maße, wie Containerlösungen wie Docker in Unternehmen immer mehr Anwender finden, rücken Sicherheitsaspekte stärker in den Fokus. Schon länger bescheinigen Kritiker Docker Schwächen in diesem Bereich. Doch wo genau hat sich das Projekt verhoben?

  • Docker

    Docker ist das englische Wort für Hafenarbeiter. Das passt, denn die gleichnamige Software füllt und verschiebt Container – die unter anderem Webanwendungen enthalten.

  • Docker will weg von Ubuntu

    In einem Statement auf der Webseite Hackernews erklärte Solomon Hykes, CTO von Docker, dass die Containerhersteller das offizielle Docker-Image von Ubuntu auf Alpine-Linux umstellen wollen.

comments powered by Disqus

Stellenmarkt

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.