On 05/05/2015 06:25 AM, Stefan Hajnoczi wrote:
On Wed, Apr 29, 2015 at 06:51:08PM -0400, John Snow wrote:
This is a feature that should be very easy to add on top of the existing
incremental feature, since it's just a difference in how the bitmap is
treated:
Incremental
- Links to the last incremental (managed by libvirt)
- Clears the bitmap after creation
Differential:
- Links to the last full backup always (managed by libvirt)
- Does not clear the bitmap after creation
No biggie.
Differential backups can be done using incremental backup functionality
in QEMU:
The client application points QEMU to the same target repeatedly instead
of keeping separate incremental backups.
Stefan
Oh, so you're saying:
[anchor]<--[diff1]
And then when making a new incremental, we re-use diff1 as a target and
overwrite it so that it becomes:
[anchor]<--[diff2]
In effect giving us a differential.
OK, so it's possible, but we still lose out on some flexibility that a
slightly different mode would provide us, like the ability to keep
multiple differentials if desired. (Well, I suppose we *can* create
those by manually copying differentials after we create them, but that
seems hackier than necessary.)
Still, it would be such a paltry few lines of code and introduce no real
complexity to the subsystem, and it might make libvirt's time a little
easier for managing such things.
--js