[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