4

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.)

2
  • What server model is this?
    – ewwhite
    Feb 11, 2015 at 14:30
  • @ewwhite I've updated question with the server model. Feb 11, 2015 at 14:32

2 Answers 2

4

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:

# hpssacli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50123456789ABCDE)

   array A (SAS, Unused Space: 0  MB)


      logicaldrive 1 (838.1 GB, RAID 1+0, OK)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, OK)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)

   SEP (Vendor ID PMCSIERA, Model  SRC 8x6G) 250 (WWID: 50123456789ABCED)

Note: running hpssacli ctrl all show config detail will provide even more information...

0

From some point in smartmontools, it became possible to view the status of disks in HBA mode with an HP controller. Here is the ticket and commit: https://www.smartmontools.org/ticket/1472 https://www.smartmontools.org/changeset/5216

smartmontools version 7.3-1 on Ubuntu 22.10 gets SMART information from disks in HBA mode. This is a simple package, I think that it is not difficult to compile it for other systems.

Why did I need to monitor the status of disks through smartmontools when there are utilities from HP: these disks are used in the CEPH file system and the CEPH manager can monitor disks and send alerts about problems. Unfortunately CEPH can only do "smartctl -x --json=o <dev_name>".

Addition: before I found this ticket, I tried to link information from the system. I tried to map cciss,0 to /dev/sda ...

# ls /sys/bus/scsi/devices/0:0:*:0/block
'/sys/bus/scsi/devices/0:0:1:0/block':
sda

'/sys/bus/scsi/devices/0:0:2:0/block':
sdb

'/sys/bus/scsi/devices/0:0:3:0/block':
sdc

'/sys/bus/scsi/devices/0:0:4:0/block':
sdd

'/sys/bus/scsi/devices/0:0:5:0/block':
sde

'/sys/bus/scsi/devices/0:0:6:0/block':
sdf

# ls /sys/bus/scsi/devices/0:0:*:0/scsi_generic
'/sys/bus/scsi/devices/0:0:0:0/scsi_generic':
sg0

'/sys/bus/scsi/devices/0:0:1:0/scsi_generic':
sg1

'/sys/bus/scsi/devices/0:0:2:0/scsi_generic':
sg2

'/sys/bus/scsi/devices/0:0:3:0/scsi_generic':
sg3

'/sys/bus/scsi/devices/0:0:4:0/scsi_generic':
sg4

'/sys/bus/scsi/devices/0:0:5:0/scsi_generic':
sg5

'/sys/bus/scsi/devices/0:0:6:0/scsi_generic':
sg6

'/sys/bus/scsi/devices/0:0:7:0/scsi_generic':
sg7

then I would write a wrapper script that takes the device name as input in the form "/dev/sda", sets a correspondence between "/dev/sda", "/sys/bus/scsi/devices/0:0:1:0/ ", "/dev/sg1" and executes "smartctl /dev/sg1"

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .