As data centers continue to virtualize more of their workloads, the reality is there are only a few use cases today that are not virtualized on a regular basis. This means that the dependance on shared storage is also increasing. The fact that the majority of performance issues in virtualized environments are storage related is cause for admins and architects to continue their search for improving performance. One of the hottest new technologies in this pursuit of better performance is server-side caching.
Server-Side Caching Overview
Server-side caching is a method of using a local caching point to accelerated reads, writes, or both. The local caching points are most commonly local flash storage in the server, but they could also be using local server memory. Typically the goal is to cache the commonly used data in this layer so that when it’s accessed again it can be read locally without the need to go all the way back to shared storage. This typically lowers the latency and increases the IOPs.
Over the past 12 to 18 months this market has seen a lot of companies announce and release products. I’m going to cover some of the ones that I have personally used or spoken with. This list is sure to not cover every option available today, but will hit on the leading ones for the VMware space.
PernixData – The FVP product offers a local cache that utilizes dedicated local flash storage in your VMware hosts. This flash could be SSD drivers of PCIe flash cards. The product support block-based storage today.
Infinio – The accelerator product from Infinio was just recently released to the public. It uses virtual appliances on each host that use 8GB of server memory as the caching layer. The appliances unify together in a vSphere cluster to create a larger deduplicated cache layer. The product only support NFS in this 1.0 version.
SanDisk – The FlashSoft product also builds a local cache layer using local flash disks or PCIe flash.
VMware – Recently as part of vSphere 5.5 VMware has release the vFRC feature which uses local flash storage as its caching layer. This product has the bonus on being part of VMware, but the current version offers some challenges with implementation. The process is a bit more manual than it needs to be today on a per VM basis. It will sure draw attention since its a VMware offering.
Server-Side Caching: User Cases
In reality, server-side caching can likely help with almost any workload to some effectiveness, but there are a few that seem like a slam dunk.
- Databases – These workloads can be very demanding by nature and also very latency sensitive. This is exactly what these products are looking to solve.
- Aging storage – Many shops have aging storage arrays that are getting towards the end of their lifecycle or have maybe grown beyond their original design. This has caused the performance to suffer and the choices are to purchase something else or try and add performance by investing in something at the end of its life. This is also a very good area for using caching technology.
- Virtual desktops – We all know or have heard by now that desktops are demanding and will crush a storage array that was improperly architected. So caching technology, if used properly, can overcome limitations in current arrays or possibly allow companies to design storage with caching in mind and possibly do so in a more economical way.
Whether you have any of the use cases that I mentioned above, I think that server-side caching can help nearly everyone. The entry cost can be relatively low (though there are others that are more expensive but offer additional benefits). I’m confident that we have not heard the last of this caching technology and I think this market will only continue to become a more important segment in the data center.