[dm-devel] [PATCH] multipathd: update defaults

Xose Vazquez Perez xose.vazquez at gmail.com
Sun Jun 5 18:24:17 UTC 2016


Hannes Reinecke wrote:

> For years I've been telling our customers to use the 'tur' checker
> as the current default 'directio' will cause spurious path failures
> under high load.

If directio is unreliable, it must be _fixed_ or *removed* .
And this text in multipath.conf.5 needs to be replaced:
"readsector0 (Deprecated) Read the first sector of the device.
This checker is being deprecated, please use directio instead"

There are 11 devices with path_checker=directio as default option,
what to do with them ?

> And for several versions (years, even) the linux kernel has the ability
> to correctly detect the device handler, so we should be making
> 'retain_hw_handler' the default.
> And if we do this we also want to enable 'detect_prio', to ensure
> we pick the correct prioritizer.

I do really like both features, it makes the multipath setup almost
a completely unattended task. And neat for live_cd, installers of
distributions, rescue environments and anywhere with a ro /etc.

There are a handful of devices with prio=alua as default option,
and they should be revoked to their "original" configuration.

> So this patch updates the default setting to always enable
> 'retain_hw_handler' and 'detect_prio' and switch to 'tur'
> as the default path checker.

The patch should be split in two: directio->tur and autodetect_alua.

CCed: All controllers maintainers, let's see what they think.

> Signed-off-by: Hannes Reinecke <hare at suse.de>
> ---
>  libmultipath/checkers.h    | 2 +-
>  libmultipath/defaults.h    | 4 ++--
>  multipath/multipath.conf.5 | 4 ++--
>  3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/libmultipath/checkers.h b/libmultipath/checkers.h
> index a935b3f..374c826 100644
> --- a/libmultipath/checkers.h
> +++ b/libmultipath/checkers.h
> @@ -85,7 +85,7 @@ enum path_check_state {
>  #define READSECTOR0  "readsector0"
>  #define CCISS_TUR    "cciss_tur"
>  
> -#define DEFAULT_CHECKER DIRECTIO
> +#define DEFAULT_CHECKER TUR
>  
>  #define ASYNC_TIMEOUT_SEC	30
>  
> diff --git a/libmultipath/defaults.h b/libmultipath/defaults.h
> index 96f5a2c..4948271 100644
> --- a/libmultipath/defaults.h
> +++ b/libmultipath/defaults.h
> @@ -16,8 +16,8 @@
>  #define DEFAULT_FIND_MULTIPATHS	0
>  #define DEFAULT_FAST_IO_FAIL	5
>  #define DEFAULT_DEV_LOSS_TMO   600
> -#define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_OFF
> -#define DEFAULT_DETECT_PRIO DETECT_PRIO_OFF
> +#define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
> +#define DEFAULT_DETECT_PRIO DETECT_PRIO_ON
>  #define DEFAULT_DEFERRED_REMOVE DEFERRED_REMOVE_OFF
>  #define DEFAULT_DELAY_CHECKS DELAY_CHECKS_OFF
>  #define DEFAULT_UEVENT_STACKSIZE 256
> diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
> index aaaa01b..20a2304 100644
> --- a/multipath/multipath.conf.5
> +++ b/multipath/multipath.conf.5
> @@ -295,7 +295,7 @@ Check the path state for LSI/Engenio/NetApp E-Series RDAC storage controller.
>  .B directio
>  Read the first sector with direct I/O.
>  .TP
> -Default value is \fIdirectio\fR.
> +Default value is \fItur\fR.
>  .RE
>  .TP
>  .B failback
> @@ -463,7 +463,7 @@ are supported, or the
>  prioritizer if not. If set to
>  .I no
>  , the prioritizer will be selected as usual. Default is
> -.I no
> +.I yes
>  .TP
>  .B force_sync
>  If set to
> -- 
> 2.6.6




More information about the dm-devel mailing list