Problem solve Get help with specific problems with your technologies, process and projects.

VM storage: Fundamental rules for efficient environments

Brien Posey explains the aspects of virtual machine storage that it's important to be mindful of to maximize the performance of a virtual data center.

When it comes to  storage, there are fundamental rules that administrators should adhere to in order to ensure the best possible experience. Although there might occasionally be exceptions to some of these rules, they should be regarded as general best practices.

Don't skimp on networking hardware

One of the biggest problems in a virtual data center is resource contention -- multiple virtual machines (VMs) competing for the same physical resources. This is especially true for the VM storage, which must be able to deliver sufficient I/O to support all of the VMs.

When it comes to maximizing the disk I/O, administrators often look at factors such as disk speeds, array structures and the number of disks in the array. However, the fastest storage in the world does little good if the connectivity between the host server and the storage becomes a bottleneck. That means it is important not to skimp on the networking hardware. Whether you are using ISCSI or Fibre Channel, it is a good idea to install as many physical ports into your host servers as they can accommodate.

Use LUNs for a dedicated purpose

When you create a storage LUN, that LUN should be created for a specific purpose. In the case of server virtualization, that purpose will often be to accommodate a virtual hard disk.

It is generally a good idea to use each LUN for a very specific, dedicated task rather than trying to multitask your LUNs. For example, you shouldn't place multiple virtual hard disks onto a common LUN -- or use a LUN to store a virtual hard disk and the host server's page file. The reason for this is simple. When you multitask a LUN, you increase the I/O demand on that LUN. You will generally see better performance (depending, of course, on the underlying hardware) if you dedicate each LUN to a specific purpose.

Use RAID 0+1 arrays

Today's storage hardware provides a seemingly endless number of options for array configuration. When it comes to VM storage, it is usually best to configure the underlying storage as a RAID 0+1 array. RAID 0+1 provides the performance of stripping with the fault tolerance of mirroring.

If budget or storage hardware limitations prevent the use of RAID 0+1, your next best option may be RAID 5 or RAID 6. It is worth noting however, that both of these RAID implementations incur a performance penalty because of the parity data that must be written.

Cluster shared volumes for single site clusters

Production virtual data centers almost always use clustering as a way of preventing a host server failure from disrupting the virtual server workload. Until recently, host server clusters required the use of shared storage in the form of a cluster shared volume. Today, the use of a cluster shared volume has become optional for some hypervisors.

If a cluster exists solely within one physical facility, you should continue to use a cluster shared volume if your budget allows it. Doing so will provide the highest level of performance and reliability for the cluster. However, if your cluster spans multiple data centers, it is usually better to use replicated storage than to use a cluster shared volume. The reason for this is that cluster nodes will perform better if they are able to access local, replicated storage, as opposed to having to access a cluster shared volume that exists across a WAN link. Furthermore, this approach eliminates the possibility that a WAN link failure will separate a cluster node from its storage.

Don't overwhelm a cluster shared volume

A cluster shared volume has a finite storage capacity and delivers a finite number of IOPS. Modern hypervisors support clusters consisting of dozens of hosts and thousands of VMs. These types of large-scale clusters can easily overwhelm a cluster shared volume.

There are at least two good ways to prevent the cluster shared volume from becoming a bottleneck. One option (assuming that your hypervisor supports it) is to create multiple cluster shared volumes. That way, no one single cluster shared volume has to carry the full burden of the cluster's storage needs.

The other option is simply to create multiple clusters rather than trying to cram all your VMs into a single host cluster.

Don't ignore your antivirus configurations

If your host servers are equipped with a host operating system, it is extremely important to configure your antivirus software not to scan volumes containing virtual hard disks. Scanning such volumes can impact VM performance and has been known to cause corruption problems.

Bottom line

The key to getting the best possible performance and reliability from your VM storage is to adhere to a well-established set of best practices. Each storage vendor and each hypervisor has its own best practices. The items covered in this article are generalized recommendations that should be appropriate for most virtual data centers.

Dig Deeper on Storage for virtual environments