When a client requests the file "/path/filename" , the ClusterNFS server checks for the existence of files of the form "/path/filename$$KEY=value$$". If such a file exists and the clients has a matching value for KEY, this file is returned. If the client does not have the matching value or no such file exists, the file request proceeds as normal. Currently supported keys include, HOST (hostname), IP (IP number), UID (user id), GID (group id), and CLIENT (matches any NFS client).
By naming all machine-specific files "filename$$IP=aaa.bbb.ccc.ddd" and naming files which are the same for all clients "filename$$CLIENT$$", the server and all clients can share the same root partition. This makes it easy to set up and maintain a pool of diskless machines. The ClusterNFS home page is hosted on a small Beowulf cluster http://queenbee.fhcrc.org which has been constructed in this fashion.
When a client requests the file "/path/filename",
the ClusterNFS server checks for for the following files, returning
the first match:
Filename | Matches if: |
---|---|
/path/filename$$UID=xxxx$$ | Matches if the user id of the user accessing the file is xxxx. |
/path/filename$$GID=yyyy$$ | Matches if the current group id of the user accessing the file is yyyy. |
/path/filename$$HOSTNAME=ssss$$ | Matches if the hostname of the client making the request is ssss. |
/path/filename$$IP=xxx.xxx.xxx.xxx$$ | Matches if the host ip number of the client making the request is xxx.xxx.xxx.xxx. |
/path/filename$$CLIENT$$ | Always matches on access through the NFS server. |
/path/filename | Always matches. |
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 causes two lookup attempts, first using the filename without the trailing "$$$$", then with the trailing "$$$$". The latter occurs in case there is a file actually named "filename$$$$".
As of version 0.91 alpha, all file and directory actions (read, create, link, softlink, getattrib, setattrib, rename, remove, copy, mkdir, rmdir) support this scheme. As of version 1.0.0-pre1, mount requests also support this scheme
Future enhancement will suport:
(This is a presentation that was given to the Seattle SAGE Group, May 11, 2000. It should be correct except for the URLS's, which have changed).
(This was written May 10, 2000. It should be correct except for the URLS's, which have changed.)
The original version of the UNFS is maintained by Olaf Kirch okir@monad.swb.de.
Thomas Schoebel-Theuer schoebel@informatik.uni-stuttgart.de
provided a patch
for Linux versions 2.0.x which provided similar features.
There have been visits to this site since May 13, 2000