Die Nutzung von Differenzierenden VHDs mit Hyper-V
Da 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:
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
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
Wir passen die Einstellungen der VM an unsere Bedürfnisse an
Als nächstes starten wir die VM und installieren das Betriebssystem
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
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
Als nächstes schalten wir den Client aus
In den Eigenschaften entfernen wir die VHD
Das Ergebnis sieht wie folgt aus
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
Als nächstes setzen wir in den Eigenschaften der VHD die Einstellung “Schreibgeschützt”
Zurück im Hyper-V-Manager erstellen wir über Neu => Virtuelle Festplatte eine neue VHD, dieses Mal wählen wir die Option “Differenzierend”
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
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
Nach einem Klick auf “Fertig stellen” weisen wir unserer VM diese soeben erstellte VHD zu
Wir können die VM nun starten, nach dem Start führe ich NewSid aus, um die SID des Systems zu ändern
Weiter geht es mit der Erstellung der zweiten VM. Hierzu erstellen wir im Hyper-V-Manager im Wizard eine neue VM
Die Einstellungen können nach Belieben angepasst werden, bei der Wahl der virtuellen Festplatte wählen wir die folgende Option
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
Wir wählen im folgenden Fenster “Neu” und erstellen eine differenzierende Festplatte
Falls diese VHD-Datei im Ordner “Virtual Hard Disks” gespeichert werden soll, muss dieser Ordner noch angelegt werden im Explorer
Wir konfigurieren erneut die VHD sowie den Pfad zu der Basis-VHD
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.
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
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
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.