Linux multipath-tools with Sun StorageTek 6540

Table of Contents
Running Linux systems on a Sun StorageTek 6540 is not that easy. Sun has RDAC drivers for Redhat and Suse, but I have not found a working configuration for the multipath tools anywhere.
The 6540 storage looks very much like the successor to the StorageTek FlexLine FLX380. Under the bonnet is probably the LSI/Engenio 6998 system (also available from IBM as DS4800, for example).
Hardware #
- Sun StorageTek 6540 (Engenio/LSI)
- Sun Fire X4150 mit 32 GByte RAM und 2xQuadCore Xeon E5440
- 2x Sun/Qlogic 2460 4 GBit HBAs
Software #
- Ubuntu LTS 8.04.1 AMD64
- multipath-tools 0.4.8
Multipath-tools #
You will need multipath-tools version 0.4.8, as this contains the path checker rdac (mpath_prio_rdac) (formerly mpath_prio_tur). The storage itself reports as “STK FLEXLINE 380”.
Configuration Example /etc/multipath.conf #
defaults {
multipath_tool "/sbin/multipath -v0"
udev_dir /dev
polling_interval 5
default_selector "round-robin 0"
default_path_grouping_policy failover
default_features "1 queue_if_no_path"
default_getuid_callout "/lib/udev/scsi_id -g -u -s /block/%n"
rr_weight priorities
failback immediate
}
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z][[0-9]*]"
devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
devnode "^sda" # local disk
}
multipaths {
multipath {
alias stk-test-lun
wwid 3600a0b80004725e800000570xxxxxxxxx
path_selector "round-robin 0"
failback immediate
}
}
devices {
device {
vendor "STK"
product "FLEXLINE 380"
product_blacklist "Universal Xport"
path_grouping_policy group_by_prio
prio_callout "/sbin/mpath_prio_rdac /dev/%n"
path_checker rdac
hardware_handler "1 rdac"
}
}
Test #
Since the server has 2 single-port HBAs and is also connected to 2 FC switches on the storage, there are four paths, 2 via HBA-A (sdc/sdt) and 2 HBA-B (sdbs/sdcj). ##
$ multipath -ll
stk-test-lun (3600a0b80004725e800000570xxxxxxxxx) dm-1 STK ,FLEXLINE 380
[size=200G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=6][active]
\_ 1:0:0:1 sdc 8:32 [active][ready]
\_ 1:0:1:1 sdt 65:48 [active][ready]
\_ round-robin 0 [prio=0][enabled]
\_ 2:0:0:1 sdbs 68:96 [active][ghost]
\_ 2:0:1:1 sdcj 69:112 [active][ghost]
When booting, 10-15 minutes are lost just for the searching the harddisks. The more paths and LUNs, the longer…