Tags: Linux, Software-Distribution, vSphere, Container
Um Docker-Container herrscht ein Hype und in der Euphorie wird ihnen zugetraut, virtuelle Maschinen ganz zu ersetzen. VMware stellte auf der VMworld seine Lösung vor, die VMs und Container kombiniert und so die Vorteile beider Welten bieten soll.
Container dienen dazu, ein Betriebssystem zu partitionieren, ähnlich wie dies der Terminal-Server mit Hilfe von Sessions tut. Sie bieten jedoch eine stärkere Isolierung zwischen den Anwendungen, benötigen aber im Gegensatz zu VMs nur eine Instanz des OS.
Automatisches Deployment von Anwendungen
Daher scheint es die Vorteile von Containern zu konterkarieren, wenn man das Betriebssystem in einer virtuellen Maschine installiert und es dann dort in Container unterteilt. Damit ginge ihr leichtgewichtiger Charakter verloren, weil man erst wieder den Overhead der Virtualisierung mitschleppen muss.
Der wichtigste Grund für die plötzliche Popularität von Containern ist jedoch nicht primär der geringere Ressourcen-Verbrauch, sondern der von der Firma Docker entwickelte Deployment-Mechanismus. Damit lassen sich Container auch in großer Zahl automatisch erzeugen und Anwendungspakete mit Hilfe der bereitgestellten Metadaten per Script oder Kommandozeile dorthin verteilen.
VMware benötigte für seine Container-Unterstützung somit eine Lösung, die einem Docker-Client erlaubt, Anwendungen auf vSphere zu installieren, und die gleichzeitig jede Schwerfälligkeit vermeidet.
Eine VM pro Container
Dieses Ziel scheint VMware zu verfehlen, weil es für jeden Container eine eigene VM erzeugt, anstatt das darin enthaltene Gastbetriebssystem zu partitionieren. Allerdings sorgen gleich mehrere Maßnahmen dafür, dass vSphere trotzdem eine performante Umgebung für Container bereitstellt.
So nutzt VMware ein abgespecktes Linux in den VMs, das für diesen Zweck optimiert wurde. Dieses firmierte zuvor unter dem Namen CoreOS, nun ist es Teil des Photon-Projekts, welches die gesamte Container-Infrastruktur umfasst, und heißt jetzt entsprechend PhotonOS.
Künftig könnte Windows Server 2016 diese Rolle ebenfalls übernehmen, weil die Nano-Variante sehr niedrige Anforderungen stellt. Zudem arbeitet Microsoft an einer eigenen Implementierung von Docker-kompatiblen Containern, die auch in einem Nano Server laufen.
Bereitstellung durch Instant Cloning
Das schlanke Betriebssystem benötigt wenige Ressourcen und bootet in kurzer Zeit. Wenn jedoch eine große Zahl von Containern schnell bereitgestellt werden soll, wie dies bei Cloud-Anwendungen erforderlich sein kann, dann dauert der konventionelle Start von VMs zu lange, selbst wenn darin ein Mager-OS läuft.
Daher nutzt VMware das in vSphere 6 eingeführte Instant Cloning von VMs, um diesen Vorgang zu beschleunigen. Dieser Mechanismus funktioniert nach dem Muster von Linked Clones, nur dass der Vorgang im RAM vonstatten geht. Die Parent-VM wird zu diesem Zweck "eingefroren", so dass alle Abkömmlinge ihr Speicher- und Disk-Abbild verwenden können.
Die Clones benötigen dann nur noch RAM und Plattenplatz für ihre jeweiligen Abweichungen von der übergeordneten VM. Auf diese Weise lässt sich eine VM in wenigen Sekunden vervielfältigen, darüber hinaus begrenzt dieses Verfahren den Ressourcenverbrauch.
Flexible Ressourcen durch Virtual Container Host
In einer physikalischen Installation von Linux, die Container unterstützt, befinden sich die dafür benötigten Komponenten und APIs innerhalb des Betriebssystems. VMware verlagert diese jedoch aus der VM in die vSphere-Infrastruktur, wo der so genannten Photon Controller diese Aufgabe übernimmt.
Wenn ein Docker-Client einen Container einrichten und darin Anwendungen installieren will, dann kommuniziert er deshalb nicht direkt mit einer VM. Sonst wären die Container-Apps auf die Ressourcen dieser einen virtuellen Maschine begrenzt, so wie dies der Fall ist, wenn man sie auf einer physikalischen Installation eines OS einrichten möchte.
Stattdessen bietet VMware das Konstrukt namens Virtual Container Host, dem Ressourcen flexibel zugeordnet werden können, etwa in Form von Clustern oder Resource Pools. Auf diese Weise lassen sich Rechenleistung, RAM und Storage auch für sehr viele Container dynamisch bereitstellen.
Container als Einheiten im vSphere Client
Schließlich erfordert die Unterstützung von Containern in vSphere, dass die Management-Tools diese als administrative Einheiten erkennen. Wirft man einen Blick in den aktuellen vSphere Web Client, dann gibt es dort keine Objekte unterhalb einer VM.
Dies wird sich künftig ändern, so dass Administratoren die Aktivitäten von Anwendungen innerhalb der Container überwachen können.
Verfügbarkeit
vSphere Integrated Containers (VIC) und das Projekt Photon liegen derzeit als Technical Preview vor. VIC werden voraussichtlich zum Lieferumfang der nächsten vSphere-Version gehören, so dass sie herkömmliche VMs und Container parallel ausführen kann.
Dagegen ist Photon wahrscheinlich die Basis für ein eigenes Produkt, das ausschließlich für die Bereitstellung von Containern dient und das auf einer Magerversion von ESXi ("Microvisor") läuft.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
Weitere Links