Resource control can be a great alternative to the usual options for supporting an expanding infrastructure, especially if you're in the process of cutting back costs. Resource control can be tricky, though, and requires a great deal of caution, as it can greatly affect reliability and performance. Application needs and growth won't slow down just because money and resources are tight. With so many requests stacking up, what's an administrator to do? To work within these parameters, you have to address some of your costlier infrastructure points, including storage.
Potential storage savers
Storage plays a unique role in your infrastructure. Unlike CPU and memory, which you can easily prioritize, storage is a dual-pointed problem. Yes, you can control the I/O performance, but you are still left with the footprint it leaves -- a footprint that will continue to grow along with your applications. Nothing is more apparent to a customer than slow I/O in a VM.
Fortunately, there are a few things you can do to address such storage resource challenges.
One of the easiest fixes is to allocate a memory reservation for your VMs. VMs use a swap file that's equal to the amount of memory they have allocated in the event of memory contention. Now, if you reserve some of that memory for the VM, you will see the swap file decrease by the same amount. Reservations can be a little tricky, because memory is a finite resource, but you can normally set a threshold in the 30% to 50% range to gain back some of your storage without sacrificing too much of your memory allocation. While you may only gain back a few gigabytes in storage, the key to savings is in the volume aspect. A few gigabytes across hundreds of VMs add up quickly. In addition to reducing the swap file, you could also move it to another location. I would not recommend moving it to a local data store, as that will prevent VM live migrations. However, moving the swap file from top-tier storage to more of a tier-three pool will help you gain back additional production-level disk space. Keep in mind, if several VMs need to use memory paging, you will overload a slower disk and greatly affect performance. Remember, cost savings comes with a risk; nothing is free.
If you're not doing it already, thin provisioning can be a huge storage saver. Before thin provisioning, remove excess profiles, recycle bins and downloaded software from your VMs to help reduce your footprint. How much you can over-provision depends on your infrastructure and your comfort level. For many administrators, provisioning at 20% to 30% seems to be fairly safe, as it provides enough space for a VM that needs the additional room. Thin provisioning does not work if you will be encrypting the drives of your VMs through software; this will cause them to inflate to full size, so caution must be exercised.
Local storage's role in resource control
When it comes to storage performance, most environments use a tiered system to help maximize performance to critical workloads, while saving costs for less frequently used data. However, one option is often overlooked: local storage on hosts, rather than a virtual storage area network. Unless your environment runs on blades or is hyper-converged, you likely have large rackmount servers, with the capacity for reasonably priced storage. There are, of course, a host of possible issues with this approach. The main argument against this storage method is the host could fail and take all of the VMs down. This is where VM placement comes into play. I'm not suggesting placing production or critical VMs on local storage, but a lower tier test or utility server could be offline without any real effect to the organization. Virtual desktop infrastructure normally does not fit into the local storage option for spinning disk, but if you have local solid-state drives, you may be able to get away with it.
CPU and memory are different animals than storage. Resource limits and shares are already available, and with good monitoring, they are fairly easy to tweak for best performance. The key is to use monitoring tools outside the guest OS to get a detailed look at what is happening, because tools inside the OS often paint a very different picture.
Though cutting costs can be a challenge for IT, there are many proven strategies to successfully meet application needs through resource control. By reserving memory, moving swap files, thin provisioning and using local storage, you'll be better equipped to make it through tough times.
Should you take the local storage approach?
The complete guide to managing storage for virtual environments
Avoid the pitfalls of data storage capacity