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