[Engine-devel] Question about CloneVMFromSnapshot feature in context of shared disks and direct LUNs-based disks

Ayal Baron abaron at redhat.com
Sun Jan 22 10:14:33 UTC 2012



----- Original Message -----
> On 20/01/12 17:21, Itamar Heim wrote:
> > On 01/20/2012 12:01 PM, Livnat Peer wrote:
> >> On 20/01/12 09:35, Ayal Baron wrote:
> >>>
> >>>
> >>> ----- Original Message -----
> >>>> Top Posting:
> >>>>
> >>>>  From user POV I think that option 2 is the only one that make
> >>>>  sense.
> >>>> We try to do as much as we can,
> >>>> and on each "problematic" case, we make him aware and let him
> >>>> decide.
> >>>>
> >>>
> >>> Yep, +1.
> >>>
> >>
> >> Trying to get to a conclusion here,
> >> 3 different people said on this thread that they think that from
> >> the
> >> user perspective leaving the shared devices plugged is what they
> >> think
> >> is the best behavior to the user. (Omer, Kolesnik, Yair)
> >>
> >> On the other hand we have 2 people who think that protecting the
> >> user is
> >> more important than leaving the VM configuration as it was in the
> >> original VM (Miki, Ayal).
> >>
> >> Ayal/Miki can you please specify what are we protecting the user
> >> from?
> >>
> >>
> >> I think that because we are not snapshotting the shared disk and
> >> the
> >> direct LUN they should not be part of the VM configuration (in the
> >> snapshot) at all. we can not promise the user that the disk will
> >> be
> >> there and if it is there we can not guarantee it is in the same
> >> state as
> >> it was when we took the snapshot.
> >>
> >>
> >> Another issue,
> >>
> >> I can not see a reason to limit this feature to creating a VM from
> >> snapshot and not a template? Almost no extra work is needed for
> >> supporting templates as well.
> > 
> > I assume you meant, creating a VM from another VM (if it is down)?
> > It should be supported.
> 
> Actually I meant creating a Template from Snapshot.

+1

> 
> What you suggested is creating a VM from VM.
> Although I see how the two are connected, I think they should be
> modeled
> as two different API calls.
> There is a difference in the flow, behavior, locks and parameters
> between the two.
> 
> Behavior:
> - Original VM has to be down for creating a VM from VM, not the case
> for
> creating a VM from snapshot.
> 
> parameters:
> - Creating VM from snapshot should support getting a snapshot-ID,
> Creating VM from VM get a VM id

What's the difference?

> 
> Locks:
> - When creating a VM from VM, we need to lock the original VM as a
> whole, we can not edit the VM, take snapshot or any other VM level
> action while such operation is active.
> While for creating the VM from snapshot we can take more fine-grained
> locks (only image related locks).

I would suggest we change the clone VM flow to be:
1. create a snapshot in original VM
2. clone the snapshot
This way, while this is going on, the user *can* run the VM and do everything else and behaviour becomes much nicer and not 'you have to wait 4 hours until your clone ends before running the VM'.
3. delete the snapshot

This would also mean that both ops would be collapsed to one and there would be only 1 flow.

> 
> Implementation:
> Well it is simply another implementation.
> 
> 
> Livnat
> 
> 



More information about the Engine-devel mailing list