[dm-devel] [PATCH v3 0/6] multipath: alternative reservation_key method

Xose Vazquez Perez xose.vazquez at gmail.com
Thu Sep 21 11:24:51 UTC 2017


On 09/20/2017 09:35 PM, Benjamin Marzinski wrote:

FYI, v1 was included in 0.7.3

> The scsi persistent reservation API doesn't force devices to implement any
> method to display the mapping from a reservation key to an I_T Nexus (the
> READ_FULL_STATUS action is an optional later addition, and a number of devices
> don't support it). To allow multipathd to determine the correct reservation key
> for a device without support from the device itself, it uses the
> reservation_key configuration option. Unfortunately, using this option forces
> the multipath configuration to be updated whenever a new scsi registration key
> is used.  This isn't acceptable to some users, who want a static configuration
> file. I've had multiple requests to allow persistent reservations without
> needing to set the reservation_key paramter beforehand.
> 
> This patch set provides an alternative method of setting the reservation_key
> for the multipath device. The reservation_key configuration option now also
> accepts the keyword "file". If this is used, multpath will look in the new
> prkeys file (by default "/etc/multipath/prkeys") for a line with the device
> wwid and it's associated reservation_key. The patches allow users to manually
> set reservation_key to multipath device mappings by using the multipathd
> client commands, but mpathpersist will automatically detect when devices are
> configured to use the prkeys file, and will set and clear the reservation
> keys automatically.
> 
> Changes in v3:
>  - Add documentation for new options and commands (Xose Vazquez Perez)
>    [PATCH v3 6/6] multipath: add man page info for my prkey changes
>  - Fix error in checking if multipathd needs to set the prkey for a device
>    in mpath_persistent_reserve_out
>    [PATCH v3 5/6] mpathpersist: add support for prkeys file
> 
> Changes in v2:
>  - use struct be64 instead of uint64_t to hold the reservation_key
>    (Martin Wilck)
> 
> Benjamin Marzinski (6):
>   libmultipath: pull functions into util.c
>   libmultipath: change reservation_key to a be64
>   libmpathpersist: fix update_prflag code
>   multipath: add alternate reservation_key method
>   mpathpersist: add support for prkeys file
>   multipath: add man page info for my prkey changes
> 
>  libmpathpersist/mpath_persist.c  |  79 ++++++++++---------
>  libmpathpersist/mpath_updatepr.c |  43 ++++++----
>  libmpathpersist/mpathpr.h        |   3 +-
>  libmultipath/Makefile            |   2 +-
>  libmultipath/byteorder.h         |  44 +++++++++++
>  libmultipath/checkers/rbd.c      |  16 +---
>  libmultipath/config.c            |   9 ++-
>  libmultipath/config.h            |   9 ++-
>  libmultipath/defaults.h          |   1 +
>  libmultipath/dict.c              | 105 +++++++++++++------------
>  libmultipath/dict.h              |   4 +-
>  libmultipath/prkey.c             | 166 +++++++++++++++++++++++++++++++++++++++
>  libmultipath/prkey.h             |  19 +++++
>  libmultipath/propsel.c           |  35 +++++++--
>  libmultipath/structs.h           |  12 ++-
>  libmultipath/util.c              |  33 ++++++++
>  libmultipath/util.h              |   4 +
>  multipath/multipath.conf.5       |  17 ++++
>  multipathd/cli.c                 |   8 ++
>  multipathd/cli.h                 |   8 ++
>  multipathd/cli_handlers.c        |  82 +++++++++++++++++++
>  multipathd/cli_handlers.h        |   3 +
>  multipathd/main.c                |  28 +++----
>  multipathd/multipathd.8          |  16 ++++
>  24 files changed, 590 insertions(+), 156 deletions(-)
>  create mode 100644 libmultipath/byteorder.h
>  create mode 100644 libmultipath/prkey.c
>  create mode 100644 libmultipath/prkey.h
> 




More information about the dm-devel mailing list