Configuration

The main configuration file is
/etc/multipath.conf
. The following configuration file is for use with a Hitachi SAN. It uses a custom priority callout binary (see below).
defaults {
        polling_interval 120
        udev_dir /dev
        default_path_grouping_policy failover
        rr_weight priorities
        failback immediate
        }

blacklist {
        devnode cciss
        devnode fd
        devnode hd
        devnode md
        devnode sr
        devnode scd
        devnode st
        devnode ram
        devnode raw
        devnode loop
        devnode sda # internal disk
}

devices {
        device {
                vendor                  "HITACHI"
                product                 "DF600F"
                path_grouping_policy    group_by_prio
                prio_callout            "/sbin/pp_hds_modular %d"
                path_checker            readsector0
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        }
        device {
                vendor                  "HITACHI"
                product                 "DF600F-CM"
                path_grouping_policy    group_by_prio
                prio_callout            "/sbin/pp_hds_modular %d"
                path_checker            readsector0
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        }
        device {
                vendor                  "HITACHI"
                product                 "OPEN-V"
                path_grouping_policy    multibus
                path_checker            readsector0
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        }
        device {
                vendor                  "HITACHI"
                product                 "OPEN-V-CM"
                path_grouping_policy    multibus
                path_checker            readsector0
                getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
        }
}

Note: We have reduced the rather high polling_interval from 120 seconds to 5 seconds.

Note: devnode_blacklist changed to blacklist in 0.4.7.

Hitachi priority-callout

Along with the configuration we got the source code of the referenced priority-callout /sbin/pp_hds_modular from Hitachi. We first had to compile and install the binary for our platform.
gcc pp_hds_modular.c -o pp_hds_modular

Configure initscripts

boot.multipath

On Novell SuSE, add /etc/init.d/boot.multipath to the default runlevel by issuing:
chkconfig -a boot.multipath
/etc/init.d/boot.multipath calls a
sleep 1
after starting multipathing. This might not be enough when you have boot.lvm called directly after it (which is the default when using both multipath and LVM). There is a delay until the devices are visible. The delay is caused by subfs. You can either replace the sleep 1 with sleep 15, or disable subfs altogether in
/etc/sysconfig/hotplug
## Type:           yesno
## Default:        no
#
# enable subfs mounts of hotpluged devices
#
-HOTPLUG_USE_SUBFS=yes
+HOTPLUG_USE_SUBFS=no

multipathd

On Novell SuSE, add /etc/init.d/multipathd to the default runlevel by issuing:
chkconfig -a multipathd