Age | Commit message (Collapse) | Author | Files | Lines |
|
This patch adds a new multipath.conf default paramter, queue_without_daemon.
If this is set to "no", when multipathd stops, queueing will be turned off for
all devices. This is useful for devices that set no_path_retry. If a machine
is shut down while all paths to a device are down, it is possible to hang
waiting for IO to return from the device after multipathd has been stopped.
Without multipathd running, access to the paths cannot be restored, and the
kernel cannot be told to stop queueing IO. Setting queue_without_daemon to "no"
makes multipathd turn off queueing on all devices when it stops, avoiding the
problem.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
This patch adds two new configuration parameters to multipath.conf,
fast_io_fail_tmo and dev_loss_tmo which set
/sys/class/fc_remote_ports/rport-<host>:<channel>-<rport_id>/fast_io_fail_tmo and
/sys/class/fc_remote_ports/rport-<host>:<channel>-<rport_id>/dev_loss_tmo
for all the capable paths in a multipath device.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
The polling_interval increases caused some confusion, so I'm adding it
to the documentation.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
... since it will conflict with user_friendly_names.
(redhat bz #481239)
|
|
Setting max_fds to unlimited doesn't actually work. In the kernel, there is a
fixed limit to the maximum number of open fds a process can have. If you try
to set max_fds to greater than this, it fails. This patch replaces the special
value "unlimited" with a new special value, "max". If you set max_fds to "max",
multipath will use the actual system limit, which it looks up from
/proc/sys/fs/nr_open.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
This adds the ability to set uid, gid, and mode for the multipath device
nodes. Also, kpartx created device nodes will inherit the uid, gid, and
mode of their parent device. These attributes can be set in either the
defaults or the multipaths section of /etc/multipath.conf
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
Switch over to using --whitelisted and --device
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
|
|
Even when the last path of a multipath device is deleted, it can't be
removed until all the queued IO is flushed. For devices that have
no_path_retry set to queue, this doesn't automatically happen.
This patch adds a "flush_on_last_del" config file option, that causes the
multipath device to automatically turn off queueing when the last path is
deleted. It also adds the "disablequeueing" and "restorequeueing"
multipathd cli commands.
|
|
This patch cleans up multipath.conf.annotated and multipath.conf.synthetic adds
a multipath.conf.defaults file that lists the builtin default configs.
Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
|
|
All docs wrongly stated that as valid. It is not, mainly
because path checker selection happens before assigning the
path to a multipath.
Thanks to Matthew Kent for pointing this out.
|
|
sysfs as of 0.124 doesn't support -s anymore and the whole sysfs code
got removed, we'll have to use the devnodes in /dev/ from now on. I
also changed the last remaining call from /sbin/scsi_id to
/lib/udev/scsi_id.
|
|
|
|
Added a max_fds parameter to /etc/multipath.conf. This allows
you to set the maximum number of open fds that multipathd can use, like with
ulimit -n. Also added some code so that multipath closes the file descriptor
after it's used by the checker function, since multipath doesn't need to keep
them always open like multipathd does.
|
|
Priority callouts are nice, but have drawbacks.
1) multipathd holds a fd per path, but callouts have to open another for themselves. Which may fail.
2) callouts stored on a multipahed filesystem may hang multipathed on paging operation when there are no active path for the hosting device (getprio is in the salvation codepath). The window is small but Netapp fault injection tool manage to triggers the bug reliably.
This patch merges to priority methods in multipathd.
|
|
|
|
|
|
On IBM System z we often have the problem that we have attached
several hundred devices. In case we want to use only a few of them
with mp-tools, we have to blacklist all others. For that reason I have
introduced a blacklist_exceptions keyword for the multipath.conf which
fills an internal exception list.
Additionally this patch adds two commands to the multipathd cli to
display blacklist rules and blacklisted devices.
A multipath.conf like:
------------------- snip --------------------
blacklist {
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]*]"
devnode "^dasd[a-z]+[0-9]*"
}
blacklist_exceptions {
devnode "^dasd[c-d]+[0-9]*"
}
------------------- snap --------------------
All DASD devices are blacklisted except dasdc and
dasdd and corresponding partitions, which are listed in
the blacklist:exceptions section.
This example would produce the following output in the
"multipathd -k" cli:
------------------- snip --------------------
multipathd> show blacklist
device node rules:
- blacklist:
(config file rule) ^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*
(config file rule) ^hd[a-z][[0-9]*]
(config file rule) ^cciss!c[0-9]d[0-9]*[p[0-9]*]
(config file rule) ^dasd[a-z]+[0-9]*
(default rule) ^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*
(default rule) ^hd[a-z]
(default rule) ^cciss!c[0-9]d[0-9]*
- exceptions:
(config file rule) ^dasd[c-d]+[0-9]*
wwid rules:
- blacklist:
<empty>
- exceptions:
<empty>
device rules:
- blacklist:
(default rule) DGC:LUNZ
multipathd>
multipathd> show devices
available block devices:
dasda (blacklisted)
dasdb (blacklisted)
dasdc
dasdd
dm-0 (blacklisted)
dm-1 (blacklisted)
dm-2 (blacklisted)
dm-3 (blacklisted)
dm-4 (blacklisted)
dm-5 (blacklisted)
dm-6 (blacklisted)
loop0 (blacklisted)
loop1 (blacklisted)
loop2 (blacklisted)
loop3 (blacklisted)
loop4 (blacklisted)
loop5 (blacklisted)
loop6 (blacklisted)
loop7 (blacklisted)
ram0 (blacklisted)
ram10 (blacklisted)
ram11 (blacklisted)
ram12 (blacklisted)
ram13 (blacklisted)
ram14 (blacklisted)
ram15 (blacklisted)
ram1 (blacklisted)
ram2 (blacklisted)
ram3 (blacklisted)
ram4 (blacklisted)
ram5 (blacklisted)
ram6 (blacklisted)
ram7 (blacklisted)
ram8 (blacklisted)
ram9 (blacklisted)
sda
sdb
sdc
sdd
multipathd>
------------------- snap --------------------
Signed-off-by: Volker Sameske <sameske@de.ibm.com>
|
|
Bernhard Fischer
|
|
Associate a default blacklist product string with each hwentry.
This is useful for the CLARiiON in order to blacklist LUNZ entries
by default.
Edward Goggin, EMC
|
|
|
|
Can now specify per device instance or device type rr repeat counts in
the config file.
Edward Goggin, EMC, and me.
|
|
This is a patch to add the option of more user friendly names for the
multipath maps, in the form of mpath<n>. It adds a configuration option
"user_friendly_names". If set, it will cause multipath to check a bindings
file for the names. The bindings file (/var/lib/multipath/bindings) has
alias to wwid mappings. If multipath finds its wwid in the file, it uses
the associated alias. If not, it creates a new alias, and adds the binding
to the bindings file. If the config option is not set, multipath defaults
to it's regular behavior. Specific aliases in /etc/multipath.conf override
this behavior.
Benjamin Marzinski, Redhat
|
|
Should closes RH Bugzilla #171286
|
|
Kiyoshi Ueda, NEC
|
|
These are in the default{} configlet; the prefix was clearly redundant.
Keep the old keyword around for a smooth transition, but undocument them.
|
|
The following patch adds time-based retry feature in no-path situation
to multipathd. Any comments are welcome.
This patch adds 'no_path_retry' option to multipathd.
o no_path_retry = "fail" is equal to 'fail_if_no_path'.
(i.e. I/O to the no-path map will immediately fail.)
o no_path_retry = "queue" is equal to 'queue_if_no_path'.
(i.e. I/O to the no-path map will be queued until any path comes up.)
o If no_path_retry = <n> where n is positive number,
then multipathd will set queue_if_no_path to the map,
and if the all paths are down, multipathd will turn the feature
off to fail_if_no_path after the checker tries <n> times for each
paths in the map.
Multipathd re-writes queue_if_no_path feature parameter in the map,
if this option is specified. But by default, this patch doesn't
change current multipathd behaviour.
So this patch don't break any existing configuration.
Kiyoshi Ueda, NEC
|
|
This will make for denser config files.
|
|
multipathd used to call multipath(8), thus needed to know the callout path.
This is no longer the case, so clean it up.
|
|
... and purge uneeded configlets :
All tested hardware should be in the hard-coded defaults, no need to keep
the defaults out-of-sync in the templates config files.
|
|
Failback is still scheduled upon path going up and canceled upon paths
going down.
|
|
an LU with a scsi_id assigned UID of 36006016087711200afd8d0905137d911 was being blacklisted because the default blacklist includes a regular expression of the form "(ram | raw | loop | fd)[0-9]*" which happens to match the substring "fd8" in the UID. I've fixed the problem by changing the blacklist regular expression to instead be "^(ram | raw | loop | fd)[0-9]*" since the intention is really to exclude devices from multipath discovery only when their name __begins__ with any of the prefixes within the parenthesis. Turns out "fd" is the only one of these listed prefixes which contains exclusively valid alpha-hexa-numeric characters. The "fd" Characters should not mistakenly collide with hexa-numeric characters at the beginning of at least a scsi_id assigned block device UID since scsi_id is assigning either an alpha 0, 1, 2, or 3 to the first character of the UID string.
This problem is likely in all versions of multipath-tools since 0.4.4-pre7 when the use of both regcomp and regexec were first introduced.
|
|
"pp is too easy to confuse with ppp and does not help anyone guess
what the binary does - not least because there are no man pages yet!
So it should include some characters that suggest it's connected
with dm multipath."
From Alasdair Kergon, RedHat
|
|
The failback config file keyword activates defered failback when set to
an integer value superior to zero. This value expresses the number of
consecutive successful path check before failback.
Remember the path testing delay arithmeticaly increases when consecutive
checks report PATH_UP. This affects the calculation of the failback delay
in seconds.
Failback is canceled as soon as a path in the multipath goes down, and
is rescheduled when a path goes up.
|
|
The failback keyword can be set in the default section, or in a hardware
entry, or in a multipath entry. Its value can be "manual", "immediate" or
an integer delay expressed in seconds.
|
|
Comment all lines in the example configuration file to force users to
uncomment only what they need.
This best practice was suggested by Kiyoshi Ueda, NEC.
|
|
Remove remnents of the '-S' flag handling.
Benjamin Marzinski, RedHat
|
|
Release 0.4.5-pre2
|