Enhancing Efficiency of Virtual Machine Storage with Flash
Since their introduction in the mid eighties, flash storage has revolutionized storage systems by offering a faster aggregated storage medium, delivering huge Input/Output Operations per Second (IOPS) gains. Today, in the era of the cloud, hypervisor based virtualization imparts the ability to host multiple Operating Systems (OS) on a single server without the need to modify the OS or applications to run on the virtual environment. Virtual CPUs allocated to Virtual Machines (VMs) are queued and scheduled to wait for a physical CPU in order to process instructions and data for VMs.
As such, there is an increased IOPS requirement with the demands of applications running on VMs. Reducing the number of VMs per physical machine may just seem as a mere technique to eradicate the symptom rather than the cause itself. As far as virtualization is concerned, Input/output throughput is crucial from a latency perspective. Although overcompensating computing resources to VMs to bypass plausible shortage is considered a poor practice; in the context of storage management it is recommended to put as much flash in the server as practical.
Server-side flash (cache) or storage-side Solid-State Drives (SSDs) can deliver thousands of IOPS. However, the two are not interchangeable. Server side flash has no more latency than other system cache. Also, SSD in the storage array can deliver the data at cache speeds. Individual applications running atop of VM would benefit more from server flash whereas distributed applications such as Virtual Desktop Infrastructure (VDI) clustered file systems will benefit from storage SSD. The only probable scenario where the benefit of flash nullifies would be when the system has to issue a read command to the Hard Disk Drive (HDD). Owing to the dynamic and varying resource demands of VMs and as long as data is flash resident, decision regarding which type of flash to deploy may leave IT administrators in uncertainty. Making sure the flash solution integrates well with other environments such as backup and disaster recovery alongside production is crucial. On the positive side, the cost of flash storage has been declining and is now in close range with their counterparts, the HDD. This would soon render flash as the preferred storage options, making it cost effective both in terms of data volume as well as IOPS.
It is observed that IT managers find it necessary to deploy both server flash and storage SSD when premium performance is necessary. A hybrid of flash and HDD array uses intelligent tiering to allocate storage based on the performance requirements of applications. Automated Storage Tiering (AST) is a storage software management feature that dynamically moves information between different disk types and RAID levels to meet space, performance, and cost requirements. AST software constantly monitors data access patterns to identify ‘hot data’ and elevates it to a higher (faster) tier of storage device and replaces them with more relevant data.
A storage-only AST would turn out to be insufficient at the instance of deploying both storage and server flash architecture. If storage AST software is unaware of the server flash, it may misidentify hot data because it is unable to accurately track I/O operations. This might also result in dueling algorithms between the flash systems, leading to inefficient or conflicting data movement. Tiering software applications designed to prioritize IOPS to control data movement across all tiers (including server flash) are available today—notable examples being EMC XtremeCache, NetApp Flash Accel, and IBM FlashCache Storage Accelerator.
Deploying both storage and server flash, over provisioning by about five percent of an array’s total capacity in SSD, and opting for an AST software capable of managing I/O from processor to back-end HDD are some best practices for an efficient VM storage. Flash storage supports only a finite number of writes during its lifecycle so designing solutions that adhere to minimal writes could result in a longer running storage set-up. However, thanks to increasing affordability and efficiency of flash systems, the need for tweaking processes for the sake of memory has become the last thing in an IT administrator’s checklist.
Enterprises embracing the cloud are bound to be affected by the slow I/O performance of HDDs and the need to incorporate flash at some level is inevitable especially in the case of highly virtualized cloud environments. Mixed use of different flash types may not be entirely supported by vendors, it is therefore important to evaluate storage components from a compatibility perspective.