VMware ESXi – Freien Speicher einer .vmdk wieder freigeben (Windows)

Beim Aufsetzen einer VM besitzt deren virtuelle Festplatte mit Thin Provisioning (= dynamische Größe) eine Größe von ein paar Kilo- oder Megabyte.
Sobald man aber ein Betriebssystem installiert, vergrößert sich natürlich der Speicherbedarf.

Der Sinn von Thin Provisioning ist, dass die virtuellen Festplatten nur so viel Speicher benötigt, wie das darin installierte System auch wirklich verbraucht.

Dieses Konzept funktioniert auch einwandfrei, wenn das OS in der VM die gelöschten Dateien auch wirklich löscht und nicht nur für sich zum überschreiben freigibt.

Windows zum Beispiel entfernt beim Löschen die jeweilige Datei nicht wirklich, sondern markiert sie als überschreibbar. Somit bleibt sie auf der Festplatte erhalten, was dazu führt, dass das Festplattenimage der virtuellen Maschine immer weiter wächst.

Betreibt man nun viele VMs mit solchen Betriebssystemen, kann einem deswegen schnell der Platz ausgehen. Leider kann man den verschwendeten Platz nicht automatisch wieder freigeben. Jedoch ist es manuell möglich.

Für Windows gibt es hier ein Kommandozeilentool von Sysinternals namens SDelete.

Dieses kleine Tool beschreibt den kompletten freien Speicher mit einer leeren Datei und löscht somit alle zum Überschreiben freigegebenen Dateireste auf dem Datenträger.

Hier kann es aber auch zu Problemen kommen: Da für eine begrenzte Zeit der Festplattenplatz für Windows ausgeht, führt Windows eine Speicherbereinigungen durch, was auch dazu führen kann, dass die evtl. vorhandenen Wiederherstellungspunkte gelöscht werden.

Um den Vorgang zu starten, führen wir diesen Befehl in der Eingabeaufforderung aus:

<Pfad zum Tool>\sdelete.exe -z <Laufwerksbuchstabe (bspw. c:)>

Das sollte dann ungefähr so aussehen:
Sysinternals - SDelete

Das kann je nach Größe und Geschwindigkeit der Hosthardware eine Zeit lang dauern.

Anschließend müssen wir uns per SSH auf unseren ESX verbinden und Folgendes eingeben:

vmkfstools --punchzero /vmfs/volumes/<Pfad>/<zum>/<Festplattenimage>.vmdk

ESXi - Punchzero

Wenn auch dieser längere Vorgang erfolgreich durchgelaufen ist, ist die .vmdk wieder so groß, wie sie tatsächlich sein sollte.

 

5 Kommentare zu “VMware ESXi – Freien Speicher einer .vmdk wieder freigeben (Windows)

  1. Hallo,

    danke für den Artikel aber ich habe ein problem das ich nicht weiß wie man sich per SSH auf den ESX verbindet.
    Noch was diese Abkürzungen bedeuten.

    Kannst du mir bitte helfen?

    Danke

    Gruß

    Jens

    1. Hallo Jens,

      SSH bei ESX aktivierst du über die Konsole deines Hosts in einem Untermenü. Da ich aber im Moment keine Möglichkeit habe die Schritte selbst nochmal nachzuvollziehen, kann ich dir gerade keine genaue Antwort darauf geben, wo genau du diese Einstellung findest. Wenn du dich aber ein bisschen im Menü herum bewegst, wirst du die genannte Option schnell finden.
      Wenn du hiermit nicht zurecht kommst kannst du mir gerne nochmal Bescheid geben, dann kann ich dir eine genauere Antwort darauf geben.

      Sollte das Aktivieren dennoch geklappt haben, kannst du dich zum Beispiel mit dem Programm „PUTTY“ auf deinen ESX verbinden.

      Grüße
      Sebastian

Schreibe einen Kommentar

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