Subject: [nfsv4] Protocol minor version number use to the Data server

From: Olga Kornievskaia <[email-masked]>
Date: Thu, 15 Apr 2021 18:03:58 -0400

Hi folks,

I have a pnfs question. It looks to me that nothing in the layout or
getdeviceinfo reply to the client or else where in the spec does it
specify what minor version should the client be using/doing to the
data server. Or more specially, say the client has a v4.2 pnfs mount
to the MSD server (and about to the IO to the DS) and client has a
v4.1 pnfs mount to the same MDS server. Can those mounts share the
same clientid/session/transport to the DS server? Or would each be
required to establish different mounts to the DS that matches their
minor version used with the MDS.

Thank you.

---

From: Rick Macklem <[email-masked]>
Date: Fri, 16 Apr 2021 15:48:35 +0000

Olga Kornievskaia wrote:
>same clientid/session/transport to the DS server?
I think you are correct that the RFCs do not clearly answer this.
Sec. 3.3 of RFC7862 "hints" that a file layout returned by a NFSv4.2
server can work on either a NFSv4.2 or NFSv4.1 DS.
However, it does not seem to clearly state that, in general, this
is the case.

The FreeBSD server (non-pNFS, MDS or DS) does not associate
state (clientid, sessions, ...) with a minor version, which means that
both alternatives should work against it.
--> To define separate clientids, etc. I think that the
      eia_clientowner.co_owner needs to be unique for each
      ExchangeID, or you will end up sharing them between
      the "mounts".

> Or would each be
As you note, I do not see any requirement for this, so I think it
would be prudent for a file layout pNFS server to not require this.

It so happens that the FreeBSD does use separate clientids, etc. for
each mount and maintains separate lists of layouts for each mount.
This was an implementation design decision I made long ago,
because I felt it was easier to manage them separately in the
client machine than shared across all mounts.
--> The eia_clientowner.co_owner string is different for each
      "mount" and, as such, they are separate clients from the
      server's perspective, including DS servers.
      --> This does have the negative implication that delegations
            will appear to e held by a different client when there are
            multiple NFSv4 mounts to the same server, although
            it happens to be the same machine.
Do I think doing the above is required?
Probably not for extant pNFS servers and this requirement should
be discouraged for future pNFS servers, as well, imho.

Netapp is the main file layout pNFS server out there.
Does it require separate DS "mounts" (as in separate
clientids and sessions) be used for the different minor versions?

Just my $0.01 worth, rick

Thank you.

_______________________________________________
nfsv4 mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/nfsv4

---

From: Olga Kornievskaia <[email-masked]>
Date: Fri, 16 Apr 2021 12:46:05 -0400

> Just my $0.01 worth, rick

Thank you for your input! Indeed the Netapp seems to be OK with the
client sharing the same DS mount. But I was just curious if the client
is doing the correct thing or needs to be "fixed" somehow.

---

From: David Noveck <[email-masked]>
Date: Fri, 16 Apr 2021 17:00:48 -0400

On Thu, Apr 15, 2021 at 6:04 PM Olga Kornievskaia <[email-masked]> wrote:

> data server.

That's right.   We have the option of clarifying it in 5fc5661bis, if there
is a working group consensus on the matter.

Or more specially, say the client has a v4.2 pnfs mount
> same clientid/session/transport to the DS server?

They can't share the clientid or session since RFC 8178 prohibits sharing
clientid's among multiple minor versions.

I don't see any problem using the same transport connection and sharing
them.

Or would each be
> minor version used with the MDS.

The spec currently doesn't require this matching and I don't anticipate the
working group adding it in rfc5661bis.