Install Multipath on Debian Server

Note: 
This installation is tested on Debian 10 (Buster) edition. It might work for other versions of Debian as well.

DMM Setup Overview

DM-Multipath includes compiled-in default settings that are suitable for common multipath configurations. Setting up DM-multipath is often a simple procedure. The basic procedure for configuring your system with DM-Multipath is as follows:

  1. Install the multipath-tools and multipath-tools-boot packages
  2. Copy an existing config file
  3. If necessary, edit the multipath.conf configuration file to modify default values and save the updated file.
  4. Start the multipath daemon

Installation of multipath:

apt update
apt install multipath-tools multipath-tools-boot
systemctl restart multipathd

On CentOS/Redhat distribution, the default configuration path is: 

/etc/multipath.conf

However, for Debian distribution the default multipath configuration path need to be sorted out differently. You actually can find out the default conif file path by applying the following command:

multipath -t

In my case the default multipath configuration file path showed:

/etc/multipath/conf.d

as the directories didn’t exist, so I created the directories as following:

mkdir /etc/multipath/conf.d

Copy the following configuration file:

nano /etc/multipath/conf.d/multipath.conf
# This is a basic configuration file with some examples, for device mapper
# multipath.
#
# For a complete list of the default configuration values, run either
# multipath -t
# or
# multipathd show config
#
# For a list of configuration options with descriptions, see the multipath.conf
# man page

## By default, devices with vendor = "IBM" and product = "S/390.*" are
## blacklisted. To enable mulitpathing on these devies, uncomment the
## following lines.
#blacklist_exceptions {
# device {
# vendor "IBM"
# product "S/390.*"
# }
#}

## Use user friendly names, instead of using WWIDs as names.
defaults {
user_friendly_names yes
find_multipaths yes
}
##
## Here is an example of how to configure some standard options.
##
#
#defaults {
# polling_interval 10
# path_selector "round-robin 0"
# path_grouping_policy multibus
# uid_attribute ID_SERIAL
# prio alua
# path_checker readsector0
# rr_min_io 100
# max_fds 8192
# rr_weight priorities
# failback immediate
# no_path_retry fail
# user_friendly_names yes
#}
##
## The wwid line in the following blacklist section is shown as an example
## of how to blacklist devices by wwid. The 2 devnode lines are the
## compiled in default blacklist. If you want to blacklist entire types
## of devices, such as all scsi devices, you should use a devnode line.
## However, if you want to blacklist specific devices, you should use
## a wwid line. Since there is no guarantee that a specific device will
## not change names on reboot (from /dev/sda to /dev/sdb for example)
## devnode lines are not recommended for blacklisting specific devices.
##
#blacklist {
# wwid 26353900f02796769
# devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
# devnode "^hd[a-z]"
#}
#multipaths {
# multipath {
# wwid 3600508b4000156d700012000000b0000
# alias yellow
# path_grouping_policy multibus
# path_selector "round-robin 0"
# failback manual
# rr_weight priorities
# no_path_retry 5
# }
# multipath {
# wwid 1DEC_____321816758474
# alias red
# }
#}
#devices {
# device {
# vendor "COMPAQ "
# product "HSV110 (C)COMPAQ"
# path_grouping_policy multibus
# path_checker readsector0
# path_selector "round-robin 0"
# hardware_handler "0"
# failback 15
# rr_weight priorities
# no_path_retry queue
# }
# device {
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# }
#}

Restart multipath daemon

systemctl restart multipathd

Now check if the multipath is working:

multipath -ll
root@b6sl08:~# multipath -ll
mpathb (36f4796010012ab811e9a307f00000012) dm-3 HUAWEI,XSG1
size=20T features='0' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 7:0:3:2 sdi 8:128 active ready running
| |- 7:0:4:2 sdk 8:160 active ready running
| |- 17:0:5:2 sdac 65:192 active ready running
| `- 17:0:6:2 sdae 65:224 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 7:0:7:2 sdq 65:0 active ghost running
|- 7:0:0:2 sdc 8:32 active ghost running
|- 7:0:1:2 sde 8:64 active ghost running
|- 7:0:2:2 sdg 8:96 active ghost running
|- 7:0:5:2 sdm 8:192 active ghost running
|- 7:0:6:2 sdo 8:224 active ghost running
|- 17:0:7:2 sdag 66:0 active ghost running
|- 17:0:0:2 sds 65:32 active ghost running
|- 17:0:1:2 sdu 65:64 active ghost running
|- 17:0:2:2 sdw 65:96 active ghost running
|- 17:0:3:2 sdy 65:128 active ghost running
`- 17:0:4:2 sdaa 65:160 active ghost running
mpatha (36f4796010012ab811e98aec800000011) dm-2 HUAWEI,XSG1
size=20T features='0' hwhandler='1 alua' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 7:0:7:1 sdp 8:240 active ready running
| |- 7:0:0:1 sdb 8:16 active ready running
| |- 17:0:0:1 sdr 65:16 active ready running
| `- 17:0:4:1 sdz 65:144 active ready running
`-+- policy='service-time 0' prio=10 status=enabled
|- 7:0:1:1 sdd 8:48 active ghost running
|- 7:0:2:1 sdf 8:80 active ghost running
|- 7:0:3:1 sdh 8:112 active ghost running
|- 7:0:4:1 sdj 8:144 active ghost running
|- 7:0:5:1 sdl 8:176 active ghost running
|- 7:0:6:1 sdn 8:208 active ghost running
|- 17:0:7:1 sdaf 65:240 active ghost running
|- 17:0:1:1 sdt 65:48 active ghost running
|- 17:0:2:1 sdv 65:80 active ghost running
|- 17:0:3:1 sdx 65:112 active ghost running
|- 17:0:5:1 sdab 65:176 active ghost running
`- 17:0:6:1 sdad 65:208 active ghost running

Chiao!

Ref:
https://github.com/CanonicalLtd/ubuntu-serverguide/blob/master/en/dm-multipath.md#multipath-setup-overview

Share

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.