[lustre-devel] [LSF/MM/BPF TOPIC] [DRAFT] Lustre client upstreaming
Day, Timothy
timday at amazon.com
Wed Jan 22 09:33:30 PST 2025
Lustre itself going upstream might be strong enough justification for
ext4 to accept the needed ldiskfs patches. I agree that we shouldn’t
block upstreaming the client on upstreaming the server. But I think
we should advocate upstreaming both client and server together,
and then see what feedback we get. We should at least document
the objections. I don’t think we have to commit to one path or another
right now.
Regarding ZFS, I think the OSD will eventually have to live in the
normal openZFS repo. And it will have to live with whatever
interface ldiskfs/ext4 gets. But I don’t think we have to prioritize
that work until we have more confidence that Lustre is on a path
to upstream.
Tim Day
From: Andreas Dilger <adilger at ddn.com>
Date: Wednesday, January 22, 2025 at 1:58 AM
To: Patrick Farrell <pfarrell at ddn.com>
Cc: "Day, Timothy" <timday at amazon.com>, NeilBrown <neilb at suse.de>, "lustre-devel at lists.lustre.org" <lustre-devel at lists.lustre.org>
Subject: RE: [EXTERNAL] [lustre-devel] [LSF/MM/BPF TOPIC] [DRAFT] Lustre client upstreaming
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you can confirm the sender and know the content is safe.
IMHO, there would be objections to Lustre changes to ext4 to allow it to be used
like ldiskfs.
We cannot use the VFS interface as-is, since Lustre needs to have
compound journaled transactions that are atomically committed. Also, there are
some operations (e.g. DNE namespace operations) which do not have VFS
equivalents, so they would require poking through the VFS, and in general the
VFS does a lot of things we *don't* want it to do for Lustre.
If there are objections to patching ext4 to allow osd-ldiskfs to access transactions
directly, then the alternative would be to copy it to ldiskfs and patch it as we do
today, but I suspect that would also be frowned upon.
Don't get me wrong, it's not that I *want* to maintain ldiskfs forever out of tree,
but pretty much every patch we try to upstream to ext4 is rejected for one
reason or another, so I've stopped holding my breath that this will move forward.
Running osd-zfs doesn't need any kernel/ext4 patches, but that is an even
larger can of worms, and will never fly in a million years.
I think upstreaming the client is a realistic goal, but I think tying this to the
upstreaming of the server with ldiskfs support will derail the whole project.
Cheers, Andreas
On Jan 21, 2025, at 10:02, Patrick Farrell <pfarrell at ddn.com> wrote:
I agree strongly here, and I think going upstream with both makes some things much easier. It forces us to deal with ldiskfs but there's all of that shared code reorg, etc, which this can let us partially skip. While there's probably some value in fully separating client and server code, it would be a fair bit of work and then the keeping in sync, etc... All at once seems nicer to me.
________________________________
From: lustre-devel <lustre-devel-bounces at lists.lustre.org> on behalf of Day, Timothy <timday at amazon.com>
Sent: Sunday, January 19, 2025 9:57 PM
To: NeilBrown <neilb at suse.de>
Cc: lustre-devel at lists.lustre.org <lustre-devel at lists.lustre.org>
Subject: Re: [lustre-devel] [LSF/MM/BPF TOPIC] [DRAFT] Lustre client upstreaming
> On 1/18/25, 5:21 PM, "NeilBrown" <neilb at suse.de <mailto:neilb at suse.de>> wrote:
> > On Sun, 19 Jan 2025, Day, Timothy wrote:
> >
> > On the other hand, I wonder if we upstream the whole thing all at once. Beside
> > the code being a bit nicer, the client isn't really that much closer to being upstream
> > than the server is. And no one else can test the client without having a Lustre
> > server on-hand. So no-one can easily run xfstests or similar. And doing everything
> > all at once would preempt questions of client/server split or the server upstreaming
> > timeline. But upstreaming so much all at once is probably more unrealistic.
>
>
> The main difference I see between server and client in upstreaming terms
> is the storage backend. It would need to use un-patched ext4 - ideally
> using VFS interfaces though we might be able to negotiate with the ext4
> team to get some exports. I don't know much about the delta between
> ldiskfs and ext4 and understand it is much smaller than it once was, but
> it would need to be zero. I'm working towards getting the pdirop patch
> upstreamable. Andreas would know what else is needed better than I.
I've been working on a third storage backend [1]. It'll likely be done
well before we submit anything upstream. It's a just memory-only
target. That might be justification enough to keep the OSD APIs.
[1] https://review.whamcloud.com/c/fs/lustre-release/+/55594
> The other difference is that a lot of the "revise code to match upstream
> style" work has focused on client and ignored server-only code.
>
>
> It might be sensible to set the goal as "client and server" including
> only the ext4 backend and possibly only the socklnd network interface.
> It will be a big code drop either way. People aren't going to go over
> every line with a fine-tooth-comb. They will mostly look at whichever
> bit particularly interests them, and look at the process and community
> behind the code.
>
>
> Being able to build a pure upstream kernel, add a user-space tools
> package, and test would certainly be a plus. That would be something
> worth canvassing at LSF - is there any value in landing the client
> without the server?
Yeah, I'm leaning towards setting the goal as both client/server and
gathering opinions from LSF. The client and server are still pretty
intertwined. I think having the client go upstream and then basing
the server on top an in-tree client would make server development
noticeably more difficult. Thinking on it more - I don't think
upstreaming the server is more ambitious than the client. We
have more of a process problem than a code problem. And I don't
think the server is in particularly bad shape.
>
> NeilBrown
>
Tim Day
_______________________________________________
lustre-devel mailing list
lustre-devel at lists.lustre.org
http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
_______________________________________________
lustre-devel mailing list
lustre-devel at lists.lustre.org<mailto:lustre-devel at lists.lustre.org>
http://lists.lustre.org/listinfo.cgi/lustre-devel-lustre.org
Cheers, Andreas
—
Andreas Dilger
Lustre Principal Architect
Whamcloud/DDN
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lustre.org/pipermail/lustre-devel-lustre.org/attachments/20250122/e7e60c8e/attachment-0001.htm>
More information about the lustre-devel
mailing list