All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] sysfs prioritizer
@ 2016-07-15  6:48 Hannes Reinecke
  2016-07-15  6:48 ` [PATCH 1/3] libmultipath: call get_vpd_uid() if no uid_attribute is set Hannes Reinecke
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Hannes Reinecke @ 2016-07-15  6:48 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: dm-devel

Hi all,

this is a resend of a previous patchset for adding a 'sysfs'
prioritizer. This prioritizer uses the sysfs attributes
'access_state' and 'exclusive_pref_bit' to generate the
path priority.
Priority values are identical to those from the 'alua'
prioritizer.

Note: the mentioned sysfs attributes are filled in by
every device handler, but only the 'alua' handler has
enough logic to keep them up-to-date.
So use with caution for other device handlers.

Hannes Reinecke (3):
  libmultipath: call get_vpd_uid() if no uid_attribute is set
  alua prioritizer: Fix typo 'perf'
  multipathd: Add 'sysfs' prioritizer

 libmultipath/discovery.c           | 36 ++++++++++++++++++++++
 libmultipath/discovery.h           |  2 ++
 libmultipath/prio.h                |  1 +
 libmultipath/prioritizers/Makefile |  3 +-
 libmultipath/prioritizers/alua.c   |  8 ++---
 libmultipath/prioritizers/sysfs.c  | 61 ++++++++++++++++++++++++++++++++++++++
 libmultipath/propsel.c             |  6 +++-
 multipath/multipath.conf.5         | 19 ++++++++++--
 8 files changed, 127 insertions(+), 9 deletions(-)
 create mode 100644 libmultipath/prioritizers/sysfs.c

-- 
2.6.6

^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH 1/3] libmultipath: call get_vpd_uid() if no uid_attribute is set
  2016-07-15  6:48 [PATCH 0/3] sysfs prioritizer Hannes Reinecke
@ 2016-07-15  6:48 ` Hannes Reinecke
  2016-07-15  6:48 ` [PATCH 2/3] alua prioritizer: Fix typo 'perf' Hannes Reinecke
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 8+ messages in thread
From: Hannes Reinecke @ 2016-07-15  6:48 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: Hannes Reinecke, dm-devel

If the uid_attribute is unset we should be calling get_vpd_uid()
directly without waiting for retrigger udev events.

Signed-off-by: Hannes Reinecke <hare@suse.com>
---
 libmultipath/discovery.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
index 9fcede7..e9e0313 100644
--- a/libmultipath/discovery.c
+++ b/libmultipath/discovery.c
@@ -1569,6 +1569,9 @@ get_uid (struct path * pp, int path_state)
 					"%s: failed to get udev uid: %s",
 					pp->dev, strerror(-len));
 
+		} else {
+			len = get_vpd_uid(pp);
+			origin = "sysfs";
 		}
 		conf = get_multipath_config();
 		retrigger = conf->retrigger_tries;
-- 
2.6.6

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 2/3] alua prioritizer: Fix typo 'perf'
  2016-07-15  6:48 [PATCH 0/3] sysfs prioritizer Hannes Reinecke
  2016-07-15  6:48 ` [PATCH 1/3] libmultipath: call get_vpd_uid() if no uid_attribute is set Hannes Reinecke
@ 2016-07-15  6:48 ` Hannes Reinecke
  2016-07-15  6:48 ` [PATCH 3/3] multipathd: Add 'sysfs' prioritizer Hannes Reinecke
  2016-07-22  9:44 ` [PATCH 0/3] sysfs prioritizer Christophe Varoqui
  3 siblings, 0 replies; 8+ messages in thread
From: Hannes Reinecke @ 2016-07-15  6:48 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: Hannes Reinecke, dm-devel

The bit is called the 'preferred_path' bit. Nothing do to with
performance.

Signed-off-by: Hannes Reinecke <hare@suse.com>
---
 libmultipath/prioritizers/alua.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/libmultipath/prioritizers/alua.c b/libmultipath/prioritizers/alua.c
index b6c5176..6650a20 100644
--- a/libmultipath/prioritizers/alua.c
+++ b/libmultipath/prioritizers/alua.c
@@ -75,7 +75,7 @@ get_alua_info(struct path * pp, unsigned int timeout)
 	return rc;
 }
 
-int get_exclusive_perf_arg(char *args)
+int get_exclusive_pref_arg(char *args)
 {
 	char *ptr;
 
@@ -96,12 +96,12 @@ int getprio (struct path * pp, char * args, unsigned int timeout)
 	int rc;
 	int aas;
 	int priopath;
-	int exclusive_perf;
+	int exclusive_pref;
 
 	if (pp->fd < 0)
 		return -ALUA_PRIO_NO_INFORMATION;
 
-	exclusive_perf = get_exclusive_perf_arg(args);
+	exclusive_pref = get_exclusive_pref_arg(args);
 	rc = get_alua_info(pp, timeout);
 	if (rc >= 0) {
 		aas = (rc & 0x0f);
@@ -122,7 +122,7 @@ int getprio (struct path * pp, char * args, unsigned int timeout)
 			default:
 				rc = 0;
 		}
-		if (priopath && (aas != AAS_OPTIMIZED || exclusive_perf))
+		if (priopath && (aas != AAS_OPTIMIZED || exclusive_pref))
 			rc += 80;
 	} else {
 		switch(-rc) {
-- 
2.6.6

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH 3/3] multipathd: Add 'sysfs' prioritizer
  2016-07-15  6:48 [PATCH 0/3] sysfs prioritizer Hannes Reinecke
  2016-07-15  6:48 ` [PATCH 1/3] libmultipath: call get_vpd_uid() if no uid_attribute is set Hannes Reinecke
  2016-07-15  6:48 ` [PATCH 2/3] alua prioritizer: Fix typo 'perf' Hannes Reinecke
@ 2016-07-15  6:48 ` Hannes Reinecke
  2016-11-08 18:52   ` Xose Vazquez Perez
  2016-07-22  9:44 ` [PATCH 0/3] sysfs prioritizer Christophe Varoqui
  3 siblings, 1 reply; 8+ messages in thread
From: Hannes Reinecke @ 2016-07-15  6:48 UTC (permalink / raw)
  To: Christophe Varoqui; +Cc: dm-devel

Recent kernels have an 'access_state' attribute which allows
us to read the asymmetric access state directly from sysfs.

Signed-off-by: Hannes Reinecke <hare@suse.de>
---
 libmultipath/discovery.c           | 33 +++++++++++++++++++++
 libmultipath/discovery.h           |  2 ++
 libmultipath/prio.h                |  1 +
 libmultipath/prioritizers/Makefile |  3 +-
 libmultipath/prioritizers/sysfs.c  | 61 ++++++++++++++++++++++++++++++++++++++
 libmultipath/propsel.c             |  6 +++-
 multipath/multipath.conf.5         | 19 ++++++++++--
 7 files changed, 120 insertions(+), 5 deletions(-)
 create mode 100644 libmultipath/prioritizers/sysfs.c

diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
index e9e0313..07c60cf 100644
--- a/libmultipath/discovery.c
+++ b/libmultipath/discovery.c
@@ -209,6 +209,8 @@ declare_sysfs_get_str(devtype);
 declare_sysfs_get_str(vendor);
 declare_sysfs_get_str(model);
 declare_sysfs_get_str(rev);
+declare_sysfs_get_str(access_state);
+declare_sysfs_get_str(preferred_path);
 
 ssize_t
 sysfs_get_vpd (struct udev_device * udev, int pg,
@@ -484,6 +486,37 @@ int sysfs_get_iscsi_ip_address(struct path *pp, char *ip_address)
 	return 1;
 }
 
+int
+sysfs_get_asymmetric_access_state(struct path *pp, char *buff, int buflen)
+{
+	struct udev_device *parent = pp->udev;
+	char value[16], *eptr;
+	unsigned int preferred;
+
+	while (parent) {
+		const char *subsys = udev_device_get_subsystem(parent);
+		if (subsys && !strncmp(subsys, "scsi", 4))
+			break;
+		parent = udev_device_get_parent(parent);
+	}
+
+	if (!parent)
+		return -1;
+
+	if (sysfs_get_access_state(parent, buff, buflen) <= 0)
+		return -1;
+
+	if (sysfs_get_preferred_path(parent, value, 16) <= 0)
+		return 0;
+
+	preferred = strtoul(value, &eptr, 0);
+	if (value == eptr || preferred == ULONG_MAX) {
+		/* Parse error, ignore */
+		return 0;
+	}
+	return  preferred;
+}
+
 static void
 sysfs_set_rport_tmo(struct multipath *mpp, struct path *pp)
 {
diff --git a/libmultipath/discovery.h b/libmultipath/discovery.h
index 321d930..0f5b1e6 100644
--- a/libmultipath/discovery.h
+++ b/libmultipath/discovery.h
@@ -47,6 +47,8 @@ int sysfs_get_host_pci_name(struct path *pp, char *pci_name);
 int sysfs_get_iscsi_ip_address(struct path *pp, char *ip_address);
 ssize_t sysfs_get_vpd (struct udev_device * udev, int pg, unsigned char * buff,
 		       size_t len);
+int sysfs_get_asymmetric_access_state(struct path *pp,
+				      char *buff, int buflen);
 
 /*
  * discovery bitmask
diff --git a/libmultipath/prio.h b/libmultipath/prio.h
index 7195986..032028e 100644
--- a/libmultipath/prio.h
+++ b/libmultipath/prio.h
@@ -30,6 +30,7 @@ struct path;
 #define PRIO_RANDOM		"random"
 #define PRIO_RDAC		"rdac"
 #define PRIO_WEIGHTED_PATH	"weightedpath"
+#define PRIO_SYSFS		"sysfs"
 
 /*
  * Value used to mark the fact prio was not defined
diff --git a/libmultipath/prioritizers/Makefile b/libmultipath/prioritizers/Makefile
index 903a139..bb76700 100644
--- a/libmultipath/prioritizers/Makefile
+++ b/libmultipath/prioritizers/Makefile
@@ -15,7 +15,8 @@ LIBS = \
 	libprioontap.so \
 	libpriorandom.so \
 	libpriordac.so \
-	libprioweightedpath.so
+	libprioweightedpath.so \
+	libpriosysfs.so
 
 CFLAGS += -I..
 
diff --git a/libmultipath/prioritizers/sysfs.c b/libmultipath/prioritizers/sysfs.c
new file mode 100644
index 0000000..ff567df
--- /dev/null
+++ b/libmultipath/prioritizers/sysfs.c
@@ -0,0 +1,61 @@
+/*
+ * sysfs.c
+ *
+ * Copyright(c) 2016 Hannes Reinecke, SUSE Linux GmbH
+ */
+
+#include <stdio.h>
+
+#include "structs.h"
+#include "discovery.h"
+#include "prio.h"
+
+static const struct {
+	unsigned char value;
+	char *name;
+} sysfs_access_state_map[] = {
+	{ 50, "active/optimized" },
+	{ 10, "active/non-optimized" },
+	{  5, "lba-dependent" },
+	{  1, "standby" },
+};
+
+int get_exclusive_pref_arg(char *args)
+{
+	char *ptr;
+
+	if (args == NULL)
+		return 0;
+	ptr = strstr(args, "exclusive_pref_bit");
+	if (!ptr)
+		return 0;
+	if (ptr[18] != '\0' && ptr[18] != ' ' && ptr[18] != '\t')
+		return 0;
+	if (ptr != args && ptr[-1] != ' ' && ptr[-1] != '\t')
+		return 0;
+	return 1;
+}
+
+int getprio (struct path * pp, char * args, unsigned int timeout)
+{
+	int prio = 0, rc, i;
+	char buff[512];
+	int exclusive_pref;
+
+	exclusive_pref = get_exclusive_pref_arg(args);
+	rc = sysfs_get_asymmetric_access_state(pp, buff, 512);
+	if (rc < 0)
+		return PRIO_UNDEF;
+	prio = 0;
+	for (i = 0; i < 4; i++) {
+		if (!strncmp(buff, sysfs_access_state_map[i].name,
+			     strlen(sysfs_access_state_map[i].name))) {
+			prio = sysfs_access_state_map[i].value;
+			break;
+		}
+	}
+	if (rc > 0 && (prio != 50 || exclusive_pref))
+		prio += 80;
+
+	return prio;
+}
diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
index beb0798..0caf269 100644
--- a/libmultipath/propsel.c
+++ b/libmultipath/propsel.c
@@ -375,6 +375,8 @@ detect_prio(struct config *conf, struct path * pp)
 	struct prio *p = &pp->prio;
 	int tpgs = 0;
 	unsigned int timeout = conf->checker_timeout;
+	char buff[512];
+	char *default_prio = PRIO_ALUA;
 
 	if ((tpgs = get_target_port_group_support(pp->fd, timeout)) <= 0)
 		return;
@@ -384,7 +386,9 @@ detect_prio(struct config *conf, struct path * pp)
 		return;
 	if (get_asymmetric_access_state(pp->fd, ret, timeout) < 0)
 		return;
-	prio_get(conf->multipath_dir, p, PRIO_ALUA, DEFAULT_PRIO_ARGS);
+	if (sysfs_get_asymmetric_access_state(pp, buff, 512) >= 0)
+		default_prio = PRIO_SYSFS;
+	prio_get(conf->multipath_dir, p, default_prio, DEFAULT_PRIO_ARGS);
 }
 
 #define set_prio(dir, src, msg)					\
diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
index 709ab3c..fc3877f 100644
--- a/multipath/multipath.conf.5
+++ b/multipath/multipath.conf.5
@@ -212,6 +212,11 @@ are implemented:
 .I const
 Return a constant priority of \fI1\fR.
 .TP
+.I sysfs
+Use the sysfs attributes \fIaccess_state\fR and \fIpreferred_path\fR to
+generate the path priority. This prioritizer accepts the optional prio_arg
+.I exclusive_pref_bit
+.TP
 .I emc
 (Hardware-dependent)
 Generate the path priority for DGC class arrays as CLARiiON CX/AX and
@@ -277,8 +282,8 @@ these values can be looked up through sysfs or by running
 .I alua
 If
 .I exclusive_pref_bit
-is set, paths with the TPGS pref bit set will always be in their own path
-group.
+is set, paths with the \fIpreferred path\fR bit set will always
+be in their own path group.
 .TP
 .I datacore
 .I preferredsds
@@ -569,8 +574,16 @@ If set to
 .I yes
 , multipath will try to detect if the device supports SCSI-3 ALUA. If so, the
 device will automatically use the
+.I sysfs
+prioritizer if the required sysfs attributes
+.I access_state
+and
+.I preferred_path
+are supported, or the
 .I alua
-prioritizer. If not, the prioritizer will be selected as usual.
+prioritizer if not. If set to
+.I no
+, the prioritizer will be selected as usual.
 .RS
 .TP
 Default value is: \fBno\fR
-- 
2.6.6

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH 0/3] sysfs prioritizer
  2016-07-15  6:48 [PATCH 0/3] sysfs prioritizer Hannes Reinecke
                   ` (2 preceding siblings ...)
  2016-07-15  6:48 ` [PATCH 3/3] multipathd: Add 'sysfs' prioritizer Hannes Reinecke
@ 2016-07-22  9:44 ` Christophe Varoqui
  3 siblings, 0 replies; 8+ messages in thread
From: Christophe Varoqui @ 2016-07-22  9:44 UTC (permalink / raw)
  To: Hannes Reinecke; +Cc: device-mapper development


[-- Attachment #1.1: Type: text/plain, Size: 1318 bytes --]

Finally merged.
Thanks.

On Fri, Jul 15, 2016 at 8:48 AM, Hannes Reinecke <hare@suse.de> wrote:

> Hi all,
>
> this is a resend of a previous patchset for adding a 'sysfs'
> prioritizer. This prioritizer uses the sysfs attributes
> 'access_state' and 'exclusive_pref_bit' to generate the
> path priority.
> Priority values are identical to those from the 'alua'
> prioritizer.
>
> Note: the mentioned sysfs attributes are filled in by
> every device handler, but only the 'alua' handler has
> enough logic to keep them up-to-date.
> So use with caution for other device handlers.
>
> Hannes Reinecke (3):
>   libmultipath: call get_vpd_uid() if no uid_attribute is set
>   alua prioritizer: Fix typo 'perf'
>   multipathd: Add 'sysfs' prioritizer
>
>  libmultipath/discovery.c           | 36 ++++++++++++++++++++++
>  libmultipath/discovery.h           |  2 ++
>  libmultipath/prio.h                |  1 +
>  libmultipath/prioritizers/Makefile |  3 +-
>  libmultipath/prioritizers/alua.c   |  8 ++---
>  libmultipath/prioritizers/sysfs.c  | 61
> ++++++++++++++++++++++++++++++++++++++
>  libmultipath/propsel.c             |  6 +++-
>  multipath/multipath.conf.5         | 19 ++++++++++--
>  8 files changed, 127 insertions(+), 9 deletions(-)
>  create mode 100644 libmultipath/prioritizers/sysfs.c
>
> --
> 2.6.6
>
>

[-- Attachment #1.2: Type: text/html, Size: 1882 bytes --]

[-- Attachment #2: Type: text/plain, Size: 0 bytes --]



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] multipathd: Add 'sysfs' prioritizer
  2016-07-15  6:48 ` [PATCH 3/3] multipathd: Add 'sysfs' prioritizer Hannes Reinecke
@ 2016-11-08 18:52   ` Xose Vazquez Perez
  2016-11-09  6:49     ` Hannes Reinecke
  0 siblings, 1 reply; 8+ messages in thread
From: Xose Vazquez Perez @ 2016-11-08 18:52 UTC (permalink / raw)
  To: Hannes Reinecke; +Cc: dm-devel

On 07/15/2016 08:48 AM, Hannes Reinecke wrote:

> Recent kernels have an 'access_state' attribute which allows
> us to read the asymmetric access state directly from sysfs.

Hi Hannes,

with this patch it's impossible to select/autodetect ALUA.
sysfs always takes precedence over alua.

"detect_prio no" was added to overrides section, to make
it work again.

SLES 12-SP2

Thank you.

> ---
>  libmultipath/discovery.c           | 33 +++++++++++++++++++++
>  libmultipath/discovery.h           |  2 ++
>  libmultipath/prio.h                |  1 +
>  libmultipath/prioritizers/Makefile |  3 +-
>  libmultipath/prioritizers/sysfs.c  | 61 ++++++++++++++++++++++++++++++++++++++
>  libmultipath/propsel.c             |  6 +++-
>  multipath/multipath.conf.5         | 19 ++++++++++--
>  7 files changed, 120 insertions(+), 5 deletions(-)
>  create mode 100644 libmultipath/prioritizers/sysfs.c
> 

[ ...]

> diff --git a/libmultipath/propsel.c b/libmultipath/propsel.c
> index beb0798..0caf269 100644
> --- a/libmultipath/propsel.c
> +++ b/libmultipath/propsel.c
> @@ -375,6 +375,8 @@ detect_prio(struct config *conf, struct path * pp)
>  	struct prio *p = &pp->prio;
>  	int tpgs = 0;
>  	unsigned int timeout = conf->checker_timeout;
> +	char buff[512];
> +	char *default_prio = PRIO_ALUA;
>  
>  	if ((tpgs = get_target_port_group_support(pp->fd, timeout)) <= 0)
>  		return;
> @@ -384,7 +386,9 @@ detect_prio(struct config *conf, struct path * pp)
>  		return;
>  	if (get_asymmetric_access_state(pp->fd, ret, timeout) < 0)
>  		return;
> -	prio_get(conf->multipath_dir, p, PRIO_ALUA, DEFAULT_PRIO_ARGS);
> +	if (sysfs_get_asymmetric_access_state(pp, buff, 512) >= 0)
> +		default_prio = PRIO_SYSFS;
> +	prio_get(conf->multipath_dir, p, default_prio, DEFAULT_PRIO_ARGS);
>  }

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] multipathd: Add 'sysfs' prioritizer
  2016-11-08 18:52   ` Xose Vazquez Perez
@ 2016-11-09  6:49     ` Hannes Reinecke
  2016-12-07 18:34       ` Xose Vazquez Perez
  0 siblings, 1 reply; 8+ messages in thread
From: Hannes Reinecke @ 2016-11-09  6:49 UTC (permalink / raw)
  To: Xose Vazquez Perez; +Cc: dm-devel

On 11/08/2016 07:52 PM, Xose Vazquez Perez wrote:
> On 07/15/2016 08:48 AM, Hannes Reinecke wrote:
>
>> Recent kernels have an 'access_state' attribute which allows
>> us to read the asymmetric access state directly from sysfs.
>
> Hi Hannes,
>
> with this patch it's impossible to select/autodetect ALUA.
> sysfs always takes precedence over alua.
>
> "detect_prio no" was added to overrides section, to make
> it work again.
>
> SLES 12-SP2
>
> Thank you.
>
But this was precisely the idea.
(After all, it says 'auto-detect', right?)

For ALUA-capable arrays we have a reliable priority detection with the 
ALUA device-handler.
So it's far preferable to use the sysfs-provided information (as they 
are populated by the ALUA device-handler); the ALUA prioritizer in 
multipath-tools will be used as a fallback in case the device handler 
isn't loaded or the sysfs files are not present.
Using the sysfs handler has the neat side effect that you don't need to 
do I/O for detecting the priority, thereby eliminating one possible 
cause for multipath being stuck during failover.

Cheers,

Hannes
-- 
Dr. Hannes Reinecke		   Teamlead Storage & Networking
hare@suse.de			               +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH 3/3] multipathd: Add 'sysfs' prioritizer
  2016-11-09  6:49     ` Hannes Reinecke
@ 2016-12-07 18:34       ` Xose Vazquez Perez
  0 siblings, 0 replies; 8+ messages in thread
From: Xose Vazquez Perez @ 2016-12-07 18:34 UTC (permalink / raw)
  To: Hannes Reinecke; +Cc: dm-devel

On 11/09/2016 07:49 AM, Hannes Reinecke wrote:

> On 11/08/2016 07:52 PM, Xose Vazquez Perez wrote:
>> On 07/15/2016 08:48 AM, Hannes Reinecke wrote:
>>
>>> Recent kernels have an 'access_state' attribute which allows
>>> us to read the asymmetric access state directly from sysfs.
>>
>> Hi Hannes,
>>
>> with this patch it's impossible to select/autodetect ALUA.
>> sysfs always takes precedence over alua.
>>
>> "detect_prio no" was added to overrides section, to make
>> it work again.
>>
>> SLES 12-SP2
>>
>> Thank you.
>>
> But this was precisely the idea.
> (After all, it says 'auto-detect', right?)
> 
> For ALUA-capable arrays we have a reliable priority detection with the ALUA device-handler.
> So it's far preferable to use the sysfs-provided information (as they are populated by the ALUA device-handler); the ALUA prioritizer in multipath-tools will be used as a fallback in case the device
> handler isn't loaded or the sysfs files are not present.
> Using the sysfs handler has the neat side effect that you don't need to do I/O for detecting the priority, thereby eliminating one possible cause for multipath being stuck during failover.

Thanks for the explanation.


As collateral effect, because the sysfs-handler output is too
brief, the asymmetric access state(aas) was lost:


Dec 07 19:26:51 | sda: prio = sysfs (detected setting)
Dec 07 19:26:51 | sda: sysfs prio = 50
----
Dec 07 19:26:29 | sdc: prio = alua (detected setting)
Dec 07 19:26:29 | reported target port group is 1		<----- lost
Dec 07 19:26:29 | aas = 80 [active/optimized] [preferred]	<----- lost
Dec 07 19:26:29 | sdc: alua prio = 50

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-12-07 18:34 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-07-15  6:48 [PATCH 0/3] sysfs prioritizer Hannes Reinecke
2016-07-15  6:48 ` [PATCH 1/3] libmultipath: call get_vpd_uid() if no uid_attribute is set Hannes Reinecke
2016-07-15  6:48 ` [PATCH 2/3] alua prioritizer: Fix typo 'perf' Hannes Reinecke
2016-07-15  6:48 ` [PATCH 3/3] multipathd: Add 'sysfs' prioritizer Hannes Reinecke
2016-11-08 18:52   ` Xose Vazquez Perez
2016-11-09  6:49     ` Hannes Reinecke
2016-12-07 18:34       ` Xose Vazquez Perez
2016-07-22  9:44 ` [PATCH 0/3] sysfs prioritizer Christophe Varoqui

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.