From: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Harald Hoyer <harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Cc: initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
bmarzins-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Subject: Re: [PATCH] 90multipath: add hostonly multipath.conf in case hostonly mode
Date: Tue, 7 Jul 2015 09:52:52 +0800 [thread overview]
Message-ID: <20150707015252.GA8343@localhost.localdomain> (raw)
In-Reply-To: <559A5279.9010101-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
On 07/06/15 at 12:03pm, Harald Hoyer wrote:
> On 06.07.2015 09:31, Dave Young wrote:
> > For large machine, suppose there's a lot of multipath devices, multipath layer
> > will use a lot of memory. For kdump kernel memory is very limited thus it causes
> > oom. To avoid oom, we only add necessary multipath devices in kdump kernel
> > multipath.conf.
> >
> > This is done by use mpathconf --allow, a new option which is like whitelist.
> >
> > Signed-off-by: Dave Young <dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> > ---
> > modules.d/90multipath/module-setup.sh | 42 ++++++++++++++++++++++++++++-------
> > 1 file changed, 34 insertions(+), 8 deletions(-)
> >
> > diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
> > index 29643d4..321f13e 100755
> > --- a/modules.d/90multipath/module-setup.sh
> > +++ b/modules.d/90multipath/module-setup.sh
> > @@ -1,18 +1,28 @@
> > #!/bin/bash
> >
> > +is_mpath() {
> > + local _dev=$1
> > + [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1
> > + [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0
> > + return 1
> > +}
> > +
> > +majmin_to_mpath_dev() {
> > + local _dev
> > + for i in `ls -1 /dev/mapper/mpath*`; do
> > + dev=$(get_maj_min $i)
> > + if [ "$dev" = "$1" ]; then
> > + echo $i
> > + return
> > + fi
> > + done
> > +}
> > # called by dracut
> > check() {
> > local _rootdev
> > # if there's no multipath binary, no go.
> > require_binaries multipath || return 1
> >
> > - is_mpath() {
> > - local _dev=$1
> > - [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1
> > - [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0
> > - return 1
> > - }
> > -
> > [[ $hostonly ]] || [[ $mount_needs ]] && {
> > for_each_host_dev_and_slaves is_mpath || return 255
> > }
> > @@ -79,7 +89,18 @@ installkernel() {
> >
> > # called by dracut
> > install() {
> > - local _f
> > + local _f _allow
> > + add_hostonly_mpath_conf() {
> > + is_mpath $1 && {
> > + local _dev
> > +
> > + _dev=$(majmin_to_mpath_dev $1)
> > + [ -z "$_dev" ] && return
> > + strstr "$_allow" "$_dev" && return
> > + _allow="$_allow --allow $_dev"
> > + }
> > + }
> > +
> > inst_multiple -o \
> > dmsetup \
> > kpartx \
> > @@ -93,6 +114,11 @@ install() {
> > /etc/multipath.conf \
> > /etc/multipath/*
> >
> > + [[ $hostonly ]] && {
> > + for_each_host_dev_and_slaves_all add_hostonly_mpath_conf
>
> don't we have to just check all $host_devs if it is a /dev/mapper/mpath* ??
Harald, I worry about stacked devices, host_devs are the top level devices,
if slave deivces are multipath we should use for_each_host_dev_and_slaves,
right?
>
> > + [ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf
> > + }
> > +
> > inst $(command -v partx) /sbin/partx
> >
> > inst_libdir_file "libmultipath*" "multipath/*"
> >
>
next prev parent reply other threads:[~2015-07-07 1:52 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-06 7:31 [PATCH] 90multipath: add hostonly multipath.conf in case hostonly mode Dave Young
[not found] ` <20150706073126.GC22559-0VdLhd/A9Pldm++G7ovJGB/sF2h8X+2i0E9HWUfgJXw@public.gmane.org>
2015-07-06 8:06 ` Dracut GitHub Import Bot
2015-07-06 10:03 ` Harald Hoyer
[not found] ` <559A5279.9010101-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-07-07 1:52 ` Dave Young [this message]
[not found] ` <20150707015252.GA8343-bi+AKbBUZKY6gyzm1THtWbp2dZbC/Bob@public.gmane.org>
2015-07-07 11:01 ` Harald Hoyer
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=20150707015252.GA8343@localhost.localdomain \
--to=dyoung-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=bmarzins-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=harald-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=initramfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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