What is Cluster-NFS?
--------------------

ClusterNFS is a based on the "Universal NFS Daemon" (UNFSD)  version 2.2 Beta 47.

It has been modified by Gregory R. Warnes <clusternfs@warnes.net> to
enable per-client file name matching . This is intended to allow
multiple diskless clients to NFS mount the same root filesystem,
greatly easing file system maintenance for large clusters.

The original version of the UNFS is maintained by Olaf Kirch
<okir@monad.swb.de>.

Description
-----------

When the NFS daemon is started with the command line option "-T" or
"--translate-names", file lookups will be performed by attempting to
match file names with various "interpreted" expressions appended.

This implementation operates by appending one of a number of strings
to the requested file name.  The current extension strings are:

	$$UID=xxxx$$            user id of the user accessing the file
	$$GID=xxxx$$  	   	current group id of the user accessing
                                the file
	$$HOSTNAME=ssss$$       hostname of the client making the 
                                request
	$$IP=xxx.xxx.xxx.xxx$$  host IP number of the client making the 
                                request
	$$CLIENT$$	        any access through the NFS server

Each of these is tried, in order listed.  If a match exist AND IS
READABLE, it is returned, and no further attempts are made.  If none
of these extensions matches, the action will be attempted using the
unmodified original filename.

Note that if a matching file is located, but authorization is denied,
this is NOT considered a match, and the next entry on the list will be
attempted.

To access the "base" file or directory, rather than the machine
specific version, simply append "$$$$" to the filename. This also
cause make two lookup attempts, first using the filename without the
trailing "$$$$", then with the trailing "$$$$". (The latter, in case
there is a file actually named "filename$$$$".)

Note that file operations which do not use lookup, in particular mount
commands and file creation, are not (yet) effected by the name
mangling.


Please see EXAMPLE.ClusterNFS for a simple example.