BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
What techniques can hypervisor-aware storage systems use to improve virtual server performance?
As virtual servers are introduced into the data center and quickly proliferate, performance issues with storage systems designed for physical server requirements start to crop up. While physical servers maintain a 1:1 relationship to storage with fairly predictable performance characteristics and a low degree of concurrency, virtualized servers throw that "simple world" into a frenzy of physical servers hosting virtual machines (VMs) and VMs running a mix of applications with varying workloads. A high degree of concurrency where VMs and applications are in continuous pursuit of resources, including storage, pushes storage systems to their performance limits and affects the ability of storage administrators to correlate applications to underlying physical storage resources and components.
To make matters worse, advanced storage techniques such as thin provisioning aggravate the problem by enabling multiple VMs to share storage blocks, requiring the storage system to support an even higher number of IOPS. Addressing these performance challenges effectively is one of the value propositions of hypervisor-aware storage systems, which employ various techniques to achieve acceptable virtual server performance.
Flash. Without question, solid-state storage is one of the key components that enable storage systems to better support the performance requirements of virtualized environments. While NAND flash supports tens of thousands of IOPS, a single hard disk drive is limited to a few hundred IOPS; for disk-based arrays to scale IOPS, they depend on the parallelization of a large of number of disk drives, striping data across them, so that many disks are at work at any given time when data is served. NAND flash is superior to physical disk in its ability to support a large number of IOPS in almost all aspects, including cost and complexity.
Since the number of IOPS is typically more relevant than throughput for VM storage -- but the type of applications on the VMs can affect this -- employing solid-state storage reaps immediate performance benefits. A case in point that perfectly illustrates the relevance of IOPS is the well-known boot storm that occurs when many VMs that share the same physical blocks of the underlying storage all boot at the same time and spike the required IOPS. Flash storage is one of the most effective ways of addressing this.
That solid-state storage should be a component of hypervisor-aware storage is undisputed, but where it's deployed is a relevant consideration when evaluating hypervisor-aware storage systems. Substituting mechanical disk drives with solid-state drives (SSDs) is the easiest way of flash-enabling a storage array; the drawback of SSDs is that only data that resides on the SSDs benefits from it. Some hypervisor-aware storage systems deploy flash as cache, with the advantage that all applications benefit from it.
The amount of flash -- and whether it's used for reads only or for reads and writes -- is an important consideration. Flash can be deployed on the server, usually in the form of PCI Express cards; its proximity to the CPU and server memory, and reducing the number of transactions that have to traverse to the storage system through a relatively performance-constrained interface, makes flash on the server the best performing flash deployment option.
Storage tiering. While the number of IOPS a storage system can support is very important, the cost of NAND flash is still significantly higher than that of physical disk. Since IOPS requirements fluctuate, a mechanism to support spikes when needed but that's also able to take advantage of less-expensive mechanical disks where appropriate can help keep the cost of hypervisor-aware storage systems down. This mechanism is available in the form of storage tiering, where mechanical disks and solid-state storage complement each other.
Two schools of thought exist on how to keep active data most effectively in NAND flash. One group of vendors champions policy-based data movement, while another espouses the use of NAND flash as cache that sits in front of mechanical disks. The latter is usually the less complex approach since NAND flash simply becomes another cache that sits between the DRAM cache and disk drives, relying on proven caching algorithms to keep active data in the appropriate tier.
Quality of Service (QOS). The ability to prioritize data by application and data type enables storage administrators to ensure that critical applications aren't bogged down by less critical ones. The support of QoS is a critical element of a hypervisor-aware storage system, and it should be considered a must-have criterion on anyone's evaluation list. QoS is the silver bullet that enables putting any type of data and workload on a shared storage system with the needed safeguard to protect critical applications; QoS is the arbiter that keeps lower priority data and applications at bay.
About the author:
Jacob N. Gsoedl is a freelance writer and a corporate director for business systems. He can be reached at firstname.lastname@example.org.