SYSTOLA
Aus dem Labor
VhdTool ist tot, lang lebe VhdxTool!
Systola stellt einen Nachfolger für VhdTool zum schnellen Erstellen und Erweitern virtueller Datenträger vor und bespricht Sicherheitsaspekte bei der Verwendung dieses Tools.
Roman Kuznetsov @ 29.10.2013
Follow Roman Kuznetsov on LinkedIn
Mit VHDX hat Microsoft vor einiger Zeit ein neues Format für virtuelle Datenträger eingeführt. Zuvor kam bei verschiedensten Systemen das vergleichsweise einfachere VHD-Format zum Einsatz.

VHD wurde für Dateiserver, einige iSCSI-Zielserver, vor allem aber natürlich für Hyper-V-Server benutzt. Es wurde für verschiedenste Zwecke ge- und missbraucht; so benutzte man es etwa als generischen Container, und einige Backup-Systeme unterstützen sogar Komplettbackups von VHD-Containern und die spätere Wiederherstellung einzelner Elemente.

Hinweis: Es gibt zwei Arten von virtuellen Datenträgern, nämlich einmal Datenträger mit fester Größe und zum Zweiten dynamisch wachsende virtuelle Datenträger. Da es in diesem Artikel um Produktionssysteme geht, werden nur Datenträger mit fester Größe behandelt.

Die Verwaltung von VHD-Dateien war ein nicht zu unterschätzendes Problem. Auf Windows XP oder Server 2003 war es alles andere als einfach, VHD-Dateien zu erstellen und zu verwalten, wenn man nicht gerade ein MS iSCSI-Target zur Hand hatte. Windows 7 / Server 2008/R2 lösten das Problem zum Teil, indem sie die Verwaltung von VHD-Dateien in WMI und auch in die GUI integrierten. Dadurch wurde es möglich, via Powershell, das MMC-Snap-In Datenträgerverwaltung oder Diskpart VHD-Datenträger zu erstellen und zu erweitern.

Das Hauptproblem aber blieb: Wer einen virtuellen Datenträger von anständiger Größe erstellen wollte, sagen wir mal einige Hundert Gigabyte, musste viel Zeit mitbringen. Selbst auf schneller Hardware dauerte das Erstellen solcher Datenträger ewig, ganz geschwiegen von langsamen Computern oder Festplatten. Der Grund hierfür war ein potenzielles Sicherheitsrisiko: Um zu vermeiden, dass aus den neu zugewiesenen VHDs alte Daten wiederhergestellt werden können, wurde die gesamte Payload des neuen Datenträgers ausgenullt. Einzelheiten dazu enthält das Blog von Ben Armstrong (Link ist mittlerweile tod).

Microsofts Lösung: VhdTool

Mehr als ein halbes Jahr später brachten die Jungs von Microsoft schließlich ein Tool heraus, das auf das Ausnullen des neuen Datenträgers verzichtete und daher auch VHDs in Gigabyte- und Terabyte-Größte in Windeseile erstellen konnte. Dieselbe Funktionalität gab es übrigens auch im MS iSCSI Target-Server bei Storage Server 2003 R2. Sie wurde aber, wenn ich mich recht entsinne, mit Storage Server 2008 wieder entfernt. Weiteres findet sich in der Ankündigung des Tools.

Mehr als ein halbes Jahr später brachten die Jungs von Microsoft schließlich ein Tool heraus, das auf das Ausnullen des neuen Datenträgers verzichtete und daher auch VHDs in Gigabyte- und Terabyte-Größte in Windeseile erstellen konnte. Dieselbe Funktionalität gab es übrigens auch im MS iSCSI Target-Server bei Storage Server 2003 R2. Sie wurde aber, wenn ich mich recht entsinne, mit Storage Server 2008 wieder entfernt. Weiteres findet sich in der Ankündigung des Tools.

Wir werden gleich besprechen, was bei der Verwendung solcher Tools im Produktionsbetrieb zu beachten ist. Zunächst ist aber von Interesse, dass mit der Einführung von Server 2012 und der neuen Hyper-V-Version das alte VHD-Format aufgegeben und durch das neue und zuverlässigere VHDX ersetzt wurde.

Das neue Format ist sehr praktisch und hat zahlreiche Vorteile. Allerdings leiden Hyper-V-Anwender seit seiner Einführung erneut unter einer schleppend langsamen Verarbeitung beim Erstellen bzw. Ändern der Größe von virtuellen Datenträgern. Die Internetforen quellen über von Fragen dazu, wie sich die Erstellung von VHDX-Dateien beschleunigen lässt. Der Leser ahnt es schon: Das bereits erwähnte VhdTool unterstützt das neue VHDX-Format nicht, da es sich grundlegend von VHD unterscheidet.

Für Systola als Anbieter von DaaS-Lösungen zählt die Arbeit mit virtuellen Datenträgern zum täglichen Brot. Auch unser Team stand daher vor diesem Problem. Nachdem es uns nicht gelang, einen Nachfolger für VhdTool zu finden, der mit dem neuen Format zurechtkommt, beschlossen wir, das so dringend benötigte Tool selbst zu schreiben.


Systola stellt vor: VhdxTool

Nach gründlichem Studium der Spezifikationen verfügen wir jetzt über ein voll funktionsfähiges Dienstprogramm, das Ihnen jede Menge Zeit sparen kann. Aber bevor wir uns das neue Programm genauer ansehen, müssen wir zunächst über das Problem sprechen, das durch seine Benutzung entsteht, und ermitteln, wann das Programm verwendet werden kann und wann besser nicht.

Bei der Wiederverwendung von "gebrauchtem" Speicherplatz auf dem zugrunde liegenden Massenspeicher für einen neuen virtuellen Datenträger gibt es ein grundlegendes Problem: Wird der für den virtuellen Datenträger reservierte Speicherplatz nicht ausgenullt, so enthalten die freien Speicherbereiche des erzeugten virtuellen Datenträgers mit großer Wahrscheinlichkeit gültige oder teilweise gültige Daten. Diese Daten können von der virtuellen Maschine, der der virtuelle Datenträger zugeordnet wird, leicht wiederhergestellt werden. Dies gilt es zu verhindern.


Sicher ist sicher

Es ist nicht besonders schwierig, die „Dos und Don'ts" beim Einsatz dieses Tools zum Erstellen von VHDX-Datenträgern zu unterscheiden. Mit „Endanwender" sind im Folgenden je nachdem, für welche Art von Firma Sie arbeiten, entweder Ihre Kollegen oder Ihre Kunden bzw. Mandanten gemeint.

"Do": Nutzen Sie dieses Tool:

  • ohne Einschränkungen in Labors und Testumgebungen,
  • auf neuer Hardware, d. h., auf neuen, nicht benutzten und noch nicht zuvor beschriebenen Festplatten,
  • auf gebrauchten Festplatten, die allesamt selbst zuvor ausgenullt worden sind,
  • für VHDX-Dateien, die nicht als Systemdatenträger benutzt werden, und auf die die Endanwender (auch Admins!) des Systems keinen Zugriff haben, zum Beispiel virtuelle Datenträger für SQL Server- oder Exchange-Datenbanken,
  • für VHDX-Dateien zum internen Gebrauch, die für die Endanwender unsichtbar sind

"Don't": Nutzen Sie das Tool NICHT:

  • für Systemdatenträger von Systemen, auf die die Endanwender Zugriff haben,
  • für sonstige Datenträger von Systemen, auf die die Endanwender Zugriff haben,
  • für VHDX-Dateien, die über SMB oder andere Netzwerkprotokolle zugänglich sind,
  • für VHDX-Dateien, die an einen Endanwender transferiert werden könnten,
  • für Master-Images von VHDX-Datenträgern für TS- oder VDI-Umgebungen,
  • für andere VHDX-Vorlagen, die den Weg in Systeme von Endanwendern finden könnten.
Wenn die "Dos und Don'ts" geklärt sind und nichts gegen den Einsatz des Tools spricht, laden Sie flugs von KB100005 eine Kopie von VhdxTool herunter. Dann noch überprüft, ob .NET 4.5 oder neuer installiert ist, eine Befehlszeile mit Administratorrechten oder eine Powershell-Konsole gestartet, und der nächsten VHDX-Erstellungsorgie steht nichts mehr im Wege!

Befehlssyntax

Das Tool würde für zwei grundlegende Operationen geschrieben: das Erstellen und das Erweitern (Vergrößern) von virtuellen Datenträgerdateien. Entsprechend gibt es zwei Modi, in denen das Tool operiert, sowie einen Modus zum Einholen von Informationen:

vhdxtool.exe create [Optionen] – erstellt eine neue VHDX-Datei.
vhdxtool.exe extend [Optionen] – erweitert eine bestehende VHDX-Datei.
vhdxtool.exe convert [Optionen] - eine dynamische VHDX ins statische konvertieren.
vhdxtool.exe upgrade [Optionen] - eine VHD ins VHDX convertieren.
vhdxtool.exe display [Optionen] – zeigt Informationen über eine bestehende VHDX-Datei an.

Die folgende Optionen können in ihrer Kurz- oder Langform verwendet werden:
Die Parameter BlockSize, LogicalSectorSize, PhysicalSectorSize sind identisch mit den Parametern des Cmdlets „New-VHD". Normalerweise können Sie diese Parameter weglassen, da sich die Standardwerte für die meisten Anwendungsfälle eignen. Falls Sie neuere Festplatten mit 4K-Sektorgröße verwenden, müssen Sie ggf. die Sektorgröße anpassen. Dabei helfen Ihnen diese Parameter. Weitere Informationen zur richtigen Wahl der Sektorgröße finden Sie auch hier:
Microsoft support policy for 4K sector hard drives in Windows and
Hyper-V Support for Large Sector Disks Overview.

Beispiele:
Erstellt einen neuen, 800 Megabyte großen VHDX-Datenträger:

vhdxtool.exe create -f test.vhdx -s 800MB
Erstellt einen neuen VHDX-Datenträger mit 4K-Sektoren und einer Größe von 2 Terabyte:

vhdxtool.exe create -f test.vhdx -s 2TB -b 64 -l 4096
Erweitert eine vorhandene VHDX-Datei auf 80 Gigabyte:

vhdxtool.exe extend -f test.vhdx -s 80GB
Zeigt interne Informationen über eine vorhandene VHDX-Datei an:

vhdxtool.exe display -f test.vhdx
Es gibt noch eine gute Nachricht für alle, die sich an die alte Syntax von VhdTool gewöhnt haben: Wir haben unser Tool mit der VhdTool-Syntax kompatibel gemacht. Sie können also auch einfach Folgendes eingeben:

vhdxtool.exe /create <FilePath> <DiskSize>
vhdxtool.exe /extend <FilePath> <NewSize>
Zusammenfassung

Mit unserem VhdxTool können Sie jetzt wieder blitzschnell virtuelle Festplatten in beliebiger Größe erstellen. Egal ob Sie einen VHDX-Datenträger mit 10 GB oder 10 TB benötigen – VhdxTool ist immer gleich schnell. Sie müssen lediglich für genügend Platz auf dem Massenspeicher sorgen.

VhdxTool benötigt .NET 4.5. Da das Tool vor allem auf Windows Server 2012/R2 zum Einsatz kommen wird, sollte das kein Problem sein, da diese Komponente dort bereits installiert ist.

Denken Sie bitte stets an die Voraussetzungen, unter denen dieses Tool benutzt werden kann, bevor Sie in Produktionsbetrieb gehen. Beachten Sie alle Risiken. Wenn Sie sich unsicher sind, verwenden Sie das Tool nicht und nutzen Sie eine integrierte Lösung. Aber wenn Sie wissen, was Sie tun, spart Ihnen unser Tool viel wertvolle Zeit.

Viel Spaß beim Jonglieren mit Ihren VHDX-Dateien!