Coda File System

Re: I want to remove all the volumes and restart freshly

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Wed, 9 Apr 2008 10:33:59 -0400
On Wed, Apr 09, 2008 at 10:44:24AM +0200, Pierre LEBRECH wrote:
> by the getvolumelist option. But now it is OK. I'm
> just wondering why there is a letter before the volume ID (that I had to
> ignore, ex : I1000002) and why there is a 'W' letter before the volume
> name, and also why I had to use the small number after the volume name!
> (test.1 instead of just test). C'est la vie!

Internal implementation details, I think those letters are used to make
the format somewhat extensible, effectively those letters indicate the
type of the data that follows.

So W<volname> means "replicated volume named 'volname'", and I<volid>
indicates "volume identifier 'volid'". If anyone wants to add some new
data and prefixes it with a unique character it shouldn't mess up
existing parsers.

The extra number is because the volume you are removing is a low-level
(underlying) replica. So we have a replicated volume test, which
consists of two replicas, named test.0 and test.1. The user normally
doesn't see the individual replicas separately, but only accesses
the data through the replicated volume abstraction.

> But my VRList file was not empty. So I removed the content of that file
> with vi.
> Then I ran this command : volutil -h localhost makevrdb /vice/db/VRList

That works.

> > The second layer is where we have the volume location database (VLDB),
> > which is built by pulling the individual volume lists from all servers,
> > combining them into a single /vice/vol/VolumeList file and then hashing
> > that into a the binary lookup table that is stored as /vice/db/VLDB.
> >   
> The name I have is : /vice/vol/BigVolumeList
> It is updated by bldvldb.sh

Correct.

> So with the steps I've done above, everything seams to be clean. Now, I
> ran this command :
> createvol_rep rootvol server1 server2
> result was OK.
...
> Oh one more question : when I removed my rootvol volume (with volutil
> purge), the VRList was not updated. I had to manually remove it from
> VRList and make the /vice/vol/BigVolumeList updated manually as well. Why?

That where the 'purgevol_rep' script comes in. It will remove the entry
from the VRList and run volutil purge for any replicas on the servers
and automatically rebuild the VLDB and VRDB files (i.e. it tries to
automate the same things you were doing by hand).

Jan
Received on 2008-04-09 10:37:20