Wanna see this logo while booting your 2.6 kernel? Click here!

22.12.2004 11:44

QLA2300 FC HBA Driver and Linux Kernel 2.6.9


Yesterday, I tried to upgrade one of my servers from Linux Kernel 2.4.26 to Kernel 2.6.9. The server has two Qlogic QLA2310F FC HBA PCI adapters [EN] plugged in that are connected to two EMC CLARiiON CX600 [EN] SANs.
One has two opportunities to manage the appropriated LUNs:
  • Establish a software raid to mirror the duplicated LUNs manually
  • Let the FC HBAs manage failover situations and MPIO (multipath I/O)

Of course, using the second way is much more beautiful but that requires specific driver support for MPIO. With 2.4.26, there's no Qlogic FC support at all shipped with the kernel. So I had to use the qlogic driver that is certified for use with EMC SANs. 2.6.9 has qlogic support builtin, but since 2.6.1, the MPIO and Failover support was silently removed and also other changes have been made to this driver, concerning timeouts etc.

Rebooting the machine lead up to having no disks at all. Building the qla2xxx driver as kernel module resolved that problem if you're willing to load the module two times. With the new driver, it takes longer to set up the FC loop and therefore the initalization of the HBAs fail. Reloading the driver fixes the problem. But then I ran into the next problem. The FC Adapters showed me all LUNs associated to my WWNs instead of displaying only half the devices (you know, MPIO). So I googled quite a while to find out, that the MPIO support has been removed. On the Qlogic website I mentioned above are also not supported drivers available for download, e.g. from IBM, Hitachi, EMC,... I gave the IBM driver a try (v8.00.00 [TGZ]), because it has support for driver-side MPIO. Extracting the tar.gz-ball and replacing the qla2xxx Directory in my kernel source tree ended up in many compiler-errors. Naivley as I am, I tried to fix the errors with the help of $MY_FAVOURITE_VIM^H^H^HEDITOR. That seemed to work, but then other compiler- errors showed up and so I stopped coding due to lack of time.

So what to do now? Numerous of incomplete non-working drivers on my hard disk and also numerous of users who wanted to continue working...
Being in total forlornness, I ftp'ed to download.qlogic.com and tried a recursive file search (ls */*qla2xxx*) that finally saved my day (or night, whatever...). In a directory not accessible from the webpage I found the 8.00.01 version [TGZ] of the driver which worked flawlessly, even with MPIO.

tuxx@vi-edv003:~$ ftp download.qlogic.com
[...]
ftp> cd drivers
250 CWD command successful.
ftp> ls */*qla2xxx*
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
-rwxrwxrwx   1 webmaster cod       1016041 Nov 11 23:51 24092/qla2xxx-v8.00.00-dist.tgz
-rwxrwxrwx   1 webmaster cod       1016041 Nov 12 22:30 24132/qla2xxx-v8.00.00-dist.tgz
-rwxrwxrwx   1 webmaster cod       1016041 Dec 13 22:19 24911/qla2xxx-v8.00.00-dist.tgz
-rwxrwxrwx   1 webmaster cod       1057279 Dec 14 19:23 24998/qla2xxx-v8.00.01-dist.tgz
-rwxrwxrwx   1 webmaster cod       1057279 Dec 14 19:28 25000/qla2xxx-v8.00.01-dist.tgz
226 Transfer complete.
ftp>


If for any reason this driver will be removed from their site and you - the reader - are not able to find it anymore, I'll keep it in cool place ;)