[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