What is NFS?
Also known as: Network File System
NFS (Network File System) is a distributed file system protocol originally developed by Sun Microsystems that allows a client to access files over a network as if they were local. It is widely used in Unix and Linux environments and runs over IP networks.
NFS (Network File System) is a remote file access protocol pioneered by Sun Microsystems in 1984. It allows a client machine to mount a directory exported by a server and read or write files using standard file system operations. The protocol evolved through versions: NFSv2 (RFC 1094, 1989), NFSv3 (RFC 1813, 1995), and the more feature-rich NFSv4 (RFC 7530, 2015). Each version improved security, performance, and state management.
NFS operates over IP networks, typically using UDP or TCP on port 2049. It relies on ONC RPC (Remote Procedure Call) for client-server communication. In NFSv2 and v3, the protocol was stateless: the server maintained no client file-open state, requiring clients to handle locking separately (often via the Network Lock Manager, NLM). NFSv4 introduced a stateful model, integrated locking, strong security (RPCSEC_GSS), and compound operations to reduce round trips. The mount protocol (RFC 1813 Appendix I) was used in early versions to initially access an export; NFSv4 folded mount into the main protocol.
In the storage ecosystem, NFS is the dominant network file system for Unix-like operating systems, comparable to SMB/CIFS in Windows environments. It is the foundation of many NAS (Network Attached Storage) appliances and is used in data centers for shared home directories, application data, and virtual machine image stores. NFS sits above the transport layer (TCP or UDP) and below the file system interface presented to applications. Extensions like pNFS (parallel NFS, RFC 8435) allow striping data across multiple storage servers for high throughput.
Key facts
- Developed by Sun Microsystems and first released in 1984.
- Standard RFCs: NFSv2 (RFC 1094), NFSv3 (RFC 1813), NFSv4 (RFC 7530).
- Default port is 2049 (TCP/UDP).
- Uses ONC RPC for remote procedure calls between client and server.
- NFSv4 integrates file locking, security (RPCSEC_GSS), and stateful operation.
How it works in practice
Related terms
References
More in Storage
Block Storage
Block storage is a storage architecture that presents raw fixed-size chunks (blocks) to a computer, which the operating system partitions and formats before use, commonly used for virtual machine disks and database volumes.
Cold Storage
Cold storage is a low-cost, slow-retrieval data tier for infrequently accessed information, such as backups, archives, or compliance records, with retrieval times ranging from minutes to hours.
Erasure Coding
Erasure coding is a data protection method that splits data into fragments (shards) and adds parity, allowing reconstruction from a subset of fragments; it is commonly used in cloud object storage to tolerate failures efficiently.
Fibre Channel
Fibre Channel is a high-speed networking standard primarily used to connect storage devices in storage area networks, operating as a dedicated protocol stack separate from Ethernet.
File Storage
File storage exposes data as a hierarchical filesystem over network protocols like NFS and SMB, commonly delivered via network-attached storage (NAS) appliances for shared access.
Hot Storage
Hot storage is the default high-performance tier in object storage systems, optimized for low-latency access to frequently retrieved data.
iSCSI
iSCSI is a storage protocol that encapsulates SCSI block-level commands over TCP/IP, enabling servers to access remote disks as if they were locally attached.
Object Storage
Object storage is a flat data storage architecture that manages data as immutable objects, each with a unique identifier, metadata, and API access over HTTP. It is the model behind Amazon S3 and similar cloud storage services.
RAID
RAID (Redundant Array of Independent Disks) combines multiple physical disk drives into a single logical unit to improve performance, fault tolerance, or both, using techniques like striping, mirroring, and parity.
RAID 0
A data storage method that splits data across two or more disks in stripes to improve read and write performance, but provides no fault tolerance.