On Sep 30, 2009, at 1:07 PM, John Brier wrote:
On 09/30/2009 12:41 PM, Eli Klein wrote:
I'm running into an issue where the failback option in multipath.conf is
being ignored. I've tried to set this to a value > 0 to cause dm to
pause before reinstating a recovered path, but it reinstates the path
immediately. The same is true when setting the value to "manual", the
path is reinstated immediately. The delay is most useful when a ethernet
switch has failed or rebooted. During the boot of the switch, the
interface comes up and drops again multiple times. I'd love to be able
to introduce a delay before DM marks the path as reinstated after a
recovery. This would save me the hassle of running into I/O errors (and
occasional filesystem RO) as the path bounces while the switch is booting.
Thanks in advance for any help or suggestions!
-Eli
I've included my multipath.conf as well as output from multipath -ll below:
multipath.conf:
blacklist {
devnode "sda$"
# devnode "*"
}
## 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
}
##
## Here is an example of how to configure some standard options.
##
#
defaults {
udev_dir /dev
polling_interval 10
selector "round-robin 0"
path_grouping_policy multibus
getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
prio_callout /bin/true
path_checker readsector0
rr_min_io 10
rr_weight priorities
failback 120
features "1 queue_if_no_path"
no_path_retry 1
user_friendly_name yes
}
It looks like you have two defaults {} sections. Is that allowed? Maybe multipath is only picking up the first one? I'd remove the first one/comment out and put user_friendly_names yes in the second one.
Also I think multipath -v3 -d will show you what settings would be applied so you don't have to test the behavior by cycling your ethernet switch.
For example on one of my systems multipath -v3 shows
mpath1: pgfailback = -2 (controller setting)
After you have it configured right run multipath -v3 without the -d (dry run)
Can someone confirm if pgfailback from multipath -v3 output indicates the current setting of failback that multipath is using?
John Brier
mpath1: pgfailback = 120 (config file default)
mpath1: pgpolicy = multibus (config file default)
mpath1: selector = round-robin 0 (internal default)
mpath1: features = 1 queue_if_no_path (internal default)
mpath1: hwhandler = 0 (internal default)
mpath1: rr_weight = 2 (config file default)
mpath1: minio = 10 (config file default)
mpath1: no_path_retry = 1 (config file default)
pg_timeout = NONE (internal default)
mpath1: set ACT_NOTHING (map unchanged)
It's definitely picking up the settings correctly from multipath.conf, but the paths are still reinstated immediately once they're reconnected (even if it's just for a split second).
-Eli