[dm-devel] [PATCH RFC] multipath-tools: *untested* use sysfs prio also for arrays with dual implicit/explicit alua support
Schremmer, Steven
Steve.Schremmer at netapp.com
Mon Aug 10 21:27:21 UTC 2020
An RDAC array configured to run with Linux DM-MP should never report that it supports implicit and explicit ALUA support. If the array is configured to run with scsi_dh_rdac then it reports TPGS=0 (none) and should use rdac prio. The more modern configuration is to report TPGS=01b (implicit) and use scsi_dh_alua and alua prio.
Thanks,
Steve
> From: Martin Wilck <mwilck at suse.com>
> Sent: Wednesday, August 5, 2020 4:13 PM
> To: Xose Vazquez Perez <xose.vazquez at gmail.com>; Benjamin Marzinski <bmarzins at redhat.com>; Hannes Reinecke <hare at suse.de>;
> DM-DEVEL ML <dm-devel at redhat.com>
> Cc: Schremmer, Steven <Steve.Schremmer at netapp.com>
> Subject: Re: [PATCH RFC] multipath-tools: *untested* use sysfs prio also for arrays with dual implicit/explicit alua support
>
> Hi Xose,
>
> do you have a specific use case where this helps / changes matters?
>
> The idea of the current code is to use PRIO_SYSFS always, except for
> RDAC arrays with implicit ALUA, where periodic RTPGs are necessary (see
> 7e2f46d). This patch would change matters only for RDAC arrays which
> advertise both explicit and implicit ALUA support.
>
> Maybe Steven can clarify if such RDAC arrays exist, and whether we
> should use PRIO_SYSFS or PRIO_ALUA for them.
>
> Martin
>
>
> On Sat, 2020-07-25 at 00:34 +0200, Xose Vazquez Perez wrote:
> > Cc: Martin Wilck <mwilck at suse.com>
> > Cc: Benjamin Marzinski <bmarzins at redhat.com>
> > Cc: Hannes Reinecke <hare at suse.de>
> > Cc: DM-DEVEL ML <dm-devel at redhat.com>
> > Signed-off-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
> > ---
> > diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
> > index 897e48ca..5a82234f 100644
> > --- a/libmultipath/propsel.c
> > +++ b/libmultipath/propsel.c
> > @@ -595,7 +595,7 @@ detect_prio(struct config *conf, struct path *
> > pp)
> > tpgs = path_get_tpgs(pp);
> > if (tpgs == TPGS_NONE)
> > return;
> > - if ((tpgs == TPGS_EXPLICIT || !check_rdac(pp)) &&
> > + if ((tpgs == TPGS_EXPLICIT || tpgs == TPGS_BOTH ||
> > !check_rdac(pp)) &&
> > sysfs_get_asymmetric_access_state(pp, buff, 512) >=
> > 0)
> > default_prio = PRIO_SYSFS;
> > else
> >
> > In short:
> >
> > diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
> > index 897e48ca..a9609a01 100644
> > --- a/libmultipath/propsel.c
> > +++ b/libmultipath/propsel.c
> > @@ -595,7 +595,7 @@ detect_prio(struct config *conf, struct path *
> > pp)
> > tpgs = path_get_tpgs(pp);
> > if (tpgs == TPGS_NONE)
> > return;
> > - if ((tpgs == TPGS_EXPLICIT || !check_rdac(pp)) &&
> > + if ((tpgs != TPGS_IMPLICIT || !check_rdac(pp)) &&
> > sysfs_get_asymmetric_access_state(pp, buff, 512) >=
> > 0)
> > default_prio = PRIO_SYSFS;
> > else
> >
>
More information about the dm-devel
mailing list