Coda File System

a notice on "rational Coda administration"

From: Ivan Popov <>
Date: Sat, 1 Feb 2003 18:58:23 +0100 (MET)

Some of you can recall a posting called "design: go beyond AFS?"...

I spent several years using and adminstering "global file systems" like
DFS and Coda, have used AFS, too.

All of them share the concept of volumes/filesets and of "mountpoints" as
special file system objects.

A lot of times during these years I had to maintain a mapping between
volume names and their mountpoints. Even worse, you can easily mount a
volume at multiple points, say by mistake, endangering your data

We had to elaborate scripts for creating DFS filesets (DFS-ish for
"volumes") that mapped in some way the intended paths into volume names,
to be able to guess later where a given volume is/should be mounted...

Now Coda is capable of avoiding such mess, as the volume names can contain
the same characters as the paths. Moreover, Coda mountpoints at path
"/a/b/c" mount by default a volume named "/a/b/c" !

The only limitation (hopefully going to disappear) is that you have about
max 31 characters in the volume names, so if your mountpoints situate very
deeply in Coda filetree, you are out of luck.

Otherwise I suggest some simple rules, that make the life a lot easier.
You are going to feel the difference in the long run, when you have
hundreds or thousands of volumes (and may be multiple administrators too).

(Note: it is not a good idea to just use a few BIG volumes, it creates
other problems...)

The practical rules:

1. Call your rootvolume for "/". Yes, a slash.
   There is no reason to call it for anything else :)
   It is tragical that setup scripts used to ask for that name,
   while it does not matter technically but just creates confusion... [*]

2. Call your new volumes as their mountpoints are, like
   volume "/home/a/alice" to be mounted at /coda/home/a/alice
   (or at /coda/<yourrealm>/home/a/alice in the new global name space)

3. Create mountpoints with
   cfs mkm <name>
   without extra arguments, such "default" mountpoints always mount
   a volume called "<path-of-the-mountpoint>" like above

   (Thanks Jan for implementing this!)

I would go as far as to recommend:
 - try recreating your existing volumes with new, path-consistent names,
   then look at the volume listing (say coda server startup log) and
   compare, which names are easier to remember and recognize.
   Then you may feel an urge for moving the data from the old volumes to
   the new still empty ones... :)

[have we got a usable "acltar" utility? to be able to recursively
archive/dearchive/copy coda file hierarchies, preserving acl data?
not that I am aware of... it's time to sit down and hack it, any
volunteers? :]

[*] Note: I suggest to the developers to remove the possibility for
arbitrary rootvolume names, fixing it as "/". That would be consistent
with the natural naming model for the other volumes, and would remove
possible confusion, without sacrificing any functionality.
Correct me if you feel you have to have the choice (but then you will have
to *make* the choice while installing each new Coda site, too!)

Happy Codaing!
Received on 2003-02-01 13:03:23