Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I am running on a SuperMicro 2U server with 6 disks in a ZPool. I want to identify each drive bay using the Drive Carrier LED from running a command from a tool in FreeBSD. Is there a way to do this?

I know if the drives were running on top of a Raid Card, I could use the raid card utility to identify each disk but in my case, there is no hardware raid.

Is there a tool to do this in FreeBSD or Linux?

share|improve this question

4 Answers 4

up vote 1 down vote accepted

For most of my ZFS solutions, you better bet that I have a table and a set of labels identifying drives by their partial SAS WWN. This is a function of the LSI controllers I use, which read like:

    NAME                        STATE     READ WRITE CKSUM
    vol1                        ONLINE       0     0     0
      mirror-0                  ONLINE       0     0     0
        c10t50000393482B340Cd0  ONLINE       0     0     0
        c10t50000393482B4CF0d0  ONLINE       0     0     0
      mirror-1                  ONLINE       0     0     0
        c10t50000393482B4DB4d0  ONLINE       0     0     0
        c10t50000393482BAB48d0  ONLINE       0     0     0
      mirror-2                  ONLINE       0     0     0
        c10t50000393482BDA68d0  ONLINE       0     0     0
        c10t500003935803910Cd0  ONLINE       0     0     0

enter image description here

There are a couple of options to getting this to work. One is the commercial SanTools SMARTmon utility that's available to OEMs and integrators. It leverages the SCSI Enclosure Services (SES) features in external JBOD units, but has some magic for internal disks, too.

You may also have an option depending on the controller you're using. Are you just using a motherboard controller or a purpose-built non-RAID SAS HBA?

share|improve this answer
    
Note: the cXtYdZ notation is Solaris only. Most Linux distros have the /dev/disk/by-id/ directory containing symlinks from the WWN-containing names to /dev/sdX style names. No idea, if FreeBSD has something similar. –  the-wabbit Feb 20 '13 at 16:10
    
Using motherboard as I am just using SATA drives for now. May migrate to SAS in the near future. I was also considering doing exactly what you propose which is just labeling the bays with stickers. Sounds like switching to a dedicated non-RAID SAS HBA is the way to go in the long run. One with CLI APIs for *nix would put the icing on the cake ;) –  JavaScriptDude Feb 22 '13 at 15:40

There is no standardized abstracted software interface to illuminate the Drive Carrier LED (not activity LED) - this is highly-hardware dependent. This means that you still need the storage controller tools (the raid card utilities you're speaking of) to send the appropriate commands to the controller. How this software is called or implemented is of course dependent on the storage controller's manufacturer/vendor.

(It doesn't matter that you have SW raid in place, as you obviously still need a storage controller talking to your backplane, caddies and drives.)

If you're using enterprise-grade drive caddies with a cheap-o-controller, then you may be out of luck.

share|improve this answer

The poor man's means to identify disks would be to issue a dd if=/dev/daX of=/dev/null and see which disk's activity LED is blinking most rapidly. This of course needs a period of low activity for the other disks in the system, but is very generic.

If you have a (LSI) SAS controller that would work with sas2ircu then you might use it to issue the "display" command to list available drives and their serials and subsequently run the "LOCATE" command to blink the light on the enclosure.

share|improve this answer
    
Instead of "Low activity", better stop all I/O by unmounting the disk and shutting off patrol jobs. –  Roman Feb 20 '13 at 14:26

I don't know about FreeBSD, but in Linux, there is a collection of software called ledmon(8) ( http://sourceforge.net/projects/ledmon/ ) and I have used the userspace program ledctl(8) to flash the "locate" LED on a particular drive in my SuperMicro SC847E26-RJBOD1 that have drives controlled by an LSI SAS3008 HBA (not MegaRAID):

$ sudo letctl locate=/dev/sdce

Then once I located it, I turned off the "locate" LED:

$ sudo letctl locate_off=/dev/sdce

sgpio(1) is required for the communication between the HBA and the backplane.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.