For the Live Snapshot merge you can either rely on:

- Block Streaming      or
- Block Commit

(Check: http://wiki.qemu-project.org/Features/Snapshots for more info)

WORKAROUND is to use Block Streaming:

(1) Virtual machine uses its qcow2 image disk:

----
inaddy@(kvm01):~$ sudo ls /var/lib/libvirt/images
guest.qcow2
----

(2) External snapshot is done:

----
inaddy@(kvm01):~$ sudo virsh snapshot-create-as --domain guest --disk-only 
--atomic
Domain snapshot 1486936526 created
----

(3) From this moment on the new data is being committed into the new
image. Old image is still referenced since the new image doesn't contain
data from the underlying one.

----
inaddy@(kvm01):~$ sudo ls /var/lib/libvirt/images
guest.1486936526 guest.qcow2

inaddy@(kvm01):~$ sudo qemu-img info --backing-chain 
/var/lib/libvirt/images/guest.1486936526
image: /var/lib/libvirt/images/guest.1486936526
file format: qcow2
virtual size: 30G (32212254720 bytes)
disk size: 4.9M
cluster_size: 65536
backing file: /var/lib/libvirt/images/guest.qcow2
backing file format: qcow2
Format specific information:
compat: 1.1
lazy refcounts: false

image: /var/lib/libvirt/images/guest.qcow2
file format: qcow2
virtual size: 30G (32212254720 bytes)
disk size: 2.1G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
----

This means that you can "copy" (cp/scp/sftp/rsync/tar) the original
image (guest.qcow2) since it is not being updated anymore, but, you
still can't move or remove it at this point since its being referenced
by the new one.

(4) Pull all data from original disk (into the new one, so the
dependency is no longer.

----
inaddy@(kvm01):~$ virsh blockpull --domain guest --path 
/var/lib/libvirt/images/guest.1486936526
Block Pull started

<wait until the blockpull is over>

inaddy@(kvm01):~$ sudo qemu-img info --backing-chain 
/var/lib/libvirt/images/guest.1486936526
image: /var/lib/libvirt/images/guest.1486936526
file format: qcow2
virtual size: 30G (32212254720 bytes)
disk size: 2.0G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false
----

(5) After blockpull, the VM only depends on the qcow2 image it is
referencing:

----
inaddy@(kvm01):~$ virsh domblklist guest
Target Source
------------------------------------------------
vda /var/lib/libvirt/images/guest.1486936526
hda -

inaddy@(kvm01):~$ sudo rm /var/lib/libvirt/images/guest.qcow2
---- 

Will get back soon with more info on the "Block Commit" support for
Trusty.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1317491

Title:
  virsh blockcommit hangs at 100%

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1317491/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to