This article can also be found in the Premium Editorial Download "Storage magazine: Integrating virtual servers and desktops with storage."
Download it now to read this article plus other related content.
#2 Avoid intense disk I/O. Certain scenarios with your VMs may create periods of very intense disk I/O, which can create such high resource contention that all of your VMs will slow to a crawl. For virtual desktops this can be caused by time-specific events, like all of your users turning on their desktops at approximately the same time each morning -- often referred to as a boot storm. While that kind of situation may be unavoidable, there are ways to deal with it, such as by adding large cache controllers like NetApp's Performance Acceleration Module (PAM) to your storage device, or by using automated storage tiering technologies that can leverage faster storage devices like solid-state drives during periods of high disk I/O.
Other scenarios -- like virtual machine backup windows and scheduled VM activities such as antivirus scans or patching -- are controllable. Having concurrent backups running on multiple VMs on a host or data store can cause high disk I/O that will impact the performance of other VMs running on the host or data store. Try to schedule your backups evenly so you don't have too many occurring simultaneously on the same host or storage resource. You should also consider backup applications that avoid using host resources by accessing the VM data stores directly to back up VM disks. And some specific virtualization disk-to-disk backup products can shorten backup windows and allow tape backups of the disk repositories to occur afterwards without
#3 Use space efficiently. It's easy to use up disk space with virtual machines, but there are ways to control and limit the amount of space they take up on your storage devices. For virtual desktops or lab-type server environments, using linked clones can save a great deal of disk space. Linked clones are similar to VM snapshots where a virtual machine's virtual disk file is made read-only and a smaller delta disk is created for any disk writes that may occur. Linked clones work by creating a master virtual disk image that's read by many VMs but all writes occur on each virtual machine's own delta disk. For example, if you create 100 VMs with 40 GB virtual disks, they would consume 4 TB of disk space without linked clones. If you used linked clones, however, you would have a single 40 GB virtual disk for all VMs to read from and smaller 1 GB to 2 GB virtual disks for writes -- a huge space savings.
Thin provisioning can also help save space. It can be implemented at the virtualization layer or the storage layer. Almost all VMs are given more disk space than they usually need; thin provisioning allows you to overprovision storage by allowing virtual disk files to only take up the space they're actually using and not the full disk space they were allocated. The use of thin provisioning can greatly reduce the amount of disk space your virtual machines consume and will give you more control over costly storage capacity upgrades.
#4 Avoid unnecessary I/O operations. Why generate excessive disk I/O if you don't have to? You should always try to limit the amount of disk I/O that virtual servers and virtual desktops create. This includes disabling any Windows services that aren't needed, uninstalling unnecessary applications, disabling file indexing, and limiting the amount of logging that both the operating system and applications generate. There are many other smaller things that can be tweaked and they can add up to greatly reduced disk I/O across your VMs. You can use end-point management tools or Active Directory group policy to help manage and control the configurations. You'll not only reduce virtual machine disk I/O, you'll reduce consumption of other host resources. Reducing the amount of unnecessary disk I/O that VMs generate is always a smart move as it allows your storage subsystem to operate at maximum efficiency.
#5 Use the right storage for your workloads. Most hosts have local storage available in addition to being connected to shared storage for virtual machines. The types of storage available to your hosts will often have different performance characteristics, such as an 8 GB Fibre Channel SAN and a 1 GB iSCSI or NFS storage device. Besides different storage protocols, you may have hard drives with different speeds (e.g., 10K rpm, 15K rpm) and interfaces (e.g., SAS, SATA, solid state). With so many different storage options to choose from, it makes sense to fit the VM to the right type of storage. Place less-critical VMs on the slower storage tiers and your more critical VMs with higher I/O requirements on the faster tiers. You can also use an automated storage tiering system like Compellent Technologies Inc.'s Fluid Data architecture or EMC Corp.'s Fast technology that moves data between storage tiers based on demand.
You can go a step further by splitting a VM into multiple disk partitions whose virtual disk files reside on multiple storage tiers according to their performance needs. One common way to do this is to create separate disk partitions for the operating system, Windows pagefile, applications and data. The faster storage tiers can be used for the data's higher I/O requirements, while slower tiers can be used for everything else. Even if you don't do that, you can still specify slower or local storage for the large virtual machine virtual swap file created for each VM and used when a host exhausts its physical memory. This also helps ensure that your VM uses less disk space on the more expensive storage tiers.
This was first published in October 2010