im currently looking at the new incremental backup api that has been
part of the 4.4 and RHV 4.4-beta release. So far i was able to create
full/incremental backups and restore without any problem.

Now, using the backup_vm.py example from the ovirt-engine-sdk i get
the following is happening during a full backup:

 1) imageio client api requests transfer
 2) starts qemu-img to create a local qemu image with same size
 3) starts qemu-nbd to serve this image
 4) reads used extents from provided imageio source, passes data to
 qemu-nbd process 
 5) resulting file is a thin provisioned qcow image with the actual
 data of the VM's used space.

while this works great, it has one downside: if i backup a virtual
machine with lots of used extents, or multiple virtual machines at the
same time, i may run out of space, if my primary backup target is
not a regular disk.

Imagine i want to stream the FULL backup to tape directly like

 backup_vm.py full [..] <vm_uuid> /dev/nst0

thats currently not possible, because qemu-img is not able to open
a tape device directly, given its nature of the qcow2 format.

So what iam basically looking for, is a way to download only the extents
from the imageio server that are really in use, not depending on qemu-*
tools, to be able to pipe the data somehwere else.

Standard tools, like for example curl, will allways download the full
provisioned image from the imageio backend (of course).

I noticed is that it is possible to query the extents via:


As i failed to find them, are there any existing functions/api calls
that could be used to download only the used extents to a file/fifo

So far, i played around with the _internal.io.copy function, beeing able
to at least read the data into a in memory BytesIO stream, but thats not
the solution to my "problem" :)

    - michael
Devel mailing list -- devel@ovirt.org
To unsubscribe send an email to devel-le...@ovirt.org
Privacy Statement: https://www.ovirt.org/privacy-policy.html
oVirt Code of Conduct: 
List Archives: 

Reply via email to