Linux NFS FAQ and How-To
NFS: Network File System Protocol Specification
The Sun Network Filesystem (NFS) protocol provides
transparent remote access to shared files across networks.
The NFS protocol is designed to be portable across different machines,
operating systems, network architectures, and transport protocols.
This portability is achieved through the use of Remote Procedure Call (RPC)
primitives built on top of an eXternal Data Representation (XDR).
NFS Version 3 Protocol Specification
This paper describes the NFS version 3 protocol.
This paper is provided so that people can write compatible implementations.
RPC: Remote Procedure Call Protocol Specification Version 2
This document describes the ONC Remote Procedure Call (ONC RPC Version 2)
protocol as it is currently deployed and accepted.
"ONC" stands for "Open Network Computing".
XDR: External Data Representation Standard
This document describes the External Data Representation
Standard (XDR) protocol as it is currently deployed and accepted.
NFS Version 2 and Version 3 Security Issues and the NFS Protocol's
Use of RPCSEC_GSS and Kerberos V5
This memorandum clarifies various security issues involving the NFS
protocol (Version 2 and Version 3 only) and then describes how the
Version 2 and Version 3 of the NFS protocol use the RPCSEC_GSS
security flavor protocol and Kerberos V5. This memorandum is
provided so that people can write compatible implementations.
NFS Version 4 Design Considerations
This design considerations document is meant to present more detail
than the working group charter. Specifically, it presents the areas
that the working group will investigate and consider while developing
a protocol specification for NFS version 4. Based on this
investigation the working group will decide the features of the new
protocol based on the cost and benefits within the specific feature
NFS version 4 Protocol
NFS (Network File System) version 4 is a distributed file system protocol
which owes heritage to NFS protocol versions 2 [RFC1094] and 3 [RFC1813].
Unlike earlier versions, the NFS version 4 protocol supports traditional
file access while integrating support for file locking and the mount protocol.
In addition, support for strong security (and its negotiation), compound
operations, client caching, and internationalization have been added.
Of course, attention has been applied to making NFS version 4 operate well
in an Internet environment.
For more information,
if you have comments or suggestions,
or if you're interested in participating in the project,
send e-mail to:
||A simple tool to measure how much data is sent over a period of
time and calculates the amount of bandwidth used. Runs on the client
it monitors. CITI has modified version 0.2.2 to allow the user to
redirect the output to a logfile.
||Bonnie performs a series of tests on a file of known size. For each test, Bonnie reports the bytes processed per elapsed second, per CPU second, and the % CPU
usage (user and system).
||An online transaction processing benchmark developed as a thesis
project and patterned after TCP-C.
CITI uses this benchmark to examine the performance of the Linux
NFS client when used in as the file system for a database.
IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems.
||Another bandwidth measurement tool. This is run on two different
machines and it measures the bandwidth available between the two
machines. Helps to verify the network environment and to tune TCP
parameters for maximum performance.
||A simple tool that comes with the PostgreSQL database package that
allows DBA's to measure and tune a databases performance.
||Postmark is used to simulate heavy small-file system loads with a minimal
amount of software and configuration, which inturn will provide complete
reproducibility. The benchmark was created to simmulate a mail server
scenario with many small files that are constantly being created, read,
written or deleted. It measures the transaction rates of these files for
a workload that resembles a large Internet electronic mail server.
||An industry standard Web Server benchmark. CITI uses this tool
to generate a load on a webserver using NFS to retrieve its
web pages. Along with tcpdump and other tools, we can compare the
behavior of the Linux NFS client implementation in this environment
to the behavior of another NFS client implementation.
kprofile is a patch to the linux kernel. It
allows one to easily put timers into the kernel, and view the results through
a proc interface. Also included is a perl script that puts the timer results
into an html page.
kprofile is under development by James Newsome. For documentation, see net/sunrpc/kprofile.c and
Source (Updated 1/25/2002)
rpcstat consists of a patch to the linux kernel, which makes statistics
about RPC activity available via a /proc interface. Also included is
a c program used to gather these statistics at a given interval, with
output ideal for gnuplot.
Wed Jan 16 14:48:44 EST 2002