Getting started with the Metaphorics VNFS Server

This document describes the minimum and most portable way to get VNFS up and running on a UNIX workstation. It is assumed that a single machine will act as both client and server. Note that some of these steps assume the user has super user privileges. This is not generally necessary, but simplifies the process for this tutorial. This tutorial also assumes that NFS is running on the machine. This is not required and even simplifies getting started if it is not. However most UNIX machines have NFS installed and running by default.

[1] Installation

To install the VNFS server from the Metaphorics demonstration CD, simply run the install.sh script in the CDs top-level directory and follow the prompts. You do not require super user privileges to install or run the software. However, installing as root allows the files to be installed in their default location, /usr/local/metaphorics.

[2] Create a suitable VNFS mount point and export point

As root, create the top-level directory /vnfs using the command "mkdir /vnfs". This directory should then be added to the export list of the mount daemon on the machine. This is done by adding the line "/vnfs" to the bottom of the file "/etc/exports". Finally, after this exports file has been updated run the command "exportfs a" to instruct the mount daemon to reread this list of exported directories.

[3] Environment Variables

Once the software has been successfully installed on the system, several environment variables must be set correctly for the VNFS to execute correctly. If the current UNIX shell is sh, ksh or bash, type the following commands:

MX_ROOT=/usr/local/metaphorics

export $MX_ROOT

PATH=$PATH:$MX_ROOT/bin

export PATH

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MX_ROOT/lib

export LD_LIBRARY_PATH

Otherwise, if the current UNIX shell is csh or tcsh, type the following commands:

setenv MX_ROOT /usr/local/metaphorics

set path = ( $path $MX_ROOT/bin )

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${MX_ROOT}/lib

If the Metaphorics software was installed in a directory other than the default /usr/local/metaphorics, the appropriate change needs to be made to the MX_ROOT environment variable.

 

[4] VNFS plug-in data files.

Several of the demonstration VNFS plug-ins require additional data files to be created. For the swissfs.so plug-in, create the directory $MX_ROOT/data/swissprot, if it doesnt already exist. In this directory, you need to place a swissprot format flat file with the name "sprot.dat". A suitable swissprot format file can be found at the URL ftp://ftp.ebi.ac.uk/pub/databases/swissprot/release/. The file has the name "sprotxx.dat" where xx denotes the current version number, i.e. "sprot38.dat" at the time of writing. Once this file has been downloaded it should be renamed (or symbolically linked to) "sprot.dat". For the gzipfs.so plug-in, the $MX_ROOT/data directory should also contain several GNU gzip compressed files in order to demonstrate automatic decompression.

[5] Start the VNFS server

The Virtual Network File server is started by issuing the command "vnfsd bg" on the UNIX command line. This command need not be run as root. The "-bg" option causes the server to become a daemon and run in the background. It is occasionally useful to run the server with the command "vnfsd debug" to monitor it.

[6] Mount the VNFS server

On Solaris machines, issue the following command to mount the VNFS on the directory /vnfs, "mount F nfs o port=21069,soft,intr localhost:/vnfs /vnfs". On all other UNIX systems use the command "mount t nfs o port=21069,soft,intr localhost:/vnfs /vnfs". These commands must be issued as root on most systems.

[7] Accessing the VNFS server

Access the contents of /vnfs as though they were real files and directories.

[8] Unmounting the VNFS server

Finally, when youre finished using the VNFS server, change the current directory to a location outside of /vnfs, and as root unmount the directory using "umount /vnfs". Once the file system has been unmounted, the server can be shutdown by sending it the TERM signal, or typing control-C if it is being run interactively.