(Illustration by Gaich Muramatsu)
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). JanReceived on 2008-04-09 10:37:20