[dm-devel] HP array multipath defaults.

Benjamin Marzinski bmarzins at redhat.com
Thu Dec 21 22:34:19 UTC 2006


In Redhat bz #215509, you asked for changes to the default configurations for
some of the HP Arrays for RHEL4. Currently in the upstream Multipath code, the
defaults for the HP Arrays are:

{
                .vendor        = "(COMPAQ|HP)",
                .product       = "(MSA|HSV)1.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = "1 hp_sw",
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = HP_SW,
        },
        {
                .vendor        = "HP",
                .product       = "A6189A",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = READSECTOR0,
        },
        {
                .vendor        = "HP",
                .product       = "HSV20.*",
                .revision      = "[123].*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = HP_SW,
        },
        {
                .vendor        = "HP",
                .product       = "HSV20.*",
                .revision      = "[^123].*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = "mpath_prio_alua /dev/%n",
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = TUR,
        },
        {
                .vendor        = "HP",
                .product       = "HSV21.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = "mpath_prio_alua /dev/%n",
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = TUR,
        },
        {
                .vendor        = "(HITACHI|HP)",
                .product       = "OPEN-.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = READSECTOR0,
        },

These values are different than those you specified in the bugzilla. I assume
that you want the configuration values from that bugzilla to also be used in
future releases, where appropriate. However, I still have some quesions. Here is
a possible set of configuration values, that includes the changes listed in the bugzilla.

        {
                .vendor        = "(COMPAQ|HP)",
                .product       = "MSA1.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = "1 hp_sw",
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = HP_SW,
        },
        {
                .vendor        = "(COMPAQ|HP)",
                .product       = "HSV1.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = "/sbin/mpath_prio_alua /dev/%n",
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = 60,
                .minio         = 100,
                .checker_name  = TUR,
        },
        {
                .vendor        = "HP",
                .product       = "A6189A",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = DEFAULT_MINIO,
                .checker_name  = READSECTOR0,
        },
        {
                .vendor        = "HP",
                .product       = "HSV20.*",
                .revision      = "[123].*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = FAILBACK_UNDEF,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = 60,
                .minio         = 100,
                .checker_name  = HP_SW,
        },
        {
                .vendor        = "HP",
                .product       = "HSV20.*",
                .revision      = "[^123].*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = "/sbin/mpath_prio_alua /dev/%n",
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = 60,
                .minio         = 100,
                .checker_name  = TUR,
        },
        {
                .vendor        = "HP",
                .product       = "HSV21.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = "/sbin/mpath_prio_alua /dev/%n",
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = GROUP_BY_PRIO,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = 60,
                .minio         = 100,
                .checker_name  = TUR,
        },
        {
                .vendor        = "(HITACHI|HP)",
                .product       = "OPEN-.*",
                .getuid        = DEFAULT_GETUID,
                .getprio       = NULL,
                .features      = DEFAULT_FEATURES,
                .hwhandler     = DEFAULT_HWHANDLER,
                .selector      = DEFAULT_SELECTOR,
                .pgpolicy      = MULTIBUS,
                .pgfailback    = -FAILBACK_IMMEDIATE,
                .rr_weight     = RR_WEIGHT_NONE,
                .no_path_retry = NO_PATH_RETRY_UNDEF,
                .minio         = 100,
                .checker_name  = TUR,
        },


Is the MSA configuration correct?
Should the MSA and A6189A devices also have a no_path_retry of 60, and a minio
of 100?
Are their certain revisions for the HSV devices that should still use the old
configuration, like certain revisions of the HSV20.* devices do?

Attached is a patch to replace the existing set of HP device configurations
with the ones I proposed above.

-Ben

Benjamin E. Marzinski
bmarzins at redhat.com
(612) 638-0517
-------------- next part --------------
--- hwtable.c	2006-11-27 17:16:41.000000000 -0600
+++ hwtable-patched.c	2006-12-21 14:28:21.000000000 -0600
@@ -76,7 +76,7 @@
 	},
 	{
 		.vendor        = "(COMPAQ|HP)",
-		.product       = "(MSA|HSV)1.*",
+		.product       = "MSA1.*",
 		.getuid        = DEFAULT_GETUID,
 		.getprio       = NULL,
 		.features      = DEFAULT_FEATURES,
@@ -90,6 +90,21 @@
 		.checker_name  = HP_SW,
 	},
 	{
+		.vendor        = "(COMPAQ|HP)",
+		.product       = "HSV1.*",
+		.getuid        = DEFAULT_GETUID,
+		.getprio       = "/sbin/mpath_prio_alua /dev/%n",
+		.features      = DEFAULT_FEATURES,
+		.hwhandler     = DEFAULT_HWHANDLER,
+		.selector      = DEFAULT_SELECTOR,
+		.pgpolicy      = GROUP_BY_PRIO,
+		.pgfailback    = -FAILBACK_IMMEDIATE,
+		.rr_weight     = RR_WEIGHT_NONE,
+		.no_path_retry = 60,
+		.minio         = 100,
+		.checker_name  = TUR,
+	},
+	{
 		.vendor        = "HP",
 		.product       = "A6189A",
 		.getuid        = DEFAULT_GETUID,
@@ -116,8 +131,8 @@
 		.pgpolicy      = MULTIBUS,
 		.pgfailback    = FAILBACK_UNDEF,
 		.rr_weight     = RR_WEIGHT_NONE,
-		.no_path_retry = NO_PATH_RETRY_UNDEF,
-		.minio         = DEFAULT_MINIO,
+		.no_path_retry = 60,
+		.minio         = 100,
 		.checker_name  = HP_SW,
 	},
 	{
@@ -129,11 +144,11 @@
 		.features      = DEFAULT_FEATURES,
 		.hwhandler     = DEFAULT_HWHANDLER,
 		.selector      = DEFAULT_SELECTOR,
-		.pgpolicy      = MULTIBUS,
+		.pgpolicy      = GROUP_BY_PRIO,
 		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
-		.no_path_retry = NO_PATH_RETRY_UNDEF,
-		.minio         = DEFAULT_MINIO,
+		.no_path_retry = 60,
+		.minio         = 100,
 		.checker_name  = TUR,
 	},
 	{
@@ -145,10 +160,10 @@
 		.hwhandler     = DEFAULT_HWHANDLER,
 		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = GROUP_BY_PRIO,
-		.pgfailback    = FAILBACK_UNDEF,
+		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
-		.no_path_retry = NO_PATH_RETRY_UNDEF,
-		.minio         = DEFAULT_MINIO,
+		.no_path_retry = 60,
+		.minio         = 100,
 		.checker_name  = TUR,
 	},
 	/*
@@ -245,11 +260,11 @@
 		.hwhandler     = DEFAULT_HWHANDLER,
 		.selector      = DEFAULT_SELECTOR,
 		.pgpolicy      = MULTIBUS,
-		.pgfailback    = FAILBACK_UNDEF,
+		.pgfailback    = -FAILBACK_IMMEDIATE,
 		.rr_weight     = RR_WEIGHT_NONE,
 		.no_path_retry = NO_PATH_RETRY_UNDEF,
-		.minio         = DEFAULT_MINIO,
-		.checker_name  = READSECTOR0,
+		.minio         = 100,
+		.checker_name  = TUR,
 	},
 	{
 		.vendor        = "HITACHI",


More information about the dm-devel mailing list