[dm-devel] [PATCH 3/4] multipath-tools: change default failback from manual to undefined
Christophe Varoqui
christophe.varoqui at opensvc.com
Mon Oct 3 11:29:27 UTC 2016
Wouldn't it be nicer to keep manual as the default and remove all
FAILBACK_UNDEF from the hwtable ?
In the current code base, FAILBACK_UNDEF causes need_switch_pathgroup() to
refresh each path prio and mpp->bestpg, and return to the caller it should
switch pathgroup. But the caller (check_path()) won't switch anyway.
As I read it FAILBACK_UNDEF never fails back automatically, like
FAILBACK_MANUAL, but causes unecessary work.
Hannes, Ben, do you confirm I read correctly ? Would you ack to removal of
FAILBACK_UNDEF from the hwtable ?
Regards,
Christophe Varoqui
OpenSVC
On Thu, Aug 18, 2016 at 7:58 PM, Xose Vazquez Perez <xose.vazquez at gmail.com>
wrote:
> Default value is: manual
> 30 .pgfailback = FAILBACK_UNDEF,
> 45 .pgfailback = -FAILBACK_IMMEDIATE,
> manual is not used by any device.
>
> I hope it's reasonable. If someone disagrees, drop it.
>
> Cc: Hannes Reinecke <hare at suse.de>
> Cc: Benjamin Marzinski <bmarzins at redhat.com>
> Cc: Christophe Varoqui <christophe.varoqui at opensvc.com>
> Cc: device-mapper development <dm-devel at redhat.com>
> Signed-off-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
> ---
> libmultipath/defaults.h | 2 +-
> libmultipath/hwtable.c | 32 +-------------------------------
> multipath/multipath.conf.5 | 8 +++++++-
> 3 files changed, 9 insertions(+), 33 deletions(-)
>
> diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
> index 9bf27d6..a7c74fe 100644
> --- a/libmultipath/defaults.h
> +++ b/libmultipath/defaults.h
> @@ -12,7 +12,7 @@
> #define DEFAULT_MINIO 1000
> #define DEFAULT_MINIO_RQ 1
> #define DEFAULT_PGPOLICY FAILOVER
> -#define DEFAULT_FAILBACK -FAILBACK_MANUAL
> +#define DEFAULT_FAILBACK FAILBACK_UNDEF
> #define DEFAULT_RR_WEIGHT RR_WEIGHT_NONE
> #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF
> #define DEFAULT_VERBOSITY 2
> diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
> index 72b5e1d..c4037d5 100644
> --- a/libmultipath/hwtable.c
> +++ b/libmultipath/hwtable.c
> @@ -37,7 +37,6 @@ static struct hwentry default_hw[] = {
> .vendor = "APPLE",
> .product = "Xserve RAID",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * HPE
> @@ -58,7 +57,6 @@ static struct hwentry default_hw[] = {
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .hwhandler = "1 hp_sw",
> .pgpolicy = GROUP_BY_PRIO,
> - .pgfailback = FAILBACK_UNDEF,
> .checker_name = HP_SW,
> .prio_name = PRIO_HP_SW,
> },
> @@ -67,7 +65,6 @@ static struct hwentry default_hw[] = {
> .vendor = "HP",
> .product = "A6189A",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 12,
> },
> {
> @@ -76,7 +73,6 @@ static struct hwentry default_hw[] = {
> .product = "(MSA|HSV)1[01]0",
> .hwhandler = "1 hp_sw",
> .pgpolicy = GROUP_BY_PRIO,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 12,
> .checker_name = HP_SW,
> .prio_name = PRIO_HP_SW,
> @@ -104,7 +100,6 @@ static struct hwentry default_hw[] = {
> .vendor = "HP",
> .product = "(MSA2[02]12fc|MSA2012i)",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 18,
> },
> {
> @@ -140,7 +135,6 @@ static struct hwentry default_hw[] = {
> .vendor = "HP",
> .product = "LOGICAL VOLUME",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 12,
> },
> {
> @@ -159,7 +153,6 @@ static struct hwentry default_hw[] = {
> .vendor = "DDN",
> .product = "SAN DataDirector",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * EMC
> @@ -169,7 +162,6 @@ static struct hwentry default_hw[] = {
> .vendor = "EMC",
> .product = "SYMMETRIX",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 6,
> },
> {
> @@ -190,14 +182,12 @@ static struct hwentry default_hw[] = {
> .product = "Invista",
> .bl_product = "LUNZ",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 5,
> },
> {
> .vendor = "XtremIO",
> .product = "XtremApp",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * DELL
> @@ -212,7 +202,6 @@ static struct hwentry default_hw[] = {
> .vendor = "COMPELNT",
> .product = "Compellent Vol",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> },
> {
> @@ -258,7 +247,6 @@ static struct hwentry default_hw[] = {
> .vendor = "FSC",
> .product = "CentricStor",
> .pgpolicy = GROUP_BY_SERIAL,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> .vendor = "FUJITSU",
> @@ -273,7 +261,6 @@ static struct hwentry default_hw[] = {
> .vendor = "(EUROLOGC|EuroLogc)",
> .product = "FC2502",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * Hitachi
> @@ -286,7 +273,6 @@ static struct hwentry default_hw[] = {
> .vendor = "(HITACHI|HP)",
> .product = "^OPEN-",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> /* AMS 2000 and HUS 100 families */
> @@ -307,7 +293,6 @@ static struct hwentry default_hw[] = {
> .vendor = "IBM",
> .product = "ProFibre 4000R",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> /* DS4300 / FAStT600 */
> @@ -444,7 +429,6 @@ static struct hwentry default_hw[] = {
> .vendor = "IBM",
> .product = "^3542",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> /* Enterprise Storage Server / Shark family */
> @@ -452,7 +436,6 @@ static struct hwentry default_hw[] = {
> .product = "^2105",
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> /* DS6000 */
> @@ -469,7 +452,6 @@ static struct hwentry default_hw[] = {
> .product = "^2107900",
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> /* Storwize family / SAN Volume Controller / Flex System
> V7000 */
> @@ -487,7 +469,6 @@ static struct hwentry default_hw[] = {
> .uid_attribute = "ID_UID",
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> .vendor = "IBM",
> @@ -496,7 +477,6 @@ static struct hwentry default_hw[] = {
> .uid_attribute = "ID_UID",
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> /* Power RAID */
> @@ -523,7 +503,6 @@ static struct hwentry default_hw[] = {
> .product = "2810XIV",
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * IBM Power Virtual SCSI Devices
> @@ -535,14 +514,12 @@ static struct hwentry default_hw[] = {
> .vendor = "AIX",
> .product = "VDASD",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = (300 / DEFAULT_CHECKINT),
> },
> {
> /* 3303 NVDISK */
> .vendor = "IBM",
> .product = "3303[ ]+NVDISK",
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = (300 / DEFAULT_CHECKINT),
> },
> {
> @@ -602,7 +579,6 @@ static struct hwentry default_hw[] = {
> .vendor = "NEXENTA",
> .product = "COMSTAR",
> .pgpolicy = GROUP_BY_SERIAL,
> - .pgfailback = FAILBACK_UNDEF,
> .no_path_retry = 30,
> },
> /*
> @@ -612,7 +588,6 @@ static struct hwentry default_hw[] = {
> .vendor = "SGI",
> .product = "TP9100",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> .vendor = "SGI",
> @@ -703,7 +678,6 @@ static struct hwentry default_hw[] = {
> .vendor = "SUN",
> .product = "(StorEdge 3510|T4)",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> {
> .vendor = "SUN",
> @@ -766,7 +740,6 @@ static struct hwentry default_hw[] = {
> .product = "RAIGE VOLUME",
> .no_path_retry = NO_PATH_RETRY_QUEUE,
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * Intel
> @@ -818,7 +791,6 @@ static struct hwentry default_hw[] = {
> .vendor = "PURE",
> .product = "FlashArray",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> .fast_io_fail = 10,
> .dev_loss = 60,
> },
> @@ -830,7 +802,6 @@ static struct hwentry default_hw[] = {
> .vendor = "(HUAWEI|HUASY)",
> .product = "XSG1",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> /*
> * Red Hat
> @@ -852,7 +823,6 @@ static struct hwentry default_hw[] = {
> .vendor = "KOVE",
> .product = "XPD",
> .pgpolicy = MULTIBUS,
> - .pgfailback = FAILBACK_UNDEF,
> },
> #if 0
> /*
> @@ -882,7 +852,7 @@ static struct hwentry default_hw[] = {
> .hwhandler = "0",
> .prio_name = "const",
> .prio_args = "",
> - .pgfailback = -FAILBACK_MANUAL,
> + .pgfailback = FAILBACK_UNDEF,
> .rr_weight = RR_WEIGHT_NONE,
> .no_path_retry = NO_PATH_RETRY_UNDEF,
> .minio = 1000,
> diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
> index 40df315..466ad94 100644
> --- a/multipath/multipath.conf.5
> +++ b/multipath/multipath.conf.5
> @@ -422,6 +422,8 @@ Default value is: \fBmpath\fR
> .TP
> .B failback
> Tell multipathd how to manage path group failback.
> +To select \fIimmediate\fR or a \fIvalue\fR, it's mandatory that the device
> +has support for a working prioritizer and a 'preferred path'.
> .RS
> .TP 12
> .I immediate
> @@ -440,7 +442,11 @@ another node requested the failover.
> .I values > 0
> Deferred failback (time to defer in seconds).
> .TP
> -Default value is: \fBmanual\fR
> +.\" XXX
> +.I <unset>
> +??? Undefined.
> +.TP
> +Default value is: \fB<unset>\fR
> .RE
> .
> .
> --
> 2.7.4
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20161003/1a8d7a8c/attachment.htm>
More information about the dm-devel
mailing list