More often than not, the root cause of storage performance problems is VMs that generate more IOPS requests than the storage hardware can handle. If this is the case, virtualization administrators can move VMs to a storage array that has more resources available, install additional or faster disks to increase the maximum number of IOPS that the array can support or use tiered storage.
Virtualized workloads don't always perform as well as they should, and this is typically due to resource contention.
An equipped virtualization host contains a finite pool of hardware resources that must be shared among all of the VMs. Resource contention occurs when resources are in short supply, and VMs must begin competing with one another for access to these scarce resources.
Although any hardware resource can become a bottleneck, storage is often the resource most likely to cause performance problems in a virtualized environment. Any storage device, regardless of type, provides a specific number of IOPS. When VMs collectively generate more IOPS requests than what the storage subsystem can handle, performance suffers.
So what can admins do to address performance problems related to VM storage? Unfortunately, there isn't an easy, one-size-fits-all solution. Even so, there are some proven strategies that admins can try.
Look at VM IOPS
Admins should use performance monitoring tools to get a feel for the number of IOPS that VMs need. The number of requested IOPS can vary depending on the day of the week and the time of day, so it's a good idea to get a representative sampling, rather than only collecting the metrics once.
Once admins evaluate the number of IOPS VMs are requesting, the next step is to compare the workloads against the number of IOPS that the storage hardware can handle. If VMs request IOPS at a rate near or in excess of the array's limits, then admins must take steps to either reduce the number of IOPS requests or increase the storage array's performance. For example, admins might consider moving some VMs to a different host that uses an alternate storage or installing higher performance disks in the storage array.
Other performance issues
If VMs request IOPS at a rate that is well below what the storage hardware is rated for but performance still suffers, then the problem lies elsewhere. In this situation, admins should first ensure that they don't have another hardware component acting as a bottleneck. For example, the host might lack sufficient CPU resources or network bandwidth.
If the virtualization host has plenty of CPU, memory and network bandwidth, the connectivity between the virtualization host and the storage array might be saturated, limiting the overall storage throughput. If this turns out to be the problem, then admins can install some additional host bus adapters as a way to improve performance. Similarly, if the storage array connects over a slow link type, such as iSCSI over Gigabit Ethernet, then admins can upgrade to a better-performing connectivity medium.
If the connection between the virtualization host and the storage array isn't the bottleneck, admins can make sure that a disk hasn't gone bad or a host bus adapter hasn't lost data in transit. Similarly, the storage array could be configured incorrectly, so a look at the array setup might help resolve the issue.