11 Replies Latest reply: Oct 10, 2012 3:33 PM by mdvillanueva RSS

Setting Priority of Service with Flash Cache

Currently Being Moderated

Here’s a tip for anyone who would like to control what goes into and is kept out of Flash Cache.


By default, Flash Cache will cache reads of WAFL metadata and user data for all volumes behind the storage controller. You have the option to cache user data for some volumes and exclude user data for others. (WAFL metadata will always be cached for every volume).


The trick is to use FlexShare quality-of-service feature in combination with Flash Cache. In the Normal (default) and Low Priority modes of Flash Cache operation you can deny caching on a volume by volume basis. Conversely, in the Metadata mode you can enable the caching of user data on a volume by volume basis.


For more information, including the FlexShare commands to use, see TR-3832 Flash Cache and PAM Best Practices Guide. Section 3 of this technical report has the details you will need to know.  Here’s a link to this report:






Mark Woods

  • Re: Setting Priority of Service with Flash Cache
    Currently Being Moderated

    And a new tip it is... considering that the TR was issued 16 months ago...



    I don't know how widely "FlexShare" is in use, but I have found it to be very useful even with less loaded systems. Without actually having done a thorough scientific analysis, I find that it sort of evens out the bumps and spikes on the I/O "road".  It adds a nice complexity to I/O scheduling that works very well for multi-purpose (the marketing droids call it "unified storage") filers.  I've advised its use here in the communities a few times to solve performance situations.


    Anyway, good to see that someone at NetApp is sacrificing their Sunday.


    • Re: Setting Priority of Service with Flash Cache
      Currently Being Moderated

      I have a few questions related to Flash Cache and setting priority?

      1. Is it better to set priority on every volume on a filer, or just a higher priority on the volumes you want to keep in cache?
      2. What performance impact will this have on the controller as a whole, especially the "lower" or "normal" priority volumes?
      3. Is there a way to dedicate an amount to keep in cache in as a percentage of the whole cache available for different volumes?
      4. Where can I find the most up-to-date info on setting priorities and using Flash Cache, or is TR 3832 the most current doc?

      Thanks in Advance


    • Re: Setting Priority of Service with Flash Cache
      Currently Being Moderated

      I see how to set priority on a volume, how does one "unset" priority, or set it back to normal?

      • Re: Setting Priority of Service with Flash Cache
        Currently Being Moderated

        You're not required to set the priority for every volume and it may make more sense to change the system default for caching if you find yourself setting the vast majority of volumes.  Volumes that do not have a specific caching policy set will use the default system setting as determined by the flexscale options.  This is also the way you can "unset" a priority, but setting cache=default (as opposed to reuse or keep).  There's no way to keep a specific percentage of cache devoted to a specific volume or volumes.  The options you set allow you to control the data that gets put into the cache, but the amount of cache that's used by a specific volume is determined by the workload characteristics.  One can think of Flash Cache as a system-level component, similar to the WAFL main memory cache.


        TR-3832 is the most current doc and may continue to be updated if necessary for future Data ONTAP releases.

  • Re: Setting Priority of Service with Flash Cache
    Currently Being Moderated

    ok, I am somewhat confuse with flexscale and flexshare.


    Right now we have lopri_blocks on using the flexscale options. However I want certain volumes to never leave the cache. Do I use flexshare for this? how do I achieve this?




More Like This

  • Retrieving data ...