[libvirt] [RFC PATCH REBASE 00/10] introduce push backups

Nikolay Shirokovskiy nshirokovskiy at virtuozzo.com
Wed May 10 08:17:22 UTC 2017



On 10.05.2017 11:11, Daniel P. Berrange wrote:
> On Fri, May 05, 2017 at 09:22:21AM +0300, Nikolay Shirokovskiy wrote:
>> Push backup is a backup when hypervisor itself copy backup data to destination
>> in contrast to pull backup when hypervisor exports backup data thru some
>> interface and mgmt itself make a copy.
>>
>> This patch series basically adds creating backup to API/remote/qemu/virsh and
>> initial backup XML definition.
>>
>> Just like other blockjobs backup creation is asynchronous. That is creation is
>> merely a backup start and client should track backup error/completion thru
>> blockjob events. As backup is done transactionally all individual disk backup
>> jobs will be aborted by qemu itself in case of error, client need not to do it
>> manually. Client can cancel the backup by aborting blockjob on any disk being
>> backed up.
>>
>> Backup xml desription is similar to snapshot one with some exceptions and is
>> described in more details in definition patch [1].
>>
>> I guess good client will track progress for every disk in backup to report
>> progress and detect hangs so it don't need extra backup complete/error event
>> that aggregate the overall backup result. However it looks like aborting backup
>> can be implemented in libvirt as code will be common for all clients. We need
>> to abort some of not yet completed per disk backups and retry if job to be
>> aborted is completed meanwhile.
>>
>> Of coures this series is far from being complete. Incremental backups and
>> backup persistent metadata is to be implemented. Let's just start work in this
>> direction.
> 
> I've not done a detailed code review, but from a high level design POV, I
> think things like API, RPC, etc, look good.
> 
> Regards,
> Daniel
> 

Thanx for review! Now when things look ok I'll add docs.

Nikolay




More information about the libvir-list mailing list