[Engine-devel] [vdsm] Snapshots with RAM feature

Michal Skrivanek michal.skrivanek at redhat.com
Fri Apr 19 08:30:19 UTC 2013


On 11 Apr 2013, at 14:01, Dan Kenigsberg wrote:

> On Wed, Apr 10, 2013 at 11:43:12AM +0300, Dan Kenigsberg wrote:
>> On Wed, Apr 10, 2013 at 02:12:20AM -0400, Michal Skrivanek wrote:
>>> 
>>> 
>>> On 9 Apr 2013, at 10:01, Arik Hadas <ahadas at redhat.com> wrote:
>>> 
>>>> Hi All,
>>>> 
>>>> The proposed feature will make it possible to run a VM which was reverted to live snapshot
>>>> or created from live snapshot with the same memory state as it was at the moment the live
>>>> snapshot was taken.
>>>> 
>>>> http://www.ovirt.org/Features/RAM_Snapshots
>>>> 
>>>> All feedback is welcome!
>>> Nice!
>> 
>> (I prefer to inline the document when discussing it)
>> 
>>> VDSM changes
>>> 
>>> Default parameter will be added to vmSnapshot verb that maps string to string.
>>>     The map will include two keys for now:
>>>         'mode' that can be mapped to 'disks_only' or 'disks_memory' to
>>>                indicate if memory state should be saved.
>>>         'memVol' that will be mapped to a string that represent the two
>>>                  volums that will be used to save the memory state and the
>>>                  VM configuration. The default map will include the
>>>                  mapping of 'mode':'disks_only' only.
>>> 
>>>                  If the 'mode' value in the map decribed above is
>>>                  'disks_memory' the first volume in 'memVol' will be
>>>                  passed to libvirt in order to dump the memory to
>>>                  it, and the second volume in 'memVol' will be used
>>>                  to save the VM configuration (the same way it is
>>>                  done for hibernate operation).
>> 
>> This definition of 'memVol' would not allow saving the state to another
>> storage domain, or a direct lun or whatever.
>> 
>> I suggest that you have two independet arguments, say memVol and
>> vmConfVol. Both may have the standard pool-domain-image-volume quartet,
>> or a lun specification, or a local path.
> 
> On a second thought - why should we even store vmConf on vmConfVol? Why
> not keep it in Engine's db?
you trust the engine db? I don't:-) RAM snapshot absolutely needs to correspond to the actual VM configuration otherwise it can crash the VM or corrupt 

> Sure, we do this for hibernation. But it creates a lot of inconsistency pains.
> Engine sends one vmconf to vdsm, but vdsm ignores it and starts the VM
> with an old vmconf that was stored besides the hibernation volume. On
> top of this, it wastes some GiB of disk space for each snapshot.
Pardon my lack of knowledge in this area, how/where is it wasting that much?

> I think it is time to have Engine keep a snapshot of its vm config
> whenever it takes a snapshot - live or offline.
I'm really not sure about the impacts when it goes out of sync. I'd rather have the VM resumed and configuration in engine updated/overwritten afterwards in first stats update than screwing up the VM

Thanks,
michal
> 
> Dan.
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel




More information about the Devel mailing list