Blog

Victoria Koepnick

Sr. Manager, Product Marketing Virtualization Solutions Group

Not All Caching is Created Equal

Not All Caching is Created Equal

Posted: 02/06/2012

Within a data network, what difference does it make where the decision to cache data is made? If it is a virtualized environment, it makes a significant difference.

Virtualization has completely changed the way compute resources are deployed, utilized, and managed. While this change has delivered significant benefits, it has highlighted that spinning disk is simply too slow to adequately deliver data quickly enough to virtualized applications in order to keep the compute processors working at optimal throughput.  As a result, the marketplace is becoming crowded with “Caching” solutions. These solutions generally take the form of

  • External SSD in Disk Arrays
  • Caching Appliances
  • Caching Software
  • Intelligent, Application Level Caching

The key to understanding which solution is best for a virtualized environment is to look at where the caching decision is made.

External SSD in Disk ArrayExternal SSD in Disk Array

Traditional storage arrays are generally in this category. In an effort to help spinning disk keep up with the demands of virtualization, SSD has been added to the array and the caching decision is made in the array. This approach will not solve the problem. This type of storage is typically networked, SAN or NAS, so is located out on the network far from the data source, which is the application running on the virtualized compute server. The data received by the array has passed through the hypervisor or ‘virtualization blender’ which makes it extremely difficult to decipher which data would benefit most from caching. Because the data cannot be “unblended” the only choice is to cache the river of blended blocks that comes out of the server, a sledgehammer approach to caching that will not scale. Storage vendors take this approach because it helps expand the storage footprint. However, even if the array could decipher the data and make intelligent caching decisions, this solution still suffers from latency derived from traversing the network which is inherent to this set-up.

Caching Appliance

Somewhat similar to storage arrays are caching appliances. Some are a combination of spinning disk and SSD, while others are all solid state. Either way, the caching decision is made in the appliance and these suffer from the same disadvantages as disk arrays- network latency, hypervisor blender, can’t clearly decipher what to cache. While there will always be a server tier and a storage tier to manage, caching appliances add yet another tier to manage, further increasing complexity and costs which is completely counter to why one virtualizes servers in the first place.

 

Caching Software

This is a new category of software for virtualized servers that utilize solid state devices to deliver data at speeds fast enough to keep the compute processors working. With these solutions, the caching decision is made in the virtualized application server, much closer to the source than either the caching appliances or disk arrays. However, these offerings suffer from many limitations. While the caching decision is made on the host, it is not made in the guest OS at the application source, so still a few steps away from the source and not in the best position to decipher data that would benefit most from caching. Most of these software solutions do not support VMware ESX/ESXi, the most commonly deployed hypervisor. Even if they do claim support for ESX/ESXi, they do not support vMotion. Without vMotion, one of the key benefits of virtualization, IT agility is lost. Finally, current caching software offerings are not integrated with solid state devices. The software is purchased from one vendor and the solid state from a different vendor. This typically leads to questions and issues: Do the software and the solid state device work well together? Are they optimized to work together? Does the hypervisor vendor support both?

Fusion-io’s Intelligent Application Level Caching

Fusion’s ioTurbine application level caching software is superior to any other solution because the caching decision is made in the guest OS, right where the application is generating the data. By intelligently looking at the I/O source rather than a river of blended blocks, we have the opportunity to make intelligent caching decisions before the data is passed through the hypervisor and co-mingled with other VM data on the virtualized server. This enables us to  deliver accelerated performance directly to virtualized applications that require it.

Designed for VMware ESX/ESXi servers, ioTurbine fully supports vMotion. As VMs come and go, ioTurbine dynamically rebalances flash capacity among the VMs to ensure the entire flash capacity is continually being utilized. 

ioTurbine software is integrated with our line of ioDrives to ensure seamless operation between the hardware and software, as well as support for the complete solution from a single vendor.

Our approach is to be intelligent about I/O.  Know the source. Be transparent to future solutions. Help the apps that need it and let the rest of the infrastructure operate as intended.

Sign in to leave a comment:
Use the form above to be the first to leave a comment.