I have 2 MSA arrays off of my system, each with 28 disks. I also have the internal smart array on my system, with a variable number of disks.

When I run my smartctl, I do have to enter -d cciss,{disk_number} /dev/cciss/cXd0. This is expected and makes sense to me, somewhat.

Running smartctl -d cciss,7 gets me the 8th disk in the array from controller 0, as I understand it (cciss,0-7 all return good values). This makes sense to me, too.

The next controller starts the weirdness.
Running smartctl -d cciss,28 /dev/cciss/c1d0 gets me the 28th disk of the first external array (I think). I get values for cciss,0-28, which means I get 29 values from 28 disks.
Then, running smartctl -d cciss,29 /dev/cciss/c2d0 gets me the 28th disk of the second external array (again, I think). I get values for cciss,0-29, meaning I get 30 values for 28 disks.

My assumption is that some of these are actually reporting on, say, the bus of the array, not just the disks. So, how can I know what is disk response, and what isn't?

I'd like to put together the config file so that smartd can let me know what is predicted to fail, but, I only really want to know about the disks, themselves. Anybody else run into this? How were you able to work around it?