VMWare ESXi – VMDK von Thick zu Thin mit vmkfstools ohne vCenter

Das Umwandeln einer VMDK von einer Thin- zu Thick-Bereitstellung stellt soweit kein Problem. Leider ist der andere Weg nicht ganz so einfach zu bewerkstelligen.

Auf diversen Internetseiten und Foren wird beschrieben, dass eine Konvertierung von Thick- zu Thin- HDDs relativ einfach über eine Storage vMotion Operation durchgeführt werden kann. Hierzu ist aber zum einen eine entsprechende vCenter Server Lizenz erforderlich, zum anderen hat es in verschiedenen Umgebungen, in denen ich es auf diesem Weg getestet habe, nicht funktioniert.

Folgendes Vorgehen mittels des „vmkfstools“ hat sich bisher für mich immer als praktikabel erwiesen:

Ausgangslage

Im folgenden Beispiel wird eine 150GB große, ehemals thin bereitgestellte VMDK-Datei, durch Einsatz der vmkfstools wieder um 50Gb verkleinert, welche aktuell nicht mehr vom Sysetm benötigt werden.

Größe der VMDK-Datei vor der Verkleinerung
Ansicht freier Speicher auf Partition C: in der VM

Vorbereitung

  1.  Da im Folgenden Veränderungen an den Dateien der VMs vorgenommen werden, sollte natürlich zunächst sichergestellt werden, dass ein funktionierendes Backup der VM verfügbar ist.
  2.  Die Verkleinerung der HDD funktioniert nur, wenn keine Snapshots auf der VM vorhanden sind. Daher ist es ratsam vorher eine entsprechende Konsolidierung vorzunehmen.

Innerhalb der VM

Über die vmkfstools kann nur der Bereich einer VMDK wieder freigegeben werden, der entweder komplett leer bzw. mit Nullen beschrieben ist. Um dies in einem Windows Betriebssystem zu tun, empfiehlt sich in virtuellen Umgebungen der Einsatz des Tools „SDelete“ aus der Sysinternals Suite von Microsoft.

Folgender Befehl beschreibt den kompletten freien Bereich der Partition C: mit Nullen:

SDelete.exe -z c: (auf 32Bit Systemen)
bzw
SDelete64 -z c: (auf 64Bit Systemen)
Ausführung von SDelete in VM – Dauer auf meinem System für 50Gb ca 15 Min.

Sobald der Vorgang erfolgreich abgeschlossen wurde, muss die VM heruntergefahren werden.

Verkleinern der VMDK

Die folgenden Befehle werden über eine SSH Sitzung auf dem vSphere Host ausgeführt.

Wechselt ins Verzeichnis, in dem die zu verkleinernde VMDK liegt:

cd /vmfs/volumes/%Storage Name%/%Verzeichnis der VM%

%Storage Name% = Name eures Datenspeichers
%Verzeichnis der VM% = In der Regel der Name eurer VM (es sei denn, sie wurde nach Anlage umbenannt und seither kein Storage vMotion ausgeführt)

Über den Befehl „du -h #Name#-flat.vmdk“ wird die aktuell von der VMDK belegte Größe angezeigt.

Anschließend führt man nun diesen Befehl auf die Datei #Name#.vmdk (nicht die #Name#-flat.vmdk) aus.

vmkfstools -K #Name#.vmdk

Abschließend kann über „du -h #Name#-flat.vmdk“ nochmal die Größe geprüft werden.

Größe der VMDK nach der Verkleinerung

In diesem Fall wurden über 45GB an Speicher wieder freigegeben.

Tobias Wintrich
Tobias Wintrich

Fachinformatiker/Systemintegration
Bäcker aus Leidenschaft

Artikel: 28

2 Kommentare

  1. xD über Google alte Bekannte aus der Ausbildung wiederzufinden ist schon ganz lustig.

    Kannst du mir auch verraten, wie ich eine Platte von „Thin Lazy zeroed“ auf „Thin Eager Zeroed“ geändert bekomme? Die Bezeichnung „Thick“ gibt es ja so nicht mehr bei VMware ESXi.

    • Ja Sachen gibts 🙂

      ich vermute du meinst von „Thick Lazy Zeroed“ auf „Thick Eager Zeroed“, „Thin Eager Zeroed“ würde ja irgendwie keinen Sinn ergeben :-).
      Die Lösung findest du hier:
      https://kb.vmware.com/s/article/1035823
      Entweder über die GUI die VMDK erweitern oder über die vmkfstool die VMDK bearbeiten (vmkfstools –eagerzero #pfad zur vmdk#).
      In beiden Varianten muss die VM vorher heruntergefahren worden sein.

      Ich hoffe das hilft dir weiter,
      Tobias

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert