[dm-devel] [PATCH 06/12] Make multipath add wwids from kernel cmdline mpath.wwids with -A

Hannes Reinecke hare at suse.de
Wed Jul 2 06:03:38 UTC 2014

On 07/01/2014 09:22 PM, Christophe Varoqui wrote:
> Hannes,
> would you Ack this one, or do you have some other idea for this in
> your tree ?
Sigh. The whole multipath / systemd / dracut integration
is _a mess_.
The main problem is that RH and SUSE treat multipath handling 
(From what I can see. I've still a hard time to understand how
  multipath booting works with RH. So there might be errors.)

RH is taking a restrictive approach, ie it'll allow only configured 
multipath devices during boot. IE it'll accept only devices present
in '/etc/multipath/wwids' for booting. So when coming across a new
wwid multipath won't be setup there, so of course they'll need an
additional parameter for that.

SUSE, OTOH, is taking the permissive approach. When multipath is 
included in dracut it'll try to generate multipath devices for _all_ 
existing devices; the wwid file is not really required here.
And, consequently, the '-A' parameter isn't required, too.

While this is nice and proper, both approaches have issues:
- From what I've seen RH is building a 'generic' initrd, and
   configures them via the kernel or dracut commandline.
   Which makes it a bit hard for multipathing as the wwid
   most certainly cannot be part of /etc/multipath/wwids.
   But I guess this is what should be fixed by this patch.
- SUSE is building a 'per-host' initrd, ie it'll generate
   an initrd for that specific installation.
   So there isn't actually a _need_ for the permissive approach,
   as chances are it'll never come across anything else
   _but_ the configured device.
   Plus I haven't really evaluated whether the permissive
   approach actually works properly, ie that multipath will
   try to create device-mapper devices for unknown wwids.

But back to the patch.
I must say I'm not really in favour of this.
Implementing kernel commandline parsing in the _daemon_ is just 
downright evil.
It would be _far_ more sensible to have it implemented in dracut
as a commandline hook, which just adds the wwid from the kernel 
commandline to /etc/multipath/wwids.
That's a simple shell script with no magic involved.
Then the wwids would be in place when multipathd is started and 
everything will work.


P.S.: And yes, I do have some patches queued, too ...
Dr. Hannes Reinecke		      zSeries & Storage
hare at suse.de			      +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)

More information about the dm-devel mailing list