Features/NFSv4Default

= NFSv4Default =

Summary
Change the default NFS protocol to version 4.

Owner

 * Name: Steve Dickson
 * email: steved@redhat.com

Current status

 * Targeted release: Fedora 13
 * Last updated: 2010-01-18
 * Percentage of completion: 100%

With the current 2.6.33 Rawhide kernel and the nfs-utils-1.2.1-10 package the default NFS protocol is now version 4.

Detailed Description
The latest version of the NFS protocol is version 4, which was first introduced in Fedora F-2 (the first distro to have such support). The current default NFS version is version 3. Meaning when an simple NFS mount is done (i.e. mount server:/export /mnt) version 3 is the first protocol version that is tried.

With the proposed changes, version 4 would be tried first. If the server does not support version 4, the mount would then try version 3.

Benefit to Fedora
One of the major benefit is performance. In version 4, the server has state which means it can communicate with each NFS client. The means the server can issue things called delegations (or leases) for files allowing the v4 client to aggressively cache which drastically cuts down on network traffic between the client and server.

There are a number of other benefits which are documented here.

Scope
There are basically three parts to make this happen:
 * 1) Change the exports on the server so v3 and v2 exports can seamlessly be used by v4 clients.
 * 2) Change the mount command to start negotiating with the version 4 protocol and then fall back to version 3 if the server does not support v4 (similar to what happens today with version 3 and version 4)
 * 3) Introduce a NFS mount configuration file where users can define which protocol version should be negotiated.

How To Test

 * The usual Connectathon tests will be used and well as any other filesystem tests that are available (such as fsx).

The official link is at : http://www.connectathon.org/nfstests.html My Git tree I used to keep updates are at: git://FedoraPeople.org/~steved/cthon04.git From this tree I generally use the runcthon tests script which runs all the tests simultaneously

User Experience
This transition should be seamless to the users...

Dependencies
The only dependency is on the nfs-utils package.

Contingency Plan
If the code is not ready, then the version 3 will still be the default.

Documentation

 * http://www.nfsv4.org/

Release Notes

 * Fedora now use NFS version 4 as the default protocol version.

Comments and Discussion

 * See Talk:Features/NFSv4Default