As 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.
Learn more about VMware thin provisioning
Read more about the benefits of thin provisioning
Get the inside scoop on reclaiming storage space with VMware thin provisioning
Listen to a podcast about VM storage efficiency and thin provisioning
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.
About the speaker:
Howard Marks is chief scientist at Networks Are Our Lives, Inc. a Hoboken, NJ, network and storage consulting and education firm. The firm specializes In bringing mid-market firms infrastructure and processes up to enterprise standards in the areas of systems, network and storage management with a special focus on data protection and business continuity planning. Marks is the author of three books and over 200 articles on network and storage topics since 1987. He is a frequent speaker at industry conferences including Comdex, Networks Expo and Interop.