Yesterday saw the public launch of EMC’s latest product innovation, the VFCache product line. In physical terms, this product is a server-installable card that plugs into a PCIe slot on a rack mount server. There aren’t any ports on the back of the card so it’s not a host bus adaptor (HBA), but with the help of some clever drivers that run either in VMware ESX Server or a supported operating system (or both) VFCache provides dramatically improved read performance for any data that is present within the flash-based cache on the card.
How does it work?
The drivers make the card able to transparently cache data held on block devices attached to the server. Cache hits are serviced from flash rather than transiting the SAN via a HBA. Sophisticated caching algorithms, similar to those used in the caches within storage arrays, are used to optimise the effectiveness of the cache and deliver the maximum performance boost for the amount of cache installed on the card. This can deliver a several hundred fold(!) increase in read performance when compared to data accessed via a SAN!
If you haven’t seen the announcement from last year’s EMC World and the subsequent press coverage. Some of the coverage of the launch can be found at the links below:
The real point of this post isn’t to recap the announcement or to point you to some external links though, it’s to consider what the Service Provider use cases are for VFCache, so let’s move onto that now.
Firstly, it’s important to note that the first generation of the product has some limitations related to VMware vMotion and there is no mezzanine card available for blade servers with the initial release. These factors will reduce its usefulness as generically installed device within, for example, a large server cluster that is used for running a vSphere/vCloud Director-based cloud. So I don’t think this is going to be a particularly common deployment model, as least not immediately.
Incidentally, mezzanine cards for blade servers are planned as a future enhancement to the product line and I will cover something else at the end of this post which I think will address the generic high performance storage for VMware use case.
So what are the use-cases?
How about a high performance compute and IO tier within a cloud infrastructure for specific applications or application components that need the maximum possible read performance – virtualised or not. Customers could use this new performance tier to run read-intensive throughput-critical transaction processing application components, such as Microsoft SQL, Oracle or other open source database systems.
What are the applications that would benefit?
Latency sensitive apps such as financial trading systems would be an obvious candidates. Add to this web-accessible applications, such as SaaS offerings, and e-retail services that might be read IO constrained might also benefit from significant boost in system throughput, delivered without any changes to application architecture or code.
Who will deploy this?
Given the use cases, I think it’s probable that the initial deployments will tend to be in Service Providers that have service offerings based on dedicated infrastructure for specific customers – think big IT service providers, sophisticated hosting providers and some of the Telcos in the first instance, rather than the large scale, industrialized, public cloud operators. Operators that provide public cloud and dedicated services will tend to deploy VFCache in their dedicated services business first.
Also I think SaaS operators will be early adopters of this technology, especially where their application architecture demands it and it gives an advantaged cost position by balancing CPU and IO utilisation within the architecture for these operators. Prove me wrong by all means, but that’s my view.
What’s the ‘Something Else’?
Finally, I mentioned ‘something else’ that would address the generic VMware use case for high performance flash storage. What was this? Some additional details were also released today on Project Thunder. This will be a server-area network flash array with scale out characteristics – essentially an array of appliances interconnected to servers via InfiniBand or a similar technology that will provide a shared storage infrastructure with not-as-fast as VFCache, but faster-than-SAN performance. No dates on this yet, but I wouldn’t be at all surprised if further details surface around the time of EMC World in May, so watch this space!