Shrink a VMware Virtual Machine Disk (VMDK)

From My technical experience in VMware world, i have met a lot of customers which asking me to shrink the size of a .vmdk disk. Really…This is a mission critical task, but let us go through this procedure to show up how to do this.We will learn how to do it without VMware converter as when using VMware converter, you will consume a lot of time.

I feel this is a little more advanced so
Before your start the following procedure, please ensure you have a valid and tested Full Backup of your virtual machine. This does not mean a VMware Snapshot.”

In fact, increasing the size of a VMware Virtual Machine Disk (VMDK) is straightforward, and is supported in the vSphere Client, by selecting the virtual hard disk, and increasing the size using the up arrow. or typing in a new value.

vms1.JPG

However, although there is a down arrow present, you cannot shrink the disk in this way, it’s not supported. The only supported method of shrinking a VMware virtual machine disk (VMDK) is to use VMware vCenter Converter Standalone and create a virtual to virtual (V2V) conversion, a similar process to a Physical to Virtual (P2V) conversion.

You can review this VMware KB :

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1002019

V2V Disadvantages

  • V2V Conversions can be slow.
  • You need to ensure, you have enough datastore storage space for the new virtual machine disk.
  • The virtual machine is converted, so there is a small risk, the conversion can cause issues with the converted virtual machine.
  • The converted machine can contain a different MAC address.
  • V2V are prone to failure.

V2V Advantages

  • Support end-user method of re-sizing a virtual machine disk.
  • GUI Interface when using VMware vCenter Converter Standalone

After reading and understanding this article, you will be able to reduce the size of virtual machine disks in less than five minutes. I will let the reader decide if this is a faster method than the traditional practice of using a V2V, to change the size of a VMware Virtual Machine Disk (VMDK). On occasion we come across an installation, where an Administrator has assigned a 2TB virtual disk, and does not have the space to create a V2V!

The following procedure is split into two parts

  • Shrink the Operating System partition – This is covered in Step 1.
  • Shrink the VMware Virtual Machine Disk (VMDK) – This is covered in Step 2

1. Login to the Virtual Machine and shrink the OS Partition

Before we can shrink the VMware virtual machine disk (VMDK), we need to shrink the OS partition. (to avoid file system corruption). In this example I am using Windows 2008 R2, which has a shrink function.

Using a RDP (Remote Desktop Protocol) connection or connect via the Console, using the vSphere Client, login to the virtual machine as an Administrator.

vms2.JPG

Press Control-Alt-Delete to login to the virtual machine.

vms3.JPG

Right Click My Computer and Select Manage

vms4.JPG

Select Disk Management, and select the partition you need to shrink.

vms5.JPG

Right Click the Volume/Partition to shrink, and select Shrink.

vms6.JPG

The above dialogue will briefly appear whilst the file system is queried.

vms7.JPG

the above dialogue will appear. Enter a size to reduce the OS partition.

In this example the VMware virtual machine disk (VMDK) is 40GB, and we would like to reduce the size of the VMware virtual machine disk (VMDK) to 20GB. The Disk Management utility scans the available file system, and reports a maximum size the OS partition can be reduce by, this is based on current file system usage.

Enter the figure 19.5 (GB) x 1024 = 19968vms8

OS Partition size after Shrink Operation.

vms9.JPG

As can be clearly seen in the above screenshot, there is now an unallocated 19.5GB space on the virtual disk, in Step 2 the VMware virtual machine disk (VMDK) will be “chopped”, removing this unallocated storage space, and finally reducing the virtual machine disk (VMDK) to 20GB. Providing that we DO NOT affect the existing partitions, this is a safe operation. So in effect the “cut” will be made in the unallocated storage space, after the OS partition.

2. Reducing the size of the VMware Virtual Machine Disk (VMDK)

Login and connect to the VMware vSphere Host ESXi server which hosts the virtual machine.

Power OFF the Virtual Machine, and change to the datastore path where the VMware virtual machine disk (VMDK) is located.

cd /vmfs/volumes/<datastore name>/<VM folder_name>

vms10.JPG

We need to edit the *.vmdk, which is the descriptor file, which contains the variables for the size of the *.-flat.vmdk. Using cat, this is what the descriptor file contains

vms11.JPG

The number highlighted above, under the heading #Extent description, after the letters RW, defines the size of the VMware virtual disk (VMDK).

this number – 83886080, and it’s calculated as follows:

40 GB = 40 * 1024 * 1024 * 1024 / 512  =  83886080

We wanted to reduce the size of the VMware virtual machine disk (VMDK) from 40 GB to 20 GB. So the value we need to enter into the descriptor file is:-

20 GB = 20 * 1024 * 1024 * 1024 / 512  =  41943040

Using vi, edit the descriptor file, and change the number from 83886080 to 41943040, and save the file.

vms12.JPG

Migrate or Copy the virtual machine to another datastore.

After the virtual machine disk (VMDK) has been moved, you will notice the disk size reflects the desired size of 20GB.

vms13.JPG

vms14.JPG

After restarting the virtual machine, and checking with Disk Management, you will notice the 19.5GB unallocated storage space, has been removed, and disappeared.

vms16.JPG

Congratulations, you have successfully Shrunk a VMware Virtual Machine Disk (VMDK).

Thanks for reading my post 😉

please leave a valuable feedback or share on Facebook, Twitter or Linkedin.

 

 

 

 

 

 

 

 

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s