FlashCache and System Buffers

NetApp FlashCache – What is it?

NetApp FlashCache – What is it and how does it work?

I was on a customer site recently and during a NetApp health check, they asked about FlashPool and FlashCache and how they differ, particularly which provided the best performance. A couple of questions to different people got different answers (Myself Included) So I thought it was best to compile an overview of the technology and how it works.
The TR-4070 is where the majority of the information I found comes from so hats off to the guys at NetApp for writing such a detailed and informative deep dive into the technology as a whole.
http://www.netapp.com/us/media/tr-4070.pdf
FlashCache is a second-level read cache for NetApp Storage controllers the below image from a NetApp article provides a good basis of how read requests are served from a NetApp Storage Controller.

 

FlashCache and System Buffers

FlashCache and System Buffers

In essence the CPU has to request the block to be served out to the requesting device, all systems utilise system memory (RAM or DRAM) and dynamically allocates buffers which are in-memory structures to be used for caching (Write Cache buffers will be no larger than the amount NVLOG can hold, the majority of the rest is allocated to Read Caching and a small amount reserved for basic OS system functions)
In recent years data has exploded from TB to PB and Storage Arrays have to keep up and hold more and more data in system buffers to keep performance competitive, in the latest NetApp AFF A700 it has 512GB of DRAM per Node, however, if you have 2PB of data it’s still just a fraction of the possible data that could be read and cached.
FlashCache provides a high-performance cache to increase storage performance, now unlike system memory, this cache can only be used for read operations. It dynamically stores data that’s recently been read like an overflow for the buffer cache, although not as fast as the buffer cache it still improves performance for reads by 10x versus reading from a hard disk *quite an improvement if you ask me*
Okay so how do you use it, well first off you need a FlashCache module installed in the node and that’s it you’re done. FlashCache is enabled by default on any system where the module has been installed. As soon as the system starts serving data it begins utilizing the module as an overflow to system buffers.
Things worth noting…
The New NetApp 2650 and 8200 both have FlashCache modules installed at no cost, they can be upped if required but the default configuration already includes a 1TB module (shared between the HA-Pair)
There is a maximum to the size of the cache that a controller can have, this will be discussed in the FlashPool vs FlashCache post.
It’s a pretty good technology that can effectively increase the performance of your storage array without the need to add more spindles.
If you want to see some stats relating to how much data is going through the cache you can login to System Manager on your cluster and under Hardware and Diagnostics > FlashCache
FlashCache Statistics

FlashCache Statistics
Coming soon…. FlashPool What is it and How does it work?

 

Leave a Reply