paper

The Sun Network Filesystem: Design, Implementation and Experience

  • Authors:

📜 Abstract

We think that the NFS protocols, along with RPC and XDR, provide the most flexible method of remote file access available today. To encourage others to use NFS, Sun has made public all of the protocols associated with NFS. In addition, we have published the source code for the user level implementation of the RPC and XDR libraries.

✨ Summary

Paper summary

The paper presents the design, implementation, and early deployment experience of the Sun Network Filesystem (NFS). Its central objective is to provide transparent remote file access across heterogeneous machines and operating systems without requiring application changes. The design combines an RPC-based protocol with XDR for machine-independent data representation.

NFS uses a stateless protocol in which each request contains the information needed to complete the operation. Opaque file handles identify remote files, while request idempotence and client retransmission provide recovery from lost packets and server crashes. The separate MOUNT protocol establishes the initial file handle and performs filesystem access checks.

A major contribution is the VFS/vnode kernel interface, which separates generic filesystem operations from filesystem-specific implementations. This abstraction allows local disk filesystems, NFS, and other filesystem types to coexist behind a common kernel interface. The implementation also introduces server-side stable-storage requirements, inode generation numbers for file-handle validity, client and server caching, directory and attribute caching, asynchronous I/O support, and mount-time configuration options.

The paper documents important limitations and tradeoffs. NFS does not fully preserve all UNIX open-file semantics, does not include file locking in the core protocol, assumes a common UID/GID namespace, and may expose consistency problems during concurrent writes by different clients. Nevertheless, reported benchmarks showed that NFS performance could approach or exceed that of a local SCSI disk for several normal workloads, while raw transfer rates were reported as 250 KB/s for reads and 60 KB/s for writes on the tested Sun-3 configuration. (cs.ucf.edu)

Influence

The paper’s protocol concepts were subsequently captured in the NFS Version 2 specification, including opaque file handles, stateless-server tradeoffs, RPC procedures, and UNIX-oriented permission handling. (rfc-editor.org) Its VFS/vnode abstraction became a recurring kernel-structuring model: later systems research and industry work explicitly described vnode/VFS as a generic interface for filesystem implementations, NFS clients, and filesystem layering. (usenix.org) Later NFS standards retained and extended core ideas such as persistent file handles, while adding substantially richer protocol semantics in NFSv4. (rfc-editor.org)