Coda File System

Re: need some help with replication

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Tue, 15 Jul 2003 10:30:16 -0400
On Tue, Jul 15, 2003 at 09:59:06AM -0300, Deives Michellis wrote:
> i need some help replicating coda fs...
> 
> every time I change those files, my "slave" coda servers die with
> exitcode 77 and there is this message on the logs:

Which files? I'm guessing whenever your change /vice/db/VSGDB...

> oot_at_Trinity:/vice/srv# cat SrvErr
> Assertion failed: 0, file "vsg.cc", line 222
> EXITING! Bye!

Had a hard time finding this in my source tree, as the whole file got
removed somewhere between 5.3.20 and 6.0.x. Good thing there is CVS...

This specific assertion triggers when you are trying to add a second
volume storage group that has the same identifier as a group that was
added previously.

> Here is my VSGDB:
> 
> root_at_Ragnarok:/vice/db# cat VSGDB 
> E0000100 Ragnarok
> E0000100 Trinity
> E0000100 Ragnarok Trinity

Change this to,

  E0000100 Ragnarok
  E0000101 Trinity
  E0000102 Ragnarok Trinity

> I've tried diferente IDs (such as E0000101 Trinity and E0000102
> Ragnarok Trinity), but the last ones didnt work. The volumes didnt
> replicated.

You specify the replication group when you create the volumes and this
creates all the underlying replicas and other administrivia.

Because you probably already have a couple volumes created with VSG
E0000100 that are singly replicated on Ragnarok, you really can't just
change which servers are a member of that group because the new server
is missing the underlying replica and other information.

Use different VSGid's for different replication groups and specifically
create the volumes for a group however you want them replicated. With
the above VSGDB the following command,

 createvol_rep coda:root_rep E0000102

Will create a new volume that has replicas on both ragnarok and trinity.
Now if you want to use that volume as the volume that is mounted on
/coda, you have to put that name in /vice/db/ROOTVOLUME and reinit your
clients so that they correctly pick up the new root volume.

> Has anybody made a replication-howto-for-n00bs, or could send me you
> config files as an example? I would really appreciate that, as the
> documentation provided on the website is for advanced users, not
> newbies.

I guess a lot of Coda isn't ready for newbies. There are too many
configuration files to deal with and strange dependencies that will
cause things to fail with incomprehensible errors (like the 'assert in
vsg.cc:222' that you hit). But things are slowly getting better. The 6.0
servers have no internal dependency on the VSGDB information, and at
some point we will be able to say,

    createvol coda:root server1 server2 ...

And possibly,

    addreplica coda:root server3
    removereplica coda:root server2

Jan
Received on 2003-07-15 10:34:57