The Coda Distributed Filesystem for Linux - page 3
Introduction to Coda
The source code and pre-compiled binaries for Coda are readily available from Carnegie-Mellon University. For convenience sake, the examples in this section install a Coda client from Resource Package Manager (RPM) files on a Red Hat 7.3 Linux system.
Installing a Coda client require that you download (or compile) and install four packages:
- Coda's Light-Weight Process library--Light-Weight Processes are an implementation of threads used by Coda to insure portability across a wide range of different types of systems.
- Coda's Remote Procedure Call library--Coda's remote procedure call implementation provides the basic features required for communicating and exchanging data between Coda clients and servers.
- Coda's Recoverable Virtual Memory library--Coda caches remote directory information in virtual memory which it then stored on the client systems in order to help minimize restart times and avoid redundant lookups if nothing has changed.
- Coda client--The components of a Coda client, consisting of various Coda utilities, the Coda cache manager (venus), and some initialization and configuration files for the Coda client.
After downloading these packages, you can install these packages (as the root user) using the following commands:
su Your-Root_Password rpm -U lwp-1.8-1.i386.rpm rpm -U rpc2-1.13-1.i386.rpm rpm -U rvm-1.6-1.i386.rpm rpm -U coda-debug-client-5.3.19-1.i386.rpm
At this point, all of the software required for the Coda client is installed but the Coda filesystem is not yet active. You can verify this by listing the /coda directory which was created for you during the installation of the client:
ls /coda NOT_REALLY_CODA
If Coda has been installed but is not running, the /coda directory contains a file named NOT_REALLY_CODA to let you know that the Coda filesystem is not mounted.
Finally, use the Coda initialization script to start Coda's cache manager (named Venus) and mount the Coda filesystem:
/etc/rc.d/init.d/venus.init start Starting venus: done. Date: Sun 09/15/2002 00:15:54 /usr/coda/LOG size is 549376 bytes 00:15:54 /usr/coda/DATA size is 2193368 bytes 00:15:54 Loading RVM data 00:15:54 Last init was Sun Sep 8 19:27:00 2002 00:15:54 Last shutdown was clean 00:15:54 starting VDB scan 00:15:54 2 volume replicas 00:15:54 1 replicated volumes 00:15:54 0 CML entries allocated 00:15:54 0 CML entries on free-list 00:15:54 starting FSDB scan (833, 20000) (25, 75, 4) 00:15:54 781 cache files in table (6824 blocks) 00:15:54 52 cache files on free-list 00:15:54 starting HDB scan 00:15:54 3 hdb entries in table 00:15:54 0 hdb entries on free-list 00:15:54 Getting Root Volume information... 00:15:54 Venus starting... 00:15:54 /coda now mounted.
A number of messages display in the window or terminal session from which you started Coda. These provide status information about Coda's startup sequence and should conclude with a message stating that the Coda filesystem has been mounted on the directory /coda.
Distributed filesystem clients aren't all that interesting without a server that they can talk to, so the Coda project kindly provides a sample server, running at Carnegie-Mellon University, that Coda clients connect to by default. After installing the Coda client and starting Coda, you can list the contents of /coda to verify that Coda is actually working:
ls /coda ftp.coda playground cd /coda/playground ls Documentation file george MUHAHA test www.brabanten.com
The "playground" directory is a publicly writable in which you can create files to verify that everything is working correctly. If you examine some of the files that are already present in this directory, you'll see some excited comments from previous explorers of the Coda distributed filesystem who were similarly impressed that "it just works."