By jamesmorris on Mar 21, 2013
This is a contributed post from Chuck Lever, who heads up NFS development for the mainline Linux kernel team.
On Monday (11th March) I attended the IETF NFSv4 Working Group meeting at IETF 86 in Orlando, Florida.
The Internet Engineering Task Force (IETF) produces high quality technical documents that influence the way people design, use and manage the Internet. Essentially, this is the body that regulates the protocols computers use to communicate on the Internet, for the purpose of improving interoperability.
An IETF meeting is held every four months in venues around the world. Sponsorship for each event varies. This event was sponsored by Comcast and NBCUniversal. Participation is open to anyone, but a registration fee is required to attend.
NFS version 4 is the IETF standard for file sharing. The charter of the Working Group is to maintain NFS specifications and introduce new NFS features through NFSv4 minor versions. More on the Working Group charter can be found here:
I attend each NFSv4 Working Group meeting to represent Oracle's interest in various current and new NFS-related features, including pNFS, NFSv4.2, and FedFS. I'm the editor of two of the IETF FedFS protocol specifications, and a co-author on a draft that discusses experience implementing NFSv4 migration.
Other representatives at this meeting include Microsoft, EMC, NetApp, Oracle, Panasas, and others. Topics include progress updates on drafts on their way to become standards, reports on implementation experience, and requests to start new work or restart old work. See:
Meeting slides are available now at this location. Minutes are coming soon.
Tom Haynes (NetApp) reported on progress with RFC 3530bis, a refreshed specification for NFSv4.0. This document has passed the Area Director check, and is ready for IESG review. This document is a top priority because other unfinished documents which cite this document are held up waiting for its completion.
Labeled NFS, a part of the forthcoming NFSv4.2 protocol, has a Linux prototype that was demonstrated at Connectathon last month.
The RPCSEC_GSSv3 standard has not made progress, but an editor (Dros Adamson) was assigned during IETF 85. This document is blocking progress on NFSv4.2.
The NFSv4.2 draft is in WG last call, which ends today (Monday, March 11). No new issues were raised, so the Working Group chair will move this forward.
Tom Haynes presented a brief set of slides on how NFSv3 client should interpret the presence of AUTH_NONE in the list of security flavors a server supports. There was never a formal standard describing this, and now we need an interoperability document. As we explore this issue we may discover some real problems. A fresh draft was requested.
Dave Noveck (EMC) discussed progress on the draft co-authored with Bill Baker, Piyush Shivam, and myself on NFSv4 migration issues. As part of the discussion, we visited the issue of how to prevent client progress when a server freezes open and lock state before a migration. Adding a new error code was mentioned, but that is against the minor version rules and would cause interoperability problems with clients that don't recognize the new error code. Otherwise we have the procedural issues taken care of to advance this document to become an informational RFC.
A draft covering NFSv4.1 migration issues would probably not be needed, as the changes are small and could be covered in an RFC 5661bis, when it is opened. There doesn't seem to be urgency here.
Chuck Lever (Oracle) described implementation experience with the recommendations of Dave's migration draft. The experience arises from the Linux Uniform Client String changes Chuck has done, and a number of items discovered by the Solaris NFS team.
Chuck Lever reported on progress with the FedFS draft standards. Short story: They are in the RFC Editor queue awaiting completion of RFC 3530bis.
Trond Myklebust (NetApp) presented an issue with NFSv4.1 session slot table management that he also has reported at Connectathon. It was agreed that an errata to RFC 5661 would be produced that describes how implementations will add missing behavior. No on-the-wire protocol changes.
Matt Benjamin (The Linux Box) requested a revisit of a 2008 proposal by Mike Eisler to stripe POSIX directories across multiple data servers. An algorithm would generate an offset into a table of device IDs, which would indicate on which data server to find a directory entry. Matt claimed there would be changes to the proposal to deal with Ceph and CohortFS. Chair requested a draft, Matt to deliver soon.
Chuck Lever asked if we still need an NFS-specific mechanism for provisioning NFSv4 ID domain names. The feeling is that this domain name is determined by the system's authentication service, not by NFS, so NFS should not have its own way to set this. Consensus that there is some work to do here, and it should be done under umbrella of the ongoing multi-domain work.
Spencer Shepler (Microsoft) closed the meeting with a house-keeping item. There is some desire to reduce travel by moving more work to the mailing list. The plan is to ask about agenda items for a meeting before requesting a meeting slot at the next IETF.
Several folks wanted to discuss Bill Baker's micro-versioning proposal. Dave Noveck stated the problem this way: NFSv4.1 is a heavyweight minor version with a bunch of features, so fixes for 4.0 aren't possible with our spiffy minor versioning scheme. Spencer felt we should visit this only when we encounter a problem we must address with major protocol changes. The room was divided; some felt waiting was best so that a problem statement can be formulated; others were concerned that it was almost certain we would need to alter the NFSv4.0 XDR at some point, and we should start working this out now.
In the near term, protocol issues should come to the mailing list sooner rather than later so we can work them out together.
-- Chuck Lever