LWN.net Logo

2003 Kernel Summit: Multipath I/O

This article is part of LWN's 2003 Kernel Developers' Summit coverage.
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 level.

  • 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 SCSI level.

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 path.

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 criteria exists.


(Log in to post comments)

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds