The simple Unix write operation is buffered by the in-memory page
cache until the file is closed or data gets flushed out after 30
seconds. Some applications use synchronous writes to ensure that their
data is safely on disk. Directory changes are also made synchronously.
These synchronous writes are intercepted by the disk array write cache
and safely stored in nonvolatile RAM. Since the application is waiting
for the write to complete, this has a dramatic effect, often reducing
the wait from as much as 20 milliseconds to as little as 2
milliseconds. For the SPARCstorage Array, use the
command to check that fast writes have been enabled on each controller,
and to see if they have been enabled for all writes or just synchronous
writes. It defaults to off, so if someone has forgotten to enable fast
writes you could get a good speedup! Use
ssaadm to check
the SSA firmware revision and upgrade it first. There is a copy in
/usr/lib/firmware/ssa on Solaris 2.5.1.
The final use for a disk array write cache is to accelerate the RAID
5 write operations in hardware RAID systems. This does not apply to the
SPARCstorage Array, which uses a slower, software-based RAID 5
calculation in the host system. RAID 5 combines disks using parity for
protection, but during writes the calculation of parity means that all
the blocks in a stripe are needed. With a 128-kilobyte interlace and a
six-way RAID 5 subsystem, each full stripe cache entry would use 768
kilobytes. Each individual small write is then combined into the full
stripe before the full stripe is written back later on.
This needs a much larger cache than performing RAID 5 calculations
at the per-write level but is faster as the disks see fewer larger
reads and writes. The SPARCstorage Array is very competitive for use in
striped, mirrored, and read-mostly RAID 5 configurations, but its RAID
5 write performance is slow because each element of the RAID 5 data is
read into main memory for the parity calculation and then written back.
With only 4 megabytes or 16 megabytes of cache, the SPARCstorage Array
doesn't have space to do hardware RAID 5, although this is plenty of
cache for normal use. Hardware RAID 5 units have 64 megabytes or more
-- sometimes much more.
- Core IT
- Business & Money
- Personal Tech