Setting prio const in /etc/multipath.conf has no effect

Reported by Vassilis Vatikiotis on 2012-06-15
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu Server Guide
Undecided
Unassigned

Bug Description

We are trying to activate the active/active configuration in multipathd, for 2 paths between an AMS2100 array and a Ubuntu 12.04 Server.

We set "prio const" in /etc/multipath.conf. After starting the multipath daemon, we observe the following:
a) # multipath -ll
mpath0 (360060e80104dac0004f349c800000000) dm-0 HITACHI,DF600F
size=100G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 8:0:0:0 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=0 status=enabled
  `- 7:0:0:0 sdb 8:16 active ready running

Paths have different priorities.

b) multipath -v4
Jun 15 16:39:01 | sdb: not found in pathvec
Jun 15 16:39:01 | sdb: mask = 0x1f
Jun 15 16:39:01 | sdb: dev_t = 8:16
Jun 15 16:39:01 | sdb: size = 209715200
Jun 15 16:39:01 | sdb: subsystem = scsi
Jun 15 16:39:01 | sdb: vendor = HITACHI
Jun 15 16:39:01 | sdb: product = DF600F
Jun 15 16:39:01 | sdb: rev = 0000
Jun 15 16:39:01 | sdb: h:b:t:l = 7:0:0:0
Jun 15 16:39:01 | sdb: serial = 830530000000
Jun 15 16:39:01 | sdb: get_state
Jun 15 16:39:01 | loading /lib/multipath/libchecktur.so checker
Jun 15 16:39:01 | sdb: path checker = tur (controller setting)
Jun 15 16:39:01 | sdb: state = running
Jun 15 16:39:01 | sdb: state = 3
Jun 15 16:39:01 | loading /lib/multipath/libpriohds.so prioritizer
Jun 15 16:39:01 | sdb: prio = hds (controller setting)
Jun 15 16:39:01 | sdb: prio args = (null) (controller setting)
Jun 15 16:39:01 | sdb: hds prio: VENDOR: HITACHI
Jun 15 16:39:01 | sdb: hds prio: PRODUCT: DF600F
Jun 15 16:39:01 | sdb: hds prio: SERIAL: 0x3000
Jun 15 16:39:01 | sdb: hds prio: LDEV: 0x0000
Jun 15 16:39:01 | sdb: hds prio: CTRL: 1
Jun 15 16:39:01 | sdb: hds prio: PORT: E
Jun 15 16:39:01 | sdb: hds prio: CTRL ODD, LDEV EVEN, PRIO 0 <---------------- PRIO HERE
Jun 15 16:39:01 | sdb: hds prio = 0
Jun 15 16:39:01 | sdb: getuid = /lib/udev/scsi_id --whitelisted --device=/dev/%n (controller setting)
Jun 15 16:39:01 | sdb: uid = 360060e80104dac0004f349c800000000 (callout)
Jun 15 16:39:01 | Discover device /sys/block/sdc
Jun 15 16:39:01 | sdc: not found in pathvec
Jun 15 16:39:01 | sdc: mask = 0x1f
Jun 15 16:39:01 | sdc: dev_t = 8:32
Jun 15 16:39:01 | sdc: size = 209715200
Jun 15 16:39:01 | sdc: subsystem = scsi
Jun 15 16:39:01 | sdc: vendor = HITACHI
Jun 15 16:39:01 | sdc: product = DF600F
Jun 15 16:39:01 | sdc: rev = 0000
Jun 15 16:39:01 | sdc: h:b:t:l = 8:0:0:0
Jun 15 16:39:01 | sdc: serial = 830530000000
Jun 15 16:39:01 | sdc: get_state
Jun 15 16:39:01 | sdc: path checker = tur (controller setting)
Jun 15 16:39:01 | sdc: state = running
Jun 15 16:39:01 | sdc: state = 3
Jun 15 16:39:01 | sdc: prio = hds (controller setting)
Jun 15 16:39:01 | sdc: prio args = (null) (controller setting)
Jun 15 16:39:01 | sdc: hds prio: VENDOR: HITACHI
Jun 15 16:39:01 | sdc: hds prio: PRODUCT: DF600F
Jun 15 16:39:01 | sdc: hds prio: SERIAL: 0x3000
Jun 15 16:39:01 | sdc: hds prio: LDEV: 0x0000
Jun 15 16:39:01 | sdc: hds prio: CTRL: 2
Jun 15 16:39:01 | sdc: hds prio: PORT: E
Jun 15 16:39:01 | sdc: hds prio: CTRL EVEN, LDEV EVEN, PRIO 1 <--------------- PRIO HERE
Jun 15 16:39:01 | sdc: hds prio = 1
Jun 15 16:39:01 | sdc: getuid = /lib/udev/scsi_id --whitelisted --device=/dev/%n (controller setting)
Jun 15 16:39:01 | sdc: uid = 360060e80104dac0004f349c800000000 (callout)

In this output, the 2 paths have different priorities and even if we have set "prio const" in our configuration file, multipathd sets prio hds on its own.

c) # echo "show config" | multipathd -k
 device {
  vendor "HITACHI "
  product "DF600F.*"
  path_grouping_policy multibus
  getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
  path_checker tur
  checker tur
  prio const
  no_path_retry queue
 }
This is the last device entry in the configuration of the running daemon.

d) iostat -m 2
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn
sda 0.00 0.00 0.00 0 0
dm-0 775.50 96.72 0.00 193 0
dm-1 0.00 0.00 0.00 0 0
dm-2 0.00 0.00 0.00 0 0
dm-3 0.00 0.00 0.00 0 0
sdb 0.00 0.00 0.00 0 0
sdc 775.50 96.72 0.00 193 0 <----- All IO on one device only.

NOTE: AMS2100 and higher models support active/active architecture and all paths are considered owner paths and can accept IO from all available/assigned ports.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers