Change in vdsm[ovirt-3.5]: Live Merge: Stop scanning volume chains at VM startup

alitke at redhat.com alitke at redhat.com
Mon Aug 4 21:06:57 UTC 2014


Hello Federico Simoncelli, Dan Kenigsberg, Francesco Romani, Michal Skrivanek,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/31047

to review the following change.

Change subject: Live Merge: Stop scanning volume chains at VM startup
......................................................................

Live Merge: Stop scanning volume chains at VM startup

During VM create (or recovery) we are scanning the volume chain of each
disk to catch and handle metadata sync issues.  These can happen if a
block job completed while vdsm was not running or if a block job
completed when the VM was running on another host but the metadata could
not be corrected before it was restarted on this host.

Both of these negative flows are relatively rare but the volume chain
scanning code incurs a startup penalty on every create/recoverVM.  Drop
the scanning and handle these cases differently.  To address the first
scenario, we are going to move away from using the libvirt events and
rely solely on our cached _blockJobs info stored in the VM recovery
file.  For the second case, we are going to cooperate with the engine
and allow it to resubmit the same live merge command when the end state
of the first submission is ambiguous.  Vdsm will handle the resubmit by
ensuring the metadata is synchronized.

Change-Id: I48ba5dd9a70f6daa9bb9da94c2f06296f2b788da
Signed-off-by: Adam Litke <alitke at redhat.com>
Reviewed-on: http://gerrit.ovirt.org/30045
Reviewed-by: Federico Simoncelli <fsimonce at redhat.com>
Reviewed-by: Michal Skrivanek <michal.skrivanek at redhat.com>
Reviewed-by: Francesco Romani <fromani at redhat.com>
Reviewed-by: Dan Kenigsberg <danken at redhat.com>
---
M vdsm/virt/vm.py
1 file changed, 0 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/47/31047/1

diff --git a/vdsm/virt/vm.py b/vdsm/virt/vm.py
index 825a9b2..0990d3d 100644
--- a/vdsm/virt/vm.py
+++ b/vdsm/virt/vm.py
@@ -3183,13 +3183,6 @@
                         supervdsm.getProxy().setPortMirroring(network,
                                                               nic.name)
 
-        # Scan all drives backed by vdsm images for volume chain
-        # inconsistencies.  This can happen if a live merge completed while
-        # vdsm was not running to catch the event.
-        for drive in self._devices[DISK_DEVICES]:
-            if drive['device'] == 'disk' and isVdsmImage(drive):
-                self._syncVolumeChain(drive)
-
         # VmStatsThread may use block devices info from libvirt.
         # So, run it after you have this info
         self._initVmStats()


-- 
To view, visit http://gerrit.ovirt.org/31047
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I48ba5dd9a70f6daa9bb9da94c2f06296f2b788da
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: ovirt-3.5
Gerrit-Owner: Adam Litke <alitke at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimonce at redhat.com>
Gerrit-Reviewer: Francesco Romani <fromani at redhat.com>
Gerrit-Reviewer: Michal Skrivanek <michal.skrivanek at redhat.com>


More information about the vdsm-patches mailing list