# [RESOLVED] Problem with multipath

## Cheyenne

I'm running into a problem with a new system upgrade (both hardware and OS system level) and multipath.

Multipath is not creating the device maps for any of the devices that are on my SAN.  I can "see" the individual devices (output of lsscsi).  And running multipath with the -v6 option (yes it goes above 3), shows that multipath is finding the devices, however it's erroring out with the following output

 *Quote:*   

> 
> 
> Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1773): device-mapper: reload ioctl on mpatha failed: Invalid argument
> 
> 

 

(error message in context)

```

....

Mar 18 14:33:49 | mpatha: assembled map [1 queue_if_no_path 0 2 1 service-time 0 1 1 8:96 1 service-time 0 1 1 8:32 1]

Mar 18 14:33:49 | mpatha: set ACT_CREATE (map does not exist)

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1755): dm info mpatha  NF   [16384] (*1)

Mar 18 14:33:49 | mpatha: addmap [0 62914560 multipath 1 queue_if_no_path 0 2 1 service-time 0 1 1 8:96 1 service-time 0 1 1 8:32 1]

Mar 18 14:33:49 | libdevmapper: libdm-common.c(2196): Udev cookie 0xd4d345f (semid 65536) incremented to 2

Mar 18 14:33:49 | libdevmapper: libdm-common.c(2446): Udev cookie 0xd4d345f (semid 65536) assigned to CREATE task(0) with flags         (0x0)

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1755): dm create mpatha mpath-36005076802818f4178000000000000b2 OF   [16384] (*1)

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1755): dm reload mpatha  OF   [16384] (*1)

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1773): device-mapper: reload ioctl on mpatha failed: Invalid argument

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1362): <backtrace>

Mar 18 14:33:49 | libdevmapper: libdm-common.c(2231): Udev cookie 0xd4d345f (semid 65536) decremented to 1

Mar 18 14:33:49 | libdevmapper: libdm-common.c(2196): Udev cookie 0xd4d345f (semid 65536) incremented to 2

Mar 18 14:33:49 | libdevmapper: libdm-common.c(2446): Udev cookie 0xd4d345f (semid 65536) assigned to REMOVE task(2) with flags         (0x0)

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1755): dm remove mpatha  NF   [16384] (*1)

Mar 18 14:33:49 | libdevmapper: libdm-common.c(1396): mpatha: Stacking NODE_DEL [verify_udev]

Mar 18 14:33:49 | libdevmapper: ioctl/libdm-iface.c(1755): dm info mpatha  NF   [16384] (*1)

Mar 18 14:33:49 | mpatha: domap (0) failure for create/reload map

Mar 18 14:33:49 | mpatha: ignoring map

Mar 18 14:33:49 | mpatha: remove multipath map

...

```

In the messages file I have the following from there kernel:

```

Mar 18 14:33:49 penguint kernel: device-mapper: table: table load rejected: including non-request-stackable devices

Mar 18 14:33:49 penguint kernel: device-mapper: table: unable to set table type

Mar 18 14:33:49 penguint kernel: device-mapper: table: table load rejected: including non-request-stackable devices

Mar 18 14:33:49 penguint kernel: device-mapper: table: unable to set table type

```

I'm experienced with setting up multipath devices.

specifics:

IBM X3850

QLogic HBA's

IBM V7000 SAN

McData Fiber switch.

gentoo-sources-3.18.7

multipath-tools-0.5.0-r1

lvm2-2.02.109

The problem also happens when booting off a fairly current gentoo admin-cd.

My current running system cannot boot on the new hardware due to some other device driver level issues.Last edited by Cheyenne on Thu Mar 19, 2015 1:21 pm; edited 1 time in total

----------

## Cheyenne

Further info..

The problem seems to be within the kernel itself.

I dropped back to gentoo-sources-3.10.17 (with no other changes) and multipath is working again

----------

## Cheyenne

Turned out that SCSI_MQ_DEFAULT was set to Y and BLK_MQ doesn't currently support multipath.  Setting the value to N corrected the problem.

----------

## thegeezer

 *Cheyenne wrote:*   

> Turned out that SCSI_MQ_DEFAULT was set to Y and BLK_MQ doesn't currently support multipath.  Setting the value to N corrected the problem.

 

thanks for this, turns out in 2018 blk_mq still doesn't support multipath

easy fix is to add to dm_mod.use_blk_mq=0 kernel command line, quick test using kexec  

```
# kexec -l kernel-genkernel-x86_64-4.14.65-gentoo  --append="root=/dev/sda4 dm_mod.use_blk_mq=0" --initrd=initramfs-genkernel-x86_64-4.14.65-gentoo

```

----------

