Mike Anderson and Lars Marowsky-Bree discussed support for multipath I/O in
Linux. Linux has a multipath implementation - in fact, it has several:
- The proprietary Polyserve implementation works at the filesystem
- A few block-level implementations exist, including the MD driver
and a patch to the LVM1 volume manager.
- Upper-level SCSI implementations include T3, which was written
by Linuxcare and which has since gone unmaintained.
- The MPIO SCSI patch works, instead, at the SCSI mid-layer.
- The QLogic driver finishes things out by working at the bottom
The only problem with these solutions is that "all of them are wrong."
They are proprietary, or they are vendor-specific, or they require the use
of on-disk data, or they only support one protocol, or they replicate too
much code. And the various solutions cannot be mixed.
What is needed is a common kernel implementation which is, of course,
free. It should support user-space coalescing of paths. Fast I/O failures
are required (things should not hang for a while), and better error
information needs to be available. The implementation should support load
balancing over the paths, along with strict failover modes. User-space
diagnostics should be supported, along with direct I/O to any particular
There are various issues that need to be resolved, but they can wait a
while. For now, no unified multipath solution which meets the above
to post comments)