Tuesday, December 4, 2007

Cache WaterMarks






WaterMarks


WaterMarks is what controls writing data out of Cache to disk. It is used to manage how long data stays in Write Cache before it is written to disk.


This diagram is used to describe the types of “Flushing” data to disk, or writing data out of Cache to disk.



The first type of Write Cache Flushing is Idle Flushing.


Idle Flushing is when the Clariion has the ability to take the ‘writes” into cache, send the acknowledgement back to the host that the data is on “disk.” While this is happening, the Clariion can also write data out to disk. The Clariion will try to write to disk in a 64 KB “Chunk.” The cache is absorbing the writes, grouping them together, and writing them to disk. This will come into play later when we discuss how the Clariion formats the disks. This is the perfect case scenario. The Cache takes in the writes, the Clariion has the resources to write the blocks to disk.



The second type of Flushing is WaterMark Flushing.


This is maintained by percentages that you can configure in Cache. The goal with WaterMark Flushing is to keep the Write Cache level between these two percentages. We are using the default Low WaterMark Setting of 60%, and High WaterMark Setting of 80%. These can be changed, and we will discuss that later. With WaterMark Flushing, Cache is going to do it’s best to keep Write Cache between these two levels. As Write Cache hits the High WaterMark, the Clariion tries to flush down to the Low WaterMark. If the amount of Write Cache is constantly between these two levels, the Clariion is doing its job.



The last type of flushing is the “Forced Flush.”


A Forced Flush of Cache results in the Write Cache reaching capacity. The Clariion will no longer accept data into write cache, as there is no more room.


When a Forced Flush occurs, the following take place:


1. The Clariion disables Write Cache.
2. The Clariion begins to destage/flush the write data in Cache out to disk.
3. Now comes the performance issue. With the Clariion disabling Write Cache, any new writes that come in from a host will bypass cache and be written directly to disk. The host/application is now waiting for the acknowledgement to return after the data was written to disk.
4. The Clariion will keep Write Cache disabled until it flushes to the Low WaterMark.
5. Once Write Cache is flushed to the Low WaterMark level, Write Caching is automatically re-enabled.

1 comment:

Unknown said...

I've been having a very difficult time understanding the architure and design of the Clarion and how SAN works until I found your blog. Thanks for the great work. Keep them coming!

BTW, have you ever played with the Navisphere simulator?