It is possible to access S.M.A.R.T. capabilities of drives attached to HP SmartArray (cciss) hardware RAID controllers using Free Software. Here are some examples of how I do this on Debian systems.
Install the smartmontools package. As root you can run smartctl, adding a special option "-d cciss,#" where the number is the number of the drive on the controller that you want to query. For example
# /usr/sbin/smartctl -d cciss,0 -a /dev/cciss/c0d0
smartctl version 5.38 [x86_64-unknown-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/
Device: HP DG146ABAB4 Version: HPD7
Serial number: 3NM0FYSF000097255W39
Device type: disk
Transport protocol: SAS
Local Time is: Sat Jun 28 04:19:34 2008 MDT
Device supports SMART and is Enabled
Temperature Warning Enabled
SMART Health Status: OK
Current Drive Temperature: 27 C
Drive Trip Temperature: 68 C
Elements in grown defect list: 87
Vendor (Seagate) cache information
Blocks sent to initiator = 707632981
Blocks received from initiator = 480660099
Blocks read from cache and sent to initiator = 1692237021
Number of read and write commands whose size <= segment size = 194230242
Number of read and write commands whose size > segment size = 0
Vendor (Seagate/Hitachi) factory information
number of hours powered up = 6695.73
number of minutes until next internal SMART test = 25
Error counter log:
Errors Corrected by Total Correction Gigabytes Total
ECC rereads/ errors algorithm processed uncorrected
fast | delayed rewrites corrected invocations [10^9 bytes] errors
read: 0 0 0 0 0 0.000 0
write: 0 0 0 0 0 0.000 0
Non-medium error count: 0
SMART Self-test log
Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ]
Description number (hours)
# 1 Background short Completed - 6693 - [- - -]
# 2 Background short Completed - 6669 - [- - -]
# 3 Background short Completed - 6645 - [- - -]
Long (extended) Self Test duration: 2070 seconds [34.5 minutes]
-i is info, -H is health, -A is attribute, -a is all. Read the smartctl(8) manpage for more info
Once you know that smartctl works, you can setup smartd to do periodic testing. Edit /etc/smartd.conf, comment out the line beginning with "DEVICESCAN" to turn off the automatic detection of all drives, then add something like the following
# Monitor 2 disks connected to the first HP SmartArray controller which # uses the cciss driver. Start long tests on Sunday nights and short # self-tests every night and send errors to root /dev/cciss/c0d0 -d cciss,0 -a -s (L/../../7/02|S/../.././02) -m root /dev/cciss/c0d0 -d cciss,1 -a -s (L/../../7/03|S/../.././03) -m root
I filed a bug to add the above as examples to the config file and add more cciss details to the man pages, see #488371 for more info. UPDATE: patch accepted in 5.38-2
Support was added for cciss in munin version 1.2.6 but you need to have recent version of smartmontools (newer than etch) in order for it to work (see #488357 UPDATE: backports.org now has a new enough version backported to etch). Current versions of munin and smartmontools in unstable backport to etch with no changes, so if you are using etch it's pretty easy. One you have new enough versions installed, edit (or add if it doesnt exist) the hddtemp_smartctl stanza in /etc/munin/plugin-conf.d/munin-node and add entries for cciss. For example, to monitor two drives on the first cciss controller
[hddtemp_smartctl] user root env.drives cciss0 cciss1 env.type_cciss0 cciss,0 env.dev_cciss0 cciss/c0d0 env.type_cciss1 cciss,1 env.dev_cciss1 cciss/c0d0
The munin smart_ plugin doesn't yet support cciss. I filed a bug with a non-working attempt at a patch, hopefully someone more familiar with the code can make it work properly. See #488360 for more info.