In VMWare ESXi 5.x werden in ThinProvisioned LUNs mit aktiviertem VAAI keine Blöcke mehr freigegeben (Space Reclamation)

Seit der VMWare ESX Version 5.x gibt es die Möglichkeit, VAAI Thin Provisioning Block Space Reclamation (UNMAP) zu verwenden. In der Version 5.x gibt es aber Probleme beim Absetzen des Kommandos. Deshalb hat VMWare empfohlen, das UNMAP Kommando zu deaktivieren. Es wird auch bei Einspielen des Patches ESXi500-201112001 oder ESXi 5.0 Update 1 per default deaktiviert.

Das Problem dabei:
Dieses Feature wird dafür verwendet, dem Storage bei Thin Provisioned LUNs (ISCSI oder FC) mitzuteilen, welche VM-Blöcke wieder freigegeben werden können.

Sprich:
Ist dieses Feature disabled und es wird z.B. ein Storage VMotion angestoßen oder eine VM im entsprechenden Datastore gelöscht, so wird zwar im VI-Client der freie Speicherplatz angezeigt, allerdings nicht auf dem Storage freigegeben... Siehe Befehl auf der NetApp: "lun show -v /vol/volname/lunname" -> Feld: Occupied Size

Die Gefahr:
Das Storage läuft voll...
Und dann schlägt irgendwann hoffentlich das Monitoring zu...
Und dann? Wie bekomme ich denn Platz wieder frei...?!?

VMWare hat die Möglichkeit geschaffen, manuell diesen "Space Reclaim" abzusetzen:
Man wechselt hierfür auf der ESXi CLI in den entsprechenden Datastore ("cd /vmfs/volumes/datastorename")
und gibt folgenden Befehl ein "vmkfstools -y Prozentzahl"

Zur Erklärung:
Wird z.B. "vmkfstools -y 60" angegeben, so verwendet VMWare ein temporäres File ".vmfsBalloontsWt8w" im Datastore, um Space zu reclaimen. Die Größe des Files ist immer "Angegebene Prozent nach dem -y vom freien verbleibenden Speicherplatz im Datastore. Sind z.B. 10GB im Datastore noch nicht belegt und man gibt "60" ein, wird versucht 6GB an Platz freizugeben und temporär für diese Operation ein 6GB File angelegt. Sind in diesem Beispiel im Storage weniger als 6GB zu "reclaimen" wird natürlich nur das reclaimed, was möglich ist...

Mit "esxtop" kann man den "delete" Vorgang monitoren:
Im esxtop kommt man mit "u" in die Disk Ansicht. Dort kann man mit "f" weitere Felder einblenden.
Die Felder "o" und "p" können hinzugefügt werden und man sieht nach drücken von "ESC" die entsprechenden VAAI-Statistiken. (Spalten evtl. noch mit "o" sortieren).
In den Spaten "DELETE", "DELETE_F", "MBDEL/s" sollten aktive Werte zu sehen sein...

Prüft man dann auf dem Storage System mit "lun show -v /vol/volname/lunname" die "Occupied Size", sollte (wenn Platz freigegeben werden kann) der Wert gesunken sein...

ACHTUNG:
Das Ausführen des Befehls kann erhöhte IO-Last auf dem Storage erzeugen, deshalb nur mit Vorsicht zu genießen!
Bitte erst auf einem Testdatastore überprüfen, ob die Space Reclamation funktioniert und wie sie funktioniert!
-> VM auf Testdatastore mit Storage VMotion verschieben
-> danach wieder mit Storage VMotion verschieben
-> prüfen, was der VI-Client anzeigt und was ein lun -v anzeigt
-> mit vmkfstools vertraut machen und Space reclaimen
-> ab gehts auf die produktiven Datastores

Weiterführende Informationen:
Using vmkfstools to reclaim VMFS deleted blocks on thin-provisioned LUNs
http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&docT...

VAAI Thin Provisioning Block Reclaim/UNMAP in Action
http://blogs.vmware.com/vsphere/2012/04/vaai-thin-provisioning-block-rec...

Benjamin Ulsamer
Consultant & Trainer & Space Reclaimer ;)
teamix GmbH