Reclaim VMFS deleted blocks on thin-provisioned LUNs

Sharing is caring!

<div dir&equals;"ltr" style&equals;"text-align&colon; left&semi;"><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody">If you use thin provisioned VMFS datastores you will maybe face the problem that unused space on the storage is not released automatically when you delete or migrate a virtual machine&period;vSphere 5&period;0 introduced the VAAI Thin Provisioning Block Space Reclamation &lpar;UNMAP&rpar; Primitive&period; This feature was designed to efficiently reclaim deleted space to meet continuing storage needs&period; ESXi 5&period;x issues UNMAP commands for space reclamation during several operations&period;&nbsp&semi;<&sol;span><&sol;span><&sol;span><&sol;p>&NewLine;<p>Connect to VM host using SSH<&sol;p>&NewLine;<p><b><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody">Step 1&colon;&nbsp&semi;<&sol;span><&sol;span><&sol;span><&sol;b><br &sol;><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody">First get the naa ID from the affected LUN&period; You can do this by using the command&colon; <&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"color&colon; red&semi;"><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><i>&num; esxcli storage vmfs extent list<&sol;i><&sol;span><&sol;span><&sol;span><&sol;p>&NewLine;<p><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody"><b>Step 2&colon;&nbsp&semi; <&sol;b><&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody"><span itemprop&equals;"articleBody">To confirm if SCSI UNMAP is supported on a LUN&comma; open an SSH session to a host and run this command&colon;<br &sol;><i><span style&equals;"color&colon; red&semi;"><code>&num; esxcli storage core device vaai status get -d naa&period;xxxxxxxx<&sol;code><&sol;span><&sol;i><&sol;span><&sol;span><&sol;span><&sol;span><&sol;p>&NewLine;<p><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody"><span itemprop&equals;"articleBody"><&sol;span><&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody"><span itemprop&equals;"articleBody"><br &sol;><&sol;span><b>Step 3&colon;<&sol;b><&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody">&nbsp&semi;if deleted status supported run following command to reclaim free space<&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span itemprop&equals;"articleBody">Example&colon;<&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">If you want to release 60 percent of the free memory extend the command with 60&colon;<&sol;span><&sol;span><br &sol;><span style&equals;"color&colon; red&semi;"><i><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">vmkfstools -y 60<&sol;span><&sol;span><&sol;i><&sol;span><&sol;p>&NewLine;<p><b><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">Few Useful Commands&colon;<&sol;span><&sol;span><&sol;b><&sol;p>&NewLine;<p><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">Lun Information&colon;on storage array <b><br &sol;><&sol;b><&sol;span><&sol;span><br &sol;><i><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span style&equals;"color&colon; red&semi;">lun show -v &sol;vol&sol;vol2&sol;thin-lun<&sol;span><&sol;span><&sol;span><&sol;i><&sol;p>&NewLine;<p><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">Detailed volume information&colon;<&sol;span><&sol;span><br &sol;><i><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span style&equals;"color&colon; red&semi;">vmkfstools -Ph -v 1 &sol;vmfs&sol;volumes&sol;source-datastore&sol;<&sol;span><&sol;span><&sol;span><&sol;i><&sol;p>&NewLine;<p><span itemprop&equals;"articleBody"><b>The <code>vmkfstools -y<&sol;code> command is deprecated in ESXi 5&period;5&period; <&sol;b><&sol;span>To reclaim unused storage blocks on a VMFS datastore for a thin-provisioned device&comma; run the command&colon;<span style&equals;"color&colon; red&semi;"><code>&nbsp&semi;<&sol;code><&sol;span><&sol;p>&NewLine;<p><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span style&equals;"color&colon; red&semi;"><code>esxcli storage vmfs unmap --volume-label&equals;<i>volume&lowbar;label<&sol;i>&vert;--volume-uuid&equals;<i>volume&lowbar;uuid<&sol;i> --reclaim-unit&equals;<i>number<&sol;i><&sol;code><&sol;span><&sol;span><&sol;span><&sol;p>&NewLine;<p><b>For example<&sol;b>&comma; for a VMFS volume named <code>MyDatastore<&sol;code> with UUID of <code>509a9f1f-4ffb6678-f1db-001ec9ab780e<&sol;code>&comma; run the command&colon;<code>&nbsp&semi;<&sol;code><&sol;p>&NewLine;<p><span style&equals;"color&colon; red&semi;"><code>esxcli storage vmfs unmap -l MyDatastore<&sol;code><code> <&sol;code><&sol;span><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><span style&equals;"color&colon; red&semi;"><code>--reclaim-unit&equals;<i>200<&sol;i><&sol;code><&sol;span><&sol;span><&sol;span><br &sol;><span style&equals;"color&colon; red&semi;"><code><span style&equals;"color&colon; black&semi;"><b>or <&sol;b><&sol;span><&sol;code><&sol;span><br &sol;><span style&equals;"color&colon; red&semi;"><code>esxcli storage vmfs unmap -u 509a9f1f-4ffb6678-f1db-001ec9ab780e -n 200<&sol;code><&sol;span><&sol;p>&NewLine;<p><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><i>Notes&colon;<&sol;i><&sol;span><&sol;span><&sol;p>&NewLine;<ul style&equals;"text-align&colon; left&semi;">&NewLine;<li><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;"><i>It should be noted that this process can lead to high latency on the affected LUNs&period; So this work should better be done during a maintenance window&period;<&sol;i>&nbsp&semi;<&sol;span><&sol;span><&sol;li>&NewLine;<li><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">Calculate reclamation size based upon datastore free space&semi; you cannot reclaim more space than the datastore is able to provide&period;<&sol;span><&sol;span><&sol;li>&NewLine;<li><span style&equals;"font-family&colon; Arial&comma;Helvetica&comma;sans-serif&semi;"><span style&equals;"font-size&colon; small&semi;">This command creates temporary hidden files at the top level of the datastore with names using the <code>&period;vmfsBalloon&ast;<&sol;code> pattern &lpar;for example&comma; <code>&period;vmfsBalloonGdwBBv<&sol;code>&rpar;&period; These files can be as large as the aggregate size of blocks being reclaimed&period; If the reclaim operation or storage access is interrupted&comma; these temporary files might not be automatically deleted and you must delete them manually to create free space on the datastore&period;<&sol;span><&sol;span><&sol;li>&NewLine;<&sol;ul>&NewLine;<&sol;div>&NewLine;

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.