LinuxHPC.org/Cluster Builder 1.3
    Network File System
Translate to another language

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. People involved in the creation of NFS version 2 include Rusty Sandberg, Bob Lyon, Bill Joy, and Steve Kleiman.

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, vendor support for TCP as a transport layer began increasing. 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, 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.


All text used in this article is available under the GNU Free Documentation License. It uses material from the Wikipedia article "Network File System".