The qla-autoconf script eases the configuration and deployement of your QLogic qla2300 driver. It allows to do pattern based LUN masking, specifying the failover path and making paths/LUNs visible to the system.
By using the features of the QLogic qla2300 driver, you can manually loadbalance LUNs over the different existing paths without having all LUNs multiple times available to the system.

This program totally removes the need for the qlremote and graphical MSJ client and allows to distribute the configuration to different nodes that are using the same SAN storage.

[dag@emyn ~]# qla-autoconf -h
usage: qla-autoconf [-lwir] [-k version] [-n] [-o file] [-s] [-t dir]

  -l, --list          list configuration
  -w, --write         write configuration
  -i, --initrd        write and (re)create initrd, implies -w
  -r, --reload        write and reload modules, implies -w

  -k, --kernel=ver    use specified kernel version
  -n, --numeric       show World Wide Names (WWNs) instead of aliases
  -o, --output=file   specify file to save (default: /etc/qla2300.conf)
  -s, --shorten       use shorten output (driver v7)
  -t, --test=dir      test using proc-files in dir (no qlogic needed)
[dag@emyn ~]# qla-autoconf -l
IBM FAStT Host Bus Adapter 2x00 auto configuration:

  Number of HBAs:           2
  Number of paths per HBA:  8      Firmware:     3.03.01
  Total number of paths:   16      Driver:    7.01.01-fo

Config 2/2 used for node emyn

Adapter 1/2 Node 1 HBA 1:

  Path 1/16:    Device IBM FAStT 600T 5 (lores) port A/2
  ^^^^          Visible (00) with failover priority 0, prefered bitmask: 0000..
  Path 2/16:    Device IBM FAStT 600T 5 (lores) port B/1
                Hidden (80) with failover priority 2, prefered bitmask: aaaa..
  Path 3/16:    Device IBM FAStT 600T 2 (hires) port A/2
  ^^^^          Visible (00) with failover priority 0, prefered bitmask: 0000..
  Path 4/16:    Device IBM FAStT 600T 2 (hires) port B/1
                Hidden (80) with failover priority 2, prefered bitmask: aaaa..
  Path 5/16:    Device IBM FAStT 600T 4 (lores) port A/2
                Hidden (80) with failover priority 0, prefered bitmask: 0000..
  Path 6/16:    Device IBM FAStT 600T 4 (lores) port B/1
                Hidden (80) with failover priority 2, prefered bitmask: aaaa..
  Path 7/16:    Device IBM FAStT 600T 3 (hires) port A/2
                Hidden (80) with failover priority 0, prefered bitmask: 0000..
  Path 8/16:    Device IBM FAStT 600T 3 (hires) port B/1
                Hidden (80) with failover priority 2, prefered bitmask: aaaa..

Adapter 2/2 Node 1 HBA 2:

  Path 9/16:    Device IBM FAStT 600T 5 (lores) port A/1
                Hidden (80) with failover priority 3, prefered bitmask: 5555..
  Path 10/16:   Device IBM FAStT 600T 5 (lores) port B/2
                Hidden (80) with failover priority 1, prefered bitmask: 0000..
  Path 11/16:   Device IBM FAStT 600T 2 (hires) port A/1
                Hidden (80) with failover priority 3, prefered bitmask: 5555..
  Path 12/16:   Device IBM FAStT 600T 2 (hires) port B/2
                Hidden (80) with failover priority 1, prefered bitmask: 0000..
  Path 13/16:   Device IBM FAStT 600T 4 (lores) port A/1
                Hidden (80) with failover priority 3, prefered bitmask: 5555..
  Path 14/16:   Device IBM FAStT 600T 4 (lores) port B/2
  ^^^^          Visible (00) with failover priority 1, prefered bitmask: 0000..
  Path 15/16:   Device IBM FAStT 600T 3 (hires) port A/1
                Hidden (80) with failover priority 3, prefered bitmask: 5555..
  Path 16/16:   Device IBM FAStT 600T 3 (hires) port B/2
  ^^^^          Visible (00) with failover priority 1, prefered bitmask: 0000..
When run as qla-autoconf -r, the following actions are taken: Here are some common issues that people have reported: Although it allows to do everything it was designed for, there are some things I would love to implement if I have the time. The documentation and configuration is done inside the script. Several examples are included in the tarball that allow you to experiment without having a Qlogic device. Inside the script are several examples to show how you can configure it for each of these cases. Here's my current release. Let me know if you made any improvements. A list of links to related materials