VMware vSphere 4 Enterprise Edition's thin-provisioning capability allows virtual machines to share disk-space allocation with other virtual machines. Configuring virtual machine instances with thin provisioning enables them to grow without the commitment of a static disk and allows several virtual machines to safely share a common Logical Unit Number allocation on a storage area network.
In the nonvirtual world, IT provisions servers by specifying a target disk size that can accommodate anticipated data growth. The temptation is for users to ask for more disk than they need because applications and operating systems misbehave to the point of collapse when storage resources become slim or run out. On nonvirtualized servers or those with inflexible disk sizes, running out of disk can be disastrous and result in downtime.
Recovering from filled media circumstances by adding disk space is exceedingly difficult and often means adding hardware or reaching for new SAN LUNs to graft onto existing and working filing systems. vSphere allows static virtual-machine instance storage, such as a locked and dedicated physical area, but it also permits allocating a specific area, sharing that storage area (thin provisioning), and most important, monitoring the area for growth so that the over-provisioned resource doesn't become filled.
Thin provisioning gives organizations the opportunity to save disk and storage costs by pooling storage resources. The rationale behind thin provisioning is to prevent disk resources from being statically over-allocated because administrators making intelligent choices about disk data growth. Over-allocation through an instance lifecycle wastes valuable disk space. Multiply the waste in one instance by dozens or even hundreds of virtual machine lifecycles, and the costs mount quickly. Sometimes those costs are directly charged to the user department.
When planning a virtual machine, you can use vSphere thin provisioning to add and manage shared virtual disk real estate. Thin provisioning is actually a kind of over-provisioning that creates a spool of virtual storage that can be drawn on for use by multiple concurrent VM instances, rather than linked clone instances.
When disk resources run out, there's likely already an application failure -- an emergency drill that, depending on the operating system storage allocation capabilities, takes awhile to expand disk storage, then undo any damage incurred when the VM instance ran out of space. vSphere's vMotion component removes much of the pain from storage allocation resizing if disk hardware is otherwise available for provisioning to an instance that needs more storage.
vSphere thin provisioning is simple. It's performed either by creating a virtual machine template that uses thin provisioning after storage resources have initially been identified for the specific instance. Other VMware instance types can also be converted to thin provisioning. Turn on a checkbox vCenter Datastore (the storage management portion of vCenter) to have the instance monitored for growth. This step is mandatory unless you are assured of no-growth instances, such as those found in DNS servers or appliances. In comparatively static instances, wait until 80 percent of the allocation is used before having vCenter alert you. VM instances that were created with static storage allocations can also have vMotion convert the static allocation to thin provisioning with little difficulty.
Afterwards, a thin-provisioned VM instance storage draws from an allocated pool of storage, often SAN resources. The benefit of drawing from a pool of storage is that each instance shares a cost with other instances for storage. As data grows, instances must be monitored to ensure that data growth isn't careening out of control.
There are certain types of VM instances that probably aren't appropriate for thin provisioning. SQL databases or web instances with streaming will leave lots of allocated blocks in storage that aren't quickly recovered. Apps like these that also write data, and then delete it, tend to increase instance storage allocation within the virtual pool to the potential detriment of other growing VMs.
For more on storage virtualization, check out our new E-Newsletter
For most systems professionals, the first leap of faith comes when they are willing to trust over-allocation of resources, as they've been long trained to consider disk-full conditions as a career-changing move because they kill running applications. This hasn't changed.
Instead, recognition that many types of VM instances can share storage pools with impunity -- when monitored for growth consistently -- can save money lost to formerly unused and expensive storage. Practical planning with thin provisioning still requires understanding the behavior profile of VM instances and their data needs, but like over-allocation of the CPU, VMware vSphere lets IT change allocation in seconds. Then we get some more coffee.