]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
ceph-volume: fix a bug in `get_lvm_fast_allocs()` (batch)
authorGuillaume Abrioux <gabrioux@ibm.com>
Thu, 4 May 2023 08:08:09 +0000 (10:08 +0200)
committerGuillaume Abrioux <gabrioux@ibm.com>
Wed, 14 Jun 2023 20:12:51 +0000 (22:12 +0200)
commitfb1da73885525a883b241f67b8ab54ef60f5a025
treea48221b9be29c0e12bbfb608defa0bfc033294da
parent6f3b67691f66a6581391acb647c0cc18d5a29af0
ceph-volume: fix a bug in `get_lvm_fast_allocs()` (batch)

`get_lvm_fast_allocs()` in `devices/lvm/batch.py` calls the property
`Device.used_by_ceph` in order to filter out devices that are already
used by ceph. The issue is that `Device.used_by_ceph()` itself filters
out journal devices (db/wal) given that a db/wal device can be shared
between multiple OSDs. The consequence is that `Device.used_by_ceph()`
always returns False for a db/wal device (even if it is actually
already used by ceph) so `get_lvm_fast_allocs()` always returns the
full list of the passed db/wal devices on the `lvm batch` CLI command.
Finally, the logic in `devices.lvm.batch.get_deployment_layout()`
checks whether the length of the list returned by `get_lvm_fast_allocs()`
is equal to `num_osds` (the number of OSD being created), if not it fails.

Fixes: https://tracker.ceph.com/issues/59640
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
(cherry picked from commit 8da98bf2ac8cf223904acd971f3a0342bdbd26f9)
src/ceph-volume/ceph_volume/devices/lvm/batch.py
src/ceph-volume/ceph_volume/util/device.py