On 19.04.2018 20:28, John Snow wrote:
On 04/16/2018 06:20 AM, Vladimir Sementsov-Ogievskiy wrote:
>
> So my point is: if we are going to implement something complicated,
> let's implement entirely what we want, not a semi-solution. Otherwise,
> implement a minimal and simple thing, to just make it all work (my
> current solution).
So basically:
(1) Using bitmap names: It's a hack, but it works; and
(2) Adding parentage information to QEMU bitmaps is also a hack, but a
more permanent commitment to the hack.
And further, both (1) and (2) leave the same problem that if a third
party utility deletes the bitmap, they are checkpoint-unaware and will
ruin the metadata.
(Though QEMU could be taught to disallow the deleting of bitmaps with
parents/children, unless you specify --force or --mergeleft or
--mergeright or some such. That's not an option with the
name-as-metadata strategy.)
Why is option 3 unworkable, exactly?:
(3) Checkpoints exist as structures only with libvirt. They are saved
and remembered in the XML entirely.
Or put another way:
Can you explain to me why it's important for libvirt to be able to
reconstruct checkpoint information from a qcow2 file?
In short it take extra effort for metadata to be consistent when
libvirtd crashes occurs. See for more detailed explanation
in [1] starting from words "Yes it is possible".
[1]
https://www.redhat.com/archives/libvir-list/2018-April/msg01001.html
Nikolay