Coda File System

replication and howto confusion

From: Anil B. Somayaji <>
Date: 19 Jan 1999 13:44:35 -0700
A friend of mine and I have now spent many hours scattered through the
past few weeks playing with coda, first 4.6.6, then 5.0.0, so
hopefully I can contribute a bit from the viewpoint of an outsider to
the project.  First off, I have to say that I am quite impressed.
While coda has plenty of rough spots, it has an amazing amount of
functionality.  The free software community has needed a real
alternative to NFS for a long time, and THIS IS IT!  I really want to
get my research group using coda, and I believe it is almost ready for
that.  So, I'm happy to be one of the guinea pigs. :-)

Now to more concrete concerns.  First, to point out where I'm coming
from, here's what we've been playing with.  I've been building coda
from scratch on Debian 2.0/2.1 systems, and I've installed coda on a
FreeBSD 2.2.6 box using the precompiled binaries.  (I've heard about
Debian packages, but I haven't found them - of course, I haven't
looked that hard.  Are they around?)

So, here are some issues I've had:

 * The source distribution has hardly any documentation!  There is no
   generic readme file, and there are no copies of the
   INSTALL.<platform> files (which have been very helpful to me, thank
   you!).  I've downloaded the separate docs package, and that has
   caused me a great amount of grief, even after patching the
   sgml-tools source (I only had 1.0.9 around, not 1.0.7, and even
   though the patch applied cleanly, the html build process was still
   somewhat broken.)  It would be wonderful if there was a precompiled
   docs bundle - sometimes it isn't convenient to continuously browse
   the web from home, especially when someone else needs the
   phone. :-)

 * I don't quite grok replicated servers, especially the parts having
   to do with the root volume.  From the howto, here is what is says
   to do after setting up a non-SCM server:

     1. Your server needs a server number, to be added to the
        /vice/db/servers file ON THE SCM. 
     2. Make two new entries in the /vice/db/VSGDB file. One for your
        new server by itself, one of the form: E0000104 scm-server
     3. Start updatesrv and updateclnt on the second server. 
     4. Start codasrv on the second server 
     5. Make a new volume from the SCM using createvol_rep giving the
        address of the volume as E0000104. 
     6. Mount the volume as above. 

   #2 is not very clear to me - what should the line for the new
   server look like?  Maybe an example would help.  Should my VSGDB
   look like:

        E0000100 scm-server
        E0000100 second-server
        E0000104 scm-server second-server

        E0000100 scm-server
        E0000101 second-server
        E0000104 scm-server second-server

        E0000100 scm-server
        E0000104 scm-server second-server
   ?  What I really want to do is have a read-write replicated root.
   Is this currently impossible?  Or does it happen automatically?
   Even though I've played with this a bit, I'm not sure.  I can
   create and use a separate replicated volume (by using the second of
   the above alternatives), but a) the replication is quite fragile,
   and b) the root does not appear replicated (which is what I
   expected).  Do I have to create a read-only replicant of my root
   partition, and install that on the replicated servers?

   I think I'm missing some basic concepts here.

 * Can you start venus without it referring to all replicated servers
   of a given volume?  Originally, I had a client that was only
   talking to the SCM.  Then, I added a second server, and created a
   replicated volume.  I could mount and unmount this volume on the
   SCM client, but I couldn't access it!  When I reinstalled the
   client using both the scm-server and second-server, then I could
   mount and access the replicated volume.  The behavior was flaky
   (after overflowing the local cache, we had to do some reboots, and
   still things were weird), but it basically worked.  So - does venus
   need to know about ALL servers in the cell when it starts up?

 * Does a client's cache have to be big enough to hold any single
   file?  Or does it have to be big enough to hold a whole directory?
   We definitely had problems when we tried copying a 23M file into
   coda when the client only was set up with a 20M cache.

I think that's it for now.  I don't know if I'll be able to contribute
code patches for a while, but I'm pretty sure I can do bug reports
once I'm up and running.



Anil Somayaji (
+1 505 872 3150

Received on 1999-01-19 15:49:40