That's not entirely true -- you can span a volume across controllers, just dont span RAID groups across controllers.
When a volume has 2 RAID groups, is the NVRAM split among RAID groups? How are CPs done?
Bruce
As I understand it, NVRAM is used for logging write requests from clients -- not as a disk buffer cache. The filer periodically generates consistency points where the disk volumes are perfectly consistent. These occur no less often than every 10 seconds.
In order to update the disks efficiently, the filer allows write requests to accumulate for awhile and commits them in a coordinated fashion. This greatly reduces the load on the parity drives. (If you write a bunch of blocks in the same stripe at the same time, you only have to update the parity block once.)
Once a consistency point has been generated, the NVRAM log is cleaned up to make room for logging more incoming write requests.
Due to the design of WAFL, writing a new consistency point does not undo or damage the previous consistency point.
Here's how the filer recovers from a crash or loss of power when the volumes are inconsistent. When the filer comes up, it reverts back to the most recent consistency point (no more than 10 sec old) and replays all the write requests logged in NVRAM that arrived after the consistency point was generated.
So in answer to your question, the NVRAM is shared by all volumes and raid groups because it is a log of incoming write requests, not a disk buffer cache.
Steve Losen scl@virginia.edu phone: 804-924-0640
University of Virginia ITC Unix Support