≡ Menu

Howto: Linux see new fiber channel attached disk LUNs without rebooting

Q. How do I force fdisk to see new fiber channel attached disk LUNs without rebooting my Linux server or system?

A. Hot swapping or hot plugging is the ability to remove and replace components of a machine, usually a computer, while it is operating. Once the appropriate software is installed on the computer, a user can plug and unplug the component without rebooting.

You can add new SCSI device to a Linux system through SCSI hotplug mechanism.

Type the following command as root user:

$ echo "scsi add-single-device 1 2 3 4">/proc/scsi/scsi

Where,

  • 1 - HBA number
  • 2 - channel id on the HBA
  • 3 - SCSI ID of the new device
  • 4 - LUN of the new device

You need to replace 1,2,3,4 with actual values or parameters as per above list.

Tweet itFacebook itGoogle+ itPDF itFound an error/typo on this page?

{ 4 comments… add one }

  • Harold Veatch September 4, 2006, 3:13 am

    A cautionary note. I found that using the posted command to bring a Quantum SDLT scsi tape drive on line if it went off line for some reason, would cause it to negotiate at a lower than maximum trasfer speed. I don’t know if this happens with other devices or why it happens. The way I got around it was to reload the driver (asumming a klm).

    av

  • Hector De Jesus October 24, 2006, 7:11 pm

    A better alternative is to use the utility from q-logic “ql-dynamic-tgt-lun-disc-1.8.tgz”

  • Davinder November 21, 2009, 1:32 am

    * 1 – HBA number
    * 2 – channel id on the HBA
    * 3 – SCSI ID of the new device
    * 4 – LUN of the new device

    how we will get these information from system. pls give more clarity on this part.

  • Nick Stoianov December 1, 2009, 6:10 am

    You can try the script I wrote below:

    #!/usr/bin/perl

    #####################################################################
    #
    # Quick Perl Script to scan for Fiber LUNs without restarting Linux
    #
    #####################################################################

    opendir(NS, “/sys/class/scsi_host”);
    @ns=readdir(NS);
    closedir(NS);
    shift @ns;
    shift @ns;
    foreach $ns(@ns) {
    open(DAT,”>/sys/class/scsi_host/$ns/scan”) || die(“Cannot Open File”);
    print DAT “- – -“;
    close(DAT);
    }

    exit;

Leave a Comment