[ovirt-devel] How did vm.merge do when we delete a snapshot that pointed by several other's snapshot's srcVol (as several other snapshot's backing) ?

Dan Kenigsberg danken at redhat.com
Fri Jan 26 11:23:52 UTC 2018


On Fri, Jan 26, 2018 at 11:11 AM, pengyixiang <yxpengi386 at 163.com> wrote:
> hello, everyone!
>       I have seen about document in [2] about vm.merge in [1], then I have a
> question, If we want delete "snapshot1" in [3], and "snapshot1" is
> "snapshot2"'s srcVolume and "snapshot3"'s srcVolume at the
> same time, what should I do?  libvirt will merge snapshot1 to snapshot2 and
> snapshot3?  or other ways did for efficiency?
>
>
> Thanks for your help If I can get a reply.
>
>
>
> [1]
>
> @api.method
> def merge(self, drive, baseVolUUID, topVolUUID, bandwidth=0, jobUUID=None):
>     return self.vm.merge(
>         drive, baseVolUUID, topVolUUID, bandwidth, jobUUID)
>
>
> [2]
> https://www.ovirt.org/develop/release-management/features/storage/live-merge/
>
>
> [3]
> backing_img --- snapshot1 --- snapshot2 --- active_img
>                      |
>                      |
>                      ----- snapshot3
>

Vdsm storage does not support this kind of dependency. If you look at
the image dependency graph, we allow two kinds of branch points: one
is a template ("backing_img" in your graph) which cannot be deleted.
The second is a VM preview that can be taken from any point on the
graph. It seems that in your case, snapshot3 branching off snapshot1
while snapshot2 already exists, is neither.

If snapshot3 had belonged to a temporary VM preview of snapshot1,
there is no real need (and thus, no support) for deleting snapshot1
while snapshot3 exists.


More information about the Devel mailing list