Immer wieder kommt es vor, dass sich Konfigurationen ändern und dann extrem große VHDX-Dateien zurückbleiben, die unnötig viel Speicherplatz benötigen. In diesem Artikel erfährst du,  wie das Vorgehen bei einer VHDX-Verkleinerung ist und was es zu beachten gibt.

Warum überhaupt Fixed Size VHDX?

Der eine oder andere wird sich schon beim Titel des Artikels gefragt haben, warum nicht direkt auf dynamisch erweiternde VHDX gesetzt wird. Sollten auf diesen VMs Datenbankanwendungen laufen, kann es unter Umständen zu Einschränkungen der Leistung (Read/Write) kommen, die sich negativ auf die Nutzererfahrung auswirken könnten.

Zudem habe ich die Erfahrung gemacht, dass sich mit Fixed Size VHDX in der Planungsphase eines Hypervisors der Speicherbedarf besser einschätzen lässt.

Ein weiterer Nachteil von dynamisch erweiternden VHDX ergibt sich, wenn Dateien innerhalb der VHD gelöscht werden. Beim Löschen wird nur innerhalb der VM der Speicherplatz freigeben. Die VHD-Datei behält ihre Größe. Leider unterstützt auch nicht jede Backup-Software Changed Block Tracking (CBT). Eine kurze Ausführung zu CBT kannst du hier nachlesen.

VHDX verkleinern – Schritt-für-Schritt-Anleitung

Bevor du mit der eigentlichen Verkleinerung beginnen kannst, musst du mehrere Punkte überprüfen/durchführen:

  1. Überprüfe deine Datensicherungen und mache ggf. noch ein zusätzliches Backup, bevor du Änderungen durchführst.
  2. Leere in der VM den Papierkorb des jeweiliges Laufwerks.
  3. Führe in der VM wenigstens eine Defragmentierung des eingehängten VHDX-Datenträgers durch.
  4. Zur Sicherheit solltest du Chkdsk über den Datenträger in der VM laufen lassen. Bei Problemen kann keine Verkleinerung durchgeführt werden.
  5. Öffne in der Computerverwaltung die Datenträgerverwaltung und wähle im Kontextmenü des jeweiligen Datenträgers Volume Verkleinern.
  6. Im nächstens Fenster kannst du festlegen, um wieviel Megabyte der Datenträger verkleinert werden soll. Zum Starten drücke Verkleinern.

Nachdem die Aufteilung der Partition abgeschlossen ist, musst du die VM, in der die VHDX hängt, herunterfahren.

  1. In der Hyper-V Verwaltungskonsole öffne die Einstellungen der VM und drücke unter SCSI Controller -> Hard Drive (die VHDX, die du verkleinern möchtest) unten rechts auf Bearbeiten.
  2. Im Assistenten zur Bearbeitung von Festplatten klicke auf Weiter und wähle im nächsten Fenster Komprimieren. Bestätige die Auswahl mit Weiter.
  3. Um den Vorgang zu starten, musst du die Aktion mit Abschließen bestätigen. Nun wird die VHDX komprimiert und der einer Partition nicht zugewiesene Speicherplatz entfernt.

Wenn der Vorgang abgeschlossen ist, kannst du im Dateisystem des Hypervisors die Größe der VHDX überprüfen und die VM wieder einschalten.

Hinweis: Es ist nicht unüblich, dass die Komprimierung mehrere Stunden dauert. Der Vorgang darf nicht abgebrochen werden, da ein Abbruch zu einer korrupten VHDX-Datei führen kann.