From: David Teigland <teigland@redhat.com>
To: Peter Rajnoha <prajnoha@redhat.com>
Cc: Martin Wilck <martin.wilck@suse.com>,
Heming Zhao <heming.zhao@suse.com>,
"zkabelac@redhat.com" <zkabelac@redhat.com>,
"bmarzins@redhat.com" <bmarzins@redhat.com>,
"linux-lvm@lists.linux.dev" <linux-lvm@lists.linux.dev>,
Glass Su <glass.su@suse.com>, "hare@suse.de" <hare@suse.de>
Subject: Re: discuss about commit 3b0f9ce: filter-mpath: get wwids from sysfs vpd_pg83
Date: Wed, 15 Nov 2023 15:02:36 -0600 [thread overview]
Message-ID: <ZVUx7KjZKGqSuWxo@redhat.com> (raw)
In-Reply-To: <194d20b7-e3b0-43d6-95e1-1a7d56eab506@redhat.com>
On Wed, Nov 15, 2023 at 09:51:19AM +0100, Peter Rajnoha wrote:
> Sure, if we already have that in the devices file, we don't need to
> rerun the filters again and again. But I think that for the very first
> check we do when inserting new entry to the devices file, we should
> really be using information that is *shared* by the other subsystem that
> owns it. In case of multipath, we shouldn't be reading any of their
> config or trying to reimplement subset of their logic (the config can
> change format, the logic can change, new features can be added, various
> settings can be applied which we omit in our own internal simplified
> version of the logic).
>
> If I would need to compare the situation to something, imagine that some
> subsystem, MD for example, would be parsing our system.devices file to
> check if it can or can not access certain device. Then checking
> multipath config, then other config and so on... So that way we would
> have each subsystem checking other subsystems by reimplementing these
> checks again and again (with the risk of not even being correct).
>
> We should be using dedicated APIs or udev to share the information among
> various subsystems. Or, if nothing else, even calling out to the
> subsystem's binary if it doesn't provide the API yet.
>
> I don't see an issue with the devices file as such, I see the issue in
> the way we gather information, reimplementing the logic that is simply
> not in our domain.
>
> I think that's also what Martin and Heming have in mind.
I'm not sure if you're talking about things in practice or in principle.
This is a situation where those two don't entirely line up.
In practice, you can already do what's requested with:
external_device_info_source="udev"
multipath_wwid_files=""
I've suggested another way to do that which could be more explicit, and
gives more control over exactly what info is used for multipath, e.g.
multipath_info_sources = [ "option1", "option2", "option3" ]
where options in the list are used in order, and can reference any number
of methods... udev, sysfs, wwids file, some new multipath lib, etc.
The context of using system.devices or not also makes a difference in
these choices, and I haven't thought through that entirely yet. Perhaps
different defaults should apply when system.devices is in use (i.e. that
multipath_info_sources list may want to depend on using system.devices.)
In principle, the multipath wwids option is an unfortunate, temporary
workaround we tried to avoid. Principles sometimes give way to real world
problems like systems not booting. Ideally, a multipath lib API would
have been available to check the wwids (which didn't involve udev.)
There are a couple threads from 2021 about that, initially in
https://listman.redhat.com/archives/lvm-devel/2021-January/022915.html
I didn't have a complete understanding of the mess we were in during that
thread, but it prompted me to begin sorting it all out. I think it's sane
now, but fine-grained control over what info is used where could be added.
And, system.devices may now let us make some different choices.
Dave
next prev parent reply other threads:[~2023-11-15 21:02 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-11 12:51 discuss about commit 3b0f9ce: filter-mpath: get wwids from sysfs vpd_pg83 Heming Zhao
2023-11-13 11:52 ` Martin Wilck
2023-11-13 13:52 ` Peter Rajnoha
2023-11-13 18:38 ` David Teigland
2023-11-14 7:55 ` Peter Rajnoha
2023-11-14 16:30 ` David Teigland
2023-11-15 8:51 ` Peter Rajnoha
2023-11-15 11:36 ` Heming Zhao
2023-11-15 19:12 ` David Teigland
2023-11-16 13:37 ` Zdenek Kabelac
2023-11-16 13:46 ` Martin Wilck
2023-11-16 14:03 ` Zdenek Kabelac
2023-11-16 15:29 ` Martin Wilck
2023-11-16 17:13 ` David Teigland
2023-11-16 15:10 ` David Teigland
2023-11-16 15:40 ` Martin Wilck
2023-11-16 15:48 ` Zdenek Kabelac
2023-11-16 17:27 ` David Teigland
2023-11-16 15:59 ` Zdenek Kabelac
2023-11-17 1:47 ` Demi Marie Obenour
2023-11-17 15:25 ` David Teigland
2023-11-17 19:57 ` Demi Marie Obenour
2023-11-17 20:16 ` David Teigland
2023-11-17 21:03 ` Demi Marie Obenour
2023-11-17 21:05 ` Martin Wilck
2023-11-20 10:13 ` Zdenek Kabelac
2023-11-15 21:02 ` David Teigland [this message]
2023-11-15 21:46 ` Martin Wilck
2023-11-16 16:11 ` David Teigland
2023-11-14 10:44 ` Martin Wilck
2023-11-14 12:18 ` Heming Zhao
2023-11-14 17:16 ` David Teigland
2023-11-14 17:00 ` David Teigland
2023-11-14 17:48 ` Martin Wilck
2023-11-14 17:58 ` Martin Wilck
2023-11-14 21:02 ` David Teigland
2023-11-15 7:35 ` Martin Wilck
2023-11-16 16:34 ` David Teigland
2023-11-16 20:22 ` Benjamin Marzinski
2023-11-14 20:51 ` David Teigland
2023-11-15 5:15 ` Heming Zhao
2023-11-15 7:39 ` Martin Wilck
2023-11-21 14:39 ` Martin Wilck
2023-11-21 17:56 ` David Teigland
2023-11-21 18:10 ` Martin Wilck
2023-11-21 18:25 ` David Teigland
2023-11-21 20:35 ` Martin Wilck
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=ZVUx7KjZKGqSuWxo@redhat.com \
--to=teigland@redhat.com \
--cc=bmarzins@redhat.com \
--cc=glass.su@suse.com \
--cc=hare@suse.de \
--cc=heming.zhao@suse.com \
--cc=linux-lvm@lists.linux.dev \
--cc=martin.wilck@suse.com \
--cc=prajnoha@redhat.com \
--cc=zkabelac@redhat.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;
as well as URLs for NNTP newsgroup(s).