ceph-volume lvm list <device> calls blkid numerous times for differrent devices
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Cloud Archive |
Fix Released
|
Undecided
|
Unassigned | ||
Queens |
Fix Released
|
Undecided
|
Unassigned | ||
ceph (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Bionic |
Fix Released
|
Medium
|
Dariusz Gadomski | ||
Focal |
Fix Released
|
Medium
|
Unassigned | ||
Groovy |
Fix Released
|
Medium
|
Unassigned |
Bug Description
[Impact]
* Every ceph-volume list lvm <device> call invokes blkid for numerous PARTUUIDs. For some setups with many slower IO devices this can make this call to run for minutes without any actual justification for that.
In fact, the upstream ceph approach changed in this matter and post-bionic releases already have ceph-volume that does not invoke blkid at all in this context making the call much faster.
Please examine the attached ceph-volume.log fragment for a ceph-volume call, the accumulated blkid calls take around 1 min 7 s.
[Test Case]
* Setup a ceph-osd with numerous block devices with long access time for blkid. Preferably use automation tools like juju (with ceph charm) or ansible to make sure ceph-volume calls work well when automated.
* Run
time ceph-volume --log-path ceph-volume.log --log-level debug lvm list <device>
on one of them and check the log to see if the execution time is not wasted on numerous blkid calls.
[Where problems could occur]
* The output format of does not change. The only noticeable change will be visible in the (created on request with the --log-level --log-path switched) log file. Such log will also be missing the blkid calls. I don't see a reason for parsing that log file, but if any system (like CI) is doing that it may need a manual intervention to update its expected result.
[Other Info]
* The fix to this is available for Focal and beyond.
* Xenial is not affected due to lack of ceph-volume in its ceph release.
Related branches
- James Page (community): Approve
- git-ubuntu developers: Pending requested
-
Diff: 832 lines (+780/-0)8 files modifieddebian/changelog (+6/-0)
debian/patches/lp1908375-0001-ceph-volume-add-methods-to-pass-filters-to-pvs-vgs-a.patch (+60/-0)
debian/patches/lp1908375-0002-ceph-volume-filter-based-on-tags-for-api.lvm.get_-me.patch (+144/-0)
debian/patches/lp1908375-0003-ceph-volume-add-helper-methods-to-get-only-first-LVM.patch (+172/-0)
debian/patches/lp1908375-0004-ceph-volume-sort-and-align-output.patch (+73/-0)
debian/patches/lp1908375-0005-ceph-volume-refactor-devices-lvm-listing.py.patch (+286/-0)
debian/patches/lp1908375-0006-ceph-volume-add-new-method-in-api-lvm.py.patch (+33/-0)
debian/patches/series (+6/-0)
Changed in ceph (Ubuntu Groovy): | |
status: | New → Fix Released |
Changed in ceph (Ubuntu Focal): | |
status: | New → Fix Released |
Changed in ceph (Ubuntu): | |
importance: | Undecided → Medium |
Changed in ceph (Ubuntu Groovy): | |
importance: | Undecided → Medium |
Changed in ceph (Ubuntu Focal): | |
importance: | Undecided → Medium |
description: | updated |
description: | updated |
description: | updated |
Changed in cloud-archive: | |
status: | New → Fix Released |
tags: | removed: verification-queens-needed |
SRU proposal available as this branch: https:/ /code.launchpad .net/~dgadomski /ubuntu/ +source/ ceph/+git/ ceph/+ref/ lp1908375