[OpenAFS] Vos functions and clones and shadows

Steve Simmons scs@umich.edu
Tue, 26 Jun 2007 16:09:06 -0400

On Jun 26, 2007, at 4:37 AM, Dr A V Le Blanc wrote:

> According to the FAQ, shadow volumes which are not live do not appear
> in the VLDB.  Clones created by 'vos clone' are in the VLDB, but
> they will be removed from the VLDB if a volume is deleted by
> 'vos remove'.

I thought that was what would happen, but I've been corrected here -  
manually named clones persist after the deletion/move of the volume,  
and will have to be removed explicitly.

>   My question is, given a non-live shadow volume, or
> a 'dangling clone', how do these behave when you run either
> 'vos syncserv' or 'vos syncvldb'?

Once a dangling clone (nice term) has been created, it's pretty much  
not a clone any more. In some senses, it becomes a full production  
volume. However... this is one of those edge condition things that  
we'd like to get settled out based on broader input from the  
community. Unlike other normal volumes, it's still a clone of a now- 
nonexistent parent. As such, it can't have clones made of it, etc,  
etc. IMHO such clones should be deleted when the parent is moved or  
removed if we are to be consistent with other usage. But I'd  
certainly be willing to entertain arguments to the contrary.

So to answer your question - dangling clones do appear in the vldb,  
and things 'just work' with respect to vos {syncsrv,syncvldb}.

>              I would guess that 'vos syncvldb'
> ignores the shadow volumes (since their 'live' bit is not set)


> I would guess that
> 'vos syncserv' would remove a shadow which isn't live from the VLDB
> if it found it there, but otherwise won't do anything.  Is that
> what actually happens?

Dan Hyde can probably respond to this more accurately than I can, but  
I believe that we have modified vos syncvldb such that it does not  
put shadows into the vldb unless you use an additional switch which  
we have created.

> What if you create a shadow volume which has the same name as a
> volume which exists elsewhere?  I assume that this would normally
> work, since the shadow doesn't get into the VLDB.  If then you
> made the shadow volume live, would it delete the VLDB entry for
> the original volume?  Perhaps without deleting it from the other
> disk?

Your assumption is correct, and the answer to all the above questions  
is yes.

>      If the shadow were on the same disk, would it not need to
> delete the volume if the shadow with the same name became live?
> or can you have a shadow with the same name on the same disk?

Good news - you can't do that. A shadow with the same name must live  
on a different vicepa partition if on the same server, or must live  
somewhere on another server. In this case, think of the restrictions  
on doing a 'vos copy' and you're pretty much there. The code itself  
(which Dan is getting ready to release) is actually a modification of  
the code which supports vos copy/vos move.

> I would experiment, but things like this seem to have a good
> chance of screwing up the VLDB, and I didn't much enjoy straightening
> that out when it happened.

We have a test cell with those volumes on it which we've repeatedly  
hosed up. It's not been fun, but it's been educational.