Saturday, January 22, 2011

VMDK partition alignment GUI vs Command Line

As with my previous post about VMware VMFS block size considerations, the topic VMDK partition alignment has probably been beaten to death in the VMware virtualization.  A quick search on the internet will yield plenty of information about how to and the benefits (excellent blog post: http://www.yellow-bricks.com/2010/04/08/aligning-your-vms-virtual-harddisks/) of properly aligning your virtual machine’s virtual hard disks (vmdk).  With that being said, there’s also one other consideration that isn’t brought up as much is the difference between using the GUI:

image

… and the command line (vmkfstools):

image

… to create the disk.  While you can perform the creation of a vmdk with either choice, it is recommended by VMware to use the GUI because the client will always do the proper partition alignment when the disk is created.  This may have been a problem back in the VI3 days when the GUI did not give you the choice for zero-ing out the virtual disk because this was important for certain situations (i.e. creating a shared disk for a SQL cluster on MSCS) but in vSphere 4.x, we now have most if not all the features we usually need when creating disks.

Since it may not be clear from the description of the choices available for the Disk Provision options, the following lists the choices and the difference between how the vmdk is created:

None of the boxes selected:

image

Result: Thick (also known as zeroedthick).  The resulting vmdk file is a file that allocates the full configured size on your datastore but is not pre-zeroed.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Allocate and commit space on demand (Thin Provisioning):

image

Result: Thin (also known as thin provisioned).  The resulting vmdk file is a file that allocates only as much disk space as there is data in it.  So, say, if you created a 40GB thin provisioned disk and install Windows 2008 on it and the OS only used 18GB, the vmdk file will only consume 18GB on your datastore.  As more data is written to the operating system, the vmdk will continue to grow till it reaches the provisioned 40GB size.

-------------------------------------------------------------------------------------------------------------------------------------------------------------------

Support clustering features such as Fault Tolerance:

image

Result: Eagerzeroedthick.  The resulting vmdk file is file that allocates the full configured size on your datastore AND pre-zeroed. This disk has all the properties of the first zerothick disk with the addition of having all the blocks zero-ed out thus improving performance because the vmkernel no longer needs to zero out the blocks prior to I/O operations.

Hope this information helps anyone out there wondering the differences.

No comments: