[dm-devel] [PATCH v2 0/5] multipath: alternative reservation_key method
Martin Wilck
mwilck at suse.com
Mon Sep 18 20:03:12 UTC 2017
On Fri, 2017-09-15 at 17:25 -0500, Benjamin Marzinski wrote:
> 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 v2:
> - use struct be64 instead of uint64_t to hold the reservation_key
> (Martin Wilck)
>
> Benjamin Marzinski (5):
> 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
>
> libmpathpersist/mpath_persist.c | 78 +++++++++---------
> 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 +
> multipathd/cli.c | 8 ++
> multipathd/cli.h | 8 ++
> multipathd/cli_handlers.c | 82 +++++++++++++++++++
> multipathd/cli_handlers.h | 3 +
> multipathd/main.c | 28 +++----
> 22 files changed, 556 insertions(+), 156 deletions(-)
> create mode 100644 libmultipath/byteorder.h
> create mode 100644 libmultipath/prkey.c
> create mode 100644 libmultipath/prkey.h
>
For the set:
Reviewed-by: Martin Wilck <mwilck at suse.com>
--
Dr. Martin Wilck <mwilck at suse.com>, Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
More information about the dm-devel
mailing list