On Sat, Feb 25, 2017 at 09:41:40AM +0800, WangJie (Captain) wrote:
Hello, I got a question here. When we create consistent active
external
snapshots with flag “VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE” , the
qemuDomainSnapshotFSFreeze will be called firstly to freeze all
filesystems in vm, and then create snapshots. For windows vm, freezing
filesystems used by vss service. If IO pressure in vm is too big or
internal error happened in vss , freezing filesytems will failed , and
qemuDomainSnapshotFSFreeze returns 0 which meaning that no filesystems
are frozen. In the function qemuDomainSnapshotCreateActiveExternal,
libvirt creates external snapshots all the same in such a situation
that qemuDomainSnapshotFSFreeze returns 0, but the created snapshots
are not consistent snapshots in such a situation . So shouldn't we
abandon creating snapshots and goto cleanup in the situation that
qemuDomainSnapshotFSFreeze returns 0?
Yeah, there should probably be a check that the number of frozen
filesystems is the same as requested and error out if it's lower.
Martin