Setting up DM-Multipath Overview

This section provides step-by-step example procedures for configuring DM-Multipath. It includes the following procedures:

  • Basic DM-Multipath setup

  • Ignoring local disks

  • Adding more devices to the configuration file

Setting Up DM-Multipath

Before setting up DM-Multipath on your system, ensure that your system has been updated and includes the multipath-tools package. If boot from SAN is desired, then the multipath-tools-boot package is also required.

A basic /etc/multipath.conf need not even exist, when multpath is run without an accompanying /etc/multipath.conf, it draws from it's internal database to find a suitable configuration, it also draws from it's internal blacklist. If after running multipath -ll without a config file, no multipaths are discovered. One must proceed to increase the verbosity to discover why a multipath was not created. Consider referencing the SAN vendor's documentation, the multipath example config files found in /usr/share/doc/multipath-tools/examples, and the live multipathd database:

# echo 'show config' | multipathd -k > multipath.conf-live

To work around a quirk in multipathd, when an /etc/multipath.conf doesn't exist, the previous command will return nothing, as it is the result of a merge between the /etc/multipath.conf and the database in memory. To remedy this, either define an empty /etc/multipath.conf, by using touch, or create one that redefines a default value like:

defaults {
        user_friendly_names no
}
and restart multipathd:
# systemctl restart multipath-tools.service
Now the "show config" command will return the live database.

Installing with Multipath Support

To enable multipath support during installation use

install disk-detect/multipath/enable=true
at the installer prompt. If multipath devices are found these will show up as /dev/mapper/mpath<X> during installation.

Ignoring Local Disks When Generating Multipath Devices

Some machines have local SCSI cards for their internal disks. DM-Multipath is not recommended for these devices. The following procedure shows how to modify the multipath configuration file to ignore the local disks when configuring multipath.

  1. Determine which disks are the internal disks and mark them as the ones to blacklist. In this example, /dev/sda is the internal disk. Note that as originally configured in the default multipath configuration file, executing the multipath -v2 shows the local disk, /dev/sda, in the multipath map. For further information on the multipath command output, see Section Multipath Command Output.

    # multipath -v2
    create: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1 undef WINSYS,SF2372
    size=33 GB features="0" hwhandler="0" wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 0:0:0:0 sda 8:0  [--------- 
    
    device-mapper ioctl cmd 9 failed: Invalid argument
    device-mapper ioctl cmd 14 failed: No such device or address
    create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:0 sdb 8:16  undef ready  running
        `- 3:0:0:0 sdf 8:80 undef ready  running
    
    create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:1 sdc 8:32 undef ready  running
        `- 3:0:0:1 sdg 8:96 undef ready  running
    
    create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:2 sdd 8:48 undef ready  running
        `- 3:0:0:2 sdg 8:112 undef ready  running
    
    create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:3 sdd 8:64 undef ready  running
        `- 3:0:0:3 sdg 8:128 undef ready  running
    
  2. In order to prevent the device mapper from mapping /dev/sda in its multipath maps, edit the blacklist section of the /etc/multipath.conf file to include this device. Although you could blacklist the sda device using a devnode type, that would not be safe procedure since /dev/sda is not guaranteed to be the same on reboot. To blacklist individual devices, you can blacklist using the WWID of that device. Note that in the output to the multipath -v2 command, the WWID of the /dev/sda device is SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1. To blacklist this device, include the following in the /etc/multipath.conf file.

    blacklist {
          wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
    }
    
  3. After you have updated the /etc/multipath.conf file, you must manually tell the multipathd daemon to reload the file. The following command reloads the updated /etc/multipath.conf file.

    # systemctl reload multipath-tools.service
  4. Run the following command to remove the multipath device:

    # multipath -f SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
    
  5. To check whether the device removal worked, you can run the multipath -ll command to display the current multipath configuration. For information on the multipath -ll command, see Section Multipath Queries with multipath Command. To check that the blacklisted device was not added back, you can run the multipath command, as in the following example. The multipath command defaults to a verbosity level of v2 if you do not specify a -v option.

    # multipath
    
    create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:0 sdb 8:16  undef ready  running
        `- 3:0:0:0 sdf 8:80 undef ready  running
    
    create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:1 sdc 8:32 undef ready  running
        `- 3:0:0:1 sdg 8:96 undef ready  running
    
    create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:2 sdd 8:48 undef ready  running
        `- 3:0:0:2 sdg 8:112 undef ready  running
    
    create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372
    size=12G features='0' hwhandler='0' wp=undef
    `-+- policy='round-robin 0' prio=1 status=undef
      |- 2:0:0:3 sdd 8:64 undef ready  running
        `- 3:0:0:3 sdg 8:128 undef ready  running
    

Configuring Storage Devices

By default, DM-Multipath includes support for the most common storage arrays that support DM-Multipath. The default configuration values, including supported devices, can be found in the multipath.conf.defaults file.

If you need to add a storage device that is not supported by default as a known multipath device, edit the /etc/multipath.conf file and insert the appropriate device information.

For example, to add information about the HP Open-V series the entry looks like this, where %n is the device name:

devices {
     device {
            vendor "HP"
            product "OPEN-V."
            getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
     }
}

For more information on the devices section of the configuration file, see Section Configuration File Devices.