Coda File System

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

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Tue, 8 Apr 2008 16:30:53 -0400
On Tue, Apr 08, 2008 at 06:02:33PM +0200, Pierre LEBRECH wrote:
> So, I went into trouble with replicated volumes. I decided to reset
> everything and start one new root volume on my 2 CODA servers. It helps
> me to learn CODA a bit more.
> 
> On the SCM, I removed /vice/db/VRList. Then, I ran this command :
> 
> # createvol_rep rootvol server1 server2
> 
> The file /vice/db/VRList has been updated with one fresh line. Seams OK
> on the 2 servers.
> 
> And I tried this :
> 
> # volutil -h server1 getvolumelist
> 
> and then : volutil -h server2 getvolumelist
> 
> And I got 2 different lists! On one server (SCM) I was able to view very
> very old volumes. Where does this list come from? Where is the volume ID
> in this list?

There are several places where volume information is stored/available.
At the lowest level each server knows which volumes were created on it,
this is what you get with 'volutil getvolumelist'.

The only way to get rid of those volumes is to either destroy them with
purgevol_rep (which relies on having the original VRlist file and such)
or with 'volutil purge', or by really starting from scratch and wiping
the recoverable memory (RVM log and data) on the server.

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 top layer is the more abstrace volume replication database (VRDB),
this is built from the /vice/db/VRList file which is updated by the
createvol_rep and purgevol_rep scripts. It describes which lower level
volumes need to be considered as replicas of each other. How to group
everything together.

So you got rid of the higest level information which described which
lower level replicas together form a replicated volume, but the actual
volumes were not removed.

> How is it possible to definitly remove old volumes?

Easiest at this point (since you want to remove _everything_) is to
reinitialize the server's RVM by running, "vice-setup-rvm".

Jan
Received on 2008-04-08 16:32:50