What is the difference between the different NFS versions?
Currently the NFS version 2 and NFS version 3 protocols are in use with version 4 under consideration for a standard. There are quite a few differences between version 2 and 3 and some of the more notable ones are:
- Version 2 uses UDP (User Datagram Protocol) in most implementations which does not have guaranteed delivery.
- Version 3 uses TCP (Transmission Control Protocol) that is a software layer to guarantee delivery.
- Version 3 supports use of asynchronous writes to improve performance.
- Version 2 supports 64-bit file sizes (vs. 32 for v2) to allow much larger files.
There are many more differences. A good reference is the Network Appliance Web site where an excellent excerpt from a book is available. This document also contains references for much more detailed information so that you can go as detailed as you would like.
For NFS version 4, there are many proposed changes. The following is a summary from a submitted document:
The NFS version 4 protocol is a further revision of the NFS protocol defined already by versions 2 [RFC1094] and 3 [RFC1813]. It retains the essential characteristics of previous versions: design for easy recovery, independent of transport protocols, operating systems and file systems, simplicity and good performance.
The NFS version 4 revision has the following goals:
- Improve access and good performance on the Internet. The protocol is designed to transit firewalls easily, perform well where latency is high and bandwidth is low and scale to very large numbers of clients per server.
- Strong security with negotiation built into the protocol. The protocol builds on the work of the ONCRPC working group in supporting the RPCSEC_GSS protocol. Additionally, the NFS version 4 protocol provides a mechanism to allow clients and servers the ability to negotiate security and require clients and servers to support a minimal set of security schemes.
- Good cross-platform interoperability. The protocol features a file system model that provides a useful, common set of features that does not unduly favor one file system or operating system over another.
- Designed for protocol extensions. The protocol is designed to accept standard extensions that do not compromise backward compatibility.
Evaluator Group, Inc.
Editor's note: Do you agree with this expert's response? If you have more to share, post it in one of our .bphAaR2qhqA^0@/searchstorage>discussion forums.
Related Q&A from Randy Kerns
What is the one hidden gotcha that you'd advise users about if they were shopping for an all-flash storage array?continue reading
How much control do you have with all-flash storage arrays? How much control do you have over how arrays handle your data? Do you control the caching?continue reading
Vendors often publish numbers for 'usable' capacity versus 'effective' capacity. Can you explain this and how can you plan flash capacity needs with ...continue reading
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.