Change in vdsm[master]: lvm: deactivate unused lvs during bootstrap

nsoffer at redhat.com nsoffer at redhat.com
Sun Nov 17 11:42:31 UTC 2013


Nir Soffer has posted comments on this change.

Change subject: lvm: deactivate unused lvs during bootstrap
......................................................................


Patch Set 4:

(4 comments)

....................................................
File vdsm/storage/lvm.py
Line 330:                  pp.pformat(self._lvs)))
Line 331: 
Line 332:     def bootstrap(self):
Line 333:         log.debug("Building lvm cache")
Line 334:         start = time.time()
This system call is indeed pointless when not using debug level, but we call this function only on startup and from refreshStorage, and it may run for many seconds, invoking at least 3 lvm commands accessing shared storage, so the extra 2 system calls is not interesting.
Line 335:         self._reloadpvs()
Line 336:         self._reloadvgs()
Line 337:         self._reloadAllLvs()
Line 338:         log.debug("elapsed=%0.3f", time.time() - start)


Line 334:         start = time.time()
Line 335:         self._reloadpvs()
Line 336:         self._reloadvgs()
Line 337:         self._reloadAllLvs()
Line 338:         log.debug("elapsed=%0.3f", time.time() - start)
Same as above.
Line 339: 
Line 340:     def _reloadpvs(self, pvName=None):
Line 341:         cmd = list(PVS_CMD)
Line 342:         pvNames = _normalizeargs(pvName)


Line 687:     start = time.time()
Line 688: 
Line 689:     activelvs = [(lv.vg_name, lv.opened, lv.name)
Line 690:                  for lv in _lvminfo.getAllLvs() if lv.active]
Line 691:     activelvs.sort()
groupby requires sorted input. Compare:

    for k, g in groupby('AAABBCCC'): print k

With:

    for k, g in groupby('AACBBACC'): print k
Line 692:     for (vg, opened), group in groupby(activelvs, lambda val: val[:2]):
Line 693:         lvs = [val[2] for val in group]
Line 694:         if opened:
Line 695:             log.warning("Skipping open lvs: vg=%s lvs=%s", vg, lvs)


Line 701:                 log.error("Error deactivating lvs: vg=%s lvs=%s", vg, lvs)
Line 702:             # Some lvs are inactive now
Line 703:             _lvminfo._invalidatelvs(vg, lvs)
Line 704: 
Line 705:     log.debug("elapsed=%0.3f", time.time() - start)
Same reason as in LVMCache.bootstrap.
Line 706: 
Line 707: 
Line 708: def invalidateCache():
Line 709:     _lvminfo.invalidateCache()


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

Gerrit-MessageType: comment
Gerrit-Change-Id: I5f142ebca7a00d45f2500ad2631fab2366f2f7db
Gerrit-PatchSet: 4
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Nir Soffer <nsoffer at redhat.com>
Gerrit-Reviewer: Allon Mureinik <amureini at redhat.com>
Gerrit-Reviewer: Ayal Baron <abaron at redhat.com>
Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimonce at redhat.com>
Gerrit-Reviewer: Nir Soffer <nsoffer at redhat.com>
Gerrit-Reviewer: Sergey Gotliv <sgotliv at redhat.com>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes


More information about the vdsm-patches mailing list