Linux – Merit and demerits for various Linux fiberchannel multipath options

fibre-channellinuxmultipath

On our Linux servers, we currently use HPs qla2xxx drivers, because it has multipathing (active/passive) built in.

The are, however, various other options, like Red Hats device-mapper-multipath with the stock qla2xxx drivers (multibus and failover) and things like SecurePath and PowerPath (both of which can do trunking, iirc).

Can someone tell me what the merits and demerits of the various options are (if I can ask such a question), besides the obvious fact that the {Secure,Power}Path options cost vast amounts of money? I'm mainly interested in the freely available options, like HPs qla2xxx vs. Red Hats multipathd and possible other open source solutions, but I would like to hear good reasons to go for the commercial solutions too.

UPDATE: I'll be benchmarking various options the coming few days (the average of 10 runs of iozone for each option (options being native qla2xxx failver, native qla2xxx multibus, HP qla2xxx failover)). I'll post a summary of results here for those interested.

Best Answer

In the past I have used:

  • IBM Subsystem Device Driver (IBM SAN devices)
  • RDAC (IBM DS4000 and Dell MD3000)
  • Device mapper multipath (IBM SAN, DS4000 and Dell MD3000)

I vastly prefer device mapper multipath for its simplicity, tight coupling to the kernel and reliability.

The IBM SDD was originally an AIX driver ported to Linux. It worked well, but to avoid kernel taint required specific Linux kernel revisions, which were often 3-6 months lagged behind the latest and greatest.

I hate RDAC storage and trying to get multipathing software of any kind working with it. If you have RDAC storage, avoid the RDAC drivers and use dm-multipath. It's more reliable in my experience.

For HBA drivers, I typically stick with whatever comes with the Linux kernel, since it also works with dm-multipath. Some of the biggest frustrations in my career have been trying to get the RDAC or SDD drivers working with the HBA drivers. Often there's a mismatch somewhere, and half the LUNs aren't seen, or conflict and you see the same ones twice.