qemu-block
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Avoid copying unallocated clusters during full backup


From: Vladimir Sementsov-Ogievskiy
Subject: Re: Avoid copying unallocated clusters during full backup
Date: Mon, 20 Apr 2020 13:56:13 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1

Hi all!

Yes, I have big work-in-progress around backup, and I'm posting it part-by-part,
current chunk is "[PATCH v2 0/6] block-copy: use aio-task-pool", at
https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg07671.html

The final target is backup job, which does only one block_copy() call.
It already works this way in Virtuozzo-8.0, and there is old outdated series,
which may give an idea of the full picture:
[RFC 00/24] backup performance: block_status + async
https://lists.gnu.org/archive/html/qemu-devel/2019-11/msg02335.html

After it, next steps are to reuse block_copu() for other jobs and qemu-img 
convert.

===

About skipping zeroes for FULL-mode.

1. Honestly, we have this skipping hardcoded in our downstream for a long time,
I'll attache the patch from vz-8.0.

To upstream it, we still lack one thing: knowledge, is target is already zeroed.
(for downstream, we just sure, that in all our scenarios backup target is a new
qcow2 image, all-zeros of course).

I think, we already have an unspoken agreement, that a kind of target-is-zero
option is appropriate way to achieve it, and qemu-img already has it..

On the other hand, I think, the best way of being sure in target-is-zero is just
to zero it. But to do it effectively for our most interesting scenarios (qcow2, 
NBD),
we need the following steps:

1. 64bit commands in NBD
2. 64bit write-zeroes in Qemu generic block-layer
3. support 64bit write-zeroes in qcow2 and nbd driver in Qemu

For 1,2 I have sent series..

===

Hmm. So, what to do now?

1. You can use downstream patch, like we in Virtuozzo, if it is appropriate for 
you.

2. Implement feature upstream. Most simple way is to add a skip-zeroes
option for backup job, and than, in case of the option enabled, do something 
like
in my patch (or just port it). Do you want to make patches? If not, I can 
handle it myself.

--
Best regards,
Vladimir

Attachment: 0001-backup-skip-copying-unallocated-for-full-mode.patch
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]