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

Dan Kenigsberg danken at redhat.com
Thu Apr 11 12:01:26 UTC 2013


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?

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.

I think it is time to have Engine keep a snapshot of its vm config
whenever it takes a snapshot - live or offline.

Dan.



More information about the Engine-devel mailing list