Tags: vSphere, Scripts
Klone sind eine schnelle Bereitstellungstechnik für VMs, insbesondere für die Desktop-Virtualisierung. Der neueste Typ sind Instant Clones, die in vSphere 7 ein API für die Anpassung der Netzwerkeinstellungen im Gastsystem erhielten. Dies erlaubt programmatische Workflows zur Bereitstellung von Instant-Clone-VMs.
VMware kennt bei seinen Produkten vSphere, Horizon und Workstation drei verschiedene Klone-Technologien: Linked Clone, Full Clone und Instant Clone.
Linked versus Full Clone
Linked Clone (verknüpfter) Klon nennt VMware eine Momentaufnahme einer virtuellen Maschine, die fortlaufend virtuelle Festplatten mit der übergeordneten VM teilt. Das spart Speicherplatz und ermöglicht es mehreren VMs, den gleichen Stapel an Software-Installation zu verwenden.
Unter Full Clone versteht VMware vollständige Kopien virtueller Maschinen, die unabhängige von der ursprünglichen VM ausgeführt werden. Trotzdem sind sie schneller bereitgestellt als reguläre VMs, weil die Installation des Gast-OS- entfällt.
Da Full Clones virtuelle Festplatten nicht mit der ursprünglichen übergeordneten VM gemeinsam nutzen, haben sie im Allgemeinen eine bessere Leistung als Linked Clones. Allerdings dauert die Bereitstellung länger.
Im vSphere-Client lassen sich übrigens nur unabhängige Klone erstellen. Die GUI orchestriert den gesamten Workflow für das Klonen, darunter auch das Zuweisen einer neuen MAC-Adresse und einer eindeutigen Kennung. Linked Clones und Instant Clones erhält man hingegen kann nur über die CLI.
Öffnung von Instant Clones für Automatisierung
Instant Clones (sofortige Klone) sind Linked Clones sehr ähnlich. Sie teilen sich eine virtuelle Festplatte mit einer übergeordneten VM und verbrauchen damit weniger Plattenplatz als eine vollständige VM.
Instant Clones tun zusätzlich das Gleiche mit dem Arbeitsspeicher. Daher erzeugt man sie stets auf Basis einer laufenden VM. Damit funktionieren und verhalten sich Instant Clones eher wie Container als wie VMs.
Trotzdem sind Instant Clones voll funktionsfähig und sehr schnell startklar, während beim herkömmlichen Klonen noch ein vollständiger Betriebssystemstart erforderlich ist, der samt ordnungsgemäßer Konfiguration einige Minuten dauern kann.
Instant Clones (VMware-intern auch als VMFork bezeichnet) gibt es zum Beispiel in Horizon schon seit einigen Jahren. Die Funktion war auch schon einmal in vSphere 6.0 verfügbar, auch wenn das wesentliche Einsatzszenario eigentlich Horizon View mit seinen Just-in-Time-Desktops war und ist.
Öffentliche APIs standen jedoch vor vSphere 6.7 nicht für den externen Gebrauch zur Verfügung. Trotzdem waren viele Kunden an der Technologie interessiert, um auch andere Nicht-VDI-Anwendungsfälle wie Dev/Test, Continuous Integration / Continuous Development (CI / CD) oder sogar Container-Workloads in vSphere zu ermöglichen.
Die zaghafte Öffnung begann mit der Veröffentlichung des Flings PowerCLI-Instant-Clone-Extension, das ergänzend zu den privaten APIs eine weitere Abstraktionsebene bereitstellte. Darauf basierend veröffentlichte VMware dann zunächst das Fling Instant Clone für pyvmomi (vSphere SDK für Python), mit dem Kunden programmgesteuert auf die privaten APIs zugreifen konnten.
Beide Flings waren ein großer Erfolg und laut Wiliam Lam gab es sogar Kunden, welche die pyvmomi-Instant-Clone-Module in der Produktion verwendeten, um mehrere hundert Instant Clone-VMs pro Tag für ihre CI- / CD-Workloads bereitzustellen.
Seit vSphere 6.7 können Kunden die neu entwickelte Technik für Instant Clones inklusive eines nun öffentlichen vSphere-API verwenden. Dieses Update von Instant Clone bildet die Grundlage für zukünftige Verbesserungen dieser Technologie, wie sie nun in vSphere 7 eingeflossen sind.
Die neue Architektur für Instant Clones
Der Hauptunterschied zu früheren Versionen von Instant Clone besteht darin, dass es keine enge Kopplung mehr zwischen Source-VM (Parent) und Destination-VM (Child) gibt, wodurch einige Einschränkungen wegfallen.
Diese bestanden vor allem darin, dass Instant Clones vor 6.7 die wichtigsten vSphere-Funktionen wie vMotion, Cross vCenter vMotion, Storage vMotion, DRS oder HA nicht nutzen konnten. In der neuen Version, auch als Parentless Instant Clone bezeichnet, hängt die instanziierte VM dagegen nicht mehr von der Source-VM ab.
Der Instant Clone ist eine unabhängige VM, die aber auf dem exakten Status der Quell-VM ausgeführt wird. Dies ermöglicht die schnelle Provisionierung von VMs, die im Gegensatz zum herkömmlichen vollständigen Klonen sofort einsatzbereit sind, weil der Instant Clone sowohl den Arbeitsspeicher als auch der Festplattenstatus der Source-VM mitnutzt.
Alle Instant Clones teilen sich dieselben physischen Speicherseiten wie ihre Source-VM. Dies gilt auch beim Einsatz von Transparenter Speicherfreigabe (TPS).
Speichereinsparungen erzielt VMware durch Delta-Festplatten, die sich ähnlich wie bei einem verknüpften Klon verhalten. Anders als dieser verwendet Instant Clone jedoch keine Snapshot-basierte Delta-Festplatte, sondern eine andere Technik.
Diese erlaubt es nun auch, Instant Clones entweder aus einer laufenden oder einer eingefrorenen Source-VM zu erstellen. In der Vergangenheit musste man die Source-VM einfrieren, was bedeutete, dass sie während der Erstellung von Instant Clones nicht mehr verfügbar war.
Damit liegen die Vorteile von Instant Clonen auf der Hand:
- Deutlich kürzere Zeiten für die Bereitstellung
- Instant Clones sind praktisch sofort eingeschaltet und damit für Benutzer zum Herstellen einer Verbindung bereit
- Einsparungen bei der Speichernutzung
- Vereinfachte Wartung für Administratoren
Instant Clone Workflow
Beim Erstellen eines neuen Instant Clone wird die Source-VM kurz "betäubt" (stunned). Dabei wird für jede virtuelle Festplatte eine neue Delta-Festplatte angelegt, die auf die ursprüngliche Source-VM verweist.
Anschließend wird ein Speicherprüfpunkt der Source-VM erfasst und auf die Ziel-VM übertragen. Außerdem entstehen dabei für die Destination-VM neue Delta-Festplatten, die aber ebenfalls auf die ursprüngliche Source-VM verweisen.
Auch wenn die Einsatzmöglichkeiten unbegrenzt erscheinen, bedeutete die Nutzung des Features bisher, dass für jede Anpassung, etwa des Hostname und des Netzwerks, ein alternativer Workflow erforderlich war.
Guest Customization Engine in vSphere 7
VSphere 7 bringt nun eine neue Funktion namens Guest Customization Engine für Instant Clone. Sie unterstützt die native vSphere-Gastanpassung für Instant Clone in vSphere 7 bei mehreren Linux-Gastbetriebssystemen. Dazu zählen darunter RHEL und CentOS ab 7.4, RHEL 6.8, Ubuntu 16.04, SuSE 11 SP4 und SuSE 12 SP3.
Darüber hinaus gibt es eine Reihe neuer vSphere (SOAP)-APIs, um Instant Clone-Gäste anpassen zu können. Der Guest Customization Manager ist ein neues vSphere 7.0-API, die die folgenden drei Methoden enthält:
- AbortCustomization_Task
- CustomizeGuest_Task
- StartGuestNetwork_Task
Details dazu finden sich in der vSphere-SDK-Dokumentation.
System-Architekten können nun die Netzwerkeinstellungen im Gastbetriebssystem mithilfe des vSphere Web Services SDK anpassen. Dies umfasst für eine laufende virtuelle Maschine mehrere Schritte:
- Installation der Gastanpassungs-Engine
- Trennen von virtuellen Netzwerkkarten
- Anpassen der Einstellungen des Gastnetzwerks
- Virtuelle Netzwerkkarten erneut verbinden
- Neustart des Gastnetzwerks
- Wiederherstellung nach Gastanpassungsfehlern
- Ausführen etwaiger Scripts zur anwendungsabhängigen Anpassung
Täglich Know-how für IT-Pros mit unserem Newsletter
Thomas Drilling arbeitet seit mehr als 20 Jahren selbständig als Redakteur und Autor für viele ehemalige und aktuelle IT-Magazine sowie Blogs. Thomas ist zudem Buchautor und IT-Consultant.
Seit 5 Jahren ist Thomas neben seiner journalistischen Tätigkeit hauptberuflicher, selbständiger IT-Trainer für VMware und Microsoft.
Seine Themenschwerpunkte sind Virtualisierung und Cloud Computing, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zertifizierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausgezeichnet.
Thomas ist außerdem zertifizierter AWS Solutions Architect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Administrator.
Thomas führt aktuell jeden zweiten Montag einen 4-tägigen Grundlagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Informationen und Anmeldung über sein AWS-Blog.
Ähnliche Beiträge
- VMware vCenter Converter 6.4 Beta: Support für vSphere 8, Microsoft VBS
- VMware bringt künftig vCenter- vor ESXi-Releases, vSphere 8 U1 als IA verfügbar
- VMware vSphere 8 Update 1: Configuration Profiles nun GA, erweiterter TPM -Support, Okta als Identity Provider
- VMware veröffentlicht eBook mit Performance-Tipps für vSphere 8
- VMware kündigt vSphere+ Standard Edition an
Weitere Links