Chapter 3. Configuring DM Multipath

You can set up DM Multipath with the mpathconf utility. This utility creates or edits the /etc/multipath.conf multipath configuration file based on the following scenarios:

  • If the /etc/multipath.conf file already exists, the mpathconf utility will edit it.
  • If the /etc/multipath.conf file does not exist, the mpathconf utility will create the /etc/multipath.conf file from scratch.

3.1. Checking for the device-mapper-multipath package

Before setting up DM Multipath on your system, ensure that your system is up-to-date and includes the device-mapper-multipath package.

Procedure

  1. Check if your system includes the device-mapper-multipath package:

    # rpm -q device-mapper-multipath
    device-mapper-multipath-current-package-version

    If your system does not include the package, it prints the following:

    package device-mapper-multipath is not installed
  2. If your system does not include the package, install it by running the following command:

    # dnf install device-mapper-multipath

3.2. Setting up basic failover configuration with DM Multipath

You can set up DM Multipath for a basic failover configuration and edit the /etc/multipath.conf file before starting the multipathd daemon.

Prerequisites

  • Administrative access.

Procedure

  1. Enable and initialize the multipath configuration file:

    # mpathconf --enable
  2. Optional: Edit the /etc/multipath.conf file.

    Most default settings are already configured, including path_grouping_policy which is set to failover.

  3. Optional: The default naming format of multipath devices is set to /dev/mapper/mpathn format. If you prefer a different naming format:

    1. Configure DM Multipath to use the multipath device WWID as its name, instead of the mpath_n_ user-friendly naming scheme:

      # mpathconf --enable --user_friendly_names n
    2. Reload the configuration of the DM Multipath daemon:

      # systemctl reload multipathd.service
  4. Start the DM Multipath daemon:

    # systemctl start multipathd.service

Verification

  • Confirm that the DM Multipath daemon is running without issues:

    # systemctl status multipathd.service
  • Verify the naming format of multipath devices:

    # ls /dev/mapper/

3.3. Ignoring local disks when generating multipath devices

Some machines have local SCSI cards for their internal disks and DM Multipath is not recommended for these devices. If you set the find_multipaths configuration parameter to yes, you do not have to disable multipathing on these devices.

If you do not set the find_multipaths configuration parameter to yes, you can use the following procedure to modify the DM Multipath configuration file to ignore the local disks when configuring multipath.

Procedure

  1. Identify the internal disk using any known parameters such as the device’s model, path or vendor, and determine its WWID by using any one of the following options:

    • Display existing multipath devices:

      # multipath -v2 -l
      
      mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS
      size=33 GB features="0" hwhandler="0" wp=rw
      `-+- policy='round-robin 0' prio=0 status=active
        |- 0:0:0:0 sda 8:0 active undef running
    • Display additional multipath devices that DM Multipath could create:

      # multipath -v2 -d
      
      : mpatha (WDC_WD800JD-75MSA3_WD-WMAM9FU71040) dm-2 ATA,WDC WD800JD-75MS
      size=33 GB features="0" hwhandler="0" wp=undef
      `-+- policy='round-robin 0' prio=1 status=undef
        |- 0:0:0:0 sda 8:0  undef ready running
    • Display device information:

      # multipathd show paths raw format "%d %w" | grep sda
      sda WDC_WD800JD-75MSA3_WD-WMAM9FU71040

      In this example, /dev/sda is the internal disk and its WWID is WDC_WD800JD-75MSA3_WD-WMAM9FU71040.

  2. Edit the blacklist section of the /etc/multipath.conf file to ignore this device, using its WWID attribute:

    blacklist {
          wwid WDC_WD800JD-75MSA3_WD-WMAM9FU71040
    }
    Warning

    Although you could identify the device using its devnode parameter, such as sda, it would not be a safe procedure, because /dev/sda is not guaranteed to refer to the same device on reboot.

  3. Check for any configuration errors in the /etc/multipath.conf file:

    # multipath -t > /dev/null

    To see the full report, do not discard the command output:

    # multipath -t
  4. If the disk is included in initramfs remake the initramfs. For more information see Configuring multipathing in initramfs.
  5. Reload the /etc/multipath.conf file by reconfiguring the multipathd daemon:

    # systemctl reload multipathd
Note

Multipath devices on top of local disks cannot be removed when in use. To ignore such device, stop all users of the device. For example, by unmounting any filesystem on top of it and deactivating any logical volumes using it. If this is not possible, you can reboot the system to remove the multipath device.

Verification

  1. Verify that the internal disk is ignored and it is not displayed in the multipath output:

    • List the multipathed devices:

      # multipath -v2 -l
    • List the additional devices that DM Multipath could create:

      # multipath -v2 -d

Additional resources

  • multipath.conf(5) man page

3.4. Configuring additional storage with DM Multipath

By default, DM Multipath includes built-in configurations for the most common storage arrays, which support DM Multipath. If your storage array does not already have a configuration, you can add one by editting the /etc/multipath.conf file.

NOTE
Add additional storage devices during the initial configuration to align the setup with your anticipated needs. DM Multipath enables adding devices later for scalability or upgrades, but this approach may require adjusting configurations to ensuring compatibility.

Prerequisites

  • Administrative access.

Procedure

  1. View the default configuration value and supported devices:

    # multipathd show config
  2. Edit the /etc/multipath.conf file to set up your multipath configuration.

    Example 3.1. DM Multipath Configuration for HP OPEN-V Storage Device

    # Set default configurations for all devices managed by DM Multipath
    
    defaults {
        # Enable user-friendly names for devices
        user_friendly_names yes
    }
    
    devices {
        # Define configuration for HP OPEN-V storage
        device {
            vendor "HP"
            pproduct "OPEN-V"
            no_path_retry 18
        }
    }
  3. Save your changes and close the editor.
  4. Update the multipath device list by scanning for new devices:

    # multipath -r

Verification

  • Confirm that the multipath devices are recognized correctly:

    # multipath -ll

3.5. Configuring multipathing in initramfs

Setting up multipathing in the initramfs file system is essential for seamless storage functionality, particularly in scenarios requiring redundancy and load balancing. This setup guarantees that multipath devices are available early in the boot process, which is crucial for maintaining the integrity of the storage setup and preventing potential issues.

Prerequisites

  • Administrative access.
  • Configured DM multipath on your system.

Procedure

  1. Rebuild the initramfs file system with the multipath configuration files:

    # dracut --force --add multipath
    NOTE
    When using multipath in the initramfs and modifying its configuration files, remember to rebuild the initramfs for the changes to tale effect. If your root device employs multipath, the dracut command will automatically include the multipath module in the initramfs.
  2. Optional: If multipath in the initramfs is no longer necessary:

    1. Remove the multipath configuration file:

      # rm /etc/dracut.conf.d/multipath.conf
    2. Rebuild the initramfs with the added multipath configuration:

      # dracut --force --omit multipath

Verification

  • Check if multipath-related files and configurations are present:

    # lsinitrd /path/to/initramfs.img -m | grep multipath
    NOTE
    While verefication steps provided can give you an indication of success, a final test boot-up is recommended to ensure that the configuration works as expected.
  • After the reboot, confirm that the multipath devices are recognized correctly:

    # multipath -ll