[dm-devel] each device filtering for multipath
christophe varoqui
christophe.varoqui at free.fr
Wed Mar 30 23:31:20 UTC 2005
Merged, thanks
Still need to be more clever in the blacklist function though ... like a
regexp parser.
On mer, 2005-03-30 at 10:03 -0500, k-ueda at ct.jp.nec.com wrote:
> Hello,
>
> I think that finer-grained device filtering (e.g. by each device)
> is needed in multipath-tools.
> Has anyone already started tackling this feature?
> Any comments about following approach are welcome.
>
>
> Background
> ----------
> Problem#1 : Multipath command configures not only multipath devices
> (like Fibre Channel storages) but also local devices
> (like SCSI disks) as multipath.
> Then, as dm holds the reference to the source device,
> local devices can't be used through /dev/sd* name.
>
> Problem#2 : Even for Fibre Channel storages, there is a case such that
> we need to configure multipath for one but don't want for
> the other.
>
> We have 2 options to configure specific devices only.
>
> o Specify a device name as multipath command argument.
> o Specify white lists (vendor/model combination) in scsi_id.config,
> and don't use -g option for scsi_id callout.
>
> But these are not enough.
> The first option breaks if the device names are not persistent.
> The second option can solve the problem#1, but can't solve the problem#2.
>
>
> Proposal
> --------
> As multipath command already has a black listing feature, adding
> wwid filtering to it is straightforward solution. I've created
> a tentative patch as proposal. (patch for multipath-tools-0.4.3)
> I also think that adding whitelist filtering may be useful.
>
>
> Patch (tentative)
> -----------------
> -----------------------------------------------------------------------
> --- multipath-tools-0.4.3/multipath/main.c 2005-03-23 10:18:42.000000000 -0500
> +++ wwidfilter-0.4.3/multipath/main.c 2005-03-28 16:11:51.000000000 -0500
> @@ -746,7 +746,8 @@ coalesce_paths (vector curmp, vector pat
> /* skip this path for some reason */
>
> /* 1. if path has no unique id */
> - if (memcmp(empty_buff, pp1->wwid, WWID_SIZE) == 0)
> + if ((memcmp(empty_buff, pp1->wwid, WWID_SIZE) == 0) ||
> + blacklist(conf->blist, pp1->wwid))
> continue;
>
> /* 2. if path already coalesced */
> --- multipath-tools-0.4.3/multipath/dict.c 2005-03-19 07:59:15.000000000 -0500
> +++ wwidfilter-0.4.3/multipath/dict.c 2005-03-28 16:12:40.000000000 -0500
> @@ -249,6 +249,7 @@ init_keywords(void)
>
> install_keyword_root("devnode_blacklist", &blacklist_handler);
> install_keyword("devnode", &devnode_handler);
> + install_keyword("blackwwid", &devnode_handler);
>
> install_keyword_root("devices", &devices_handler);
> install_keyword("device", &device_handler);
> -----------------------------------------------------------------------
>
> With above patch, we can filter each devices by specifing multipath.conf
> like following.
>
> -----------------------------------------------------------------------
> devnode_blacklist {
> devnode c0d
> ...
> snip
> ...
> devnode loop
> blackwwid SSEAGATE_ST373307LC_____3HZ6XQWB00007431GBM4
> blackwwid SSEAGATE_ST373307LC_____3HZ70N5S000074343PL8
> }
> -----------------------------------------------------------------------
>
>
> Best regards,
> Ky (Kiyoshi Ueda)
>
> --
> dm-devel mailing list
> dm-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/dm-devel
--
christophe varoqui <christophe.varoqui at free.fr>
More information about the dm-devel
mailing list