Coda File System

Re: Short and simple introduction

From: Stephen J. Turnbull <>
Date: Mon, 02 Sep 2002 22:55:18 -0400
[Aside to Jan: feel free to borrow/correct any of the following info.

"I hereby place the following text, except for the .sig, in the public

>>>>> "Tim" == Timothy Murphy <> writes:

    Tim> Is there a short and simple account somewhere explaining
    Tim> exactly what one has to do?

There are tutorials in the docs, see the web site.  They are
reasonably good.

YMMV but here are my notes purporting to report exactly what I did for
my experimental setup.  This is not a sensible production setup, but I
have migrated the Coda RVM and file caches several times (sorry, I
don't have notes for those), and added a second data partition in
/vicepb, to make something more reasonable for a production server.
Also, while I never did split the Research and Teaching volumes, I
have split the XEmacs volume.  So you probably shouldn't worry about
getting it right the first time; you have flexibility to change.  By
current standards (people are always asking about 1TB servers and
stuff like that), it's rather small, the server only manages about

The remarking about partitions getting fsck'd hasn't been relevant
since my first upgrade of Coda.  Talk about just missing the boat....

In the event, I never got around to VPATHing Ghostscript, and although
it is possible to build Coda outside of the source directory, it's not
very convenient when building Debian packages.  Similarly TeX (and
auxiliary processors such as gnuplot) puts its files in Coda for my
lecture notes.  This doesn't seem to be a noticable performance
bottleneck compared to a native ext2 fs, except that since I get
driven into swap quickly make -j is not very useful.

This file describes my trial Coda setup.

The first application will be to hold my programming projects (such as
XEmacs and Ghostscript), since these can be easily replicated from
original source, and local changes can easily be backed up to more (?)
reliable media in `diff -u' form.  Also the workspace for my Spring  
2000 lectures will be here, as these will be stored in a CVS repository
and thus can also be regularly backed up in `diff -u' form.
As much as possible Coda will only be used to hold sources.  All 
generated files will be kept elsewhere, using VPATH.  (I don't know if
this really makes sense for lecture notes, although Web versions can
certainly be done that way.)

The server will be hosted on `tleepslib', on partition /dev/hda8,
currently mounted on /mnt.  The files (as well as the Coda sources
themselves) are in the directory /mnt/Projects/Coda:

    00README        This file
    Sources         Coda source files (coda, rvm, lwp, rpc2, linux-coda)
    vice            Coda server configuration directory
    vicepa          User data volumes
                    #### Very dangerous because this partition may get
                    fsck'd. #### And did -- it lives in /vicepa now.
    DATA            Coda server RVM metadata
    LOG             Coda server RVM log

The "secret" tokens are `secret0' (for auth2) and `secret1' (for volutil).
(The server will be initially protected by a firewall, and isn't intended to
stay in the experimental location anyway (want to have efficient data storage
so the RVM metadata and log should be moved to partitions).

The initial server map is         1

The Coda administrator will be "codakami", user #500.

The name of the root volume is "coda:root" (how original!).

OK, here we go....

  514  auth2
  515  rpc2portmap
  516  updateclnt -h tleepslib -q coda_udpsrv
  517  updatesrv -p /mnt/Projects/Coda/vice/db
  518  startserver & xterm -e tail -f /mnt/Projects/Coda/vice/srv/SrvLog &
  519  createvol_rep coda:root E0000100 /mnt/Projects/Coda/vicepa
       # not part of script -- shutdown already running testserver
       # including a few tests (and mistakes) not shown here
  520  vutil shutdown
  522  umount /coda
  524  venus-setup tleepslib 20000
  525  venus -init &
  526  ls /coda
  529  clog codakami
       # My first Coda file!
  530  cp 00README /coda/

This seems to work fine.

Now for the directory/volume structure.  It seems to make sense to have
a volume per project.  So the initial volumes and mount points will be

    p.xemacs          /coda/Projects/XEmacs              /coda/Projects/Ghostscript
    p.coda            /coda/Projects/Coda
    p.local           /coda/Projects/local
    teach             /coda/Teach
    research          /coda/Research

The latter will probably eventually get split up into t.* and r.* volumes.

Institute of Policy and Planning Sciences
University of Tsukuba                    Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
 My nostalgia for Icon makes me forget about any of the bad things.  I don't
have much nostalgia for Perl, so its faults I remember.  Scott Gilbert
Received on 2002-09-02 22:57:31