Network File System
From Free net encyclopedia
Network File System (NFS) is a protocol originally developed by Sun Microsystems in 1984 and defined in RFCs 1094, 1813, and 3530 (obsoletes 3010), as a distributed file system which allows a computer to access files over a network as easily as if they were on its local disks. NFS is one of many protocols built on the Open Network Computing Remote Procedure Call system (ONC RPC).
The term "network file system" is also often used as a generic term — see file system for other examples.
Contents |
Versions and variations
Version 2 of the protocol originally operated entirely over UDP and was meant to keep the protocol stateless, with locking (for example) implemented outside of the core protocol.
Version 3 added:
- support for 64-bit file sizes and offsets, to handle files larger than 4 gigabytes (GB);
- support for asynchronous writes on the server, to improve write performance;
- additional file attributes in many replies, to avoid the need to refetch them;
- a READDIRPLUS operation, to get file handles and attributes along with file names when scanning a directory;
- assorted other improvements.
At the time Version 3 was introduced, TCP started being supported as a transport by many vendors. While it is true several vendors had already added support for NFS Version 2 with TCP as a transport, Sun Microsystems added support for TCP as a transport for NFS at the same time it added support for Version 3. Using TCP as a transport made using NFS over a WAN more feasible.
Version 4, influenced by AFS and CIFS, includes performance improvements, mandates strong security, and introduces a stateful protocol. Version 4 was the first version developed with the Internet Engineering Task Force (IETF) after Sun Microsystems handed over the development of the NFS protocols.
Various side-band protocols have been added to NFS, including:
- The byte-range advisory Network Lock Manager (NLM) protocol which was added to support System V UNIX file locking APIs.
- The remote quota reporting (RQUOTAD) protocol to allow NFS users to view their data storage quotas on NFS servers.
WebNFS is an extension to Version 2 and Version 3 which allows NFS to be more easily integrated into Web browsers and to enable operation through firewalls.
Platforms
NFS is strongly associated with UNIX systems, though it can be used on other platforms such as classic Mac OS, Microsoft Windows and Novell NetWare operating systems. The Server Message Block (SMB, also known as CIFS) protocol, Apple Filing Protocol (AFP), and NetWare Core Protocol (NCP) are other remote file access protocols; SMB and NCP are more likely than NFS to be used on systems running Microsoft Windows, and AFP is more likely than NFS to be used on Macintosh systems.
Politics
1980s
NFS and ONC were prominent in the network computing war between Sun Microsystems and Apollo Computer, and later the UNIX wars between AT&T and Sun on one side, and Digital Equipment, HP, and IBM on the other.
At the time ONC was invented (called SunRPC at the time), Apollo's Network Computing System (NCS) was the only system comparable to ONC. Several religious battles over fundamental differences in the two remote procedure call systems developed. The major bone of contention was that ONC's method for data encoding External Data Representation (XDR), always rendered integers in big-endian order, even if both peers of the connection had little-endian machine architectures, whereas NCS's method attempted to avoid byte swap whenever the endianess of both peers' machine architectures was the same. An industry group called the Network Computing Forum was formed in an ultimately failed attempt to reconcile the two network computing environments.
Later, Sun and AT&T announced that the two firms would jointly develop AT&T's next version of UNIX: System V Release 4. This announcement enraged many of AT&T's licensees of UNIX System V, and ultimately led to Digital Equipment, HP, IBM, and others forming the Open Software Foundation (OSF). Ironically, Sun and AT&T had previously been in a battle between NFS and AT&T's Remote File System (RFS), and it was the quick adoption of NFS over RFS by Digital Equipment, HP, IBM, and many other computer vendors that decided the NFS versus RFS battle in the favor of NFS.
OSF solicited the proposals for various technologies, including the Graphical User Interface (GUI), the remote procedure call system, and the remote file access protocol. In the end, a proposal for the latter two, called respectively, the Distributed Computing Environment (DCE), and the Distributed File System (DFS) won over Sun's proposed ONC and NFS. DCE was derived from a suite of technologies, including NCS and Kerberos. DFS used DCE as the RPC and was further derived from AFS.
1990s
Sun Microsystems and the Internet Society (ISOC) reached an agreement to cede "change control" of ONC RPC so that ISOC's engineering standards body, the Internet Engineering Task Force (IETF) could publish standards documents (RFCs) documenting the ONC RPC protocols, and at IETF's option, extend ONC RPC. OSF attempted to have DCE RPC be an IETF standard, but ultimately was unwilling to give up change control. Later, IETF chose to extend ONC RPC by adding a new authentication flavor, RPCSEC_GSS, in order to meet IETF's requirements that protocol standards have adequate security.
Later, Sun and ISOC reached a similar agreement to give ISOC change control over NFS, although the contract was carefully written to exclude NFS version 2 and version 3. Instead, ISOC was given the right to add new versions to the NFS protocol, which resulted in NFS version 4 being specified by IETF in 2003.
2000s
By the 21st century, neither DFS nor AFS had achieved any major commercial success as compared to CIFS or NFS. IBM, which had previously acquired the primary commericial vendor of DFS and AFS, Transarc, announced it would cease selling or supporting DFS or AFS, and donated the source code to the AFS client to the open source community. The OpenAFS project lives on.
External links
- The Linux Documentation Project has several howto articles on NFS in different formats.
- Linux NFS Overview, FAQ and HOWTO Documents
- Configuring NFS on FreeBSD
- The NFS Version 4 overview site
- IETF ONC RPC working group electronic mail archive which documents OSF's refusal to give ISOC change control over DCE RPC.
- Distributed Object Computation Testbed (DOCT) Technical Report discusses the Network Computing Forum.
- NQNFS Not Quite NFS, a modification to NFS that requires some cache coherency for better performance
- RFC 3530 - NFS Version 4 Protocol Specification
- RFC 2054 - WebNFS Specification
- RFC 2339 - Sun/ISOC NFS Change Control Agreement
- RFC 2203 - RPCSEC_GSS Specification
- RFC 1813 - NFS Version 3 Protocol Specification
- RFC 1790 - Sun/ISOC ONC RPC Change Control Agreement
- RFC 1094 - NFS Version 2 Protocol Specification
See also
- AppleTalk
- RFS
- Samba
- Server Message Block
- Andrew file system
- Secure Shell Filesystem - mount a remote directory using only a ssh login on the remote computer.de:Network File System
es:Network File System eu:NFS fr:Network File System it:Network File System he:Network File System nl:Network File System ja:Network File System no:NFS pl:Network File System pt:Network File System ru:Network File System sv:NFS zh:NFS