Network File System: NFS
NFS (or Network File System) is the granddaddy of network file systems being introduced by Sun Microsystems in 1984. Since that time NFS has represented the de facto network file system of the UNIX ecosystem, and beyond. NFS is available natively on nearly every operating system made in recent years, is the primary on nearly all systems on which it is available, and where it is not native or primary it is generally still available from the primary vendor. NFS is available on all BSD, Linux, Windows, AIX, macOS, Solaris, VMware ESXi, and many other systems. NFS is fast, stable, and relatively simple to use.
NFS is a free and open standard managed today by the IETF. And it is built on top of the popular RPC (or Remote Procedure Call) platform.
NFS went through several major revisions over the years with NFSv2 being the first production released version. It was replaced by the current standard NFSv3 in 1995. NFSv4 was released in 2000, but is a major change from NFSv3 and both remain in active use.
NFS is extremely common for use by UNIX to UNIX file servers (primarily Linux and *BSD), in NAS devices, and for shared, remote storage for virtualization with VMware ESXi, KVM, and Xen all using it as the sole network file system option.
Like other network file systems on the market today, NFS was and continues to be designed and developers solely with the intent of it being used on a secure LAN. NFS lacks significant security features making it dangerous to use on a public network, and filesystems of this type are highly impacted by network latency (as well as bandwidth) making performance issues dramatic on WAN connections. While possible to use over the Internet or other public or remote connection, practical considerations mean that this would rarely work as hoped. When necessary to do so, it is generally considered necessary to create a VPN or equivalent connection (e.g. MPLS, SD-WAN) and pass NFS traffic over that which addresses the security, but not the performance, issues.
NFS and other network file systems are not POSIX compatible due to their nature. Any UNIX (and therefore Linux or macOS) functionality requiring full POSIX standards must use a local file system mounted directly and not through NFS.
Part of a series on Linux Systems Administration by Scott Alan Miller