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
-i is info, -H is health, -A is attribute, -a is all. Read the smartctl(8) manpage for more info# /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]
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.