Linux DM Multipath


Device Mapper Multipath Input Output often shortend to DM-Multipathing and abbreviated as DM-MPIO provides input-output fail-over and load-balancing by using multipath I/O within Linux for block devices. 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. 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 and iSCSI SAN environments.
DM-MPIO is based on the device mapper, which provides the basic framework that maps one block device onto another.

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

Components

DM-MPIO in Linux consists of kernel components and user-space components.
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 afterwards will require multipath to be executed again.
The multipath.conf has five sections:
  1. System level defaults : User can override system level defaults.
  2. Blacklisted devices : User specifies the list of devices that is not to be under the control of DM-MPIO.
  3. Blacklist exceptions : Specific devices to be treated as multipath devices even if listed in the blacklist.
  4. Storage controller specific settings : User specified configuration settings will be applied to devices with specified "Vendor" and "Product" information.
  5. Device specific settings : Fine tune the configuration settings for individual LUNs.

    Terminology