[dm-devel] rdac priority checker changing priorities

Lucas Brasilino lucas.brasilino at gmail.com
Wed Apr 29 22:34:54 UTC 2009


Hi

I don't know if I'm misundertanding something. I've got an DS4700 and I'm
switching from RDAC[1] to multipath, since it's natively supported in
the distribution I use
here (SLES 10 SP2).

Since RDAC[1] works perfect, I'm trying to use 'rdac' priority in multipath.

My /etc/multiconf.conf is quite tiny, since I'm building it step-by-step :-) :

blacklist {
	devnode "^sda[0-9]*"
}

defaults {
	user_friendly_names	yes
	prio			rdac
	path_checker		tur
}

multipaths {
	multipath {
		wwid	3600a0b8000327b900000107549f85224
		alias	mpath0
	}
}

I think that using 'prio rdac' makes multipath to use 'mpath_prio_rdac' tool.

 # multipath -v2 -ll
mpath0 (3600a0b8000327b900000107549f85224) dm-0 IBM,1814      FAStT
[size=140G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=6][active]
 \_ 9:0:0:0  sdb 8:16  [active][ready]
\_ round-robin 0 [prio=1][enabled]
 \_ 10:0:0:0 sdc 8:32  [active][ghost]

So the first path has priority 6, as I can confirm:

# mpath_prio_rdac /dev/sdb
6
# mpath_prio_rdac /dev/sdc
1

After the first path (prio=6) failure I get:

# multipath -v2 -ll
sdb: rdac prio: inquiry command indicates error
mpath0 (3600a0b8000327b900000107549f85224) dm-0 IBM,1814      FAStT
[size=140G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=0][enabled]
 \_ 9:0:0:0  sdb 8:16  [failed][faulty]
\_ round-robin 0 [prio=1][enabled]
 \_ 10:0:0:0 sdc 8:32  [active][ghost]

Ok.. working great, activating the second path. But after the faulty
path is restored:

# multipath -v2 -ll
mpath0 (3600a0b8000327b900000107549f85224) dm-0 IBM,1814      FAStT
[size=140G][features=1 queue_if_no_path][hwhandler=1 rdac]
\_ round-robin 0 [prio=2][enabled]
 \_ 9:0:0:0  sdb 8:16  [active][ghost]
\_ round-robin 0 [prio=5][active]
 \_ 10:0:0:0 sdc 8:32  [active][ready]

Second path is now priority!!! And of course does not fails back! By
the way, my LUN is configured in
DS4700 in sort a way that the first path *is* the path to preferred controller.

I think path priorities should not change. If so first path goes back
to 'active' status.
Am I misunderstanding something ? Or messing things up?

By the way, here comes the default 'multipath.conf':

#defaults {
#       udev_dir                /dev
#       polling_interval        10
#       selector                "round-robin 0"
#       path_grouping_policy    multibus
#       getuid_callout          "/lib/udev/scsi_id -g -u -s /block/%n"
#       prio                    const
#       path_checker            directio
#       rr_min_io               100
#       max_fds                 8192
#       rr_weight               priorities
#       failback                immediate
#       no_path_retry           fail
#       user_friendly_names     no
#}
#blacklist {
#       wwid 26353900f02796769
#       devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
#       devnode "^hd[a-z][[0-9]*]"
#       devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
#       device {
#               vendor DEC.*
#               product MSA[15]00
#       }
#}
[...]
#devices {
#       device {
#               vendor                  "COMPAQ  "
#               product                 "HSV110 (C)COMPAQ"
#               path_grouping_policy    multibus
#               getuid_callout          "/lib/udev/scsi_id -g -u -s /block/%n"
#               path_checker            directio
#               path_selector           "round-robin 0"
#               hardware_handler        "0"
#               failback                15
#               rr_weight               priorities
#               no_path_retry           queue
#               rr_min_io               100
#               product_blacklist       LUN_Z
#       }
#       device {
#               vendor                  "COMPAQ  "
#               product                 "MSA1000         "
#               path_grouping_policy    multibus
#       }
#}

Thanks a lot in advance
Lucas Brasilino

[1] http://www.lsi.com/rdac/ds4000.html




More information about the dm-devel mailing list