Asset ID: |
1-79-1607183.1 |
Update Date: | 2017-05-12 |
Keywords: | |
Solution Type
Predictive Self-Healing Sure
Solution
1607183.1
:
Sun Storage 2500, 2500-M2, Flexline and 6000 Arrays: Understanding Cache Operation
Related Items |
- Sun Storage Flexline 380 Array
- Sun Storage Flexline 240 Array
- Sun Storage 6780 Array
- Sun Storage 2530 Array
- Sun Storage 6580 Array
- Sun Storage 2540-M2 Array
- Sun Storage Flexline 280 Array
- Sun Storage 2540 Array
- Sun Storage 2510 Array
- Sun Storage 6140 Array
- Sun Storage 2530-M2 Array
- Sun Storage 6180 Array
- Sun Storage 6540 Array
- Sun Storage 6130 Array
|
Related Categories |
- PLA-Support>Sun Systems>DISK>Arrays>SN-DK: 6140_6180
|
In this Document
Applies to:
Sun Storage 2510 Array - Version Not Applicable to Not Applicable [Release N/A]
Sun Storage 6580 Array - Version All Versions to All Versions [Release All Releases]
Sun Storage 6140 Array - Version All Versions to All Versions [Release All Releases]
Sun Storage 6540 Array - Version All Versions to All Versions [Release All Releases]
Sun Storage 2540-M2 Array - Version Not Applicable to Not Applicable [Release N/A]
Information in this document applies to any platform.
Purpose
This document explains about cache memory in Sun Storage Arrays and how it can improve array performance. It also covers different cache modes and different parameters associated with cache memory.
Details
What is cache memory?
The controller cache is usually a large physical volatile memory (RAM) dedicated to I/O operations between controller and hosts, and between controller and disk drives. As physical memory is faster than drives, use of cache memory significantly improves the overall performance of the storage array in several ways:
- If read cache is enabled, the data for a read operation from the host may already be in the cache from a previous operation. In such cases, the need to access the drive is eliminated and the data request is serviced from the faster cache memory.
- If write-back cache is enabled, the host can send subsequent write commands before the data from a previous write operation has been written to a drive.
- If read-ahead cache (also known as "cache pre-fetch") is enabled, sequential read access is optimized, as cache pre-fetch brings additional data into cache for next read operation(s).
Cache modes
Read Cache |
Read caching allows data from read commands to be stored in controller cache memory.
If a host requests data that is in cache memory, the controller services the I/O request from cache memory , thus improving read performance.
If the data is not present in cache, the controller reads the appropriate data blocks from the disk drive and places them in cache. Cached read data will remain in cache for future I/O operation.
Read cache is always enabled.
|
Read-Ahead Cache (Cache Pre-fetch) |
Allows the controller to (optionally) copy additional sequential data blocks into the cache while it is reading data blocks from a disk drive to cache. This increases the chance that future requests for data can be filled from the cache.
Cache read-ahead is important for multimedia applications that use sequential I/O.
|
Write-Through Cache |
When a volume is configured for write-through caching, write command status is returned to the host only after the data has been successfully stored on a drive.
Because the data is written to permanent media (disk drives), data is not vulnerable to unexpected power failures or controller failures.
This will however significantly reduce I/O performance.
|
Write-Back Cache |
When a volume is configured for write-back caching, write command status is returned to the host as soon as the write data has successfully been inserted into cache memory. The data in the cache is written to disk, or flushed, automatically later.
This mode improves write I/O performance.
Unwritten data in cache is however vulnerable to power failures and controller failures, as the host has already received a command status and assumes the write is complete.
|
To protect against power failure, the storage array contains batteries that are used to retain cache data in the event of power loss. However, batteries will not be able to protect cache data in case of controller hardware failures. |
Cache Mirroring |
This feature is an extension of the write-back caching capabilities that provides full protection of cached write data from a single component failure in the storage array.
Cached write data is mirrored to the other controller in the array. That is, data written to the cache memory of one controller is also copied to the cache memory of the alternate controller.
Therefore, if one controller fails, the other can complete all outstanding write operations.
|
Cache Attributes
Storage Array-Level Cache Attributes
(These attributes are located under the "Administration" page for an array in Common Array Manager.)
Cache Block Size |
The cache block size is an array-level attribute of the cache.
The cache block size dictates the size of individual data buffers within the cache. Cache memory will only be allocated in increments of the cache block size. This is commonly referred to as the cache “page size” in other applications.
The supported values for cache block size: 4KB, 8KB, 16KB and 32KB.
The smaller cache block sizes are recommended for systems that require transaction-processing requests or I/O streams that are typically small and random. The larger cache block sizes are recommended for large sequential I/O operations.
|
Cache Start % |
Percentage of unwritten data in the cache that will trigger a cache flush.
The value for Cache Start % must be greater than the value for Cache Stop%.
|
Cache Stop % |
Percentage of unwritten data in the cache that will stop a cache flush that is currently in progress.
The value for Cache Stop% must not be greater than the value for Cache Start %.
|
Volume-Level Cache Attributes
(There attributes are located under the "Volume Details" page for each volume in Common Array Manager)
Read Ahead Enabled |
Specifies whether the Read-Ahead Cache is active: True or False.
This is controlled through Storage Profile associated with pool.
|
Cache read ahead multiplier (reported in storageArrayProfile.txt output - part of Array Support Data)
|
If this value is 0, Read-Ahead Cache is disabled.
If it is greater than 0, Read-Ahead Cache is enabled and the value provided is used as a hint to the adaptive algorithm.
|
Write Cache Enabled |
Choose whether the write-back cache needs to be enabled: True or False. |
Write Cache With Replication Enabled |
Choose whether the write cache contents need to be mirrored between controllers: True or False.
|
Write Cache Without Batteries Enabled |
Choose whether Write-Back caching will remain enabled despite loss of reliable battery protection: True or False. |
Write Cache Active |
Specifies whether the write cache is currently active: True or False.
This is controlled by the three parameters above.
|
Flush Write Cache After |
The maximum amount of time that dirty data (data that has been cached, but not yet written to physical storage for the volume) can be maintained in cache before being flushed to physical storage.
This attribute can be set to "Immediate" which means that cache data is immediately eligible to be flushed to persistent storage.
It can also be set to “Infinite” which means the cache data is flushed to persistent storage only when the controller needs that cache memory for something else.
|
Attachments
This solution has no attachment