mbox series

[0/5] multipath: Add a group_by_tgp path grouping policy

Message ID 1684537332-23033-1-git-send-email-bmarzins@redhat.com (mailing list archive)
Headers show
Series multipath: Add a group_by_tgp path grouping policy | expand

Message

Benjamin Marzinski May 19, 2023, 11:02 p.m. UTC
This patchset is adds a new path grouping policy that can be used with
ALUA devices. The goal is to avoid the temporary incorrect path
groupings that can happen when paths change priorities.

There is one thing that I'm not sure of.  Is there any possiblity of a
path device changing the target port group it belongs to while it use?
If so, then we would need code to check for this and reload the device
if it occurs.

Benjamin Marzinski (5):
  libmultipath: add group_by_tpg path_grouping_policy
  libmultipath: don't copy pgpolicy string in get_pgpolicy_name
  libmultipath: add ALUA tpg path wildcard
  multipath-tools tests: add tests for group_by_tpg policy
  libmultipath: add "detect_pgpolicy" config option

 libmultipath/config.c             |   2 +
 libmultipath/config.h             |   2 +
 libmultipath/configure.c          |   1 +
 libmultipath/defaults.h           |   1 +
 libmultipath/dict.c               |  17 ++-
 libmultipath/discovery.c          |   1 +
 libmultipath/hwtable.c            |   1 +
 libmultipath/libmultipath.version |  10 +-
 libmultipath/pgpolicies.c         |  42 ++++---
 libmultipath/pgpolicies.h         |   6 +-
 libmultipath/print.c              |   9 ++
 libmultipath/prioritizers/alua.c  |   1 +
 libmultipath/propsel.c            |  50 +++++++-
 libmultipath/propsel.h            |   1 +
 libmultipath/structs.c            |   1 +
 libmultipath/structs.h            |  10 ++
 multipath/main.c                  |   1 +
 multipath/multipath.conf.5        |  16 +++
 tests/pgpolicy.c                  | 201 ++++++++++++++++++++++++++++++
 19 files changed, 338 insertions(+), 35 deletions(-)

Comments

Martin Wilck May 31, 2023, 3:45 p.m. UTC | #1
On Fri, 2023-05-19 at 18:02 -0500, Benjamin Marzinski wrote:
> This patchset is adds a new path grouping policy that can be used
> with
> ALUA devices. The goal is to avoid the temporary incorrect path
> groupings that can happen when paths change priorities.
> 

Thanks a lot for doing this. It has been on my todo list for a long
time. And sorry to make you wait so long for the review.

> There is one thing that I'm not sure of.  Is there any possiblity of
> a
> path device changing the target port group it belongs to while it
> use?
> If so, then we would need code to check for this and reload the
> device
> if it occurs.

The kernel ALUA code seems to be written to deal with such changes. The
spec is unclear about it. The spec says that the primary TPG is a set
of target ports that have the same state _at all times_, which we might
boldly interpret such that the TPG can't change (if it did, the target
ports wouldn't have the same state "at all times" any more). But well,
I don't think we should rely upon that.

So yes, I think we should be prepared to handle TPG change, even if
it's very unlikely to happen in practice. But it doesn't need to be in
this patch set. After all, the worst thing that can happen is that the
grouping might be wrong in a very unusual situation. With group-by-
prio, that happens all the time, although only temporarily.

Regards
Martin


> 
> Benjamin Marzinski (5):
>   libmultipath: add group_by_tpg path_grouping_policy
>   libmultipath: don't copy pgpolicy string in get_pgpolicy_name
>   libmultipath: add ALUA tpg path wildcard
>   multipath-tools tests: add tests for group_by_tpg policy
>   libmultipath: add "detect_pgpolicy" config option
> 
>  libmultipath/config.c             |   2 +
>  libmultipath/config.h             |   2 +
>  libmultipath/configure.c          |   1 +
>  libmultipath/defaults.h           |   1 +
>  libmultipath/dict.c               |  17 ++-
>  libmultipath/discovery.c          |   1 +
>  libmultipath/hwtable.c            |   1 +
>  libmultipath/libmultipath.version |  10 +-
>  libmultipath/pgpolicies.c         |  42 ++++---
>  libmultipath/pgpolicies.h         |   6 +-
>  libmultipath/print.c              |   9 ++
>  libmultipath/prioritizers/alua.c  |   1 +
>  libmultipath/propsel.c            |  50 +++++++-
>  libmultipath/propsel.h            |   1 +
>  libmultipath/structs.c            |   1 +
>  libmultipath/structs.h            |  10 ++
>  multipath/main.c                  |   1 +
>  multipath/multipath.conf.5        |  16 +++
>  tests/pgpolicy.c                  | 201
> ++++++++++++++++++++++++++++++
>  19 files changed, 338 insertions(+), 35 deletions(-)
> 

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