Managing RAID on Linux - Derek Vadala [91]
Physical Devices:
0:0 Vendor: IBM Model: DDYS-T18350M Revision: SA2A
Wide Synchronous at 160 MB/sec
Serial Number: VEY04122
Disk Status: Online, 35155968 blocks
[...]
0:7 Vendor: MYLEX Model: AcceleRAID 352 Revision: 0700
Wide Synchronous at 160 MB/sec
Serial Number:
After the physical devices, a list of logical drives (arrays) is displayed. In the following example, there are two arrays. The first (/dev/rd/c0d0) is a JBOD logical drive, indicated by RAID-7. The DAC960/DAC1100 driver uses the term RAID-7 to denote JBOD logical drives. The next array (/dev/c0d1) is a RAID-0.
Logical Drives:
/dev/rd/c0d0: RAID-7, Online, 35155968 blocks
Logical Device Initialized, BIOS Geometry: 255/63
Stripe Size: 64KB, Segment Size: 64KB
Read Cache Disabled, Write Cache Disabled
/dev/rd/c0d1: RAID-0, Online, 140623872 blocks
Logical Device Initialized, BIOS Geometry: 255/63
Stripe Size: 64KB, Segment Size: 64KB
Read Cache Disabled, Write Cache Disabled
Unfortunately, the components that make up each array are not displayed. To determine which disks are part of each array, you need to either use Mylex-supplied user-space tools or reboot the system and use the EzAssist utility.
Of particular note is the last line of output:
No Rebuild or Consistency Check in Progress
This line reports whether or not there is a rebuild, consistency check, or initialization in progress. These processes occur when a new, redundant array is brought online for the first time or when a degraded array is being repaired. The percentage of the process that is complete, along with the logical drive number and device special file, are displayed:
Foreground Initialization in Progress: Logical Drive 1 (/dev/rd/c0d1) 28% completed
/proc/rd/c0/initial_status displays the same information as current_status, but it remains a static snapshot of the state of the controller when the system was booted. It does not display any information about array rebuilds or consistency checks.
Finally, user_command allows system administrators to perform some administrative tasks on the controller, arrays, and physical disks. To use these commands, simply echo them into the user_command file:
# echo command > /proc/rd/cX/user_command
Each controller has its own user_command file and can accept the following commands:
flush-cache
Writes all uncommitted data in the controller's memory to disk. You can use this command in conjunction with shutdown scripts (such as those executed by a UPS) to make certain that all buffers have been committed to disk before the system is powered down. For example:
echo "flush-cache" > /proc/rd/c0/user_command
kill channel:target-id
Marks a physical disk as offline. This is useful for testing hot failover. For example, to kill the disk with SCSI ID 4 on controller 0, use:
echo "kill 0:4" > /proc/rd/c0/user_command
make-online channel:target-id
Brings a drive back online after it has failed (and ideally been replaced) or after you have killed it for testing purposes. make-online is the opposite of kill. For example:
echo "make-online 0:1" > /proc/rd/c0/user_command
make-standby channel:target-id
Marks a drive as a spare. (Standby is yet another term used to mean spare-disk or hot-spare.) This command is useful when an array has already undergone an automatic rebuild. Even though it is no longer in degraded mode, the array has no hot-spare. After the dead disk is replaced, use this command to mark the new disk as the spare disk. For example:
echo "make-standby 0:1" > /proc/rd/c0/user_command
rebuild channel:target-id
Manually initiates a rebuild. If you disabled Automatic Rebuild Management, use this command to start the rebuild manually. The target-id always specifies the dead disk that should be synchronized with the remaining working disks. For example, to rebuild the