
On 04/13/2018 03:02 PM, John Snow wrote:
What are the downsides to actually including a predecessor/successor* pointer in QEMU?
(1) We'd need to amend the bitmap persistence format
Which I think is doable, since we have a size field.
(2) We'd need to amend some of the bitmap management commands (3) We'd need to make sure it migrates correctly: (A) Shared storage should be fine; just flush to disk and pivot (B) Live storage needs to learn a new field to migrate.
Certainly it's not ...trivial, but not terribly difficult either. I wonder if it's the right thing to do in lieu of the naming hacks in libvirt.
There wasn't really a chorus of applause for the idea of having checkpoints more officially implemented in QEMU, but... abusing the name metadata still makes me feel like we're doing something wrong -- especially if a third party utility that doesn't understand the concept of your naming scheme comes along and modifies a bitmap.
Speaking of that, we really need at least read-only commands for qemu-img to show details about what bitmaps are present in a qcow2 file, at least for debugging all of this.
It feels tenuous and likely to break, so I'd like to formalize it more. We can move this discussion over to the QEMU lists if you think it's worth talking about.
Or I'll just roll with it. I'll see what Eric thinks, I guess? :)
Indeed, discussing an enhancement of qcow2 metadata to track bitmap relationships is probably appropriate on the qemu list.
*(Uh-oh, that term is overloaded for QEMU bitmap internals... we can address that later...)
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org