Re: [nfs-utils PATCH] nfs4id: a tool to create and persist nfs4 client uniquifiers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 4 Feb 2022, at 13:45, Chuck Lever III wrote:

On Feb 4, 2022, at 10:49 AM, Benjamin Coddington <bcodding@xxxxxxxxxx> wrote:

On 4 Feb 2022, at 10:17, Chuck Lever III wrote:

As discussed in earlier threads, we believe that storing multiple unique-ids in one file, especially without locking to prevent tearing of data in the file, is problematic. Now, it might be that the objection to this was based on storing these in a file that can simultaneously be edited by humans (ie, /etc/nfs.conf). But I would prefer to see a separate file used for
each uniquifier / network namespace.

This tool isn't trying to store uniquifiers for multiple namespaces, or
describe how it ought to be used in relation to namespaces.  It only
attempts to create a fairly persistent unique value that can be generated
and consumed from a udev rule.

I think the problem of how to create uniquifiers for every net namespace
might easily be solved by bind-mounding /etc/nfs4-id into the
namespace-specific filesystem, or a number of other ways. That would be an
interesting new topic.

I don't think that's a new topic at all. This mechanism needs to
deal with containers properly from day one. That's why we are
using a udev rule for this purpose in the first place instead of
something more obvious.

This isn't a mechanism to deal with containers, its a small helper utility that we'd like to use to solve an existing, non-container problem in a way
that's future-proof for containers.

The problem is that a network namespace (to which the persistent
uniquifier is attached) and an FS namespace (in which the persistent
uniquifier is stored) are created and managed independently.

We need to agree on how NFSv4 clients in containers are to be
supported before the proposed tool can be evaluated fully.

I disagree. This tool is immediately useful when I have multiple NAT-ed NFS clients with the same hostnames and they end up with identical NFS client
identifiers.  That's the problem this little utility helps to solve, and
that's the real-world issue we've been asked to fix.

I don't think we have to solve all the problems at once, and I think this is
headed in the right direction.  I can commit to working on the namespace
part.. but there's a number of things that aren't clear to me there:

 - is udev namespace-aware?

- can we get udev rules to trigger for a namespace (my simple tests show that my "root" system-udevd doesnt see the creation or entry of processes
   into a new network namespace)  Maybe we need to run udevd in every
   network namespace?

- can uniquifiers be network-namespace uniquified by just using information available within a udev rule, or do we really need this utility to be
   namespace aware?

There's a bunch of stuff to discuss and figure out (unless someone else
already has), maybe we can start a new thread?

Ben




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux