Linux DM Multipath

Last updated
Linux DM Multipath
Initial release17 June 2005;18 years ago (2005-06-17) Linux Kernel 2.6.12
Repository https://git.opensvc.com/gitweb.cgi?p=multipath-tools%2F.git;a=log
Written inC
Operating system Linux

Device Mapper Multipath Input Output often shortened to DM-Multipathing and abbreviated as DM-MPIO 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

Related Research Articles

<span class="mw-page-title-main">Device driver</span> Computer program that operates or controls a device that is attached to a computer

In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used.

XFS is a high-performance 64-bit journaling file system created by Silicon Graphics, Inc (SGI) in 1993. It was the default file system in SGI's IRIX operating system starting with its version 5.3. XFS was ported to the Linux kernel in 2001; as of June 2014, XFS is supported by most Linux distributions; Red Hat Enterprise Linux uses it as its default file system.

<span class="mw-page-title-main">Security-Enhanced Linux</span> Linux kernel security module

Security-Enhanced Linux (SELinux) is a Linux kernel security module that provides a mechanism for supporting access control security policies, including mandatory access controls (MAC).

In computing, the Global File System 2 or GFS2 is a shared-disk file system for Linux computer clusters. GFS2 allows all members of a cluster to have direct concurrent access to the same shared block storage, in contrast to distributed file systems which distribute data throughout the cluster. GFS2 can also be used as a local file system on a single computer.

<span class="mw-page-title-main">Multipath I/O</span>

In computer storage, multipath I/O is a fault-tolerance and performance-enhancement technique that defines more than one physical path between the CPU in a computer system and its mass-storage devices through the buses, controllers, switches, and bridge devices connecting them.

In Linux, Logical Volume Manager (LVM) is a device mapper framework that provides logical volume management for the Linux kernel. Most modern Linux distributions are LVM-aware to the point of being able to have their root file systems on a logical volume.

Veritas Storage Foundation (VSF), previously known as Veritas Foundation Suite, is a computer software product made by Veritas Software that combines Veritas Volume Manager (VxVM) and Veritas File System (VxFS) to provide online-storage management. Symantec Corporation developed and maintained VSF until January 29, 2016, at which point Veritas and Symantec separated. The latest product version, 7.0, was re-branded as "Veritas InfoScale 7.0".

The device mapper is a framework provided by the Linux kernel for mapping physical block devices onto higher-level virtual block devices. It forms the foundation of the logical volume manager (LVM), software RAIDs and dm-crypt disk encryption, and offers additional features such as file system snapshots.

<span class="mw-page-title-main">NetworkManager</span> Software

NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.

Solaris Multiplexed I/O (MPxIO), known also as Sun StorageTek Traffic Manager, is multipath I/O software for Solaris/illumos. It enables a storage device to be accessed through multiple host controller interfaces from a single operating system instance. The MPxIO architecture helps protect against I/O outages due to I/O controller failures. Should one I/O controller fail, MPxIO automatically switches to an alternate controller.

Enterprise Volume Management System (EVMS) was a flexible, integrated volume management software used to manage storage systems under Linux.

mdadm is a Linux utility used to manage and monitor software RAID devices. It is used in modern Linux distributions in place of older software RAID utilities such as raidtools2 or raidtools.

The multi-stage booting process of Linux is in many ways similar to the BSD and other Unix-style boot processes, from which it derives.

Btrfs is a computer storage format that combines a file system based on the copy-on-write (COW) principle with a logical volume manager, developed together. It was founded by Chris Mason in 2007 for use in Linux, and since November 2013, the file system's on-disk format has been declared stable in the Linux kernel.

<span class="mw-page-title-main">Noop scheduler</span> Simple I/O scheduler for the Linux kernel

The NOOP scheduler is the simplest I/O scheduler for the Linux kernel. This scheduler was developed by Jens Axboe.

Ceph is a free and open-source software-defined storage platform that provides object storage, block storage, and file storage built on a common distributed cluster foundation. Ceph provides completely distributed operation without a single point of failure and scalability to the exabyte level, and is freely available. Since version 12 (Luminous), Ceph does not rely on any other, conventional filesystem and directly manages HDDs and SSDs with its own storage backend BlueStore and can expose a POSIX filesystem.

Adaptable Modular Storage 2000 is the brand name of Hitachi Data Systems mid-range storage platforms.

<span class="mw-page-title-main">LIO (SCSI target)</span> Open-source version of SCSI target

In computing, Linux-IO (LIO) Target is an open-source implementation of the SCSI target that has become the standard one included in the Linux kernel. Internally, LIO does not initiate sessions, but instead provides one or more Logical Unit Numbers (LUNs), waits for SCSI commands from a SCSI initiator, and performs required input/output data transfers. LIO supports common storage fabrics, including FCoE, Fibre Channel, IEEE 1394, iSCSI, iSCSI Extensions for RDMA (iSER), SCSI RDMA Protocol (SRP) and USB. It is included in most Linux distributions; native support for LIO in QEMU/KVM, libvirt, and OpenStack makes LIO also a storage option for cloud deployments.

Dracut is a set of tools that provide enhanced functionality for automating the Linux boot process. The tool named dracut is used to create a Linux boot image (initramfs) by copying tools and files from an installed system and combining it with the Dracut framework, which is usually found in /usr/lib/dracut/modules.d.

Stratis is a user-space configuration daemon that configures and monitors existing components from Linux's underlying storage components of logical volume management (LVM) and XFS filesystem via D-Bus.

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