[libvirt] [Qemu-devel] [RFC] live snapshot, live merge, live block migration

Dor Laor dlaor at redhat.com
Sun May 22 09:52:09 UTC 2011


On 05/20/2011 03:19 PM, Stefan Hajnoczi wrote:
> I'm interested in what the API for snapshots would look like.
> Specifically how does user software do the following:
> 1. Create a snapshot
> 2. Delete a snapshot
> 3. List snapshots
> 4. Access data from a snapshot

There are plenty of options there:
  - Run a (unrelated) VM and hotplug the snapshot as additional disk
  - Use v2v (libguestfs)
  - Boot the VM w/ RO
  - Plenty more

> 5. Restore a VM from a snapshot
> 6. Get the dirty blocks list (for incremental backup)

It might be needed for additional proposes like efficient delta sync 
across sites or any other storage operation (dedup, etc)

>
> We've discussed image format-level approaches but I think the scope of
> the API should cover several levels at which snapshots are
> implemented:
> 1. Image format - image file snapshot (Jes, Jagane)
> 2. Host file system - ext4 and btrfs snapshots
> 3. Storage system - LVM or SAN volume snapshots
>
> It will be hard to take advantage of more efficient host file system
> or storage system snapshots if they are not designed in now.

I agree but it can also be a chicken and the egg problem.
Actually 1/2/3/5 are already working today regardless of live snapshots.

> Is anyone familiar enough with the libvirt storage APIs to draft an
> extension that adds snapshot support?  I will take a stab at it if no
> one else want to try it.

I added libvirt-list and Ayal Baron from vdsm.
What you're asking is even beyond snapshots, it's the whole management 
of VM images. Doing the above operations is simple but for enterprise 
virtualization solution you'll need to lock the NFS/SAN images, handle 
failures of VM/SAN/Mgmt, keep the snapshots info in mgmt DB, etc.

Today it is managed by a combination of rhev-m/vdsm and libvirt.
I agree it would have been nice to get such common single entry point 
interface.

>
> Stefan




More information about the libvir-list mailing list