Thanks!
On Thu, Jun 3, 2021, 2:46 PM Nir Soffer <nsoffer(a)redhat.com> wrote:
On Thu, Jun 3, 2021 at 8:47 PM Strahil Nikolov
<hunter86_bg(a)yahoo.com>
wrote:
>
> Hey Nir,
>
> you said that the data in the snapshot changed ?
> I always thought that snapshots are read-only.
Indeed snapshot is ready only - until you start to delete it. This is
why we mark the
snapshot as illegal once delete snapshot was started.
It works like this:
1. Before snapshot
Snapshots: (none)
Volumes: A (active)
A is read-write volume, changing while the vm is running.
2. After snapshot
Snapshot: snap1 (disk snapshot A)
Volumes: A <- B (active)
A is now read only image, will never change
B is read-write, modified by the vm
B backing file is A
2. Start delete snapshot 1
Snapshot: snap1 (disk snapshot A, illegal)
Volumes: A <- B (active)
On the host running the vm, we perform block commit job,
copying data from B into A.
When the job completes, A contains all data in B, and any new
data written to the B is mirrored to A.
3. Pivoting to volume A
When the block commit has completed, we switch to vm to use volume A
instead of volume B.
At this point the VM is writing again to volume A, and volume B is unused.
Snapshot: snap1 (disk snapshot A, illegal)
Volumes: A (active) <- B
4. Cleanup
On engine side, snapshot 1 is deleted
On the host, volume B is deactivated
On the SPM host, volume B is deleted
Snapshot: (none)
Volumes: A (active)
I hope this is more clear now.
Nir