From: Martin Wilck <mwilck@suse.com>
To: Xose Vazquez Perez <xose.vazquez@gmail.com>,
Hannes Reinecke <hare@suse.de>,
Benjamin Marzinski <bmarzins@redhat.com>,
Christophe Varoqui <christophe.varoqui@opensvc.com>,
dm-devel mailing list <dm-devel@redhat.com>,
Leonardo Arena <rnalrd@alpinelinux.org>,
Thomas Deutschmann <whissi@gentoo.org>,
Lars Wendler <polynomial-c@gentoo.org>,
Ritesh Raj Sarraf <rrs@debian.org>,
Vincent McIntyre <vincent.mcintyre@csiro.au>,
Julian Andres Klode <juliank@ubuntu.com>,
Michael Lass <bevan@bi-co.net>
Subject: Re: Can we drop 'hardware_handler "1 alua"'?
Date: Tue, 27 Mar 2018 21:39:32 +0200 [thread overview]
Message-ID: <1522179572.13140.29.camel@suse.com> (raw)
In-Reply-To: <9660e35b-7c25-f74d-3b26-561e387e501b@gmail.com>
On Tue, 2018-03-27 at 17:46 +0200, Xose Vazquez Perez wrote:
> On 03/27/2018 10:56 AM, Martin Wilck wrote:
>
> > hwtable.c has multiple entries that set 'hardware_handler "1 alua"'
> > explicitly. But the kernel has been auto-attaching the ALUA
> > hwhandler
> > to devices that support it since 4.3, the only prerequisite being
> > that
> > scsi_dh_alua is present at device probing time (kernel commits
> > d95dbff2, d6a32b98). "retain_attached_hwhandler" is also hard-wired
> > since 4.3. Thus if the above prerequisite is met, there's no point
> > in
> > setting 'hardware_handler "1 alua"'.
> >
> > We've recently seen problems with the explicit setting of the alua
> > hwhandler in the hwtable; if we do this and the device fails ALUA
> > for
> > whatever reason, setting up the multipath map fails entirely.
> >
> > Therefore we have reasons to try and remove 'hardware_handler "1
> > alua"'
> > from the hwtable. But it could cause regressions in some cases,
> > e.g.
> > for distributions that don't force-load scsi_dh_alua before device
> > probing, or for kernels older than 4.3.
>
> Remove it, and add info to README.alua or README.kernel-lower-4.4 ...
>
>
> systemd distributions are safe with this line from
> multipathd/multipathd.service:
> ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac
> dm-multipath
No. That's sufficient if multipathd uses 'hardware_handler "1 alua"',
but it isn't otherwise. Here is why:
The kernel assigns a hardware handler
a) when a device is probed, a match is found in the internal hwtable
in scsi_dh.c, and the the matched scsh_dh_... driver is loaded into the
kernel at that point in time (no module autoloading),
b) when a dm_multipath device is set up requesting a hwhandler
explicitly (that would be the 'hardware_handler "1 alua"' case),
c) when the user sets the handler by writing to the sysfs "dh_state"
attribute (doesn't matter here).
In particular, when a hwhandler module is loaded, the kernel does _not_
look through the list of already probed SCSI devices to see if it
matches any of them.
The ExecStartPre= line above is executed when multipathd is started,
which is usually after SCSI device probing, so a) doesn't apply. If we
don't have 'hardware_handler "1 alua"', b) doesn't apply, either.
To avoid this problem, distributions would need to modprobe the
scsi_dh_XXX drivers before the other SCSI modules.
Regards
Martin
>
>
> Gentoo, Alpine and Debian/Ubuntu should adapt their OpenRC/sysvinit
> scripts and
> also initrd, just in case.
>
>
> The last longterm-kernel<4.4, 3.16 will die in "Apr, 2020":
> https://www.kernel.org/category/releases.html
>
--
Dr. Martin Wilck <mwilck@suse.com>, Tel. +49 (0)911 74053 2107
SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton
HRB 21284 (AG Nürnberg)
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
prev parent reply other threads:[~2018-03-27 19:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-27 8:56 Can we drop 'hardware_handler "1 alua"'? Martin Wilck
2018-03-27 15:09 ` Benjamin Marzinski
2018-03-27 16:01 ` Xose Vazquez Perez
2018-03-27 15:46 ` Xose Vazquez Perez
2018-03-27 19:39 ` Martin Wilck [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1522179572.13140.29.camel@suse.com \
--to=mwilck@suse.com \
--cc=bevan@bi-co.net \
--cc=bmarzins@redhat.com \
--cc=christophe.varoqui@opensvc.com \
--cc=dm-devel@redhat.com \
--cc=hare@suse.de \
--cc=juliank@ubuntu.com \
--cc=polynomial-c@gentoo.org \
--cc=rnalrd@alpinelinux.org \
--cc=rrs@debian.org \
--cc=vincent.mcintyre@csiro.au \
--cc=whissi@gentoo.org \
--cc=xose.vazquez@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox