HI, Deniel and Adam.
Have the patchset been merged into libvirt upstream?
On Fri, Jul 22, 2011 at 11:01 PM, Adam Litke <agl(a)us.ibm.com> wrote:
Thanks Daniel. The upstream code is looking good. I will work on
adding some documentation to the development guide.
On 07/22/2011 01:07 AM, Daniel Veillard wrote:
> On Thu, Jul 21, 2011 at 01:55:04PM -0500, Adam Litke wrote:
>> Here are the patches to implement the BlockPull/BlockJob API as discussed and
>> agreed to. I am testing with a python script (included for completeness as the
>> final patch). The qemu monitor interface is not expected to change in the
>> future. Stefan is planning to submit placeholder commands for upstream qemu
>> until the generic streaming support is implemented.
>>
>> Changes since V1:
>> - Make virDomainBlockPullAbort() and virDomainGetBlockPullInfo() into a
>> generic BlockJob interface.
>> - Added virDomainBlockJobSetSpeed()
>> - Rename VIR_DOMAIN_EVENT_ID_BLOCK_PULL event to fit into block job API
>> - Add bandwidth argument to virDomainBlockPull()
>>
>> Summary of changes since first generation patch series:
>> - Qemu dropped incremental streaming so remove libvirt incremental
>> BlockPull() API
>> - Rename virDomainBlockPullAll() to virDomainBlockPull()
>> - Changes required to qemu monitor handlers for changed command names
>>
>> --
>>
>> To help speed the provisioning process for large domains, new QED disks are
>> created with backing to a template image. These disks are configured with
>> copy on read such that blocks that are read from the backing file are copied
>> to the new disk. This reduces I/O over a potentially costly path to the
>> backing image.
>>
>> In such a configuration, there is a desire to remove the dependency on the
>> backing image as the domain runs. To accomplish this, qemu will provide an
>> interface to perform sequential copy on read operations during normal VM
>> operation. Once all data has been copied, the disk image's link to the
>> backing file is removed.
>>
>> The virDomainBlockPull API family brings this functionality to libvirt.
>>
>> virDomainBlockPull() instructs the hypervisor to stream the entire device in
>> the background. Progress of this operation can be checked with the function
>> virDomainBlockJobInfo(). An ongoing stream can be cancelled with
>> virDomainBlockJobAbort(). virDomainBlockJobSetSpeed() allows you to limit the
>> bandwidth that the operation may consume.
>>
>> An event (VIR_DOMAIN_EVENT_ID_BLOCK_JOB) will be emitted when a disk has been
>> fully populated or if a BlockPull() operation was terminated due to an error.
>> This event is useful to avoid polling on virDomainBlockJobInfo() for
>> completion and could also be used by the security driver to revoke access to
>> the backing file when it is no longer needed.
>
> Thanks Adam for that revised patch set.
>
> ACK
>
> It all looked good to me, based on previous review and a last look.
> I just had to fix a few merge conflicts due to new entry points being
> added in the meantime and one commit message, but basically it was clean :-)
>
> So I pushed the set except 8 of course. I'm not sure if we should try
> to store it in the example, or on the wiki. The Wiki might be a bit more
> logical because I'm not sure we can run the test as is now in all
> setups.
>
>
> I think the remaining item would be to add documentation about how to
> use this, the paragraphs above should probably land somewhere on the web
> site, ideally on the development guide
>
http://libvirt.org/devguide.html
> but I'm open to suggestions :-)
>
> Daniel
>
--
Adam Litke
IBM Linux Technology Center
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list