Shrink a thin provisioned VMDK disk

When maintaining a Horizon View environment I like to keep my parent images as small as possible and over time a thin provision disk can start to grow on you if you don’t watch it – be it from downloading installers, updates, or even running disk defrag. While there isn’t a simple, one click button in the View Administrator Console there is a fairly easy manual method using vmfkstools.

Before we can use “vmkfstools” to shrink the VMDK file we must zero out any unused space on the thin provisioned disk. A simple way of doing this is by using a free utility called SDelete from Sysinternals.

  1. Download SDelete onto the VM you want to shrink and run the following command, replacing [DRIVE:] with the actual drive letter to be reduced:
    sdelete.exe -z [DRIVE:]

    Note: In Linux VM’s you’ll want to run this command, replacing [PATH] with the actual path of the storage:

    dd if=/dev/zero of=/[PATH]/zeroes bs=4096 && rm -f /[PATH]/zeroes
  2. Power off the VM and SSH into your ESXi host and navigate to the VMDK’s datastore -> directory and check the VM’s current size by typing:
    Check virtual disk size:

    ls -lh *.vmdk

    current vmdk size
    Check actual size:

    du -h *.vmdk

    actual vmdk size

  3. Now we’ll punch all the zeroed blocks out of the VMDK file by typing, replacing [DISK] with the name of the VM VMDK file:
    vmkfstools --punchzero [DISK].vmdk
  4. Once complete, again check the size by repeating step 2. If all went well you should now have a smaller VMDK file and newly reclaimed space!
    resized vmdk size

If you do this on the parent image of a View Pool the changes won’t be “pushed” out to the VM’s within the Pool until your next recompose.

Similar Posts

  • VMware View client now availabe for Android!

    VMware has announced that they have released a View Client for Android tablets available on the Android Market now. Here are just a few of the features found on the new client.

    • A new look and feel – The View Client for Android features the NEW blue look and feel of the VMware View clients!
    • Multiple broker support – If you have more than one VMware View broker in your organization, you can can easily access your desktop from all of them via the Android client
    • Desktop Shortcuts – Quickly connect with as many as four recent desktop via shortcuts
    • Virtual trackpad – Control your desktop on a granular level just like you would control the mouse on a laptop
    • Custom keyboard toolbar – Super easy access to all of the special keys not found on the Android default keynboard
    • Honeycomb 3.x support – Made from the ground up for the new generation of Android tablets
    • Custom gestures – Invoke keyboard, scrolling, etc are as easy as ever and simple to use
    • VMware View Security Server support (best experience) – No need to have VPN when you use VMware View Security Server
    • Background tasking – Switch between apps on your tablet and come right back
  • How to use Site Recovery Manager DR IP Customizer

    As one of the tasks given to me include protecting critical virtual machines via Site Recovery Manager (SRM) I ran into an environment that needed to be protected and have static IP’s assigned to them. The environment consists of about 15 VM’s, all of the VM’s each have 5 NIC’s with two of the VM’s having 9 NIC’s – that’s a lot of NIC’s to manually configure on both the Protected and Recovery side in SRM.

    Looking through the SRM Documentation I was able to see that VMware has graced us with a wonderful tool to greatly speed up this process, dr-ip-customizer.exe!

    How to use VMware DR-IP-Customizer

    Read More “How to use Site Recovery Manager DR IP Customizer”

  • How to unlock vRealize Orchestrator default account

    vrealize orchestrator account locked out

    Earlier this month I posted how on how to fix the weak ephemeral Diffie-Hellman key issue in VMware vRealize Orchestrator 6.0.2 appliance. Another issue I’ve ran into is how to unlock vRealize Orchestrator default account. It seems you can lock the account after to many failed attempts but once locked the account does not seem to unlock… or at least for me after waiting more than a couple hours.

    Luckily unlocking the vRealize Orchestrator default account is pretty straight forward.

    Read More “How to unlock vRealize Orchestrator default account”

  • vSphere 5.1 Release Date leaked, maybe?

    Looks like Sammy Bogaert over at Boerlowie’s Blog has possibly found the release date of vSphere 5.1… maybe?

    I was about to download vSphere Update Manager PowerCLI 5.0.

    I followed the main site and wanted to check the documentation first. So I clicked the Documentation button.

    vmware update manager

    This lead me to the Docs of Update Manager PowerCLI 5.1! That’s right, 5.1! With a release date of 10 September 2012.

    vsphere5.1 release date

    None of the links for 5.1 work, so no news on any new features…

    Guess somebody at VMware was a bit too fast to update the website

    Nice find Sammy, guess time will tell if the Sept. 10th date is the actual release date or not.

  • Become a VMware Certified Associate for FREE!

    During the San Francisco VMworld 2013, VMware announced the start of their new VMware Certified Associate certifications.

    There’s no training class requirement for the new exams although VMware offers a free self-paced e-learning course which is recommended to help you prepare for the exams. The exams normally run $120.00 but VMware is currently running a $60.00 discount for those who take the exam in 2013. NTPRO.nl has an additional coupon code (VCA13ICS) to take the remaining $60.00 off making the exam FREE!

    VCA Exam for free

    The VCA13ICS coupon code expires on October 30, 2013!

    Update:
    Global Knowledge also has a coupon code (VCA13GKN) which does not expire until January 31, 2014. Limit one free exam per individual!

Leave a Reply

Your email address will not be published. Required fields are marked *

8 Comments

  1. I only have the vsphere hypervisor. So then after performing these steps, could I simply do a clone of the changed image with vmkfstool -i -d thin to achieve the same result?

    Thanks!

  2. I tried to locate the vmdk file. but couldn’t find. when i tried it says permission denied or cannot locate. could you please guide me to find the vmdk file?

    1. Nuwan, are you able to view the directory listing when going to /vmfs/volumes/ ? Find the folder your VM is located, then CD into it and follow the steps above.

  3. Be aware that sdelete will inflate your thin provisioned disk before it can be shrunk using vmkfstools.
    I was running low on datastore space, so I deleted a bunch of files from a VM, and tried to run sdelete, which resulted in VM stop. Luckily this was just test setup :-)

    So you can’t use this to shrink your VM files if you are already low on datastore space (Chances are your VM will stop because your disks can’t expand enough).

  4. My Linux VM showing 6 GB filesystem size through linux cli using df command but i am unable to reduce the .vmdk size less than 16 GB at esxi cli level. I have used above mentioned workaround at both the levels. the VMOS is thin provisioned. So how i can reduce the 16 GB size for an linux VM .vmdk file. where as in Windows VM there are no such issues.

  5. Hi;
    After performing these steps, I found the vmdk file with new lower size through esxi web console; but within ssh by ls command the file still has its previous size. Although the du command also shows the lower size same as web console. What is the problem?