[CentOS] Automatically detecting LUNs without a reboot

Tue Aug 31 15:48:01 UTC 2010
Gabriel Tabares <gabriel.tabares at roboreus.com>

  On 31/08/2010 11:20, Alexander Dalloz wrote:
>>    Hi everybody.
>>
>> I have an HP StorageWorks array connected to one of my servers,
>> connected via an LSI controller (lspci reports: SCSI storage controller:
>> LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS (rev 08))
>> on an HP DL385 running CentOS 5.5 x86_64.
>>
>> I have set up multipath and all is working but, when I create a snaphost
>> and export it as a new LUN from the HP web interface, it does not appear
>> as  a new disk. If I reboot, I get the LUN to appear as a new SCSI
>> device (sd[a-z]).
>>
>> Is there any way I can force automatic detection? One of the reasons to
>> use snapshots is to be able to back up the system without downtime, so
>> not being able to detect the LUNs makes the whole set up a bit pointless.
>>
>> I have tried kudzu, the rescan-scsi-bus.sh script and everything else I
>> have found online, with no luck. The LSI tools only seem to be available
>> for i386, and I would like to avoid adding the 32bit environment, if I
>> can.
>>
>> Any help would be greatly appreciated.
>>
>> Thanks,
>>
>> Gabriel Tabares
> rescan-scsi-bus.sh from sg3-utils should work.
>
I am afraid that it doesn't:

[root at db02 ~]# cat /proc/partitions
major minor  #blocks  name

  104     0  292935982 cciss/c0d0
  104     1  265217053 cciss/c0d0p1
  104     2    2988090 cciss/c0d0p2
    8     0  683593744 sda
    8     1  683589816 sda1
    8    16  683593744 sdb
    8    17  683589816 sdb1
    8    32  683593744 sdc
    8    33  683589816 sdc1
[root at db02 ~]# rescan-scsi-bus.sh
Host adapter 0 (mptsas) found.
Scanning SCSI subsystem for new devices
Scanning host 0 for  SCSI target IDs  0 1 2 3 4 5 6 7, all LUNs
Scanning for device 0 0 0 0 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 00
       Vendor: HP       Model: MSA2312sa        Rev: M110
       Type:   Enclosure                        ANSI SCSI revision: 05
Scanning for device 0 0 0 1 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 01
       Vendor: HP       Model: MSA2312sa        Rev: M110
       Type:   Direct-Access                    ANSI SCSI revision: 05
Scanning for device 0 0 0 2 ...
OLD: Host: scsi0 Channel: 00 Id: 00 Lun: 02
       Vendor: HP       Model: MSA2312sa        Rev: M110
       Type:   Direct-Access                    ANSI SCSI revision: 05
Scanning for device 0 0 1 0 ...
OLD: Host: scsi0 Channel: 00 Id: 01 Lun: 00
       Vendor: HP       Model: MSA2312sa        Rev: M110
       Type:   Enclosure                        ANSI SCSI revision: 05
Scanning for device 0 0 1 1 ...
OLD: Host: scsi0 Channel: 00 Id: 01 Lun: 01
       Vendor: HP       Model: MSA2312sa        Rev: M110
       Type:   Direct-Access                    ANSI SCSI revision: 05
0 new device(s) found.
0 device(s) removed.
[root at db02 ~]# cat /proc/partitions
major minor  #blocks  name

  104     0  292935982 cciss/c0d0
  104     1  265217053 cciss/c0d0p1
  104     2    2988090 cciss/c0d0p2
    8     0  683593744 sda
    8     1  683589816 sda1
    8    16  683593744 sdb
    8    17  683589816 sdb1
    8    32  683593744 sdc
    8    33  683589816 sdc1


> Please see
> http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/html/Online_Storage_Reconfiguration_Guide/scanning_for_new_devices.html.
>
Tried that (it lists the same command that Andreas mentioned), no luck. 
We're not using FC, so the second part doesn't work.

 From there, I went to
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/html/Online_Storage_Reconfiguration_Guide/rescan-scsi-bus.html

Where it says :

"In order for |rescan-scsi-bus.sh| to work properly, |LUN0| must be the 
first mapped logical unit. The |rescan-scsi-bus.sh| can only detect the 
first mapped logical unit if it is |LUN0|. The |rescan-scsi-bus.sh| will 
not be able to scan any other logical unit unless it detects the first 
mapped logical unit even if you use the |--nooptscan| option. "

So I went to the array interface, deleted the volumes and tried 
re-creating a new volume with a LUN ID of 0, and I get the following error:
"Unable to create volume vd01_v001.
LUN zero is reserved as the SCC/SES device on this host. (vd01_v001) - 
The LUN specified (0) must be in the range of 1 - 511."

I can't create a LUN with ID 0, which means that rescan-scsi-bus.sh will 
not work, as per the above text.

Any more suggestions?

Thanks

Gabriel