From: Jeff Garzik <jeff@garzik.org>
To: "Peter Åstrand" <astrand-+4tYiAq3b6azQB+pC5nmwQ@public.gmane.org>
Cc: NFS list <linux-nfs@vger.kernel.org>, nfsv4@linux-nfs.org
Subject: Re: A new NFSv4 server...
Date: Fri, 04 Jan 2008 11:41:55 -0500 [thread overview]
Message-ID: <477E61D3.4030408@garzik.org> (raw)
In-Reply-To: <Pine.LNX.4.64.0801040954070.5004-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
Peter =C3=85strand wrote:
> Many years ago, before NFSv4 was finished, I felt the same. I was wai=
ting=20
> for v4 and thought that everything would be so much better. I wanted =
to=20
> help and started the "pynfs" project. Today, I have a different opini=
on. I=20
<grin>
> think v3 is a fairly good protocol, if you use it correctly. For exam=
ple,=20
> many people don't realize that you don't need the portmapper, that yo=
u can=20
> use a single well-known TCP port, that you can use RPCSEC_GSS and so=20
> forth, even with v3.=20
Absolutely... But still, I think integrated mount protocol (aka pseudo=
=20
filesystem namespace) and integrated locking were big steps forward.=20
You really shouldn't need more than one protocol.
Speaking of RPCSEC_GSS: I would love to see a much more straightforward=
=20
authentication process, something /not/ buried inside special behaviors=
=20
triggered by opcodes found in an opaque cred struct :/ RPCSEC_GSS=20
context creation, the special casing around the 'null' procedure, and=20
the overloading of the RPC data portion of things is a huge pain to=20
implement.
Authentication and security should be simple, tough to screw up. I=20
would tend to prefer an ASCII-based authentication/security negotiation=
=20
at the start of a [SCTP|TCP] stream.
Use TLS to give most people what they want: AUTH_SYS with encryption.=20
GSSAPI is fine as a "required option" but you shouldn't need GSSAPI to=20
do simple wire encryption between IP-authenticated hosts.
> I think v4 has a few valuable improvements, but it comes with a very =
high=20
> price. v3 has a minimalistic beauty which v4 lacks. For example, take=
a=20
> look at the OPEN operation with 7 arguments, of which many are comple=
x=20
> data structures:
>=20
> (cfh), seqid, share_access, share_deny, owner, openhow, claim ->
> (cfh), stateid, cinfo, rflags, open_confirm, attrset delegation
>=20
> Not pretty... =20
heh, tell me about it. First I started out using rpcgen, then rewrote=20
everything to do raw XDR decoding. OPEN is huge.
IMO, OPEN should be split into multiple operations, probably one for=20
each "OPEN arm". It's not like new opcode numbers are expensive.
Or, hope of hopes, simplify OPEN in some other manner, like delegating=20
tasks to other operations.
>> Oh, certainly. I was mainly thinking a replacement of the wire prot=
ocol would
>> be an easier step for people to swallow than a new protocol.
>=20
> I've been thinking of trying to put together something like NFS v3.5.=
Some=20
> parts of v4 are nice, but the complexity is too high.=20
Agreed that's it's quite complex.
One of my personal desires is for a high level of cache coherence=20
throughout the system for all clients (though perhaps an admin could=20
optionally relax this requirement). I'm a fan of Google's "Chubby", a=20
distributed reliable filesystem that stalls client writes until cache=20
invalidations for the associated byte range are processed for all=20
interested clients.
And anything approaching cache coherence requires some complexity :/
Another thing I like about NFSv4 is that batching sequences into chunks=
=20
of fine-grained operations is generally a useful practice. So while th=
e=20
end result (COMPOUND) is a bit of a pain, bundling a sequence of=20
operations into a single unit is useful.
Jeff
next prev parent reply other threads:[~2008-01-04 16:41 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-03 12:16 A new NFSv4 server Jeff Garzik
2008-01-03 16:32 ` J. Bruce Fields
2008-01-04 5:32 ` Jeff Garzik
2008-01-04 6:24 ` Greg Banks
[not found] ` <477DD11B.40909-cP1dWloDopni96+mSzHFpQC/G2K4zDHf@public.gmane.org>
2008-01-04 7:04 ` Jeff Garzik
2008-01-04 9:07 ` Benny Halevy
2008-01-04 15:49 ` Jeff Garzik
2008-01-04 19:51 ` Benny Halevy
2008-01-05 1:46 ` Greg Banks
2008-01-05 7:56 ` Benny Halevy
2008-01-04 17:47 ` J. Bruce Fields
2008-01-04 19:55 ` Benny Halevy
2008-01-04 9:15 ` Peter Åstrand
2008-01-04 10:05 ` Neil Brown
[not found] ` <Pine.LNX.4.64.0801040954070.5004-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
2008-01-04 13:50 ` Frank van Maarseveen
2008-01-04 16:41 ` Jeff Garzik [this message]
2008-01-04 20:03 ` Peter Åstrand
[not found] ` <Pine.LNX.4.64.0801042030380.18738-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
2008-01-06 23:54 ` James Morris
2008-01-04 20:31 ` Muntz, Daniel
2008-01-04 9:15 ` Peter Åstrand
2008-01-04 16:14 ` Jeff Garzik
2008-01-04 19:58 ` Peter Åstrand
-- strict thread matches above, loose matches on Subject: below --
2008-01-04 15:28 Rick Macklem
[not found] ` <200801041528.KAA18776-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-04 17:21 ` J. Bruce Fields
2008-01-04 18:03 ` Tom Haynes
[not found] ` <477E750A.2030905-8AdZ+HgO7noAvxtiuMwx3w@public.gmane.org>
2008-01-04 18:21 ` J. Bruce Fields
2008-01-04 19:50 ` Jeff Garzik
2008-01-04 19:57 ` Peter Åstrand
[not found] ` <Pine.LNX.4.64.0801042055490.18738-K9BqGu7AvB3wj5YHdwD3Ga2PxDmRETKR@public.gmane.org>
2008-01-05 0:43 ` Jeff Garzik
2008-01-04 15:48 Rick Macklem
[not found] ` <200801041548.KAA18953-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-04 17:15 ` J. Bruce Fields
2008-01-05 2:32 ` Greg Banks
2008-01-04 17:11 Rick Macklem
[not found] ` <200801041711.MAA19577-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-05 0:51 ` Jeff Garzik
2008-01-04 17:28 Rick Macklem
[not found] ` <200801041728.MAA19743-bYVALtacgsT800Iu1Vt84J3p9npsUQCG@public.gmane.org>
2008-01-04 17:42 ` J. Bruce Fields
2008-01-04 17:45 ` Trond Myklebust
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=477E61D3.4030408@garzik.org \
--to=jeff@garzik.org \
--cc=astrand-+4tYiAq3b6azQB+pC5nmwQ@public.gmane.org \
--cc=linux-nfs@vger.kernel.org \
--cc=nfsv4@linux-nfs.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