Currently Being Moderated
lfreeman

NetApp Flash Accel Deep Dive

Posted by lfreeman in About Data Storage on Dec 21, 2012 9:46:30 AM

In prior posts I’ve examined NetApp Flash Cache and Flash Pools. In this blog we’ll study another NetApp Flash implementation - Flash Accel.

 

Flash Man.jpgNetApp Flash Accel

Unlike Flash Cache and Flash Pool, Flash Accel is a software-only offering from NetApp.  Flash Accel is a selectable write-through/write-around/read cache used to accelerate Windows 2008 servers running VMware.  Flash Accel consists of three components:  1) the VMware ESX host agent 2) a Windows guest OS agent, and 3) the Flash Accel Management Console.  All three software components are available from NetApp at no charge.

 

Flash Accel integrates with VMware servers and off-the-shelf enterprise-class Flash device(s). Any SSD device that is supported by VMware is also supported by Flash Accel.  In addition, Micron and LSI PCIe Flash cards are also supported, with support for Fusion i-o cards coming soon.  Flash Accel supports up to 2TB of cache for each ESX server.

 

Keeping Cache Coherent

One of the most important aspects of server-side cache is its ability to retain a coherent cache with the source data maintained on the back-end storage array. If, through administration or unplanned server actions, the data stored in the back-end array is modified outside of the scope of the cache, there is the possibility of having the cache data and the back-end data out of sync. The result is incorrect data being returned to the application from the cache which at worst could cause data corruption in the server.

 

Other server cache designs handle coherency by simply flushing the entire cache whenever an inbalance occurs.  Flash Accel, however, handles cache coherency in a unique way.  This is important because whenever the entire cache is flushed, the subsequent period of cache re-warming severely affects I/O performance while the cache is repopulated.  When a situation like this occurs, Flash Accel does not flush but rather is able to identify and evict only inconsistent cached data blocks, preserving performance while protecting against data corruption at the server level.

 

How do we accomplish this?  The Flash Accel coherency model consists of detection and correction phases.  A filter is inserted into each VMDK which listens for events that might cause the cache to become inconsistent, for instance, a volume unmount or a snapshot restore.  Once an event such as this is detected, information is sent to the core driver, which initiates corrective action based on the event. 

 

The core driver invalidates certain cached blocks based on the heuristics of the event and flags effected cached blocks as invalid.  If the server requests any of those data blocks that have been flagged as potentially corrupt, the driver bypasses them in cache and treats the request as a cache miss.  Eventually the questionable blocks are evicted from cache and everything returns to normal.

 

As you can see, there is a lot of intelligence going on deep down inside Flash Accel software.  NetApp’s goal is to provide optimal performance without risking data loss or corruption.  Flash Accel is another example of this.  If you’d like to try out Flash Accel, its available today under limited release, just contact your NetApp or partner account rep to get a copy.  Full release is planned in early 2013.  At that point, you will be able to download the software from the NetApp support site http://support.netapp.com and watch your servers accel(erate)!

 

References:

 

For general information on Flash Accel, click here

For a good Tech on Tap article about Flash Accel, click here

 

Data Storage Matters,

 

Larry

Comments