Network File System
Encyclopedia : N : NE : NET : Network File System
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 distributed file system for other examples.
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.
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.
Platforms
NFS is strongly associated with UNIX systems, though it can be used on other platforms such as classic Mac OS, Microsoft Windows, Novell NetWare, and IBM AS/400 operating systems. The Server Message Block (SMB, also known as CIFS) protocol, Apple Filing Protocol (AFP), NetWare Core Protocol (NCP), and OS/400 File Server file system (QFileSvr.400) are other remote file access protocols; SMB and NCP are more likely than NFS to be used on systems running Microsoft Windows, AFP is more likely than NFS to be used on Macintosh systems, and QFileSvr.400 is more likely than NFS to be used on AS/400 systems.Protocol development versus competing protocols
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 competing cliques developed advocating over fundamental differences in the two remote procedure call systems. 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 [citation needed] 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 competed over Sun's NFS versus 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 tipped the majority of users in favor of NFS.
OSF solicited the proposals for various technologies, including 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 could 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 commercial 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.See also
- TCP Wrappers
- Kerberos
- Network Information Service
- 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.
External links
- [The Linux Documentation Project] has several howto articles on NFS in different formats.
- * [How to mount root file system via NFS]
- [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
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
