On 04/13/2012 02:41 PM, Paolo Bonzini wrote: >> On 04/13/2012 11:32 AM, Paolo Bonzini wrote: >>> Il 13/04/2012 19:09, Eric Blake ha scritto: >>>>>> +It is also possible to use raw as the format of the destination >>>>>> image. >>>>>> +Converting an image to raw will properly support thin >>>>>> provisioning. >>>> Do you need to mention the use of block_job_cancel needed at the >>>> point >>>> where you are ready to stop qemu from writing into the copy? >>> >>> No, you need to do this with drive-reopen. Using block_job_cancel >>> will report completion, but will leave a race window that can cause to >>> corruption in the guest. Do your libvirt patches do that? O:) >> >> They don't in v4 [1], but I'll fix it to do that in v5. Thanks for >> the heads up. > > I think we misunderstood each other. I was asking if you were doing > block-job-cancel + drive-reopen to switch to the target. That would > be wrong. > > Doing block-job-cancel to revert to the source is perfectly fine.
Glad to hear it. My current approach is: request | phase > | streaming | mirroring == v =============+==================+=================== revert-source | block-job-cancel | block-job-cancel pivot | error | drive-reopen with no combined commands (that is, I'm not doing block-job-cancel+drive-reopen). Although if I understand correctly, the combination of mirroring/revert-source could also be implemented by drive-reopen instead of block-job-cancel, with the same net results in the end. -- Eric Blake ebl...@redhat.com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature