Enterprise Desktop.com

Network File System (NFS)

By Peter Loshin

What is NFS?

Network File System (NFS) is a networking protocol for distributed file sharing. A file system defines the way data in the form of files is stored and retrieved from storage devices, such as hard disk drives, solid-state drives and tape drives. NFS is a network file sharing protocol that defines the way files are stored and retrieved from storage devices across networks.

The NFS protocol defines a network file system, originally developed for local file sharing among Unix systems and released by Sun Microsystems in 1984. The NFS protocol specification was first published by the Internet Engineering Task Force (IETF) as an internet protocol in RFC 1094 in 1989. The current version of the NFS protocol is documented in RFC 7530, which documents the NFS version 4 (NFSv4) Protocol.

NFS enables system administrators to share all or a portion of a file system on a networked server to make it accessible to remote computer users. Clients with Authorization to access the shared file system can mount NFS shares, also known as shared file systems. NFS uses Remote Procedure Calls (RPCs) to route requests between clients and servers.

NFS is one of the most widely used protocols for file servers. NFS implementations are available for most modern operating systems (OSes), including the following:

Cloud vendors also implement the NFS protocol for cloud storage, including Amazon Elastic File System, NFS file shares in Microsoft Azure and Google Cloud Filestore.

Any device that can be attached to an NFS host file system can be shared through NFS. This includes hard disks, solid state drives, tape drives, printers and other peripherals. Users with appropriate permissions can access resources from their client machines as if those resources are mounted locally.

NFS is an application layer protocol, meaning that it can operate over any transport or network protocol stack. However, in most cases NFS is implemented on systems running the TCP/IP protocol suite. The original intention for NFS was to create a simple and stateless protocol for distributed file system sharing.

Early versions of NFS used the User Datagram Protocol (UDP) for its transport layer. This eliminated the need to define a stateful storage protocol; however, NFS now supports both the Transmission Control Protocol (TCP) and UDP. Support for TCP as a transport layer protocol was added to NFS version 3 (NFSv3) in 1995.

How does the Network File System work?

NFS is a client-server protocol. An NFS server is a host that meets the following requirements:

An NFS client is a host that meets the following requirements:

NFS was initially conceived as a method for sharing file systems across workgroups using Unix. It is still often used for ad hoc sharing of resources.

The process of setting up NFS service includes the following three steps, whether on an enterprise file server or on a local workstation:

  1. Verify that rpc.mountd or just mountd is installed and working. This is the NFS daemon -- the program that listens to the network for NFS requests.
  2. Create or choose a shared directory on the server. This is the NFS mount point. Using the mount point and the server host name or address uniquely identifies the NFS resource.
  3. Configure permissions on the NFS server to enable authorized users to read, write and execute files in the file system.

Setting up an NFS client machine to access an NFS server can be done manually, using the mount command or using an NFS configuration file -- /etc/exports. Each line in the NFS config file contains a mount point, an IP address or a host domain name and any configuration metadata needed to access the file system.

Versions of NFS

NFSv4, the current version of NFS, and other versions subsequent to NFS version 2 (NFSv2) are usually compatible after client and server machines negotiate a connection.

NFS versions from the earliest to the current one are as follows:

Sun Network Filesystem released March 1984

Sun Microsystems published the first implementation of its network file system in March 1984. The objective was to provide transparent, remote access to file systems. Sun intended to differentiate its NFS project from other Unix file systems by designing it to be easily portable to other OSes and machine architectures.

NFSv2 released March 1989

NFSv2 is specified in RFC 1094. Its key features included the following:

NFSv2 is obsolete and should not be used.

NFSv3 released June 1995

Specified in RFC 1813, NFSv3 incorporated the following new features and updates:

NFSv3 is reported to still be in widespread use. It is interoperable with NFSv4 but lacks support for many of the new and improved features rolled out with later versions.

NFSv4 released April 2003

The update to NFSv4 was first documented in RFC 3010 in 2000. This is the first version of the NFS specification that the IETF published as a proposed standard; prior versions were published as informational.

New and improved features in this update included the following:

A new API was included for future additions of new security mechanisms.

A slightly-updated version of the NFS specification was republished in 2003 as RFC 3530, to correct errors in the first version and add some improvements to the protocol.

NFS version 4.1 (NFSv4.1) released January 2010

A minor version protocol, NFSv4.1 published as RFC 5661, added new features including the following:

NFS version 4.2 (NFSv4.2) released November 2016

NFSv4.2 is documented in RFC 7862. It added the following new features and updates:

Benefits of NFS

Among many benefits for organizations using NFS are the following:

Disadvantages of NFS

Some of the drawbacks of using NFS include the following:

While NFS started out as a simple network file system for local area networking, it has been adapted and adopted for almost every kind of distributed file system. Find out how AWS implements its file services -- Amazon FSx and Amazon EFS -- based on Windows Server Message Block and NFS.

14 Apr 2022

All Rights Reserved, Copyright 2008 - 2024, TechTarget | Read our Privacy Statement