I have a HP server, which has a hardware RAID array (that mostly isn't being used for raiding, the disks are just passed through to the Linux OS). I have 6 SSD disks. 2 are riad mirrored together by the array, the other 4 are exposed to the OS. One of the 4 is broken (by using dd, I was able to see that it was /dev/sdd
. /dev/sd{b,c,e}
all work fine).
I want to find out the serial number of /dev/sdd
, so that when someone goes into the server room, they know the broken disk and can remove it. Usually lshw
/smartctrl
/etc can tell you that. But since there's a raid controller, all report the same serial number. But smartmontools can read into the raid controller with the -d cciss,X /dev/sdY
:
smartctl -i -d cciss,1 /dev/sdd
But only the cciss,X
in that matters, not the sdY
. Running cciss,0
on sdb
, sdc
, sdd
or sde
gives the same results. But running cciss,1
on sdb
gives different results from cciss,0
on sdb
.
How can I figure out which "cciss number" is used by /dev/sdd
?
This is on Ubuntu Linux 14.04. There is no /dev/cciss/*
files.
Update: It's a HP ProLiant SE316M1R2 which was refered to as a "160".
(One answer might be to run a standard smart test on all cciss disks, and find which one is broken, but I tried to call a -t short
and -t long
on all cciss from 0-5 and all them except cciss,0
and ,1
acted as if there had never been a test run on them.)
Best Answer
Wow...
(there are special tools available for HP systems)
Install the
hpssacli
tool:And then look at the output of the
hpssacli ctrl all show config
command:Note: running
hpssacli ctrl all show config detail
will provide even more information...