Previously we ran Linux on HP servers with HP OEM’ed QLogic HBA’s. One nice thing about that was that the HP driver pack containted a couple of nice support scripts (namely hp_rescan) – We used the HP drivers because the driver in the kernel (earlier on at least) did not support multi-pathing.
When we started using IBM xSeries servers we had the following configurations:
The problem with all configurations is that none of them sported anything like hp_rescan. So I wipped up a small script
#!/bin/bash # $Id: rescan_hba.sh 48 2008-03-11 12:37:48Z ajo $ # This script will rescan all found FC HBAs for (new) LUNs # Beware that it will generate failover events (in multipathd for # instance) if [ -f /usr/sbin/hp_rescan ] then echo "hp_rescan found - use that instead" exit 0 fi for host in $(cd /sys/class/fc_host; ls -d host*) do echo "Rescanning $host" echo 1 > /sys/class/fc_host/$host/issue_lip sleep 5 echo "- - -" > /sys/class/scsi_host/$host/scan done
There may be more elegant ways of doing this and I’m not sure if issue_lip is necessary – but has been tested on quite a few servers including some busy Oracle servers. And even though it can create a lot of SCSI event on the logs it has not failed so far.