this is obsolete doc -- see http://doc.nethence.com/ instead
HBA & multipathing on RHEL
Introduction
The firmware gets updated by the driver or each time the "qla2300" or "qla2400" modules are loaded. Drivers need specific firmware versions. Nevertheless here's QLogic firmware repo : ftp://ftp.qlogic.com/outgoing/linux/firmware/
Note. it's ok to have a more recent BIOS than firmware, but not the contrary.
Driver & Firmware installation
The driver should be included into the RHEL distribution. If not, use constructor's provided one e.g.,
- HP Approved Software : http://driverdownloads.qlogic.com/QLogicDriverDownloads_UI/Product_detail.aspx?oemid=21
- IBM Supported Software : http://driverdownloads.qlogic.com/QLogicDriverDownloads_UI/IBM.aspx?companyid=6
make sure you have the gcc package,
rpm -q gcc
and install the driver,
./INSTALL -h
./INSTALL -f -a
Note. make sure the default binary isn't a link to gcc 2.95 (as it's sometimes the case on Oracle installs),
ll /usr/bin/gcc
or check that the gcc version matches the distribution build,
dmesg | head -1
/usr/bin/gcc --version
Driver, firmware and BIOS versions
To check the driver and firmware versions,
cat /proc/scsi/qla2300/1 | grep Firmware
To check the BIOS version, either note it during machine's boot process, or use SANsurfer.
SANsurfer installation
Install the SANsurfer agent on the server and use the SANsurfer Windows GUI to access it. Note. the default password for SANsurfer is "config".
BIOS update
SANsurfer allows you to update HBA's BIOS, FCode and NVRAM (if you do so, read multi-boot's image release notes).
Failover & multipathing
SANsurfer
SANsurfer also allows you to configure failover and multipathing. It uses that module,
qla2xxx_conf
with that configuration file,
/etc/hba.conf
DS4000
Prerequesties,
yum install kernel-devel kernel-headers gcc
yum update kernel
sync
reboot
and check after boot,
uname -r
ls -l /lib/modules
Install IBM RDAC,
tar xvzf rdac-LINUX-09.03.0C05.0030-source.tar.gz
cd linuxrdac-09.03.0C05.0030
make clean
make
make install
Edit GRUB,
cd /boot/grub
vi menu.lst
add above the other titles (default=0),
title CentOS (2.6.18-164.el5) with MPP support
root (hd0,0)
kernel /vmlinuz-2.6.18-164.el5 ro root=LABEL=/
initrd /mpp-2.6.18-164.el5.img
N.B. change kernel package version accordingly
Reboot and before Redhat starts up, connect the fiber channel cables,
shutdown -r now
once started check everything's fine,
fdisk -l
sfdisk -s
Note. you should see one multipathed disk per LUN, as sdX.
Redhat multipathing
Prerequesties,
rpm -q device-mapper-multipath
Configure,
cd /etc
mv multipath.conf multipath.conf.dist
sed '/^#/d; /^$/d' multipath.conf.dist > multipath.conf
vi multipath.conf
change to blacklist local harddrive only,
blacklist {
devnode "sda"
}
enable,
service multipathd start
chkconfig multipathd on
check everything's fine,
fdisk -l
sfdisk -s
Note. SLES names it "multipath-tools"
Note. the old method was to use an "md" raid device on both pathes, treating one path as spare,
#mdadm --create -f -lmp -n2 -x1 /dev/md0 /dev/<channela> /dev/<channelb>
DM Multipath : http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/en-US/RHEL510/DM_Multipath/index.html
Note. make sure write cach mirroring is enabled (http://marc.info/?l=linux-lvm&m=108690553031551&w=2).
EMC
Use PowerPath. Also install "navihostagent" and "navicli".
IBM ESS, DS600, DS9000
Use "sdd" for failover and load balancing.
References
Welcome to SPOCK : http://h20272.www2.hp.com/
BIOS : http://en.wikipedia.org/wiki/BIOS
Extensible Firmware Interface : http://en.wikipedia.org/wiki/Extensible_Firmware_Interface
FCode : http://en.wikipedia.org/wiki/Open_Firmware#Advantages
NVRAM : http://en.wikipedia.org/wiki/NVRAM
Firmware : http://en.wikipedia.org/wiki/Firmware
Multipathing with Qlogic HBAs - failover and LUN load balancing : https://twiki.cern.ch/twiki/bin/view/PSSGroup/Multipathing
Device-mapper Resource Page : http://sources.redhat.com/dm/
LVM2 Resource Page : http://sources.redhat.com/lvm2/
[linux-lvm] LVM - Multipath / Failover : http://www.redhat.com/archives/linux-lvm/2003-September/thread.html#00160
[linux-lvm] Multipath without round-robin? : http://www.redhat.com/archives/linux-lvm/2004-June/thread.html#00053
How do I modify my modules.conf file so my external fiber channel disks stop showing up as /dev/sda and my internal drives as /dev/sdb? : http://kbase.redhat.com/faq/docs/DOC-8079
How do I modify the /etc/modules.conf file? : http://kbase.redhat.com/faq/docs/DOC-6919
How to setup / use multipathing on SLES : http://support.novell.com/techcenter/sdb/en/2005/04/sles_multipathing.html
[suse-oracle] qla2xxx failover : http://lists.suse.com/archive/suse-oracle/2005-Apr/index.html#138