Linux DM Multipath

Last updated
Linux DM Multipath
Initial release17 June 2005;20 years ago (2005-06-17) Linux Kernel 2.6.12
Repository github.com/opensvc/multipath-tools
Written inC
Operating system Linux

Device Mapper Multipath Input Output (DM-MPIO) or DM-Multipathing provides input/output (I/O) fail-over and load-balancing by using multipath I/O within Linux for block devices. [1] [2] [3] By utilizing device-mapper, the multipathd daemon provides the host-side logic to use multiple paths of a redundant network to provide continuous availability and higher-bandwidth connectivity between the host server and the block-level device. [4] DM-MPIO handles the rerouting of block I/O to an alternate path in the event of a path failure. DM-MPIO can also balance the I/O load across all of the available paths that are typically utilized in Fibre Channel (FC) and iSCSI SAN environments. [5] DM-MPIO is based on the device mapper, [6] which provides the basic framework that maps one block device onto another.

Contents

Considerations

When utilizing Linux DM-MPIO in a datacenter that has other operating systems and multipath solutions, key components of path management must be considered.

History

DM-MPIO started as a patch set created by Joe Thornber, and was later maintained by Alasdair G Kergon at Red Hat. It was included in mainline Linux with kernel version 2.6.12, which was released on June 17, 2005. [7]

Components

Simple multipath example Multipath simple example1.jpg
Simple multipath example

DM-MPIO in Linux consists of kernel components and user-space components.

Configuration file

The configuration file /etc/multipath.conf makes many of the DM-MPIO features user-configurable. The multipath command and the kernel daemon multipathd use information found in this file. The file is only consulted during the configuration of the multipath devices. Changes must be made prior to running the multipath command. Changes to the file afterward will require multipath to be executed again.

The multipath.conf has five sections: [8]

  1. System level defaults (defaults): User can override system level defaults.
  2. Blacklisted devices (blacklist): User specifies the list of devices that are not to be under the control of DM-MPIO.
  3. Blacklist exceptions (blacklist_exceptions): Specific devices to be treated as multipath devices even if listed in the blacklist.
  4. Storage controller specific settings (devices): User specified configuration settings will be applied to devices with specified "Vendor" and "Product" information.
  5. Device specific settings (multipaths): Fine tune the configuration settings for individual LUNs.

Terminology

Further reading

References

  1. Goggin, Edward; Kergon, Alasdair; Varoqui, Christophe; Olien, David. "Linux Multipathing" (PDF).
  2. Varoqui, Christophe. "The Linux multipath implementation".
  3. Oberg, Michael. "Exploration of Parallel Storage Architectures for a Blue Gene/L on the TeraGrid" (PDF). Archived from the original (PDF) on 2013-12-02. Retrieved 2012-02-13.
  4. van Vugt, Sander (8 March 2010). A Practical Guide to XEN High Availability. Books4Brains. ISBN   9789072389084.
  5. 1 2 3 4 5 SUSE. "Storage Administration Guide, SUSE Linux Enterprise Server 11 SP1" (PDF). SLES11 Documentation, pg. 49.
  6. "Multipath support in the device mapper [LWN.net]".
  7. Linux 2.6.12 kernelnewbies.org
  8. RedHat. "Using Device-Mapper Multipath". Archived from the original on 2011-12-29. Retrieved 2012-01-30.
  9. Gupta, Meeta (2002). Storage Area Network Fundamentals. Indianapolis, IN: Cisco Press. p. 81. ISBN   1-58705-065-X.
  10. Anderson, Michael. "SCSI Mid-Level Multipath" (PDF).
  11. "Storage Administration Guide, SLES11 Documentation" (PDF). SUSE. p. 73.
  12. 1 2 Centos. "Overview of DM-Multipath". Using Device-Mapper Multipath. Archived from the original on 2012-03-05. Retrieved 2012-01-30.