April 18, 2019

The Coda Distributed Filesystem for Linux - page 3

Introduction to Coda

  • October 7, 2002
  • By Bill von Hagen

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:

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

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
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."

Most Popular LinuxPlanet Stories