Coda File System

Re: design, go beyond AFS?

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Wed, 21 Aug 2002 15:37:45 -0400
On Wed, Aug 21, 2002 at 01:54:04PM +0200, Ivan Popov wrote:
> My vague idea about magical path beginnings to access underlying
> volumes was not really though out, just seemed nice while I wrote.

I like it, and it is probably useful. When creating a new user volume
the administrator can now simply do

    createvol_rep /usr/foo E0000001 [/vicepa]
			   ^ I want to eventually replace this one with
			   simply naming the servers on which to
			   replicate the volume
				    ^ Hasn't been necessary for a while
				    when there is only one data partition.

    cfs mkm /coda/<my.realm>/usr/foo
    cfs sa /coda/<my.realm>/usr/foo foo all

And the new user has a place to store his files.

> As the decision about how to treat a certain mount point has to be
> done for the mountpoint, not for the whole path (that may contain multiple
> mountpoints) we would be forced into inserting additional levels into the
> "special" paths at each mountpoint.

I'm not sure I follow you here, if you create the mountpoint as follows,

    cfs mkm /coda/<my.realm>/usr/foo/bar

Venus will try to mount a volume named /usr/foo/bar, independent of
whether /usr, or /usr/foo are mountpoints, the used path name to derive
the volume name is 'realm-relative'.

> There exists a "real life proven" approach: DFS implements a magic
> name (.rw) at each mount point despite that it breaks pure POSIX
> semantics.

I don't want to make access to underlying replicas easier except during
repair. In which case they are mounted using special mountlinks of the
form @volumeid.vnode.unique which are created by special inconsistent
object handling code (fsobj::Fakeify and friends)

In the end both the client and server still only think about volumes by
their numeric volumeid, the volume names are simply for convenience when
creating mountpoints. It is f.i. possible to mount a volume by just
specifying the numeric id, i.e. cfs mkm foo 0x7f000001

We could change the backup volume name to '<volumename>/OldFilesN',
where 'N' is the replica number and then the backup of the first replica
can be made visible by simply doing 'cfs mkm /coda/.../usr/foo/OldFiles0'

Jan
Received on 2002-08-21 15:38:55