Bull GNU/Linux NFSv4 project

Functional Requirements Specification
Administration of NFS and NFSv4 for Linux

Version 0.3

2004/04/30

Authors:
Frederic Jolly <frederic.jolly@ext.bull.net>
Tony Reix <tony.reix@bull.net>

Change summary

Main additions and modifications since version 0.1 are in green.

Version Number Date of Revision
0.1 2004/03/24
0.2 2004/04/22
0.3 2004/04/30

Reviewers

Gerrit Huizenga <gerrit@us.ibm.com>
Bruce Allan <bruce.allan@us.ibm.com>
Patrice Romand <Patrice.Romand@bull.net>
Gilles Quillard <gilles.quillard@bull.net>
Bruce Fields <bfields@fieldses.org>

Table of contents

Reference documents

IETF standard: http://www.ietf.org/rfc/rfc3530.txt?number=3530
IETF NFSv4 Mailing list: http://www1.ietf.org/mail-archive/working-groups/nfsv4/current/maillist.html
SourceForge NFS Mailling list: http://sourceforge.net/mailarchive/forum.php?forum_id=4930
CITI NFS version 4 Implementation: http://www.citi.umich.edu/projects/nfsv4/linux/
Man Pages

1. Overview

This document deals with the administration of NFS (version 3) and NFS Version 4 on GNU/Linux.
It aims to simplify the installation and the administration of NFSv4.

The goals of this project are:

The work is based on the kernel 2.6.
It does not target a specific Linux distribution: the init scripts are standard ones, and will have to be modified for each distribution.


When designing an administration command, the following rules must be observed:

2. Existing and missing commands

The GNU/Linux commands are in the following packages:

(N.B.: on RedHat, mount is not in the util-linux package but in its own package)

2.1 Existing commands

2.1.1 Server commands

2.1.1.1 exportfs

exportfs is used to maintain the list of the NFS exported filesystems.
This list is kept in the file:
/var/lib/nfs/xtab
exportfs can export, unexport or reexport filesystems, according to either the file /etc/exports or to the arguments.

The notation is:
client:/path
where client can be a hostname (abbreviated name or fqdn), a NIS netgroup, an IP address (IPv4 or IPv6), an IP subnetwork, or even nothing, which means every hosts.

Usefull options:

2.1.2 Client commands

2.1.2.1 mount

mount mounts a filesystem.
The type of the filesystem is specified with the option -t (for example, nfs or nfs4).

Usefull options:

Specific NFSv4 option:

2.1.2.2 umount

umount unmounts filesystems.

Usefull options:

2.1.2.3 automount

automount configures the mount points for autofs, the automounter.
It uses the file:
/etc/auto.master

2.1.3 Kerberos5 configuration

For both the client and the server, credentials need to be created.
There is currently no command nor script to fill in the file:
/etc/krb5.keytab

The structure of this file willl be discussed later.

2.1.4 Reports commands

2.1.4.1 rpcinfo

rpcinfo -p shows if the nfs daemon is running, which version are supported (2, 3, 4), and with which protocol (udp, tcp).

2.1.4.2 nfsstat

nfsstat displays statistics about both NFS client and server activity.
It uses the files /proc/net/rpc/nfsd (for the server statistics) and /proc/net/rpc/nfs (for the client).

2.1.4.3 showmount

showmount -a lists the clients hostname and the mounted filesystems on a server.
showmount -e lists the filesystems exported by a server.

2.1.4.4 exportfs

exportfs lists the exported file system for NFS.
It uses the following files:
/var/lib/nfs/etab to show what filesystems should be exported to whom at the moment
/var/lib/nfs/rmtab lists which filesystems are actually mounted by certain clients at the moment
/proc/fs/nfs/exports (it is the same file as /var/lib/nfs/xtab, which is unused, unless /proc doesn't exist) contains informations about what filesystems are exported to actual client

2.1.4.5 mount

On the client, mount shows which filesystems are currently mounted.
It can also be accessible by /proc/mounts.

2.1.5 Init scripts

Prior to the use of NFSv4, daemons need to be started, via their corresponding init scripts.

For the server:

For the client:

idmapd needs to be configured with the file:
/etc/idmapd.conf

2.2 Missing commands and options

Here are the currently commands and scripts that need to be done, in order of priority:

Other missing commands or options?

2.3 The CIM schema for NFS and NFSv4

CIM standards are made by the DMTF: http://www.dmtf.org/standards/cim/
The current CIM schema, version 2.8.1, deals only with NFSv3 (16 attributes).

A IBM opensource project, SBLIM (Gareth S. Bestor, IBM LTC Beaverton), has delivered recently (begining of April) a package providing only exports for NFSv3 and NFSv4 : http://oss.software.ibm.com/developerworks/projects/sblim/

3. Objects and tasks

The tasks about NFSv4 can be divided in three parts:

3.1 Server side

3.1.1 Tasks

3.1.2 Managed objects: exported directories

The properties are:

3.2 Client side

3.2.1 Tasks

3.2.2 Managed objects: mounted filesystems

The properties are:

3.3 Other tools

4. GUI implementation

4.1 GUI

On linux, there is no usual GUI to administrate NFS (there is actually no usual GUI to administrate Linux...)
The most commonly used administration tool is WebMin. It provides many usefull features, including the management of the filesystems.
Two other tools can be added to WebMin: Nagios, which provides the monitoring features, and MRTG, which provides the reports features.

Creation from scratch of a new GUI (in GTK for example) or WebMin+Nagios will be enough?

4.2 WebMin

http://www.webmin.com/

WebMin is a web-based interface for system administration.
It has several modules, and two of them need to be modified to support NFSv4:

Both modules are standard modules, made by the creator of WebMin, Jamie Cameron.

Requirements for the new modules: maybe supermount?

It could be useful to administrate several hosts at the same time...

4.2.1 Missing functionalities of 'NFS exports' module

4.2.2 Missing functionalities of 'Disk and Network Filesystems' module

4.3 Nagios

http://www.nagios.org/

Nagios is a host and network monitoring daemon.
It runs intermittent checks on hosts and services. It has currently no NFS specific plugin.

4.3.1 Missing functionalities of Nagios

4.4 MRTG

http://people.ee.ethz.ch/~oetiker/webtools/mrtg/

MRTG plots graphs to monitor the traffic load on a network.

4.4.1 Missing functionalities of MRTG

4.5 Distribution specific tools

The distribution specific tools and init scripts are under the responsability of each distribution maintainers. They won't be discussed here.

4.6 desktop specific tools

There is no tool, neither on KDE nor on Gnome, to configure a NFS client or server.
The following tools can be used to monitor partitions usage:

4.7 WBEM

4.7.1 The implementation in OpenPegasus


Page maintained by: Frederic Jolly
Accessed times since its creation.
 
Last update: 2005, February 10