Coda File System

Re: question on seting up replicated volumes

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 12 Apr 2001 08:50:06 -0400
On Wed, Apr 11, 2001 at 07:48:47PM -0700, O.W. wrote:
> The manual reads as: "Make two new entries in the
> /vice/db/VSGDB file. One for your new server by itself, one
> of the form: E0000104 scm-server second-server. ..."
> 
> One old email by Jan seems that the single entry for server
> by itself is not really necessary, the example he suggested
> is:
> 
> /vice/db/VSGDB:
> E00000100 us-server1 us-server2
> E00000101 nl-server1
> ...
> 
> Can someone clarify this?

Both are suggestions. Essentially the VSG number should only really be
used when creating a volume. However these numbers have gotten misused
in many places in the code, even the client. btw. VSG == Volume Storage
Group, i.e. which servers are responsible for holding one of the
replicas of a replicated volume.

Around Coda-5.3.10 all occurences where we used this VSG number were
removed from the client. The current CVS version reintroduces the VSG in
the client, because it is a good conceptual thing and allows us to share
the MultiRPC connections to a group of servers for different volumes.

The new implementation doesn't rely on the VSG number anymore, the VSG
is now totally defined by which servers store replicas of a volume. A
similar cleanup still needs to be done for Coda servers.

<future dream mode>
In any case, I'd really like to end up with no /vice/db/VSGDB, and
simply specifying at volume creation time on which servers the volume
replicas should be created, i.e. something like

    createvol_rep new_volume srv1,srv2 /vicepa[,/vicepb]

And more interestingly, the following type of operations would then
become possible,

    change_rep volume move srv1 to srv3	# relocate a single volume replica
    change_rep volume add srv3		# grow replication factor
    change_rep volume remove srv2	# shrink replication factor
</future dream mode>

But for now, just think of the numbers in the first column as a handy
'abbreviation' for a server group. And try to avoid changing which
machines are members of a group once you've created any volumes in a
group. btw. the group numbers _have_ to start with 'E0'.

Jan
Received on 2001-04-12 08:51:30