mirror of
https://github.com/ceph/ceph
synced 2026-08-02 07:03:18 +00:00
ceph-volume: include LVM mapper devices in get_devices()
`ceph-volume inventory --list-all` doesn't include LVs devices:
```
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
vda 253:0 0 61G 0 disk
└─vda1 253:1 0 61G 0 part /etc/ceph/ceph.keyring
/etc/ceph/ceph.conf
/run/podman-init
/rootfs/var/lib/containers/storage/overlay
/rootfs
vdb 253:16 0 200G 0 disk
vdc 253:32 0 200G 0 disk
vdd 253:48 0 200G 0 disk
vde 253:64 0 200G 0 disk
vdf 253:80 0 200G 0 disk
vdg 253:96 0 200G 0 disk
vdh 253:112 0 200G 0 disk
vdi 253:128 0 200G 0 disk
vdj 253:144 0 200G 0 disk
vdk 253:160 0 200G 0 disk
└─vg_test-lv1 252:0 0 200G 0 lvm
Device Path Size Device nodes rotates available
Model name
/dev/vdb 200.00 GB vdb True True
/dev/vdc 200.00 GB vdc True True
/dev/vdd 200.00 GB vdd True True
/dev/vde 200.00 GB vde True True
/dev/vdf 200.00 GB vdf True True
/dev/vdg 200.00 GB vdg True True
/dev/vdh 200.00 GB vdh True True
/dev/vdi 200.00 GB vdi True True
/dev/vdj 200.00 GB vdj True True
/dev/vda 61.00 GB vda True False
/dev/vda1 61.00 GB vda False False
/dev/vdk 200.00 GB vdk True False
```
This commit removes the UdevData(diskname).is_lvm check so LVs devices
are no longer skipped when listing devices.
```
Device Path Size Device nodes rotates available
Model name
/dev/vdb 200.00 GB vdb True True
/dev/vdc 200.00 GB vdc True True
/dev/vdd 200.00 GB vdd True True
/dev/vde 200.00 GB vde True True
/dev/vdf 200.00 GB vdf True True
/dev/vdg 200.00 GB vdg True True
/dev/vdh 200.00 GB vdh True True
/dev/vdi 200.00 GB vdi True True
/dev/vdj 200.00 GB vdj True True
/dev/vda 61.00 GB vda True False
/dev/vda1 61.00 GB vda False False
/dev/vdk 200.00 GB vdk True False
/dev/vg_test/lv1 200.00 GB vdk True False
```
Fixes: https://tracker.ceph.com/issues/74775
Signed-off-by: Guillaume Abrioux <gabrioux@ibm.com>
This commit is contained in:
parent
a8c3b0b241
commit
c06bee965f
@ -344,6 +344,28 @@ class TestGetDevices(object):
|
||||
result = disk.get_devices()
|
||||
assert result[sda_path]['actuators'] == fake_actuator_nb
|
||||
|
||||
def test_lvm_device_is_included(self, patched_get_block_devs_sysfs, fake_filesystem):
|
||||
lv_path = '/dev/vg_test/lv1'
|
||||
dm_path = '/dev/dm-0'
|
||||
mapper_path = '/dev/mapper/vg_test-lv1'
|
||||
patched_get_block_devs_sysfs.return_value = [
|
||||
[dm_path, mapper_path, 'lvm', dm_path]
|
||||
]
|
||||
fake_filesystem.create_dir('/sys/block/dm-0/slaves')
|
||||
fake_filesystem.create_dir('/sys/block/dm-0/queue')
|
||||
fake_filesystem.create_file('/sys/block/dm-0/size', contents='204800')
|
||||
fake_filesystem.create_file('/sys/block/dm-0/queue/rotational', contents='1')
|
||||
fake_filesystem.create_file('/sys/block/dm-0/queue/hw_sector_size', contents='512')
|
||||
with patch("ceph_volume.util.disk.UdevData") as MockUdevData:
|
||||
mock_instance = MagicMock()
|
||||
mock_instance.slashed_path = lv_path
|
||||
mock_instance.environment = {}
|
||||
MockUdevData.return_value = mock_instance
|
||||
result = disk.get_devices()
|
||||
assert lv_path in result
|
||||
assert result[lv_path]['type'] == 'lvm'
|
||||
assert result[lv_path]['human_readable_size'] == '100.00 MB'
|
||||
|
||||
|
||||
class TestSizeCalculations(object):
|
||||
|
||||
|
||||
@ -800,14 +800,6 @@ def get_devices(_sys_block_path='/sys/block', device=''):
|
||||
if is_ceph_rbd(diskname):
|
||||
continue
|
||||
|
||||
# If the mapper device is a logical volume it gets excluded
|
||||
try:
|
||||
if UdevData(diskname).is_lvm:
|
||||
continue
|
||||
except RuntimeError:
|
||||
logger.debug("get_devices(): device {} couldn't be found.".format(diskname))
|
||||
continue
|
||||
|
||||
# all facts that have no defaults
|
||||
# (<name>, <path relative to _sys_block_path>)
|
||||
facts = [('removable', 'removable'),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user