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 Workstation 8.0.4 released

    VMware has just released it’s forth minor update for VMware Workstation 8, bringing it up to 8.0.4. The looks to contain mostly a few bug and security fixes.

    General Issues

    • Linux guests running the Linux kernel version 2.6.34 or later could not be pinged from the host via an IPv6 address.
    • On rare occasions, Linux guests would suddenly fail to Autofit or enter Unity.
    • Unity mode would exit if the title bar of an application contained certain non UTF-8 encoded extended ASCII characters.
    • On Windows hosts, the VMware Workstation user interface sometimes became unresponsive when minimized from full-screen mode if the suggestion balloon was being displayed.
    • On Windows hosts, the user interface sometimes became unresponsive if the application was rendered on an extended display that was abruptly disconnected.

    Read More “VMware Workstation 8.0.4 released”

  • Upgrade VCSA 6.5 to VCSA 6.7 Update 1

    VMware vCenter 6.7 U1 has recently been released. Last week I posted how to upgrade VCSA 6.7 to 6.7 Update 1, this post will walk you though upgrading VMware vCenter Server Appliance 6.5 to VCSA 6.7 Update 1!

    When doing a VCSA version upgrade the upgrade process is much different, than going from say 6.7 to 6.7 U1. When going from 6.5 to 6.7 the upgrade is actually broken up into two stages.

    The first stage involves deploying a brand new vCenter 6.7 appliance. Then the second stage will copy the data from your 6.5 VCSA into the newly deployed 6.7 VCSA from stage 1.

    Read More “Upgrade VCSA 6.5 to VCSA 6.7 Update 1”

  • VMware Recertification Policy

    VMware certified

    Starting today, March 10 2014, new VCP certifications must be re-certified within two years of it’s earned date. Anyone who currently has their VCP certification prior to March 10 2013 has until March 10, 2015 to re-certify.

    The new policy gives you three options to re-certify:

    1. Take the current exam for your existing VCP certification solution track. For example, if you are a VCP3, you could take the current VCP5-Data Center Virtualization (VCP5-DCV) exam.
    2. Earn a new VCP certification in a different solution track. For example, if you are a VCP-Cloud, you could recertify by earning VCP5-Desktop (VCP5-DT) certification.
    3. Advance to the next level by earning a VMware Certified Advanced Professional (VCAP) certification. For example, if you are a VCP5-DCV you could earn VCAP5-DCA certification.

    I can understand why they are doing this but I don’t agree with the changes. As per the announcement if you let your certification expire, “Your certification will be revoked,and you will no longer be entitled to use the certification logo or represent yourself as VMware certified“. Really? You mean everything that was done prior and after taking the exam means nothing?

    Read More “VMware Recertification Policy”

  • VMUG EVALExperience, the new VMware VMTN

    VMUG EVALExperience

    Long ago VMware offered a program called VMware Technology Network (VMTN) which was very similar to Microsoft’s TechNet, which allowed you to download and run various VMware software within your home lab for a small yearly fee. Just like the Microsoft TechNet, the VMware VMTN program was eventually closed. From the time the VMTN program closed many people have begged and pleaded with VMware to bring the program back, there is even a long forum thread asking VMware to bring VMTN back. Though it never did… until now.

    Read More “VMUG EVALExperience, the new VMware VMTN”

  • VMware Horizon View 5.3 has been announced

    Horizon View 5.2 is receiving an update to 5.3! Doesn’t sound like much, but in that tiny dot number increase VMware has in fact brought a number improvements and features to Horizon View.

    In a nut shell, some features Horizon View 5.3 brings is the ability to connect to a virtual desktop from any HTML5 capable web browser (yes, even Chromebook!), ability to bring full workstation class user experience with 3D graphics, deploy Windows Server 2008 as a desktop, as well as completely rewritten the Windows client with support for Windows 8.1 and a new iOS7 client too.

    In more detail, Horizon View 5.3 brings…

    Read More “VMware Horizon View 5.3 has been announced”

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?