
On 06/24/2015 05:33 PM, Peter Krempa wrote:
On Wed, Jun 24, 2015 at 16:48:16 +0800, Shanzhi Yu wrote:
On 06/24/2015 03:11 PM, Peter Krempa wrote:
qemu returns error but only in the event after the block job actually starts. Reject it upfront for a better error message.
Instead of: $ virsh blockcopy vm hdc /tmp/raw.img --granularity 4096 --verbose --wait error: Block Copy unexpectedly failed
You will now get: $ virsh blockcopy vm hdc /tmp/raw.img --granularity 4096 --verbose --wait error: unsupported configuration: granularity can't be used with target volume format This can't avoid the cases that the source file has a raw format file as backing file.
AFAIK if the active image (top layer) is a qcow2, then the destination is also created as a qcow2 and thus the persistent bitmap granularity should work just fine.
Consider I have a guest as below: # virsh dumpxml r7-raw|grep disk -A 8 <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/rhel7-raw.s1'/> <backingStore type='file' index='1'> <format type='raw'/> <source file='/var/lib/libvirt/images/rhel7-raw.img'/> <backingStore/> </backingStore> <target dev='vda' bus='virtio'/> case I: # virsh blockcopy r7-raw vda /var/lib/libvirt/images/rhel7-raw.s1.cp --verbose --wait --granularity 4096 error: Block Copy unexpectedly failed case II: # virsh blockcopy r7-raw vda /var/lib/libvirt/images/rhel7-raw.s1.cp --verbose --wait --granularity 4096 --shallow Block Copy: [ 0 %]error: Block Copy unexpectedly failed
Peter
-- Regards shyu