Nir Soffer has uploaded a new change for review.
Change subject: multipath: Replace specific device sections with all_devs section
......................................................................
multipath: Replace specific device sections with all_devs section
We require "no_path_retry fail" setting to ensure that io requests are
not queued, which may lead to blocking of multiple unrelated threads in
vdsm when performing lvm, multipath or scsi rescan operations.
We had several specific device sections, overriding "no_path_retry", but
these settings had to copy the built-in device settings, and if the
built-in settings are changed, our copied version would hide the changed
settings.
multipath supports now a new "all_devs yes" device attribute. A device
section using this attribute overrides any setting defined in the
built-in devices. Unlike regular device setting, we don't need to copy
the setting from the built-in devices, so new settings in multipathd are
respected.
This patch removes the specific device settings and replace them with
magic all_devs section. We used to override both "features" and
"no_path_retry". Now we override only "no_path_retry", since
"features"
may be used for additional options which may be wanted.
(Need to check how multipath handles the combination of "features 1
queue_if_no_path" and "no_path_retry fail")
Since this change fixes a very important bug, we also bump the revision
tag, forcing a configuration during upgrades.
Change-Id: If035b10558f8df37969ee694bfebd48068d2ee38
Bug-Url:
https://bugzilla.redhat.com/880738
Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
---
M lib/vdsm/tool/configurators/multipath.py
1 file changed, 9 insertions(+), 26 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/55/44855/1
diff --git a/lib/vdsm/tool/configurators/multipath.py
b/lib/vdsm/tool/configurators/multipath.py
index bced531..bf6914a 100644
--- a/lib/vdsm/tool/configurators/multipath.py
+++ b/lib/vdsm/tool/configurators/multipath.py
@@ -34,7 +34,7 @@
_MPATH_CONF = "/etc/multipath.conf"
-_MPATH_CONF_TAG = "# VDSM REVISION 1.2"
+_MPATH_CONF_TAG = "# VDSM REVISION 1.3"
_MPATH_CONF_DATA = """\
%(current_tag)s
@@ -52,27 +52,10 @@
# Remove devices entries when overrides section is available.
devices {
device {
- vendor "HITACHI"
- product "DF.*"
- }
- device {
- vendor "COMPELNT"
- product "Compellent Vol"
- no_path_retry fail
- }
- device {
- # multipath.conf.default
- vendor "DGC"
- product ".*"
- product_blacklist "LUNZ"
- path_grouping_policy "group_by_prio"
- path_checker "emc_clariion"
- hardware_handler "1 emc"
- prio "emc"
- failback immediate
- rr_weight "uniform"
- # vdsm required configuration
- features "0"
+ # These settings overrides built-in devices settings. It does not apply
+ # to devices without built-in settings (these use the settings in the
+ # "defaults" section), or to devices defined in the "devices"
section.
+ all_devs yes
no_path_retry fail
}
}
@@ -82,7 +65,6 @@
# multipathd.
#
# overrides {
-# features "0"
# no_path_retry fail
# }
@@ -90,13 +72,14 @@
_MAX_CONF_COPIES = 5
-# conf file configured by vdsm should contain a tag
-# in form of "RHEV REVISION X.Y"
+# conf file configured by vdsm should contain a tag in form of "RHEV REVISION
+# X.Y" (old format) or "VDSM REVISION X.Y" (new format).
_OLD_TAGS = ["# RHAT REVISION 0.2", "# RHEV REVISION 0.3",
"# RHEV REVISION 0.4", "# RHEV REVISION 0.5",
"# RHEV REVISION 0.6", "# RHEV REVISION 0.7",
"# RHEV REVISION 0.8", "# RHEV REVISION 0.9",
- "# RHEV REVISION 1.0", "# RHEV REVISION 1.1"]
+ "# RHEV REVISION 1.0", "# RHEV REVISION 1.1",
+ "# VDSM REVISION 1.2"]
# Having the PRIVATE_TAG in the conf file means
# vdsm-tool should never change the conf file
--
To view, visit
https://gerrit.ovirt.org/44855
To unsubscribe, visit
https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If035b10558f8df37969ee694bfebd48068d2ee38
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer(a)redhat.com>