VMware vSphere Integrated Containers - Docker-Unterstützung für VMs

    vSphere integrated Container mit Docker-SupportUm 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 Gast­betriebs­system zu partitionieren. Allerdings sorgen gleich mehrere Maßnahmen dafür, dass vSphere trotzdem eine performante Umgebung für Container bereitstellt.

    Architektur von vSphere Integrated Container (ehemals Project Bonville)

    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-kompa­tiblen 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.

    Durch das Klonen einer laufenden VM beschleunigt sich das Bereitstellen von Containern.

    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.

    Keine Kommentare