Clariion Cache: Page Size

January 20th, 2009 2 comments

This blog is an extension of my previous blogs related to Clariion Cache.

Clariion Cache: Idle Flushing, Watermark Flushing and Forced Flushing

Clariion Cache: Navicli Cache Commands

Clariion Cache: Read and Write Caching

(All links found below in the Related Posts)

There are 4 different Cache page size settings available in a Clariion; the default size is 8kb with other available options at 2kb, 4kb and 16kb.

Based on your applications you should customize your Cache page size. Applications like Exchange data blocks consume 4kb page size, SQL uses 8kb and Oracle uses 16kb.

Let’s say you are running Exchange and SQL on your Clariion. Your defined cache page size is 4kb in the Clariion. Each Exchange data block will occupy 4kb cache page size and the application along with cache will work excellent. Now assume SQL is running on the same machine which has a data block size of 8kb, so every SQL block will be broken down into 2 separate pages in cache at 4kb each. Now imagine running Oracle on it which has a data block size of 16kb, here each data block will be broken into 4 cache pages, at this point your applications will start having backend performance issues.

In this scenario Exchange will work perfect, SQL with a little performance impact and Oracle heavy impacted with 4 cache pages per data block.

Now let’s imagine a scenario where you are using 16kb page size for Oracle as the primary application for that machine. Time goes by and the machine is upgraded with disk etc and used for SQL and Exchange along with Oracle. Your page size is 16kb, Oracle applications run fine. SQL starts putting its block of data in cache at 8kb, but your size is 16kb, wasting 8kb per block of SQL data that comes in. Similarly with Exchange you have 4kb block size, and you are wasting 12kb per block of data in the cache. In these scenarios you will fill up your cache much faster not with data, but with wasted open space rather called holes.

Best recommendation would be to have separate machines (Clariion) based on the applications you run on them. If you are running SQL and Exchange primarily, it might be a good idea to run it at 8kb Cache size on one Clariion. For Oracle possibly run another machine at 16kb Cache size. If you try to slam all of them together, either the applications will have issues or the cache will have issues or worst you will see performance issues throughout your Clariion.

Clariion Cache: Read and Write Caching

January 19th, 2009 1 comment

The following blog explains how Read and Write Cache functions within Clariion.

Clariion Read Caching

The Diagram on the left explains Read Caching (Only One SP involved in this process)

Step A: The host is requesting data from the active path to the Clariion.

Step B: If the data is in Cache, the data is sent over to the host.

Step Aa: This step comes into picture if the requested data is not in cache and is now requested from the Disk.

Step Ab: The Disk reads the data in the cache and Step B is performed completing the request.

Clariion Write Caching

The Diagram on the right explains Write Caching (Both the SP’s are involved in this process)

Step A: The host writes data to the disk (lun) through the active path between Host and Clariion. The data is written in cache.

Step B: The Data from above is in Cache (example SPA) is now copied over to the Cache of SPB using the Clariion Messaging Interface (CMI)

Step C: At this point an acknowledgement is sent to the host that the Write is now complete.

Step D: Using the Cache flushing techniques the data is written to the Clariion Disk (lun)

Clariion Cache: Navicli Commands

January 17th, 2009 No comments

The following sets of commands are run to change the cache options in the Clariion CX, CX3 and CX4 systems using NAVICLI. Most of these can also be performed using Navisphere Manager GUI.

This blog is an extension of my previous blog on Clariion Cache Flushing Techniques: Idle Cache Flushing, Watermark Cache Flushing and Forced Cache Flushing, links found below.

To Enable Cache on the Clariion

naviseccli – h setcache –wc 1 –rca 1 –rcb1

Command Arguments

-wc Write cache enabled (1) and disabled (0)

-rca Read cache for SPA enabled (1) and disabled (0)

-rcb Read cache for SPB enabled (1) and disabled (0)

To Disable Cache on the Clariion

naviseccli –h setcache –wc 0 –rca 0 –rcb 0

Command Arguments

-wc Write cache enabled (1) and disabled (0)

-rca Read cache for SPA enabled (1) and disabled (0)

-rcb Read cache for SPB enabled (1) and disabled (0)

To Set Cache to 2GB for Write Cache and Set Cache to 4GB for Read Cache on both SP’s (SPA and SPB)

naviseccli – h setcache –wsz 2048 –rsza 4096 –rszb 4096

Command Arguments

-wsz Write Cache Size and the amount of Cache (valid between 1GB and 3GB)

-rsza Read Cache Size for SPA and the amount of Cache (valid between 1GB and 4GB)

-rszb Read Cache Size for SPB and the amount of Cache (valid between 1GB and 4GB)

To sets the page size of cache to 4KB and the Low WaterMark to 60% and the High WaterMark to 80%

naviseccli – h setcache –p 4 –l 60 – h 80

Command Arguments

-p Cache Page Size: 4kb, 8kb, 16kb size

-l Low Watermark and the value

-h High Watermark and the value

To Disable HA Vault Drive Cache

naviseccli –h setcache –hacv 0

Command Arguments

-hacv HA Vault Cache enabled (1) and disabled (0)

To Enable HA Vault Drive Cache

naviseccli –h setcache –hacv 1

Command Arguments

-hacv HA Vault Cache enabled (1) and disabled (0)

Clariion Cache: Idle, Watermark and Forced Flushing

January 17th, 2009 2 comments

Clariion Cache Flushing is a process – technique – method that controls when data from cache needs to be flushed out to Disk using patented algorithms that are defined as Watermarking levels.

To set watermarking limits on your Clariion frames, open Navisphere Manager. Once you select the Clariion that you need to set the Watermarking on, right click to select the properties of the Array and go to the Cache tab.

There are several parameters you need to setup in there, without the actual knowledge and understanding of watermarking, please leave the default values in place. You will have options to setup Low Watermark (LWM) and High Watermark (HWM).

Ideally there are three different cache flushing techniques.

Idle Cache Flushing

Watermark Cache Flushing

Forced Cache Flushing

All the three processes and applicable scenarios are defined below.

Idle Cache Flushing

When a host is writing data to the connected Clariion Disk via cache on the Clariion, the Clariion takes that data, writes it to cache and acknowledges back to the host that the data has been written to disk. This data can actually be sitting in the cache or being written to the disk when this acknowledgement goes out. The process happens in 64 Kilobyte chunks when the data is being transferred to the disk from the cache. Again the process of emptying cache and pushing it out to the Disk is called Flushing.

Due to large chunks of data coming in from the host, sometimes Idle Cache Flushing is not able to maintain the Low Watermark (LWM), in those cases Watermark Cache Flushing kicks in.

Watermark Cache Flushing

As you setup your Watermarks using the above process from Navisphere Manager, let’s assume your Low Watermark (LWM) is set at 60% and your High Watermark (HWM) is at 80%. In this scenario, Clariion Algorithms will try to keep your cache levels between 60% and 80% since those are defined as the low and high watermarks.

If for some reason the cache exceeds 80% occupancy (HWM), Forced Flushing kicks in disabling all the write cache in the Clariion.

Forced Cache Flushing

So when both the above Idle Cache Flushing and Watermark Cache Flushing fails, Forced Cache Flushing kicks in.

With Forced Cache Flushing, Write Cache on the Clariion is disabled; a destaging of Cache happens to the disk, no data is written to cache at this time, all data is transferred over to disk so the acknowledgement back to the host after write verification takes longer causing performance issues. Data is queued since cache gets more priority to read / write to disk. The host will starve of I/O during these times. This Forced Flushing phenomenon can take between milliseconds to several seconds depending on the amount of data to be flushed.

This process continues until the LWM is reached which is 60% and then the write caching is enabled again.

The above processes are always happening as your Clariion is serving data in terms of read and write to the attached host systems.