From: Patrick Goetz <pgoetz@math.utexas.edu>
To: Linux NFS Mailing list <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 0/7 V4] The NFSv4 only mounting daemon.
Date: Thu, 4 Mar 2021 15:31:35 -0600 [thread overview]
Message-ID: <e061f40e-ee62-0b1c-3855-77279c4c77ed@math.utexas.edu> (raw)
In-Reply-To: <20210304140123.GA17512@fieldses.org>
On 3/4/21 8:01 AM, J. Bruce Fields wrote:
> On Thu, Mar 04, 2021 at 08:42:24AM -0500, Steve Dickson wrote:
>>
>>
>> On 3/3/21 4:54 PM, J. Bruce Fields wrote:
>>> On Wed, Mar 03, 2021 at 04:22:28PM -0500, Steve Dickson wrote:
>>>> Hey!
>>>>
>>>> On 3/3/21 10:23 AM, J. Bruce Fields wrote:
>>>>> On Tue, Mar 02, 2021 at 05:33:23PM -0500, Steve Dickson wrote:
>>>>>>
>>>>>>
>>>>>> On 2/24/21 3:30 PM, J. Bruce Fields wrote:
>>>>>>> On Fri, Feb 19, 2021 at 03:08:08PM -0500, Steve Dickson wrote:
>>>>>>>> nfsv4.exportd is a daemon that will listen for only v4 mount upcalls.
>>>>>>>> The idea is to allow distros to build a v4 only package
>>>>>>>> which will have a much smaller footprint than the
>>>>>>>> entire nfs-utils package.
>>>>>>>>
>>>>>>>> exportd uses no RPC code, which means none of the
>>>>>>>> code or arguments that deal with v3 was ported,
>>>>>>>> this again, makes the footprint much smaller.
>>>>>>>
>>>>>>> How much smaller?
>>>>>> Will a bit smaller... but a number of daemons like nfsd[cld,clddb,cldnts]
>>>>>> need to also come a long.
>>>>>
>>>>> Could we get some numbers?
>>>>>
>>>>> Looks like nfs-utils in F33 is about 1.2M:
>>>>>
>>>>> $ rpm -qi nfs-utils|grep ^Size
>>>>> Size : 1243512
>>>>>
>>>>> $ strip utils/mountd/mountd
>>>>> $ ls -lh utils/mountd/mountd
>>>>> -rwxrwxr-x. 1 bfields bfields 128K Mar 3 10:12 utils/mountd/mountd
>>>>> $ strip utils/exportd/exportd
>>>>> $ ls -lh utils/exportd/exportd
>>>>> -rwxrwxr-x. 1 bfields bfields 106K Mar 3 10:12 utils/exportd/exportd
>>>>>
>>>>> So replacing mountd by exportd saves us about 20K out of 1.2M. Is it
>>>>> worth it?
>>>> In smaller foot print I guess I meant no v3 daemons, esp rpcbind.
>>>
>>> The rpcbind rpm is 120K installed, so if the new v4-only rpm has no
>>> dependency on rpcbind then we save 120K.
>> The point with rpcbind is it not going to be started which means
>> it not opening up listening connection that may never be used.
>> This has pissed of people for years! :-)
>
> OK, but we can do that without replacing mountd and changing the way
> everyone installs nfs-utils and runs the nfs server.
>
>
> --b.
>
Yes, but then people get involved. The announcement of exportd was the
tech highlight of my week. It's not about the size, it's about how
distros package the tools, documentation, and configuration complexity.
Taking these one at a time:
If it were up to me, everyone would run Arch linux with NFS systemd
service files I wrote myself. These service files would pretend that NFS
v.3 was long forgotten. Unfortunately, I work in a large organization
with other people and don't get to make those calls. We run Ubuntu and
RHEL/CentOS, and the systemd service files are configured to launch
rpcbind as a dependent service. That's a problem because the local
Information Security Office sees rpcbind as a dangerous cancer and will
automatically quarantine any machine advertising this service. I've
worked through the spaghetti ensemble of service units provided by
Canonical which launch NFS services in order to attempt to undo the
rpcbind dependency, but it's a pain in the ass. If NFS v.3 isn't an
option, the distro supplied service files will necessarily be required
to behave, too.
If the NFS documentation were superlative, this might be less of a
problem, but the current instantiation of NFS is saddled with decades of
technical debt, out of date documentation and some new features aren't
even documented (we've even discussed this on this list). I'm still
trying to figure out how people know how to set up pNFS, for example.
NFS v4 is sufficiently different from v3 that the preponderance of old
information on the Internet is confusing and contradictory. If the
daemon name is different, that's an immediate and obvious tip off that
you're looking at out of date information. The people referencing
exportd are the ones to pay attention to.
Looking at one of my Ubuntu 18.04 server installs, there's configuration
information in the systemd unit files, there's configuration information
in /etc/default, and elsewhere. If I set
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3 -u"
in /etc/default/nfs-kernel-server, does that actually do anything? Who
knows? (Actually, if you dig through everything related in
/lib/systemd/system, it does at least read this file.) Runing tcpdump
and tracing the packets should not be the solution to every
configuration question. Any simplification of this is welcome, even if
the resulting code is 128K *larger*.
Also, I'm guessing NFS would see wider adoption if there were a
simplified v.4 only packaging option. Just sayin'.
next prev parent reply other threads:[~2021-03-04 21:41 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-19 20:08 [PATCH 0/7 V4] The NFSv4 only mounting daemon Steve Dickson
2021-02-19 20:08 ` [PATCH 1/7] exportd: the initial shell of the v4 export support Steve Dickson
2021-02-19 20:08 ` [PATCH 2/7] exportd: Moved cache upcalls routines into libexport.a Steve Dickson
2021-02-23 16:13 ` [PATCH] exportd: server-side gid management Daniel Kobras
2021-03-04 21:28 ` Steve Dickson
2021-02-19 20:08 ` [PATCH 3/7] exportd: multiple threads Steve Dickson
2021-02-19 20:08 ` [PATCH 4/7] exportd/exportfs: Add the state-directory-path option Steve Dickson
2021-02-19 20:08 ` [PATCH 5/7] exportd: Enabled junction support Steve Dickson
2021-02-19 20:08 ` [PATCH 6/7] exportd: systemd unit files Steve Dickson
2021-02-19 20:08 ` [PATCH 7/7] exportd: Added config variable to compile in the NFSv4 only server Steve Dickson
2021-02-20 16:33 ` [PATCH 0/7 V4] The NFSv4 only mounting daemon Steve Dickson
2021-02-24 20:30 ` J. Bruce Fields
2021-03-02 22:33 ` Steve Dickson
2021-03-03 15:23 ` J. Bruce Fields
2021-03-03 21:22 ` Steve Dickson
2021-03-03 21:54 ` J. Bruce Fields
2021-03-03 22:07 ` Steve Dickson
2021-03-03 22:17 ` J. Bruce Fields
2021-03-04 13:57 ` Steve Dickson
2021-03-04 14:06 ` J. Bruce Fields
2021-03-04 16:31 ` Steve Dickson
2021-03-05 14:36 ` J. Bruce Fields
2021-03-05 15:53 ` Chuck Lever
2021-03-04 13:42 ` Steve Dickson
2021-03-04 14:01 ` J. Bruce Fields
2021-03-04 16:47 ` Steve Dickson
2021-03-04 21:31 ` Patrick Goetz [this message]
2021-03-04 13:34 ` Steve Dickson
2021-03-04 14:24 ` J. Bruce Fields
2021-03-04 16:20 ` Steve Dickson
2021-02-24 20:49 ` J. Bruce Fields
2021-03-02 22:39 ` Steve Dickson
2021-03-03 18:10 ` Chuck Lever
2021-03-03 21:24 ` Steve Dickson
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=e061f40e-ee62-0b1c-3855-77279c4c77ed@math.utexas.edu \
--to=pgoetz@math.utexas.edu \
--cc=linux-nfs@vger.kernel.org \
/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).