Understanding the Interactions Between Virtual Storage Provisioning and Physical Storage Provisioning

by admin

This post is intended to look at the VCAP-DCA objective of the same title. The thing that springs to mind here is thin provisioning and other methods of provision virtual disks, which are discussed in some detail here. Thin provisioning is probably the technology that highlights the differences between physical and virtual provisioning the most.

Thin Provisioned Disks

When using thin provisioning, the virtual disk does not pre-allocate all of the disk space. Blocks in the VMDK file are not allocated and backed by physical storage until they are written to during the operation of the virtual machine. A thin virtual disk is zero bytes until you begin installing the guest OS (or other means of adding data to the disk).

This can be demonstrated by looking at the sizes of the different types of virtual disks. We’ll start by creating a new thick-provisioned virtual disk:

# vmkfstools -c 10M thick.vmdk
Create: 100% done.

Listing the files we can see that two files have been created, with the ‘-flat.vmdk’ file being 10Mb is size:

# ls -alh thick*.vmdk
-rw-------    1 root     root       10.0M Jan  1 21:03 thick-flat.vmdk
-rw-------    1 root     root         460 Jan  1 21:03 thick.vmdk

Now, if we run ‘du’ we can see that the file sizes are the same as those reported above:

# du -ah
10.0M   ./thick-flat.vmdk
0       ./thick.vmdk

Next, if we create another disk, also 10MB in size, but this time thin provision the disk with the following:

# vmkfstools -c 10M -d thin thin.vmdk
Create: 100% done.

Again, using ‘ls’ we can see that the output is similar for both the thick and thin provisioned disks:

# ls -lah
-rw-------    1 root     root       10.0M Jan  1 21:03 thick-flat.vmdk
-rw-------    1 root     root         460 Jan  1 21:03 thick.vmdk
-rw-------    1 root     root       10.0M Jan  1 21:20 thin-flat.vmdk
-rw-------    1 root     root         485 Jan  1 21:20 thin.vmdk

However, this time when we run ‘du’ the difference between the thick and thin provisioned disks are clear:

# du -ah
10.0M   ./thick-flat.vmdk
0       ./thick.vmdk
0       ./thin-flat.vmdk
0       ./thin.vmdk

We can see that the ‘thin-flat.vmdk’ is actually zero bytes rather than 10MB as nothing has been written to it as yet.

Useful Links and Resources

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

Keep up to date with new posts on Buildvirtual.net - Follow us on Twitter:
Be Sociable, Share!

Comments on this entry are closed.

Previous post:

Next post: