DJ NFS: A Java-Based Distributed NFS Server
Jeffrey Bergamini (firstname.lastname@example.org) and
Brian Wood (email@example.com)
DJ NFS is a distributed network file system written in Java and based on NFS version 2.
It allows a standard NFS client to interact seamlessly with a file system that is distributed over a heterogeneous cluster of machines.
Much of the code was adapted from Mark Mitchell's JNFSD, and we are very grateful for his work.
DJ NFS was written as a project for Dr. Michael Haungs' CPE 550 course at Cal Poly in the Spring of 2004. It is functional, with much room left for improvement. This is what we have available so far:
This paper presents the architecture of our system, and discusses some of the advantages and disadvantages of the design. This is followed by a presentation of tests conducted to measure the performance of our system in comparison with a standard NFS server, as well as a discussion of possible future improvement.
- Metadata Server: Browse or Download Jar File
- Mediator: Browse or Download Jar File
Download: Executable jar files for the Metadata Server and Mediator.
- Run metadata.jar on the machine you wish to be the metadata server. Choose an appropriate directory to store the dummy file system. (Don't know what that means? Just use an empty directory or see the paper.)
java -jar metadata.jar C:\metadata_root
- Run mediator.jar on the machines you wish to be the mediators / file servers. Choose an appropriate directory on a drive where you want to store the files.
java -jar mediator.jar /var/djnfs_storage [metadata_server_address]
- Mount the file system as you would a normal NFS, using the address of your chosen mediator and the simulated export named "djnfs". A client will get better performance if it uses a mediator running on the local machine, but it will work with a remote machine as well.
mount localhost:djnfs /mnt/djnfs.
Note: A mediator cannot run on the same machine and same address as the metadata server.