* Add support for bringing up multipath root devices
@ 2009-11-24 19:52 Peter Jones
[not found] ` <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
` (4 more replies)
0 siblings, 5 replies; 21+ messages in thread
From: Peter Jones @ 2009-11-24 19:52 UTC (permalink / raw)
To: initramfs-u79uwXL29TY76Z2rM5mHXA
This patch series adds support for bringing up the root device when it's
on a multipath device. It suplements the current multipath support which
is provided by device-mapper-multipath by adding logic to scan for
multipaths as configured in multipath.conf .
^ permalink raw reply [flat|nested] 21+ messages in thread[parent not found: <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-24 19:52 ` Peter Jones [not found] ` <1259092378-14143-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2009-11-24 19:52 ` [PATCH 2/4] Add #!/bin/bash for consistency Peter Jones ` (2 subsequent siblings) 3 siblings, 1 reply; 21+ messages in thread From: Peter Jones @ 2009-11-24 19:52 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as well as when they're in /lib64/multipath --- modules.d/90multipath/install | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index 9552918..d20ea38 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -11,8 +11,9 @@ for f in \ /sbin/xdrgetuid \ /sbin/xdrgetprio \ /etc/xdrdevices.conf \ - /lib/libmultipath* \ - /lib/multipath/* ;do + /lib*/libmultipath* \ + /lib*/multipath/* + ;do inst $f done -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <1259092378-14143-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <1259092378-14143-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-24 19:55 ` Peter Jones [not found] ` <4B0C3A19.3010509-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 21+ messages in thread From: Peter Jones @ 2009-11-24 19:55 UTC (permalink / raw) To: Peter Jones; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA On 11/24/2009 02:52 PM, Peter Jones wrote: > Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as > well as when they're in /lib64/multipath > --- > modules.d/90multipath/install | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install > index 9552918..d20ea38 100755 > --- a/modules.d/90multipath/install > +++ b/modules.d/90multipath/install > @@ -11,8 +11,9 @@ for f in \ > /sbin/xdrgetuid \ > /sbin/xdrgetprio \ > /etc/xdrdevices.conf \ > - /lib/libmultipath* \ > - /lib/multipath/* ;do > + /lib*/libmultipath* \ > + /lib*/multipath/* > + ;do > inst $f > done It occurs to me that I missed a "\" here when I inserted a newline. -- Peter Any connection between your reality and mine is purely coincidental. ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0C3A19.3010509-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <4B0C3A19.3010509-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-24 19:59 ` Peter Jones 0 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-24 19:59 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as well as when they're in /lib64/multipath --- modules.d/90multipath/install | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index 9552918..7bdf686 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -11,8 +11,9 @@ for f in \ /sbin/xdrgetuid \ /sbin/xdrgetprio \ /etc/xdrdevices.conf \ - /lib/libmultipath* \ - /lib/multipath/* ;do + /lib*/libmultipath* \ + /lib*/multipath/* \ + ;do inst $f done -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 2/4] Add #!/bin/bash for consistency. [not found] ` <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2009-11-24 19:52 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Peter Jones @ 2009-11-24 19:52 ` Peter Jones 2009-11-24 19:52 ` [PATCH 3/4] Make sure and get all the multipath related modules Peter Jones 2009-11-24 19:52 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Peter Jones 3 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-24 19:52 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones Most install scripts seem to have it there, may as well make this one like the rest... --- modules.d/90multipath/install | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index d20ea38..52d69f5 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ $hostonly ]]; then inst /etc/multipath.conf fi -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 3/4] Make sure and get all the multipath related modules. [not found] ` <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2009-11-24 19:52 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Peter Jones 2009-11-24 19:52 ` [PATCH 2/4] Add #!/bin/bash for consistency Peter Jones @ 2009-11-24 19:52 ` Peter Jones 2009-11-24 19:52 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Peter Jones 3 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-24 19:52 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones Install all modules that are any of: - scsi device handler - dm log handler - dm path selector - dm target It would be nice if we could tell which log handlers and targets are multipath related, but we really can't. --- modules.d/90multipath/installkernel | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/modules.d/90multipath/installkernel b/modules.d/90multipath/installkernel index 50c7d6a..4a596f0 100755 --- a/modules.d/90multipath/installkernel +++ b/modules.d/90multipath/installkernel @@ -1 +1,8 @@ -instmods dm-multipath dm-round-robin multipath +#!/bin/bash + +mp_mod_test() { + local mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target' + nm -uPA "$1" | egrep -q "$mpfuncs" +} + +instmods $(filter_kernel_modules mp_mod_test) -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf. [not found] ` <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> ` (2 preceding siblings ...) 2009-11-24 19:52 ` [PATCH 3/4] Make sure and get all the multipath related modules Peter Jones @ 2009-11-24 19:52 ` Peter Jones 3 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-24 19:52 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Peter Jones This brings up multipath devices which are configured in multipath.conf as we find them. --- modules.d/90multipath/14-multipath-scan.rules | 9 +++++++++ modules.d/90multipath/install | 3 +++ modules.d/90multipath/multipath-scan.sh | 16 ++++++++++++++++ 3 files changed, 28 insertions(+), 0 deletions(-) create mode 100644 modules.d/90multipath/14-multipath-scan.rules create mode 100644 modules.d/90multipath/multipath-scan.sh diff --git a/modules.d/90multipath/14-multipath-scan.rules b/modules.d/90multipath/14-multipath-scan.rules new file mode 100644 index 0000000..fcb8173 --- /dev/null +++ b/modules.d/90multipath/14-multipath-scan.rules @@ -0,0 +1,9 @@ +# scan for multipath devices +SUBSYSTEM!="block", GOTO="end_mpath_scan" +KERNEL!="sd*", GOTO="end_mpath_scan" +PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e 9429i ] && exit 0; done; exit 1;' ", GOTO="end_mpath_scan" +RUN+="/sbin/modprobe dm-multipath" +RUN+="/bin/echo 'queuing multipath scan'" +RUN+="/sbin/initqueue --settled --onetime --unique --name=mpscan /sbin/multipath-scan" +RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'" +LABEL="end_mpath_scan" diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index 52d69f5..9662848 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -22,3 +22,6 @@ done inst_hook pre-trigger 02 "$moddir/multipathd.sh" inst_hook pre-pivot 02 "$moddir/multipathd-stop.sh" inst_rules 40-multipath.rules + +inst "$moddir/multipath-scan.sh" /sbin/multipath-scan +inst_rules "$moddir/14-multipath-scan.rules" diff --git a/modules.d/90multipath/multipath-scan.sh b/modules.d/90multipath/multipath-scan.sh new file mode 100644 index 0000000..0e1d3f2 --- /dev/null +++ b/modules.d/90multipath/multipath-scan.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# scan for multipaths if udev has settled + +. /lib/dracut-lib.sh + +[ -d /etc/multipath ] || mkdir -p /etc/multipath +mpdevs=$( + for f in /tmp/.multipath-scan-* ; do + [ -e "$f" ] || continue + echo -n "${f##/tmp/.multipath-scan-} " + done +) + +[ -e /etc/multipath.conf ] || exit 1 +multipath ${mpdevs} -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <4B0C40BC.5000107@redhat.com>]
[parent not found: <4B0C40BC.5000107-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <4B0C40BC.5000107-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 10:21 ` Hans de Goede [not found] ` <4B0D0531.2050401-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 21+ messages in thread From: Hans de Goede @ 2009-11-25 10:21 UTC (permalink / raw) To: initramfs; +Cc: Peter Jones Hi, On 11/24/2009 09:23 PM, Peter Jones wrote: > Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as > well as when they're in /lib64/multipath > --- > modules.d/90multipath/install | 5 +++-- > 1 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install > index 9552918..d20ea38 100755 > --- a/modules.d/90multipath/install > +++ b/modules.d/90multipath/install > @@ -11,8 +11,9 @@ for f in \ > /sbin/xdrgetuid \ > /sbin/xdrgetprio \ > /etc/xdrdevices.conf \ > - /lib/libmultipath* \ > - /lib/multipath/* ;do > + /lib*/libmultipath* \ > + /lib*/multipath/* > + ;do > inst $f > done > Not sure if we want to handle this this way, this way if both a 32 bit and 64 bit version are present on a system both will get copied to the initrd, I think it would be better to handle this how it is handled in for example: modules/01fips/install or modules/95nfs/install: if ldd $(which rpc.idmapd) |grep -q lib64; then LIBDIR="/lib64" else LIBDIR="/lib" fi dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap_nsswitch.so* 2>/dev/null ) Regards, Hans ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0D0531.2050401-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <4B0D0531.2050401-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 15:10 ` Peter Jones 0 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:10 UTC (permalink / raw) To: Hans de Goede; +Cc: initramfs On 11/25/2009 05:21 AM, Hans de Goede wrote: > Hi, > > On 11/24/2009 09:23 PM, Peter Jones wrote: >> Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as >> well as when they're in /lib64/multipath >> --- >> modules.d/90multipath/install | 5 +++-- >> 1 files changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/modules.d/90multipath/install >> b/modules.d/90multipath/install >> index 9552918..d20ea38 100755 >> --- a/modules.d/90multipath/install >> +++ b/modules.d/90multipath/install >> @@ -11,8 +11,9 @@ for f in \ >> /sbin/xdrgetuid \ >> /sbin/xdrgetprio \ >> /etc/xdrdevices.conf \ >> - /lib/libmultipath* \ >> - /lib/multipath/* ;do >> + /lib*/libmultipath* \ >> + /lib*/multipath/* >> + ;do >> inst $f >> done >> > > Not sure if we want to handle this this way, this way if both a 32 bit and > 64 bit version are present on a system both will get copied to the > initrd, I think it would be better to handle this how it is handled in > for example: > modules/01fips/install > or > modules/95nfs/install: > > if ldd $(which rpc.idmapd) |grep -q lib64; then > LIBDIR="/lib64" > else > LIBDIR="/lib" > fi > > dracut_install $(ls {/usr,}$LIBDIR/libnfsidmap_nsswitch.so* 2>/dev/null ) Fair point. I'm really not sure why device-mapper-multipath is a multilib package at all, but I guess it's best to do what you're saying. -- Peter "I can imagine a world without war, without hate. I can imagine us attacking it, because they'd never expect it." ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0C40E4.6080006@redhat.com>]
[parent not found: <4B0C40E4.6080006-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 2/4] Add #!/bin/bash for consistency. [not found] ` <4B0C40E4.6080006-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 10:22 ` Hans de Goede 0 siblings, 0 replies; 21+ messages in thread From: Hans de Goede @ 2009-11-25 10:22 UTC (permalink / raw) To: initramfs; +Cc: Peter Jones Hi, On 11/24/2009 09:24 PM, Peter Jones wrote: > Most install scripts seem to have it there, may as well make this one > like the rest... > --- > modules.d/90multipath/install | 2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install > index d20ea38..52d69f5 100755 > --- a/modules.d/90multipath/install > +++ b/modules.d/90multipath/install > @@ -1,3 +1,5 @@ > +#!/bin/bash > + > if [[ $hostonly ]]; then > inst /etc/multipath.conf > fi Ack, Regards, hans ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0C40C7.7010206@redhat.com>]
[parent not found: <4B0C40C7.7010206-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 3/4] Make sure and get all the multipath related modules. [not found] ` <4B0C40C7.7010206-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 10:23 ` Hans de Goede 0 siblings, 0 replies; 21+ messages in thread From: Hans de Goede @ 2009-11-25 10:23 UTC (permalink / raw) To: initramfs; +Cc: Peter Jones Hi, On 11/24/2009 09:23 PM, Peter Jones wrote: > Install all modules that are any of: > - scsi device handler > - dm log handler > - dm path selector > - dm target > > It would be nice if we could tell which log handlers and targets are > multipath related, but we really can't. > --- > modules.d/90multipath/installkernel | 9 ++++++++- > 1 files changed, 8 insertions(+), 1 deletions(-) > > diff --git a/modules.d/90multipath/installkernel b/modules.d/90multipath/installkernel > index 50c7d6a..4a596f0 100755 > --- a/modules.d/90multipath/installkernel > +++ b/modules.d/90multipath/installkernel > @@ -1 +1,8 @@ > -instmods dm-multipath dm-round-robin multipath > +#!/bin/bash > + > +mp_mod_test() { > + local mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target' > + nm -uPA "$1" | egrep -q "$mpfuncs" > +} > + > +instmods $(filter_kernel_modules mp_mod_test) Looks good to me, ack. Regards, Hans ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0C40ED.9000909@redhat.com>]
[parent not found: <4B0C40ED.9000909-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf. [not found] ` <4B0C40ED.9000909-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 10:35 ` Hans de Goede [not found] ` <4B0D087E.1030502-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 21+ messages in thread From: Hans de Goede @ 2009-11-25 10:35 UTC (permalink / raw) To: initramfs; +Cc: Peter Jones Hi, On 11/24/2009 09:24 PM, Peter Jones wrote: > This brings up multipath devices which are configured in multipath.conf > as we find them. > --- > modules.d/90multipath/14-multipath-scan.rules | 9 +++++++++ > modules.d/90multipath/install | 3 +++ > modules.d/90multipath/multipath-scan.sh | 16 ++++++++++++++++ > 3 files changed, 28 insertions(+), 0 deletions(-) > create mode 100644 modules.d/90multipath/14-multipath-scan.rules > create mode 100644 modules.d/90multipath/multipath-scan.sh > > diff --git a/modules.d/90multipath/14-multipath-scan.rules b/modules.d/90multipath/14-multipath-scan.rules > new file mode 100644 > index 0000000..fcb8173 > --- /dev/null > +++ b/modules.d/90multipath/14-multipath-scan.rules > @@ -0,0 +1,9 @@ > +# scan for multipath devices > +SUBSYSTEM!="block", GOTO="end_mpath_scan" > +KERNEL!="sd*", GOTO="end_mpath_scan" > +PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e 9429i ]&& exit 0; done; exit 1;' ", GOTO="end_mpath_scan" What is this 9429i thingie ? a comment about this in the rules file might be good to have. > +RUN+="/sbin/modprobe dm-multipath" > +RUN+="/bin/echo 'queuing multipath scan'" > +RUN+="/sbin/initqueue --settled --onetime --unique --name=mpscan /sbin/multipath-scan" > +RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'" > +LABEL="end_mpath_scan" > diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install > index 52d69f5..9662848 100755 > --- a/modules.d/90multipath/install > +++ b/modules.d/90multipath/install > @@ -22,3 +22,6 @@ done > inst_hook pre-trigger 02 "$moddir/multipathd.sh" > inst_hook pre-pivot 02 "$moddir/multipathd-stop.sh" > inst_rules 40-multipath.rules > + > +inst "$moddir/multipath-scan.sh" /sbin/multipath-scan > +inst_rules "$moddir/14-multipath-scan.rules" > diff --git a/modules.d/90multipath/multipath-scan.sh b/modules.d/90multipath/multipath-scan.sh > new file mode 100644 > index 0000000..0e1d3f2 > --- /dev/null > +++ b/modules.d/90multipath/multipath-scan.sh > @@ -0,0 +1,16 @@ > +#!/bin/sh > + > +# scan for multipaths if udev has settled > + > +. /lib/dracut-lib.sh > + > +[ -d /etc/multipath ] || mkdir -p /etc/multipath > +mpdevs=$( > + for f in /tmp/.multipath-scan-* ; do > + [ -e "$f" ] || continue > + echo -n "${f##/tmp/.multipath-scan-} " > + done > +) > + > +[ -e /etc/multipath.conf ] || exit 1 > +multipath ${mpdevs} command / where does it come from ? Other then that I wonder what the 9429i thingie is, it looks good. Regards, Hans ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0D087E.1030502-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf. [not found] ` <4B0D087E.1030502-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 15:17 ` Peter Jones [not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:17 UTC (permalink / raw) To: Hans de Goede; +Cc: initramfs On 11/25/2009 05:35 AM, Hans de Goede wrote: > Hi, > > On 11/24/2009 09:24 PM, Peter Jones wrote: >> This brings up multipath devices which are configured in multipath.conf >> as we find them. >> --- >> modules.d/90multipath/14-multipath-scan.rules | 9 +++++++++ >> modules.d/90multipath/install | 3 +++ >> modules.d/90multipath/multipath-scan.sh | 16 ++++++++++++++++ >> 3 files changed, 28 insertions(+), 0 deletions(-) >> create mode 100644 modules.d/90multipath/14-multipath-scan.rules >> create mode 100644 modules.d/90multipath/multipath-scan.sh >> >> diff --git a/modules.d/90multipath/14-multipath-scan.rules >> b/modules.d/90multipath/14-multipath-scan.rules >> new file mode 100644 >> index 0000000..fcb8173 >> --- /dev/null >> +++ b/modules.d/90multipath/14-multipath-scan.rules >> @@ -0,0 +1,9 @@ >> +# scan for multipath devices >> +SUBSYSTEM!="block", GOTO="end_mpath_scan" >> +KERNEL!="sd*", GOTO="end_mpath_scan" >> +PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e 9429i >> ]&& exit 0; done; exit 1;' ", GOTO="end_mpath_scan" > > What is this 9429i thingie ? a comment about this in the rules file > might be good to have. Something really funny happened and I'm not sure how or at what step. It's supposed to be "$$i". I'll post a corrected version with your other suggestions. -- Peter "I can imagine a world without war, without hate. I can imagine us attacking it, because they'd never expect it." ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Add support for bringing up multipath root devices [version 2] [not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 15:25 ` Peter Jones 2009-11-25 15:25 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Peter Jones ` (3 subsequent siblings) 4 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:25 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Hans de Goede This patch series adds support for bringing up the root device when it's on a multipath device. It suplements the current multipath support which is provided by device-mapper-multipath by adding logic to scan for multipaths as configured in multipath.conf . This revision includes changes suggested by Hans De Goede. ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2009-11-25 15:25 ` Add support for bringing up multipath root devices [version 2] Peter Jones @ 2009-11-25 15:25 ` Peter Jones [not found] ` <1259162752-22372-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2009-11-25 15:25 ` [PATCH 2/4] Add #!/bin/bash for consistency Peter Jones ` (2 subsequent siblings) 4 siblings, 1 reply; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:25 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Hans de Goede, Peter Jones Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as well as when they're in /lib64/multipath --- modules.d/90multipath/install | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index 9552918..4890825 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -2,6 +2,12 @@ if [[ $hostonly ]]; then inst /etc/multipath.conf fi +if ldd $(/sbin/multipath) |grep -q lib64; then + LIBDIR="/lib64" +else + LIBDIR="/lib" +fi + for f in \ /sbin/dmsetup \ /sbin/kpartx \ @@ -11,8 +17,8 @@ for f in \ /sbin/xdrgetuid \ /sbin/xdrgetprio \ /etc/xdrdevices.conf \ - /lib/libmultipath* \ - /lib/multipath/* ;do + $(ls $LIBDIR/libmultipath* $LIBDIR/multipath/*) \ + ;do inst $f done -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <1259162752-22372-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 1/4] Use glob for libdir when installing multipath libraries. [not found] ` <1259162752-22372-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 15:52 ` Peter Jones 0 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:52 UTC (permalink / raw) To: Peter Jones; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA, Hans de Goede On 11/25/2009 10:25 AM, Peter Jones wrote: > Use "/lib*/" not "/lib/" so it works when they're in /lib/multipath as > well as when they're in /lib64/multipath > --- > modules.d/90multipath/install | 10 ++++++++-- > 1 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install > index 9552918..4890825 100755 > --- a/modules.d/90multipath/install > +++ b/modules.d/90multipath/install > @@ -2,6 +2,12 @@ if [[ $hostonly ]]; then > inst /etc/multipath.conf > fi > > +if ldd $(/sbin/multipath) |grep -q lib64; then This is obviously wrong. > + LIBDIR="/lib64" > +else > + LIBDIR="/lib" > +fi > + > for f in \ > /sbin/dmsetup \ > /sbin/kpartx \ > @@ -11,8 +17,8 @@ for f in \ > /sbin/xdrgetuid \ > /sbin/xdrgetprio \ > /etc/xdrdevices.conf \ > - /lib/libmultipath* \ > - /lib/multipath/* ;do > + $(ls $LIBDIR/libmultipath* $LIBDIR/multipath/*) \ > + ;do > inst $f > done > -- Peter "I can imagine a world without war, without hate. I can imagine us attacking it, because they'd never expect it." ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 2/4] Add #!/bin/bash for consistency. [not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 2009-11-25 15:25 ` Add support for bringing up multipath root devices [version 2] Peter Jones 2009-11-25 15:25 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Peter Jones @ 2009-11-25 15:25 ` Peter Jones 2009-11-25 15:25 ` [PATCH 3/4] Make sure and get all the multipath related modules Peter Jones 2009-11-25 15:25 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Peter Jones 4 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:25 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Hans de Goede, Peter Jones Most install scripts seem to have it there, may as well make this one like the rest... --- modules.d/90multipath/install | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index 4890825..499f7c9 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -1,3 +1,5 @@ +#!/bin/bash + if [[ $hostonly ]]; then inst /etc/multipath.conf fi -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 3/4] Make sure and get all the multipath related modules. [not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> ` (2 preceding siblings ...) 2009-11-25 15:25 ` [PATCH 2/4] Add #!/bin/bash for consistency Peter Jones @ 2009-11-25 15:25 ` Peter Jones 2009-11-25 15:25 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Peter Jones 4 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:25 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Hans de Goede, Peter Jones Install all modules that are any of: - scsi device handler - dm log handler - dm path selector - dm target It would be nice if we could tell which log handlers and targets are multipath related, but we really can't. --- modules.d/90multipath/installkernel | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/modules.d/90multipath/installkernel b/modules.d/90multipath/installkernel index 50c7d6a..4a596f0 100755 --- a/modules.d/90multipath/installkernel +++ b/modules.d/90multipath/installkernel @@ -1 +1,8 @@ -instmods dm-multipath dm-round-robin multipath +#!/bin/bash + +mp_mod_test() { + local mpfuncs='scsi_register_device_handler|dm_dirty_log_type_register|dm_register_path_selector|dm_register_target' + nm -uPA "$1" | egrep -q "$mpfuncs" +} + +instmods $(filter_kernel_modules mp_mod_test) -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf. [not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> ` (3 preceding siblings ...) 2009-11-25 15:25 ` [PATCH 3/4] Make sure and get all the multipath related modules Peter Jones @ 2009-11-25 15:25 ` Peter Jones [not found] ` <1259162752-22372-5-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 4 siblings, 1 reply; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:25 UTC (permalink / raw) To: initramfs-u79uwXL29TY76Z2rM5mHXA; +Cc: Hans de Goede, Peter Jones This brings up multipath devices which are configured in multipath.conf as we find them. --- modules.d/90multipath/14-multipath-scan.rules | 9 +++++++++ modules.d/90multipath/install | 3 +++ modules.d/90multipath/multipath-scan.sh | 16 ++++++++++++++++ 3 files changed, 28 insertions(+), 0 deletions(-) create mode 100644 modules.d/90multipath/14-multipath-scan.rules create mode 100644 modules.d/90multipath/multipath-scan.sh diff --git a/modules.d/90multipath/14-multipath-scan.rules b/modules.d/90multipath/14-multipath-scan.rules new file mode 100644 index 0000000..b4acf57 --- /dev/null +++ b/modules.d/90multipath/14-multipath-scan.rules @@ -0,0 +1,9 @@ +# scan for multipath devices +SUBSYSTEM!="block", GOTO="end_mpath_scan" +KERNEL!="sd*", GOTO="end_mpath_scan" +PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", GOTO="end_mpath_scan" +RUN+="/sbin/modprobe dm-multipath" +RUN+="/bin/echo 'queuing multipath scan'" +RUN+="/sbin/initqueue --settled --onetime --unique --name=mpscan /sbin/multipath-scan" +RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'" +LABEL="end_mpath_scan" diff --git a/modules.d/90multipath/install b/modules.d/90multipath/install index 499f7c9..bafdd2c 100755 --- a/modules.d/90multipath/install +++ b/modules.d/90multipath/install @@ -27,3 +27,6 @@ done inst_hook pre-trigger 02 "$moddir/multipathd.sh" inst_hook pre-pivot 02 "$moddir/multipathd-stop.sh" inst_rules 40-multipath.rules + +inst "$moddir/multipath-scan.sh" /sbin/multipath-scan +inst_rules "$moddir/14-multipath-scan.rules" diff --git a/modules.d/90multipath/multipath-scan.sh b/modules.d/90multipath/multipath-scan.sh new file mode 100644 index 0000000..0e1d3f2 --- /dev/null +++ b/modules.d/90multipath/multipath-scan.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# scan for multipaths if udev has settled + +. /lib/dracut-lib.sh + +[ -d /etc/multipath ] || mkdir -p /etc/multipath +mpdevs=$( + for f in /tmp/.multipath-scan-* ; do + [ -e "$f" ] || continue + echo -n "${f##/tmp/.multipath-scan-} " + done +) + +[ -e /etc/multipath.conf ] || exit 1 +multipath ${mpdevs} -- 1.6.5.2 ^ permalink raw reply related [flat|nested] 21+ messages in thread
[parent not found: <1259162752-22372-5-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf. [not found] ` <1259162752-22372-5-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 15:53 ` Hans de Goede [not found] ` <4B0D5306.8050706-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 21+ messages in thread From: Hans de Goede @ 2009-11-25 15:53 UTC (permalink / raw) To: Peter Jones; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA Hi, Patch 1-3 look good. On 11/25/2009 04:25 PM, Peter Jones wrote: > This brings up multipath devices which are configured in multipath.conf > as we find them. > --- > modules.d/90multipath/14-multipath-scan.rules | 9 +++++++++ > modules.d/90multipath/install | 3 +++ > modules.d/90multipath/multipath-scan.sh | 16 ++++++++++++++++ > 3 files changed, 28 insertions(+), 0 deletions(-) > create mode 100644 modules.d/90multipath/14-multipath-scan.rules > create mode 100644 modules.d/90multipath/multipath-scan.sh > > diff --git a/modules.d/90multipath/14-multipath-scan.rules b/modules.d/90multipath/14-multipath-scan.rules > new file mode 100644 > index 0000000..b4acf57 > --- /dev/null > +++ b/modules.d/90multipath/14-multipath-scan.rules > @@ -0,0 +1,9 @@ > +# scan for multipath devices > +SUBSYSTEM!="block", GOTO="end_mpath_scan" > +KERNEL!="sd*", GOTO="end_mpath_scan" > +PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e $$i ]&& exit 0; done; exit 1;' ", GOTO="end_mpath_scan" > +RUN+="/sbin/modprobe dm-multipath" > +RUN+="/bin/echo 'queuing multipath scan'" > +RUN+="/sbin/initqueue --settled --onetime --unique --name=mpscan /sbin/multipath-scan" > +RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'" > +LABEL="end_mpath_scan" Hmm, I just realized something, this rule will keep on triggering if a disk is not part of a multipath setup. As in that case it will never become a holder of a device mapper device. And since things like opening /dev/sda rw (which /sbin/multipath might very well do), trigger a change event, this feels like an infinite loop to me. Maybe this rule should have a ACTION!="add", GOTO="end_mpath_scan" ? I think it would be best to discuss this with Harald. Regards, Hans ^ permalink raw reply [flat|nested] 21+ messages in thread
[parent not found: <4B0D5306.8050706-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>]
* Re: [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf. [not found] ` <4B0D5306.8050706-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> @ 2009-11-25 15:52 ` Peter Jones 0 siblings, 0 replies; 21+ messages in thread From: Peter Jones @ 2009-11-25 15:52 UTC (permalink / raw) To: Hans de Goede; +Cc: initramfs-u79uwXL29TY76Z2rM5mHXA On 11/25/2009 10:53 AM, Hans de Goede wrote: > Hi, > > Patch 1-3 look good. > > On 11/25/2009 04:25 PM, Peter Jones wrote: >> This brings up multipath devices which are configured in multipath.conf >> as we find them. >> --- >> modules.d/90multipath/14-multipath-scan.rules | 9 +++++++++ >> modules.d/90multipath/install | 3 +++ >> modules.d/90multipath/multipath-scan.sh | 16 ++++++++++++++++ >> 3 files changed, 28 insertions(+), 0 deletions(-) >> create mode 100644 modules.d/90multipath/14-multipath-scan.rules >> create mode 100644 modules.d/90multipath/multipath-scan.sh >> >> diff --git a/modules.d/90multipath/14-multipath-scan.rules >> b/modules.d/90multipath/14-multipath-scan.rules >> new file mode 100644 >> index 0000000..b4acf57 >> --- /dev/null >> +++ b/modules.d/90multipath/14-multipath-scan.rules >> @@ -0,0 +1,9 @@ >> +# scan for multipath devices >> +SUBSYSTEM!="block", GOTO="end_mpath_scan" >> +KERNEL!="sd*", GOTO="end_mpath_scan" >> +PROGRAM=="/bin/sh -c 'for i in //holders/dm-[0-9]*; do [ -e $$i ]&& >> exit 0; done; exit 1;' ", GOTO="end_mpath_scan" >> +RUN+="/sbin/modprobe dm-multipath" >> +RUN+="/bin/echo 'queuing multipath scan'" >> +RUN+="/sbin/initqueue --settled --onetime --unique --name=mpscan >> /sbin/multipath-scan" >> +RUN+="/bin/sh -c '>/tmp/.multipath-scan-%k;'" >> +LABEL="end_mpath_scan" > > Hmm, I just realized something, this rule will keep on triggering if a > disk is > not part of a multipath setup. As in that case it will never become a > holder > of a device mapper device. > > And since things like opening /dev/sda rw (which /sbin/multipath might > very well do), trigger a change event, this feels like an infinite loop > to me. It does not trigger a change event. > Maybe this rule should have a > ACTION!="add", GOTO="end_mpath_scan" > > ? > > I think it would be best to discuss this with Harald. > > Regards, > > Hans -- Peter "I can imagine a world without war, without hate. I can imagine us attacking it, because they'd never expect it." ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2009-11-25 15:53 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-24 19:52 Add support for bringing up multipath root devices Peter Jones
[not found] ` <1259092378-14143-1-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-24 19:52 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Peter Jones
[not found] ` <1259092378-14143-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-24 19:55 ` Peter Jones
[not found] ` <4B0C3A19.3010509-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-24 19:59 ` Peter Jones
2009-11-24 19:52 ` [PATCH 2/4] Add #!/bin/bash for consistency Peter Jones
2009-11-24 19:52 ` [PATCH 3/4] Make sure and get all the multipath related modules Peter Jones
2009-11-24 19:52 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Peter Jones
[not found] ` <4B0C40BC.5000107@redhat.com>
[not found] ` <4B0C40BC.5000107-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 10:21 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Hans de Goede
[not found] ` <4B0D0531.2050401-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 15:10 ` Peter Jones
[not found] ` <4B0C40E4.6080006@redhat.com>
[not found] ` <4B0C40E4.6080006-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 10:22 ` [PATCH 2/4] Add #!/bin/bash for consistency Hans de Goede
[not found] ` <4B0C40C7.7010206@redhat.com>
[not found] ` <4B0C40C7.7010206-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 10:23 ` [PATCH 3/4] Make sure and get all the multipath related modules Hans de Goede
[not found] ` <4B0C40ED.9000909@redhat.com>
[not found] ` <4B0C40ED.9000909-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 10:35 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Hans de Goede
[not found] ` <4B0D087E.1030502-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 15:17 ` Peter Jones
[not found] ` <4B0D4A9F.1090606-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 15:25 ` Add support for bringing up multipath root devices [version 2] Peter Jones
2009-11-25 15:25 ` [PATCH 1/4] Use glob for libdir when installing multipath libraries Peter Jones
[not found] ` <1259162752-22372-2-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 15:52 ` Peter Jones
2009-11-25 15:25 ` [PATCH 2/4] Add #!/bin/bash for consistency Peter Jones
2009-11-25 15:25 ` [PATCH 3/4] Make sure and get all the multipath related modules Peter Jones
2009-11-25 15:25 ` [PATCH 4/4] Bring up multipath devices that are configured in multipath.conf Peter Jones
[not found] ` <1259162752-22372-5-git-send-email-pjones-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 15:53 ` Hans de Goede
[not found] ` <4B0D5306.8050706-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2009-11-25 15:52 ` Peter Jones
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox