I have a serious problem with a SAN storage array connected to a Linux box through Fibre Channel. Here is the configuration :
- Debian with plain vanilla linux 2.6.27.25
- Fibre controller QLogic 4Gb dual port ( ISP2432 based)
Basically the problem is: how to get this #?@!! FC controller/driver to recognize properly configuration changes (new or removed LUNs) of the storage array?
- when I create a new LUN on my array (typically a snapshot of some existing LUN) and map it to my HBA, I can't get it recognized properly :
rescan-scsi-bus -l -w -r
actually detects something ( a generic /dev/sgXX device) however no block device is created ( /dev/sdXX). same thing when issuing a LIP and rescan manually:
echo 1 > /sys/class/fc_host/host6/issue_lip
echo "- - -" > /sys/class/scsi_host/host6/scan
if I remove an existing LUN, neither issuing LIPs and rescans or rescan-scsi-bus have any effect. The previous devices remain there and of course don't work ( "file -s /dev/sdXX -> I/O error").
- reloading the qla2xxx driver works. However it's completely unworkable in a production environment.
Apparently this is a very common problem with QLogic. Some sort of solution exists that works only when using the QLogic issued driver available only for RedHat and Suse enterprise distros : see this explanation.
Additional info :
Here is the scsi devices before LIP and rescan:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
After a LIP and rescan, I have a new sg device, but no matching drive. If I reload the driver, a drive appear:
# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 6 0 0 0 0 /dev/sdc
/dev/sg4 6 0 0 1 0 /dev/sdd
/dev/sg5 6 0 0 2 3
/dev/sg6 6 0 0 3 3
~# sg_map -x
/dev/sg0 0 0 0 0 0 /dev/sda
/dev/sg1 0 0 1 0 5 /dev/scd0
/dev/sg2 1 0 0 0 0 /dev/sdb
/dev/sg3 8 0 0 0 0 /dev/sdc
/dev/sg4 8 0 0 1 0 /dev/sdd
/dev/sg5 8 0 0 2 0 /dev/sde
/dev/sg6 8 0 0 3 3
Edit: OK, obviously this is a tough nut to crack. I'll ask the LKML and report here.