ESXi 6.0 – Nicht allokierten Speicher eines Thin Provisioned Volumes freigeben…
Eins vorweg, das Thema hier ist nur interessant, wenn es sich um sog. Thin Provisioned Volumes handelt. Also Volumes, die dynamisch, mit zunehmender Datemenge größer werden. Thick Provisioned Volumes hingegen, allokieren fix den Speicher, den man beim Anlegen allokiert hat und zwar sofort. Hier gibt es auch nichts „zurückzuholen…
Space Reclamation (scsi unmap) muss nur an einem Host, der Zugriff auf das/die betreffenden Volume(s) hat, durchgeführt werden. Haben also mehrere Hosts (bspw. in einem ein Cluster) Zugriff auf die selben Datastores, reicht es, diesen Vorgang an EINEM der Hosts durchzuführen.
Blick auf einen vSphere Client vor der Space Reclamation:
Mit einem beliebigen ESXi Host via SSH verbinden…
Volumes am ESXi Host anzeigen…
esxcli storage vmfs extent list
Prüfen, ob Space Reclamation unterstützt wird.
esxcli storage core device vaai status get
Hierzu den eui… String mit den Volumes vergleichen und folgenden Parameter prüfen.
Delete Status: supported –> Space Reclamation möglich
Delete Status: unsupported –> Space Reclamation NICHT möglich
Jetzt wartet man auf ne ruhige Phase im Business, sucht sich das kleinste Volume aus und startet die Space Reclamation mit Default Settings…
esxcli storage vmfs unmap -l VOLUMENAME
ab 6.5 übrigens…
esxcli storage vmfs unmap --volume-label=DATASTORENAME --reclaim-unit=200
Nicht wundern, der Cursor bleibt jetzt in der nächsten Zeile stehen, sonst passiert hier gar nichts.
Nach Abschluss der Reclamation, springt der Cursor in die nächste Zeile und der Vorgang ist abgeschlossen.
Den Verlauf kann man in einer „parallelen“ SSH Session auf dem selben Host, mit esxtop verfolgen.
Allerdings sucht man eine „Progress Bar“ vergebens, hier sieht man nur, ob überhaupt eine Aktivität erfolgt…
Dazu folgende Befehle und Tasten nacheinander in der SSH Session drücken:
esxtop
u
f
o
p
ENTER
Damit wurden die Felder für „VAAISTATS“ und „VAAILATSTATS/cmd“ ausgewählt.
Uns interessieren jetzt die Spalten „DELETE„, „DELETE_F“ und „MBDEL/s“ und im Beispiel das Volume mit der eui.54dfe441229d012a6c9ce900e378d8df und siehe da, MBDEL/s zeigt einen Wert > 0 an. Es werden also Blöcke freigegeben…