VMware thin provisioning: Pros and cons
Date: Nov 08, 2012As with storage systems, in VMware, thin provisioning helps allocate disk space efficiently, which lowers storage capacity needs and costs. But VMware thin provisioning has some complications, including issues related to how space from deleted data is handled. In this video, storage expert Howard Marks explains how VMware thin provisioning works and discusses two key considerations. Watch the video or read the transcript below.
VMware will do thin
provisioning when you create a [virtual
machine disk] or a logical disk for a VMware guest. You have several choices about what kind of
volume you want to create. A thick volume occupies as much space as the size of the logical disk
you are creating, so if you make a 20 GB C drive, you use 20 GB of disk space on the underlying
array. A thin volume, if you create a 20 GB C drive, uses a minimal amount of the disk on the
underlying array and then allocates space as that disk is being written to (unless we're talking
about a disk system that itself does thin provisioning and that does zero reclamation -- that takes
space in the disk that was zeroed out and returns it back to the free pool).
Thin provisioning creates disks that grow but don't really shrink; they don't return space back to
the overall free pool. In the VMware case, if you create a thin-provisioned
disk, it's going to grow; if you delete data off that disk, the VMDK is going to shrink so there
will be more space available in that data store, but the data store doesn't shrink and so it won't
be available to the array controller for other purposes -- unless the array controller does zero
recognition, which a lot of array controllers that do thin
provisioning do -- and you create either a zeroed thick [disk] or an eager-zeroed thick disk.
Those types of disks will allocate disk space and fill it with zeroes.
There are two cases where you want to concern yourself with that. The first is if you have a
disk array like [a Hitachi Data Systems Unified Storage Platform], or a Dell EqualLogic, or an HP
3PAR that does zero reclamation because the space that gets written to zeroes won't actually use
space on the underlying array. The other is if you run a very high security environment, because if
you just create a thick disk, disk space on the underlying array is going to be allocated. If data
from the last application that was using that disk is in those disk blocks, from this guest you
could read that data. Most of us aren't in environments where security is quite that important, but
if you create a zeroed
disk, it literally writes zeroes and makes sure that can't happen.
Zeroing allows space reclamation if the array controls it; it hides orphan data. One of the VAAI
primitives … is to tell the array to do that zeroing, [which] offloads [the] process from the host
to the array, saving both storage network bandwidth and CPU cycles on the host. But not every
VMware feature supports every kind of volume; for example, VMware thin
volumes don't support vSphere
fault tolerance, so if you're going to run vSphere fault tolerance so that when a host fails
those guests are automatically brought up on another host, you have to use thick-provisioned disks
for that.