June 08, 2015

Virtual Disk Provisioning

Virtual Disk Provisioning

VMware vSphere virtual disks or VMDKs (virtual machine disks) can be provisioned in three different formats: Thin, Lazy-Zero Thick, or Eager-Zero Thick. The differences are in the way data is preallocated and whether blocks are zeroed at creation time or run-time.

With the exception of products such as VMware FT, Microsoft Clustering Service, certain appliances, etc., the choice of virtual disk formats is left to the administrator.

Lazy-zeroed Eager-zeroed
Creation time Fast Slow
(Faster with VAAI)
Zeroing file blocks File block is zeroed on write File block is zeroed when disk first created File block zeroed on write
Block allocation Fully preallocated on datastore Fully preallocated on datastore. File block allocated on write.

Thin-provisioning is a solution where the storage provider reports that the entire volume is available for use, however it only actually allocates physical space in small increments, as needed by the storage consumer. This is unlike with Thick-provisioning where the entire volume is allocated and dedicated to the consumer at creation time.

Thin-provisioning can be done either at the storage array and/or at the virtualization layer. Using both array and VMDK thin provisioning is not a best practice. Array Thin Provisioning allows you to create a datastore and report that all the request space is available for use when that may not be the case.

With array thin-provisioning, the provisioned space may be logically larger than what the array can actually support, a consequence being that it may not have the physical space to write to when needed. If you add virtual disk thin provisioning on top of that, and if you manage many datastores and LUNs, this could become very confusing and unmanageable over time.

"The three virtual machines (one thick and two thin) have disk sizes that together total 140 GB. The actual storage space available, however, is 100 GB. This size mismatch or overallocation is possible because the thin-provisioned disks take only (20 + 40) = 60 GB of actual disk space."

The 20 GB thick-provisioned disk has the entire 20 GB preallocated to it. The array reports 20 GB as available to the host and allocates/reserves the entire 20 GB just that host, whether or not it is actually used. The thin-provisioned disks, in contrast, are allocated only what they are actually used/written (20 GB and 40 GB).

  1. VM Performance on Flash Part 2: Thin vs. Thick Provisioning – Does it Matter?
  2. Performance Study of VMware vStorage Thin Provisioning – vSphere 4.0

No comments:

Post a Comment