[ovirt-users] restore snapshot cannot restore memory
pengyixiang
yxpengi386 at 163.com
Fri Feb 23 16:05:34 UTC 2018
hello
I found if we retore snapshot, memory cannot be restored, I test it with ovirt-4.1.2、vdsm-4.17.0 and libvirt-3.0.0,
and i get some errors in [1],it seems vm not paused in creating snapshot, but self._underlyingCont() called in vm starting,
so error occurs, then vm is started in libvirt but shutdowned in vdsm, changes in [2], then it works well.
[1]
2018-02-12 19:39:23,830+0800 ERROR (vm/d7be0fde) [virt.vm] (vmId='d7be0fde-f9b9-4447-a250-2453482faef9') The vm start process failed (vm:662)
Traceback (most recent call last):
File "/usr/share/vdsm/virt/vm.py", line 607, in _startUnderlyingVm
self._completeIncomingMigration()
File "/usr/share/vdsm/virt/vm.py", line 3268, in _completeIncomingMigration
self.cont()
File "/usr/share/vdsm/virt/vm.py", line 1128, in cont
self._underlyingCont()
File "/usr/share/vdsm/virt/vm.py", line 3368, in _underlyingCont
self._dom.resume()
File "/usr/lib/python2.7/dist-packages/vdsm/virt/virdomain.py", line 69, in f
ret = attr(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/vdsm/libvirtconnection.py", line 123, in wrapper
ret = f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/vdsm/utils.py", line 926, in wrapper
return func(inst, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1905, in resume
if ret == -1: raise libvirtError ('virDomainResume() failed', dom=self)
libvirtError: Requested operation is not valid: domain is already running
[2]
--- a/Linx_Node/node_iso/install_script/py/vdsm/vdsm/virt/vm.py
+++ b/Linx_Node/node_iso/install_script/py/vdsm/vdsm/virt/vm.py
@@ -3677,6 +3677,8 @@ class Vm(object):
else:
snapFlags |= libvirt.VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY
+ self._underlyingPause()
+
# When creating memory snapshot libvirt will pause the vm
should_freeze = not (memoryParams or frozen)
@@ -3734,6 +3736,8 @@ class Vm(object):
if memoryParams:
self.cif.teardownVolumePath(memoryVol)
+ self._underlyingCont()
+
# Returning quiesce to notify the manager whether the guest agent
# froze and flushed the filesystems or not.
quiesce = should_freeze and freezed["status"]["code"] == 0
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/users/attachments/20180224/b098c36e/attachment.html>
More information about the Users
mailing list