diff mbox series

multipath-tools: convert back HUAWEI/XSG1 to multibus

Message ID 20210326030839.15452-1-xose.vazquez@gmail.com (mailing list archive)
State Not Applicable, archived
Delegated to: christophe varoqui
Headers show
Series multipath-tools: convert back HUAWEI/XSG1 to multibus | expand

Commit Message

Xose Vazquez Perez March 26, 2021, 3:08 a.m. UTC
This reverts commit ad206af1716437e84bbd81de6c4da7961d9a41d2

Recommended configs are, info from:
- RHEL https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100113070&partNo=6001&mid=SUPE_DOC&_t=1612885511000
- SLES https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100117892&partNo=6001&mid=SUPE_DOC&_t=1612885538000

- without HyperMetro:
vendor "HUAWEI"
product "XSG1"
path_grouping_policy multibus
no_path_retry 15

- with HyperMetro:
vendor "HUAWEI"
product "XSG1"
path_grouping_policy group_by_prio
prio alua
failback immediate
no_path_retry 15

ALUA is only used with HyperMetro(cluster of two arrays).

Cc: Zhouweigang (Jack) <zhouweigang09@huawei.com>
Cc: Zou Ming <zouming.zouming@huawei.com>
Cc: Benjamin Marzinski <bmarzins@redhat.com>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
Cc: DM-DEVEL ML <dm-devel@redhat.com>
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
---
 libmultipath/hwtable.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Martin Wilck March 26, 2021, 5:24 p.m. UTC | #1
On Fri, 2021-03-26 at 04:08 +0100, Xose Vazquez Perez wrote:
> This reverts commit ad206af1716437e84bbd81de6c4da7961d9a41d2
> 
> Recommended configs are, info from:
> - RHEL 
> https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100113070&partNo=6001&mid=SUPE_DOC&_t=1612885511000
> - SLES 
> https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100117892&partNo=6001&mid=SUPE_DOC&_t=1612885538000
> 
> - without HyperMetro:
> vendor "HUAWEI"
> product "XSG1"
> path_grouping_policy multibus
> no_path_retry 15
> 
> - with HyperMetro:
> vendor "HUAWEI"
> product "XSG1"
> path_grouping_policy group_by_prio
> prio alua
> failback immediate
> no_path_retry 15
> 
> ALUA is only used with HyperMetro(cluster of two arrays).
> 
> Cc: Zhouweigang (Jack) <zhouweigang09@huawei.com>
> Cc: Zou Ming <zouming.zouming@huawei.com>
> Cc: Benjamin Marzinski <bmarzins@redhat.com>
> Cc: Martin Wilck <mwilck@suse.com>
> Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
> Cc: DM-DEVEL ML <dm-devel@redhat.com>
> Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>

Forgive me if I'm missing something here, but what is this good for?
multipathd detects ALUA support by default.

 1 if the device doesn't support ALUA, it falls back to "const" anyway,
   in which case "group_by_prio" degenerates to "multibus" - which is
   exactly what this patch does;
 2 if the device supports ALUA, but returns the same ALUA state for
   all ports, again "group_by_prio" degenerates to "multibus";
 3 if the device supports ALUA and returns different states for 
   different ports, "group_by_prio" is the best bet anyway.

So why not just use "group_by_prio"?

Martin



--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez March 26, 2021, 6:10 p.m. UTC | #2
On 3/26/21 6:24 PM, Martin Wilck wrote:

> Forgive me if I'm missing something here, but what is this good for?
> multipathd detects ALUA support by default.
> 
>   1 if the device doesn't support ALUA, it falls back to "const" anyway,
>     in which case "group_by_prio" degenerates to "multibus" - which is
>     exactly what this patch does;
>   2 if the device supports ALUA, but returns the same ALUA state for
>     all ports, again "group_by_prio" degenerates to "multibus";
>   3 if the device supports ALUA and returns different states for
>     different ports, "group_by_prio" is the best bet anyway.
> 
> So why not just use "group_by_prio"?
You are right, but:

1.- It's the official vendor recommendation, and people trust it blindly
     above the multipath-tools setting. Sad but true.
     So it's going to be manually replaced by the vendor's config.

2.- It generates an awful warning:

     [This is SLES 12SP5 with 4.12.14-122.54-default on x86_64
     and multipath-tools-0.7.9+195+suse.16740c5-3.6.1.x86_64]

# multipath -ll

Mar 26 18:34:46 | sdi: prio = const (setting: emergency fallback - alua failed)
Mar 26 18:34:46 | sdj: prio = const (setting: emergency fallback - alua failed)
Mar 26 18:34:46 | sdk: prio = const (setting: emergency fallback - alua failed)
Mar 26 18:34:46 | sdl: prio = const (setting: emergency fallback - alua failed)
36a35324100e5x5d408d0526600000001 dm-1 HUAWEI,XSG1
size=10G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=1 status=enabled
   |- 0:0:4:1 sdi 8:128 active ready running
   |- 0:0:5:1 sdj 8:144 active ready running
   |- 1:0:4:1 sdk 8:160 active ready running
   `- 1:0:5:1 sdl 8:176 active ready running

     No nice, mainly for people without knowledge of mpt internals.

3.- The LUN is blacklisted by Fedora and derivatives(RHEL,CentOS,Oracle,...)
     And the installation program is unable to see it, this involves manual intervention.
     See page 76 of the OceanStor RHEL Guide.

--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
Martin Wilck March 26, 2021, 7:55 p.m. UTC | #3
On Fri, 2021-03-26 at 19:10 +0100, Xose Vazquez Perez wrote:
> On 3/26/21 6:24 PM, Martin Wilck wrote:
> 
> > Forgive me if I'm missing something here, but what is this good
> > for?
> > multipathd detects ALUA support by default.
> > 
> >   1 if the device doesn't support ALUA, it falls back to "const"
> > anyway,
> >     in which case "group_by_prio" degenerates to "multibus" - which
> > is
> >     exactly what this patch does;
> >   2 if the device supports ALUA, but returns the same ALUA state
> > for
> >     all ports, again "group_by_prio" degenerates to "multibus";
> >   3 if the device supports ALUA and returns different states for
> >     different ports, "group_by_prio" is the best bet anyway.
> > 
> > So why not just use "group_by_prio"?
> You are right, but:
> 
> 1.- It's the official vendor recommendation, and people trust it
> blindly
>      above the multipath-tools setting. Sad but true.
>      So it's going to be manually replaced by the vendor's config.

Some users are like that, sure. But if that was generally true, we
wouldn't need to adapt our defaults, because everyone would copy the
configs from the vendor manuals.

> 2.- It generates an awful warning:
> 
>      [This is SLES 12SP5 with 4.12.14-122.54-default on x86_64
>      and multipath-tools-0.7.9+195+suse.16740c5-3.6.1.x86_64]
> 
> # multipath -ll
> 
> Mar 26 18:34:46 | sdi: prio = const (setting: emergency fallback -
> alua failed)
> Mar 26 18:34:46 | sdj: prio = const (setting: emergency fallback -
> alua failed)
> Mar 26 18:34:46 | sdk: prio = const (setting: emergency fallback -
> alua failed)
> Mar 26 18:34:46 | sdl: prio = const (setting: emergency fallback -
> alua failed)
> 36a35324100e5x5d408d0526600000001 dm-1 HUAWEI,XSG1
> size=10G features='0' hwhandler='0' wp=rw
> `-+- policy='service-time 0' prio=1 status=enabled
>    |- 0:0:4:1 sdi 8:128 active ready running
>    |- 0:0:5:1 sdj 8:144 active ready running
>    |- 1:0:4:1 sdk 8:160 active ready running
>    `- 1:0:5:1 sdl 8:176 active ready running
> 
>      No nice, mainly for people without knowledge of mpt internals.

The problem is that the prioritizer was explicitly set to "alua".
Therefore multipathd warns, because the configured setting couldn't be
applied. We could just drop that line, alua would still be selected by
the autodetection if it was supported, and the message wouldn't be
printed any more otherwise. Setting "multibus" explicitly isn't
necessary.

Can we agree on that?

> 
> 3.- The LUN is blacklisted by Fedora and
> derivatives(RHEL,CentOS,Oracle,...)
>      And the installation program is unable to see it, this involves
> manual intervention.
>      See page 76 of the OceanStor RHEL Guide.
> 

That would be for Ben to fix ;-)

Regards
Martin



--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
Xose Vazquez Perez March 26, 2021, 11:50 p.m. UTC | #4
On 3/26/21 8:55 PM, Martin Wilck wrote:

> On Fri, 2021-03-26 at 19:10 +0100, Xose Vazquez Perez wrote:

>> 1.- It's the official vendor recommendation, and people trust it
>> blindly
>>       above the multipath-tools setting. Sad but true.
>>       So it's going to be manually replaced by the vendor's config.
> 
> Some users are like that, sure. But if that was generally true, we
> wouldn't need to adapt our defaults, because everyone would copy the
> configs from the vendor manuals.

I would like that HUAWEI guys fix their docs. Or much better,
make their arrays always work in ALUA mode. I do not see what the
problem is. Other vendors do this with A/A arrays.

>> 2.- It generates an awful warning:
>>
>>       [This is SLES 12SP5 with 4.12.14-122.54-default on x86_64
>>       and multipath-tools-0.7.9+195+suse.16740c5-3.6.1.x86_64]
>>
>> # multipath -ll
>>
>> Mar 26 18:34:46 | sdi: prio = const (setting: emergency fallback -
>> alua failed)
>> Mar 26 18:34:46 | sdj: prio = const (setting: emergency fallback -
>> alua failed)
>> Mar 26 18:34:46 | sdk: prio = const (setting: emergency fallback -
>> alua failed)
>> Mar 26 18:34:46 | sdl: prio = const (setting: emergency fallback -
>> alua failed)
>> 36a35324100e5x5d408d0526600000001 dm-1 HUAWEI,XSG1
>> size=10G features='0' hwhandler='0' wp=rw
>> `-+- policy='service-time 0' prio=1 status=enabled
>>     |- 0:0:4:1 sdi 8:128 active ready running
>>     |- 0:0:5:1 sdj 8:144 active ready running
>>     |- 1:0:4:1 sdk 8:160 active ready running
>>     `- 1:0:5:1 sdl 8:176 active ready running
>>
>>       No nice, mainly for people without knowledge of mpt internals.
> 
> The problem is that the prioritizer was explicitly set to "alua".
> Therefore multipathd warns, because the configured setting couldn't be
> applied. We could just drop that line, alua would still be selected by
> the autodetection if it was supported, and the message wouldn't be
> printed any more otherwise. Setting "multibus" explicitly isn't
> necessary.
> 
> Can we agree on that?

Something like the patch below?
It's a frankenstein config, and ALUA should only work for kernels >= 4.3

------
 From 47c505f853b37c38d847b411fc7ba763c61ad87b Mon Sep 17 00:00:00 2001
From: Xose Vazquez Perez <xose.vazquez@gmail.com>
Date: Sat, 27 Mar 2021 00:13:57 +0100
Subject: [PATCH] multipath-tools: make HUAWEI/XSG1 config work with alua and multibus
X-Patchwork-Bot: notify

And add recommended no_path_retry and pgfailback values.

Info from:
- RHEL https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100113070&partNo=6001&mid=SUPE_DOC&_t=1612885511000
- SLES https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100117892&partNo=6001&mid=SUPE_DOC&_t=1612885538000

- without HyperMetro:
vendor "HUAWEI"
product "XSG1"
path_grouping_policy multibus
no_path_retry 15

- with HyperMetro:
vendor "HUAWEI"
product "XSG1"
path_grouping_policy group_by_prio
prio alua
failback immediate
no_path_retry 15

ALUA is only used with HyperMetro(cluster of two arrays).

Suggested-by: Martin Wilck <mwilck@suse.com>
Cc: Zhouweigang (Jack) <zhouweigang09@huawei.com>
Cc: Zou Ming <zouming.zouming@huawei.com>
Cc: Benjamin Marzinski <bmarzins@redhat.com>
Cc: Martin Wilck <mwilck@suse.com>
Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
Cc: DM-DEVEL ML <dm-devel@redhat.com>
Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
---
  libmultipath/hwtable.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
index 58fa7387..f09af30e 100644
--- a/libmultipath/hwtable.c
+++ b/libmultipath/hwtable.c
@@ -1082,7 +1082,8 @@ static struct hwentry default_hw[] = {
  		.vendor        = "HUAWEI",
  		.product       = "XSG1",
  		.pgpolicy      = GROUP_BY_PRIO,
-		.prio_name     = PRIO_ALUA,
+		.pgfailback    = -FAILBACK_IMMEDIATE,
+		.no_path_retry = 15,
  	},
  	/*
  	 * Kove
Martin Wilck March 29, 2021, 7:36 a.m. UTC | #5
On Sat, 2021-03-27 at 00:50 +0100, Xose Vazquez Perez wrote:
> On 3/26/21 8:55 PM, Martin Wilck wrote:
> 
> > On Fri, 2021-03-26 at 19:10 +0100, Xose Vazquez Perez wrote:
> 
> > > 1.- It's the official vendor recommendation, and people trust it
> > > blindly
> > >       above the multipath-tools setting. Sad but true.
> > >       So it's going to be manually replaced by the vendor's
> > > config.
> > 
> > Some users are like that, sure. But if that was generally true, we
> > wouldn't need to adapt our defaults, because everyone would copy
> > the
> > configs from the vendor manuals.
> 
> I would like that HUAWEI guys fix their docs. Or much better,
> make their arrays always work in ALUA mode. I do not see what the
> problem is. Other vendors do this with A/A arrays.
> 
> > > 2.- It generates an awful warning:
> > > 
> > >       [This is SLES 12SP5 with 4.12.14-122.54-default on x86_64
> > >       and multipath-tools-0.7.9+195+suse.16740c5-3.6.1.x86_64]
> > > 
> > > # multipath -ll
> > > 
> > > Mar 26 18:34:46 | sdi: prio = const (setting: emergency fallback
> > > -
> > > alua failed)
> > > Mar 26 18:34:46 | sdj: prio = const (setting: emergency fallback
> > > -
> > > alua failed)
> > > Mar 26 18:34:46 | sdk: prio = const (setting: emergency fallback
> > > -
> > > alua failed)
> > > Mar 26 18:34:46 | sdl: prio = const (setting: emergency fallback
> > > -
> > > alua failed)
> > > 36a35324100e5x5d408d0526600000001 dm-1 HUAWEI,XSG1
> > > size=10G features='0' hwhandler='0' wp=rw
> > > `-+- policy='service-time 0' prio=1 status=enabled
> > >     |- 0:0:4:1 sdi 8:128 active ready running
> > >     |- 0:0:5:1 sdj 8:144 active ready running
> > >     |- 1:0:4:1 sdk 8:160 active ready running
> > >     `- 1:0:5:1 sdl 8:176 active ready running
> > > 
> > >       No nice, mainly for people without knowledge of mpt
> > > internals.
> > 
> > The problem is that the prioritizer was explicitly set to "alua".
> > Therefore multipathd warns, because the configured setting couldn't
> > be
> > applied. We could just drop that line, alua would still be selected
> > by
> > the autodetection if it was supported, and the message wouldn't be
> > printed any more otherwise. Setting "multibus" explicitly isn't
> > necessary.
> > 
> > Can we agree on that?
> 
> Something like the patch below?
> It's a frankenstein config, and ALUA should only work for kernels >=
> 4.3

Yes. That's good enough IMO. People running older kernels can use the
explicit config (and likely have been doing so anyway).

Add a comment explaining the "hypermetro" dependency, perhaps.

Martin


> 
> ------
>  From 47c505f853b37c38d847b411fc7ba763c61ad87b Mon Sep 17 00:00:00
> 2001
> From: Xose Vazquez Perez <xose.vazquez@gmail.com>
> Date: Sat, 27 Mar 2021 00:13:57 +0100
> Subject: [PATCH] multipath-tools: make HUAWEI/XSG1 config work with
> alua and multibus
> X-Patchwork-Bot: notify
> 
> And add recommended no_path_retry and pgfailback values.
> 
> Info from:
> - RHEL 
> https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100113070&partNo=6001&mid=SUPE_DOC&_t=1612885511000
> - SLES 
> https://download.huawei.com/edownload/e/download.do?actionFlag=download&nid=EDOC1100117892&partNo=6001&mid=SUPE_DOC&_t=1612885538000
> 
> - without HyperMetro:
> vendor "HUAWEI"
> product "XSG1"
> path_grouping_policy multibus
> no_path_retry 15
> 
> - with HyperMetro:
> vendor "HUAWEI"
> product "XSG1"
> path_grouping_policy group_by_prio
> prio alua
> failback immediate
> no_path_retry 15
> 
> ALUA is only used with HyperMetro(cluster of two arrays).
> 
> Suggested-by: Martin Wilck <mwilck@suse.com>
> Cc: Zhouweigang (Jack) <zhouweigang09@huawei.com>
> Cc: Zou Ming <zouming.zouming@huawei.com>
> Cc: Benjamin Marzinski <bmarzins@redhat.com>
> Cc: Martin Wilck <mwilck@suse.com>
> Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
> Cc: DM-DEVEL ML <dm-devel@redhat.com>
> Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
> ---
>   libmultipath/hwtable.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
> index 58fa7387..f09af30e 100644
> --- a/libmultipath/hwtable.c
> +++ b/libmultipath/hwtable.c
> @@ -1082,7 +1082,8 @@ static struct hwentry default_hw[] = {
>                 .vendor        = "HUAWEI",
>                 .product       = "XSG1",
>                 .pgpolicy      = GROUP_BY_PRIO,
> -               .prio_name     = PRIO_ALUA,
> +               .pgfailback    = -FAILBACK_IMMEDIATE,
> +               .no_path_retry = 15,
>         },
>         /*
>          * Kove



--
dm-devel mailing list
dm-devel@redhat.com
https://listman.redhat.com/mailman/listinfo/dm-devel
diff mbox series

Patch

diff --git a/libmultipath/hwtable.c b/libmultipath/hwtable.c
index 7923abba..cd8ed7ff 100644
--- a/libmultipath/hwtable.c
+++ b/libmultipath/hwtable.c
@@ -1081,8 +1081,8 @@  static struct hwentry default_hw[] = {
 		/* OceanStor V3 */
 		.vendor        = "HUAWEI",
 		.product       = "XSG1",
-		.pgpolicy      = GROUP_BY_PRIO,
-		.prio_name     = PRIO_ALUA,
+		.pgpolicy      = MULTIBUS,
+		.no_path_retry = 15,
 	},
 	{
 		/* OceanStor NVMe */