(Illustration by Gaich Muramatsu)
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". JanReceived on 2008-04-08 16:32:50