Die Nutzung von Differenzierenden VHDs mit Hyper-V - Hyper-V Server Blog

Die Nutzung von Differenzierenden VHDs mit Hyper-V

differenzierende-vhdsDa ich zur Vorbereitung eines weiteren Blogartikels mehrere VMs benötige, die alle eine gleichartige Grundinstallation haben, verbinde ich diese Installation mit der Nutzung von differenzierenden VHDs, um dieses Verfahren in diesem Artikel zu beschreiben. Differenzierende VHDs sind virtuelle Festplatten, in denen ausschließlich die Änderungen geschrieben werden, der Grundbestand liegt in einer eigenen VHD. Diese VHD ist einmalig und immer gleich, diese Art von Verfahren funktioniert, weil auf die Basis-VHD nur lesend zugegriffen wird. Mit Hilfe dieses Verfahrens ist man in der Lage, mehrere Dutzend VMs bereitzustellen, die dann aber nicht pro VM jeweils die volle Größe nutzen, sondern immer nur die Änderungen speichern. Ausgehend von dem Ziel, 50 VMs mit Windows 7 bereitzustellen, hätten wir auf unserem Hyper-V Host einmal die ~10 GB an Daten liegen, nach dem Hinzufügen aller 50 VMs zur Domäne sind auf dem Server pro VM weitere 600 MB in Nutzung. Mit einer dynamisch erweiterbaren VHD pro VM und ohne Nutzung von differenzierenden VHDs würde diese Installation 50 x 10 GB = 500 GB benötigen. Wenn die VMs jeweils mit differenzierenden VHDs eingerichtet sind, wird 1 x 10 GB + 50 x 100 MB = 15 GB benötigt. Wir sparen uns auf unserem Host somit über 95% an Speicherplatz. Wie die Einrichtung und Nutzung funktioniert, möchte ich nun in dem folgenden Artikel beschreiben.

Um die im oberen Teil in Worten versuchte Erklärung weiter zu vereinfachen, hier ein Screenshot mit der Funktionsweise:

Funktionsweise

Die Erstellung einer Vorlage

Um eine Vorlage zu erstellen, erstellen wir wie gewohnt eine VM. Bei der Auswahl der Festplatte ist zu beachten, dass die Größe der Vorlagen-VHD später die Größe sein wird, die in dem System zur Verfügung stehen wird. Wenn wir hier nur z.B. 15 GB angeben, können wir später auch nur 15 GB nutzen. Nach der Erstellung der VM inkl. einer VHD benennen wir das System so, wie unser erstes System später heißen soll. Die Einstellungen der VM passen wir nach unseren Einstellungen an und starten die VM. Wir installieren das von uns benötigte System und passen das System so an, wie es nach dem Start einer weiteren “Kopie” aussehen soll. Zu diesen Anpassungen zählt z.B. die Installation aller bisher erschienenen Updates, die Installation oder Ablage von Programmen auf der lokalen Festplatte usw.

Hier die Installation in Screenshots. Zuerst legen wir eine neue VM an

30-01-2012 15-24-02

30-01-2012 15-24-31

30-01-2012 15-24-37

30-01-2012 15-24-41

Bei der Wahl der Festplatte denken wir daran, dass diese Größe später wichtig und unsere Maximalgröße ist. Falls eine VHD mit fester Größe erstellt werden soll kann dies nicht an dieser Stelle passieren, sondern muss nach der Erstellung der VM separat erfolgen

30-01-2012 15-28-14

30-01-2012 15-29-19

30-01-2012 15-29-30

Wir passen die Einstellungen der VM an unsere Bedürfnisse an

image

Als nächstes starten wir die VM und installieren das Betriebssystem

image

Nach der Installation führen wir die Schritte durch, die jede VM benötigt, wir aber nur einmalig machen möchten. Weiterhin ist zu bedenken, dass alles was nun installiert und kopiert wird einmalig in der Basis-VHD liegt und nicht in jeder der differenzierenden VHDs. Da es sich in meinem Fall um ein Windows XP handelt installiere ich die Integrationskomponenten

30-01-2012 16-01-49

Weiterhin kopiere ich NewSid (Bitte keine Diskussion über NewSid starten, ich weiß dass das Tool nicht mehr “state of the art” ist ;)) auf die lokale Festplatte unter C:\system

30-01-2012 16-27-28

Als nächstes schalten wir den Client aus

30-01-2012 16-28-17

In den Eigenschaften entfernen wir die VHD

30-01-2012 16-28-37

Das Ergebnis sieht wie folgt aus

30-01-2012 16-28-40

Im Explorer verschieben wir nun die .vhd-Datei aus dem Ordner der VM heraus in einen eigenen Ordner, ein aussagekräftiger Name ist hier sinnvoll

image

image

Als nächstes setzen wir in den Eigenschaften der VHD die Einstellung “Schreibgeschützt”

image

Zurück im Hyper-V-Manager erstellen wir über Neu => Virtuelle Festplatte eine neue VHD, dieses Mal wählen wir die Option “Differenzierend”

image

In der nächsten Option konfigurieren wir den Pfad und den Namen der VHD-Datei. Wie man erkennen kann, ist hier keine Eingabe der Größe möglich

image

Im nächsten Schritt geben wir den Pfad und Namen der Basis-VHD an, dies ist die VHD, die wir im vorherigen Schritt kopiert und mit einem Schreibschutz versehen haben

image

image

Nach einem Klick auf “Fertig stellen” weisen wir unserer VM diese soeben erstellte VHD zu

image

Wir können die VM nun starten, nach dem Start führe ich NewSid aus, um die SID des Systems zu ändern

30-01-2012 16-32-39

Weiter geht es mit der Erstellung der zweiten VM. Hierzu erstellen wir im Hyper-V-Manager im Wizard eine neue VM

30-01-2012 16-34-24

Die Einstellungen können nach Belieben angepasst werden, bei der Wahl der virtuellen Festplatte wählen wir die folgende Option

30-01-2012 16-34-45

Nachdem wir die VM erstellt haben öffnen wir die Eigenschaften. Hier passen wir uns die Einstellungen nach unseren Wünschen an, weiterhin fügen wir unter “IDE Controller 0” eine Festplatte hinzu

30-01-2012 16-35-45

Wir wählen im folgenden Fenster “Neu” und erstellen eine differenzierende Festplatte

30-01-2012 16-35-47

30-01-2012 16-35-52

Falls diese VHD-Datei im Ordner “Virtual Hard Disks” gespeichert werden soll, muss dieser Ordner noch angelegt werden im Explorer

image

Wir konfigurieren erneut die VHD sowie den Pfad zu der Basis-VHD

30-01-2012 16-36-47

30-01-2012 16-36-55

Nach der Bestätigung und dem Start der VM habe ich mit NewSid die SID des Systems geändert, zusätzlich kann ich mit dem Programm auch den Namen des Systems anpassen.

30-01-2012 16-38-35

Mit dieser Vorgehensweise kann ich mir eine große Anzahl an VMs erstellen, die jeweils immer auf eine VHD zurückgreifen. Ich habe die beiden Server in der Testumgebung ebenfalls mit dieser Variante eingerichtet, man kann im Explorer gut erkennen, wie groß die differenzierende VHD der beiden Windows Server 2008 R2 während der Sysprep-Phase ist

30-01-2012 15-20-41

Im Ressourcenmonitor kann man gut erkennen, dass die Basis-VHD nur lesend in Nutzung ist, die beiden differenzierenden VHDs jeweils lesend und schreibend bearbeitet werden

SNAGHTML1effb26f

 

Die oben beschriebene Art von Einsparung funktioniert natürlich nur dann, wenn sich die Systeme im späteren Betrieb nicht mehr viel voneinander unterscheiden. Ein gutes Beispiel für die Nutzung dieser Art von Festplatte ist z.B. VDI. Wenn Sie Unterstützung bei der Auswahl Ihrer Strategie benötigen oder generelle Hilfe beim Betrieb oder Aufbau Ihrer Hyper-V Umgebung benötigen, stehen wir Ihnen gerne zur Verfügung. Unsere Kontaktdaten sowie unsere Preise finden Sie rechts in der Navigationsleiste.

Jan Kappen
 

Jan Kappen ist ausgebildeter Fachinformatiker in der Richtung Systemintegration. Er hat seine Ausbildung im Sommer 2008 abgeschlossen und arbeitete bis August 2018 bei der Rachfahl IT-Solutions GmbH & Co. KG. Seit September 2018 arbeitet er als Senior Netzwerk- und Systemadministrator bei einem großen mittelständischen Unternehmen im schönen Sauerland. Jan Kappen ist unter anderen MCITP Server Administrator, Enterprise Administrator und Enterprise Messaging Administrator 2010 sowie MCTS für System Center Virtual Machine Manager 2008, Windows Server 2008 Active Directory, Windows Server Virtualization und Windows Server 2008 Network Infrastructure. Seit 2015 wird Jan Kappen im Bereich "File System Storage" bzw. "Cloud & Datacenter Management" für seine Expertise und seine Community-Arbeit mit dem MVP Award von Microsoft ausgezeichnet.

  • harald sagt:

    Hallo!
    Der Artikel ist sehr informativ. Mir gelingt es aber nicht, von einer differenzierenden VHD zu booten: Ich versuche, unter Win8Pro mit einer differenzierenden VHDX (darauf als BS Win8Pro) zu booten (entsprechend den Angaben in dem Artikel, nur ohne Änderung der SID). Ein Start als Client unter Win8 funktioniert problemlos, aber das native Booten klappt nicht: Ich habe mit EasyBCD einen neuen Booteintrag (mit Verweis auf die differenzierende VHDX-Datei) angelegt, dieser wird aber beim Boot-Menu nicht einmal angezeigt, und damit ist ein Start dieser VHDX nicht möglich (und sehe ich auch keine allfälligen Fehlermeldungen).

  • >