Skip to content

Automatically exported from code.google.com/p/vsnfs

Notifications You must be signed in to change notification settings

kpraveen85/vsnfs

Repository files navigation

			Very Simple Network FileSystem [VSNFS]
			--------------------------------------

Introduction
------------
Very Simple Network FileSystem is a bare minimal Network Filesystem which allows access
to files/directories in the remote system in the network. It is implemented on the
Linux Kernel 2.6.31.6  

Index
-----
1 	Source structure
2  	Installing the Module
2.1 Procedures we support
3  	Design
4	Coding style
5	Extra credits

1 Source Structure:
-------------------

The source folder contains the following,

	- All code files related to VSNFS-client including the Makefile.
	- A folder named "server" that contains files related to VSNFS-server, 
     	  including its own makefile.
	- A folder named "docs" that contains the documents related to the 
          VSNFS project. The docs include the initial design document as well 
          the final report.

2 Installing the Modules
------------------------
Note that we have developed server and client as a loadable kernel module in linux 
kernel v2.6.31.6. The kernel configuration file is included in the name kernel.config 
in the top level directory.

First compile the vsnfs server code and load that module. It will create a kernel 
thread which would be listening for connections from the client. As of now we 
support only one client.

From the top folder,

$ cd server
$ make clean all
$ sudo insmod vsnfsd.ko

Now the server is running. Verify that using "rpcinfo -p". We have registered a 
RPC program with program number as 110003. Also do "ps -ef" and see if the 
[vsnfsd] kernel thread is running.

Now it is time to load the client.

$ cd .. 				(Move again to the top folder)
$ make clean all
$ sudo insmod vsnfs.ko
$ lsmod 				(To verify that the module is loaded)
$ cat /proc/filesystems (To verify that the filesystem is registered)

2.1 Procedures we support
-------------------------

A.) Mount Procedure
Above steps are done with the assumption that client and server are going to run 
in the same machine. It is possible to run server in a different machine than client. 
While mounting please mention the IP address of the machine running the vsnfs server. 
Right now we accept only IP addresses and not host names. 

Once all the above is successful we can mount the remote filesystem.

$ sudo mount -t vsnfs 127.0.0.1:/tmp /mnt (Client, Server running in same machine)
$ mount (To verify that our filesystem is successfully mounted)

B.) Lookup Procedure
We support -->lookup procedure. The way we look test it is,

$ls -il /mnt/sample/test/one.txt
29387 -rwsrwsrwt 1 root root 0 Dec 31 1969 /mnt/sample/test/one.txt

Any lookup related tests should pass.

C.) Readdir Procedure
We do support -->readdir procedure. We test it using "ls" and "cd" commands in the mounted directory.

3 Design
--------

Detailed design document is present in the docs folder. There we describe our design 
and implementation. This file is primarily intended to assist the evaluator to test 
the code.

4. Coding Style
--------------
We comply with the Kernel Module coding style using lindent & checkpatch scripts.

5. Extra Credit
---------------
We are communicating using eXternal Data Representation (XDR). This makes our code 
architecture independent.

About

Automatically exported from code.google.com/p/vsnfs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages