Network File System (NFS) protocol allow Linux client to mount remote file systems and interact with those file systems as they are mounted locally.
- NFS was developed by Sun Microsystems in 1980
- NFS stand for Network File System
- NFS is used to share files and printer between Linux / Unix systems
- Red Hat Enterprise Linux 6 supports NFSv2, NFSv3, and NFSv4 clients.
- By default RHEL6 use NFSv4 if the server supports it.
NFSv1
NFSv1 was the development stage of NFS protocol. It was used only for in house experimental purpose. When a stable version of NFS was ready, Developers decided to release it as the new version of NFS known as NFSv2.
NFSv2
- NFSv2 supports only 32 bit.
- NFSv2 only allowed the first 2 GB of a file to be read
- NFSv2 operated only over UDP
NFSv3
- NFSv3 supports 64 bit file system.
- NFSv3 can handle files larger than 2 GB.
- NFSv3 supports asynchronous writes on the server. asynchronous writes improve write performance.
- NFSv3 supports additional file attributes in many replies, to avoid the need to re-fetch them.
- NFSv3 supports READDIRPLUS operation. READDIRPLUS operation get file handles and attributes along with file names when scanning a directory.
- NFSv3 supports TCP. Using TCP as a transport made NFS over a WAN more feasible.
NFSv4
- NFSv4 retains all NFSv3 advantages.
- NFSv4 supports ACLs.
- NFSv4 uses the virtual file system to present the server's export.
- NFSv4 supports Pseudo file system. Pseudo File System provide maximum flexibility. Exports Pathname on servers can be changed transparently to clients.
- NFSv4 have locking operations as the part of protocol which keep track of open files and delegations.
- NFSv4 works through firewalls and on the Internet.