Mehr als nur Hype: Mit Linux-Containern zu mehr Effizienz im Data Center

Container-Virtualisierung ist einer der großen Trends des Jahres. Ein Grund hierfür ist die höhere Effizienz, die sich damit erreichen lässt.

Virtualisierung ist mittlerweile ein weitverbreiteter Ansatz, um Server-Ressourcen mit verschiedenen Anwendungen zu teilen, um so durch Server-Konsolidierung eine höhere Effizienz im Rechenzentrum zu erreichen. 

Administratoren bietet sich zudem der Vorteil, flexibel und nach Bedarf virtuelle Instanzen aufsetzen zu können. Trotzdem gibt es auch bei der Virtualisierung mit Hypervisoren noch Verbesserungspotenzial bei Performance und Ressourcenauslastung, das sich mit der Container-Virtualisierung ausschöpfen lässt.

In vielerlei Hinsicht dreht sich beim Hypervisor-basierten Ansatz alles um eine größtmögliche Flexibilität, indem jede Instanz für sich und unabhängig von den anderen Instanzen jedes beliebige unterstützte Gast-Betriebssystem ausführen kann. Dabei wird immer deutlicher, dass sich die Industrie damit selbst eine Falle gestellt hat.

Bei der Virtualisierung mit Hypervisoren benötigt nämlich jede Instanz eine vollständige Version des Gast-Betriebssystems, genauso wie vollständige Versionen der Applikationen, die darauf ausgeführt werden. Aus operativer Sicht führt dies zu einer enorm großen Last, die mitgeschleppt werden muss und letztendlich sowohl Effizienz als auch Performance der virtuellen Umgebung beeinträchtigt.

Zunächst einmal nutzt jedes Betriebssystem und jeder Applikations-Stack DRAM. Für kleine Instanzen mit einfachen Anwendungen entsteht so ein gewaltiger Overhead. Damit kommt allerdings auch ein großer Performance-Nachteil ins Spiel: Das Laden und Entfernen dieser Stack-Images für die entsprechenden Anwendungen dauert seine Zeit und beansprucht die Netzwerkverbindungen der Server. 

Im Extremfall entstehen dann sogenannte Boot Storms, bei denen beispielsweise Tausende virtuelle Desktops um 9 Uhr morgens hochgefahren werden und Mitarbeiter gemütlich zwei Tassen Kaffee trinken können, während der Netzwerkverkehr für alle anderen Aktivitäten blockiert ist.

Eines der grundlegenden Ziele der Server-Virtualisierung liegt in der schnellen Bereitstellung neuer Instanzen. Das Kopieren von Server-Images vom Netzwerk-Storage dauert seine Zeit, und diese Zeitspanne muss genaugenommen zur Boot-Zeit dazugerechnet werden. Dieser lange Bootvorgang limitiert ganz klar die Flexibilität und Elastizität und damit letztlich auch die Effizienz des Systems.

Mit Linux-Containern zu mehr Effizienz

Dieser Umstand bringt uns schließlich zu Linux-Containern. Im Nachhinein scheint es nur logisch, auf welche Art und Weise Container-Virtualisierung die Probleme mit multiplen Betriebssystemen und Anwendungs-Stacks lösen will:

  • In den meisten Data Centern dürfte es keine wirkliche Einschränkung sein, für alle Instanzen auf einem physischen Server das gleiche Betriebssystem einzusetzen. Immerhin kann ein Wechsel relativ einfach durch Orchestrierungs-Tools durchgeführt werden.
  • Viele Applikationen verwenden den gleichen Software-Stack, zum Beispiel LAMP.
  • Vor allem in großen Clustern verkompliziert die lokale Kopie des Betriebssystems nur unnötig Updates.

Container laden das Image des Betriebssystems einschließlich möglicher Anwendungen nur einmal in den Arbeitsspeicher. Dies könnte zum Beispiel auch über ein Netzwerklaufwerk erfolgen, da Netzwerk und Storage nicht durch das gleichzeitige Booten dutzender Images in die Knie gezwungen werden. Die Erstellung einzelner Container-Images benötigt dann nur vergleichsweise wenig Speicher, da hierbei lediglich Wegweiser zum gemeinsamen Image genutzt werden.

Auf diese Weise können Linux-Container die Anzahl möglicher Instanzen pro Server leicht verdoppeln, was natürlich zu einer höheren Effizienz und geringeren Kosten führen kann. Allerdings darf man dabei nicht vergessen, dass die doppelte Anzahl virtueller Instanzen auch die I/O-Last des Servers verdoppelt, auf dem die Instanzen laufen.

Gibt es neben der größeren Anzahl möglicher Instanzen aber noch weitere Vorteile? Lassen sich beispielsweise die Disk-IOPS verbessern? Führen Container gar zu einem effizienteren Netzwerk mit geringerer Latenz, was die größere Instanzen-Anzahl wieder wettmachen würde?

Die bisher wichtigste Studie zu diesem Thema kommt von IBM Research in Austin, Texas, und zeigt bei zentralen Metriken für Container erhebliche Vorteile gegenüber Hypervisoren. Die Studie belegt, dass Linux-Container fast genauso schnell arbeiten wie Hypervisor-basierte virtuelle Maschinen, und zwar durchweg in allen getesteten Bereichen. Einzig die Tests zur Netzwerklatenz müssen noch fertiggestellt werden.

Die IBM-Studie brachte sogar ans Licht, dass Linux-Container in bestimmten Bereichen besser abschneiden und sehr nahe an nativen LINPACK-Benchmarks liegen. Container schnitten beispielsweise bei Tests zu Random-Read (84.000 IOPS gegenüber nur 48.000 für KVM) und Random-Write (110.000 IOPS gegenüber 60.000 bei KVM) wesentlich besser ab als Hypervisor-basierte Virtualisierung. Auch die SQL-Performance mit lokalem SSD-Storage war deutlich besser.

Container-Virtualisierung nahezu mit nativer Hypervisor-Leistung

Sogar die HPC-Industrie (High Performance Computing) wendet sich derzeit dem Thema Virtualisierung und Container zu. Eine Studie der brasilianischen Universität Pontifical Catholic University of Rio Grande do Su wirft etwas Licht auf diesen Trend.

„HPC wird die Vorteile der Virtualisierung nur dann nutzen können, wenn der grundlegende Performance-Overhead (CPU, Arbeitsspeicher, Festplatten und Netzwerk) reduziert werden kann“, schreiben die Studienautoren. „In diesem Zusammenhang haben wir rausgefunden, dass die meisten Container-basierten Systeme eine fast native Performance von CPU, Arbeitsspeicher, Festplatten und Netzwerk liefern.“

Selbst der Marktführer in Sachen Hypervisor-Virtualisierung, VMware, bietet einen überzeugenden Performance-Vergleich zu Docker-Containern. Auch hier zeigt sich die fast-native Performance, auch wenn die Vorteile bei VMware nicht so deutlich ausfallen wie bei IBM. Dies dürfte unter anderem an der hohen Leistung liegen, mit der der Test durchgeführt wurde, wodurch der Overhead reduziert wird. Disk-IO adressierte VMware allerdings nicht.

Container sehen sich nach wie vor großen Sicherheitsbedenken ausgesetzt und müssen in dieser Hinsicht noch ordentlich zulegen. Trotzdem ist bereits jetzt absehbar, dass Linux-Container die meisten Performance-Probleme der Hypervisor-Virtualisierung lösen können. Alleine weil das Deployment sowohl einfach als auch schneller vonstattengeht, wird der Trend hin zur Container-Virtualisierung sicherlich noch weiter anhalten.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+ und Facebook!

Artikel wurde zuletzt im März 2015 aktualisiert

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close