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

Bug #1013685 reported by Vassilis Vatikiotis
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu Server Guide
New
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  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.