RFC: Qemu backup interface plans
Max Reitz
mreitz at redhat.com
Tue May 25 08:50:11 UTC 2021
On 19.05.21 08:11, Vladimir Sementsov-Ogievskiy wrote:
> 18.05.2021 19:39, Max Reitz wrote:
[...]
>> On 17.05.21 14:07, Vladimir Sementsov-Ogievskiy wrote:
[...]
>>> Not also, that there is another benefit of such thing: we'll
>>> implement this callback in qcow2 driver, so that backup will read
>>> clusters not in guest cluster order, but in host cluster order, to
>>> read more sequentially, which should bring better performance on
>>> rotating disks.
>>
>> I’m not exactly sure how you envision this to work, but block_status
>> also already gives you the host offset in *map.
>>
>
> But block-status doesn't give a possibility to read sequentially. For
> this, user should call block-status several times until the whole disk
> covered, then sort the segments by host offset. I wonder, could it be
> implemented as some iterator, like
>
> read_iter = bdrv_get_sequential_read_iter(source)
>
> while (extents = bdrv_read_next(read_iter)):
> for ext in extents:
> start_writing_task(target, ext.offset, ext.bytes, ext.qiov)
>
> where bdrv_read_next will read guest data in host-cluster-sequence..
How would you implement this, though? qcow2 doesn’t have a reverse
mapping either, so it too would need to read all L2 table entries and
sort them, wouldn’t it?
Max
More information about the libvir-list
mailing list