Comparison of Network File System version 4 to Prior Versions

Summary of differences between NFSv4 and NFS versions 2 and 3.

Beginning with IBM i 6.1, the Network File System version 4 (NFSv4) is included in the base operating system. Here is a short summary of the differences between NFSv4 and NFS versions 2 and 3:

  • The NFSv4 protocol introduces state, whereas the NFS version 2 and 3 protocols are stateless. The usage information of an object by an NFSv4 client is maintained by the server. Operations through the NFSv4 protocol, such as opening, locking, reading, and writing, carry state information that notify the server of the intentions on the object by the client. The server can then return information to a client about other clients that also have intentions on the same object. The use of a persistent open on the server by the NFSv4 protocol avoids some situations where an NFS version 2 or 3 client could become locked out of a file while writing to it.
  • The NFSv4 protocol includes support for byte-range locking and share modes as part of the base protocol. Locking in NFSv4 is lease-based, which requires the NFSv4 client to maintain contact with the server to preserve open and lock state owned by the client.
  • The NFSv4 protocol introduces a compound request format. An NFSv4 client can combine several simple operations (for example, LOOKUP, OPEN, and READ) into a single request to the server. The single request allows NFSv4 to perform a complex operation in one network exchange.
  • The NFSv4 protocol specifies improved security mechanisms over the others required by previous protocol versions. IBM i provides support for Kerberos 5 authentication and data protection in addition to the traditional AUTH_SYS security. The security API used by NFSv4 allows for easy addition of new security mechanisms in the future.
  • The NFSv4 protocol standardizes the representation of string data. All string data used by the protocol is represented in UTF-8 as it crosses the network. User and group information is passed between the client and server in string form, not as numeric values as in previous versions.
  • The NFSv4 protocol combines the separate component protocols of previous NFS versions into a single protocol specification. The single point of contact for the NFSv4 protocol allows for better compatibility with network fire walls.
  • NFS Version 4 requires support of RPC over streaming network transport protocols such as TCP. The NFSv4 support provided by IBM i uses TCP exclusively.

For more in-depth information about the NFSv4 protocol, read RFC 3530