DeepSea
DeepSea copied to clipboard
ceph.osd fails to determine osd-id
Description of Issue/Question
Setup
(Please provide relevant configs and/or SLS files (Be sure to remove sensitive info).)
A cluster with SSD/NVME/HDD
{'/dev/sdb': {'db': '/dev/nvme0n1',
'db_size': '500m',
'format': 'bluestore',
'wal': '/dev/nvme0n1',
'wal_size': '500m'}
demeter:~ # cat /etc/ceph/destroyedOSDs.yml
/dev/disk/by-path/pci-0000:00:17.0-ata-7: 25
/dev/disk/by-path/pci-0000:00:17.0-ata-8: 12
prepare: PYTHONWARNINGS=ignore ceph-disk -v prepare --osd-id {'/dev/disk/by-path/pci-0000:00:17.0-ata-7': 25, '/dev/disk/by-path/pci-0000:00:17.0-ata-8': 12} --bluestore --data-dev --journal-dev --cluster ceph --cluster-uuid 329eb419-bda0-3349-a22a-cea3eb61a65e --block.wal /dev/nvme0n1p3 --block.db /dev/nvme0n1p4 /dev/sdb
deepsea: 0.8.8
This seems like an issue with osd.py (find_destroyed()) which returns the content
of the yaml when no by_path
is present. that results in the above malformed prepare
call.
that bug occurs when there are entries in the /etc/osd/destoyedOSD.yml
file which don't match any device. (which is quite often the case)
Apparently introduced with a backport of 8e2592c2dc543aa8a6ad758eec79d8625bc1c0c8