Greetings,
I have been fighting through trying to enable spdk with ceph and have ran into a block and I'm not sure where to go from here and was curious if your team had some input.
The attempt here is to use spdk to present an nvme device to ceph. When using spdk to test the nvme device it works without a problem locally however when attempting to coerce ceph to use the device there are failures that I can't find much information regarding but came across some build files that might point to the problem potentially. Since the version of ceph* I am using is the pve built versions I am not 100% sure if certain build flags have been passed at build time, nor am I sure how to validate. The error I receive when creating an osd is below and has a failure when it attempts to call the "ust_nvme" backend type that doesn't exist. When doing some searching in the repo there appear to be come cmake (build flags?) that might need to be added in order to include this backend type. Here is a link to the BlockDevice.cc in the octopus head. From what I understand it should call the NVMEDevice header if HAVE_SPDK is included so my assumption is this build flag is not included and it can't find this file?
Any guidance would be nice, my next step is to open an issue with ceph but I'm afraid they'll punt me here or tell me to use their build. I plan on starting down the road of trying the debain buster octopus build to see if there are any changes.
Thanks
I have been fighting through trying to enable spdk with ceph and have ran into a block and I'm not sure where to go from here and was curious if your team had some input.
The attempt here is to use spdk to present an nvme device to ceph. When using spdk to test the nvme device it works without a problem locally however when attempting to coerce ceph to use the device there are failures that I can't find much information regarding but came across some build files that might point to the problem potentially. Since the version of ceph* I am using is the pve built versions I am not 100% sure if certain build flags have been passed at build time, nor am I sure how to validate. The error I receive when creating an osd is below and has a failure when it attempts to call the "ust_nvme" backend type that doesn't exist. When doing some searching in the repo there appear to be come cmake (build flags?) that might need to be added in order to include this backend type. Here is a link to the BlockDevice.cc in the octopus head. From what I understand it should call the NVMEDevice header if HAVE_SPDK is included so my assumption is this build flag is not included and it can't find this file?
Any guidance would be nice, my next step is to open an issue with ceph but I'm afraid they'll punt me here or tell me to use their build. I plan on starting down the road of trying the debain buster octopus build to see if there are any changes.
Thanks
Code:
root@frank:~/spdk# ceph-osd -i 2 --mkfs -c /etc/pve/ceph.conf --debug_osd 10 --setuser ceph --setgroup ceph --cluster ceph --osd-uuid 7e5d5d56-80a1-4db4-b743-972c7f1e1f96
2020-11-17T09:09:14.747-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2/block) _read_bdev_label failed to open /var/lib/ceph/osd/ceph-2/block: (2) No such file or directory
2020-11-17T09:09:14.747-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2/block) _read_bdev_label failed to open /var/lib/ceph/osd/ceph-2/block: (2) No such file or directory
2020-11-17T09:09:14.747-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2/block) _read_bdev_label failed to open /var/lib/ceph/osd/ceph-2/block: (2) No such file or directory
2020-11-17T09:09:14.751-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2) _read_fsid unparsable uuid
2020-11-17T09:09:14.751-0500 7f6eb7768e00 -1 bdev create unknown backend ust-nvme
/build/ceph/ceph-15.2.5/src/os/bluestore/BlockDevice.cc: In function 'static BlockDevice* BlockDevice::create(ceph::common::CephContext*, const string&, BlockDevice::aio_callback_t, void*, BlockDevice::aio_callback_t, void*)' thread 7f6eb7768e00 time 2020-11-17T09:09:14.755541-0500
/build/ceph/ceph-15.2.5/src/os/bluestore/BlockDevice.cc: 135: ceph_abort_msg("abort() called")
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe1) [0x55b7667809d0]
2: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
3: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
4: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
5: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
6: (main()+0x1443) [0x55b7667c0253]
7: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
8: (_start()+0x2a) [0x55b7667d56fa]
2020-11-17T09:09:14.775-0500 7f6eb7768e00 -1 /build/ceph/ceph-15.2.5/src/os/bluestore/BlockDevice.cc: In function 'static BlockDevice* BlockDevice::create(ceph::common::CephContext*, const string&, BlockDevice::aio_callback_t, void*, BlockDevice::aio_callback_t, void*)' thread 7f6eb7768e00 time 2020-11-17T09:09:14.755541-0500
/build/ceph/ceph-15.2.5/src/os/bluestore/BlockDevice.cc: 135: ceph_abort_msg("abort() called")
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe1) [0x55b7667809d0]
2: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
3: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
4: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
5: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
6: (main()+0x1443) [0x55b7667c0253]
7: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
8: (_start()+0x2a) [0x55b7667d56fa]
*** Caught signal (Aborted) **
in thread 7f6eb7768e00 thread_name:ceph-osd
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (()+0x12730) [0x7f6eb81b9730]
2: (gsignal()+0x10b) [0x7f6eb7c9a7bb]
3: (abort()+0x121) [0x7f6eb7c85535]
4: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1b2) [0x55b766780aa1]
5: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
6: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
7: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
8: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
9: (main()+0x1443) [0x55b7667c0253]
10: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
11: (_start()+0x2a) [0x55b7667d56fa]
2020-11-17T09:09:14.787-0500 7f6eb7768e00 -1 *** Caught signal (Aborted) **
in thread 7f6eb7768e00 thread_name:ceph-osd
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (()+0x12730) [0x7f6eb81b9730]
2: (gsignal()+0x10b) [0x7f6eb7c9a7bb]
3: (abort()+0x121) [0x7f6eb7c85535]
4: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1b2) [0x55b766780aa1]
5: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
6: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
7: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
8: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
9: (main()+0x1443) [0x55b7667c0253]
10: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
11: (_start()+0x2a) [0x55b7667d56fa]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
-9> 2020-11-17T09:09:14.747-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2/block) _read_bdev_label failed to open /var/lib/ceph/osd/ceph-2/block: (2) No such file or directory
-8> 2020-11-17T09:09:14.747-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2/block) _read_bdev_label failed to open /var/lib/ceph/osd/ceph-2/block: (2) No such file or directory
-7> 2020-11-17T09:09:14.747-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2/block) _read_bdev_label failed to open /var/lib/ceph/osd/ceph-2/block: (2) No such file or directory
-6> 2020-11-17T09:09:14.751-0500 7f6eb7768e00 -1 bluestore(/var/lib/ceph/osd/ceph-2) _read_fsid unparsable uuid
-2> 2020-11-17T09:09:14.751-0500 7f6eb7768e00 -1 bdev create unknown backend ust-nvme
-1> 2020-11-17T09:09:14.775-0500 7f6eb7768e00 -1 /build/ceph/ceph-15.2.5/src/os/bluestore/BlockDevice.cc: In function 'static BlockDevice* BlockDevice::create(ceph::common::CephContext*, const string&, BlockDevice::aio_callback_t, void*, BlockDevice::aio_callback_t, void*)' thread 7f6eb7768e00 time 2020-11-17T09:09:14.755541-0500
/build/ceph/ceph-15.2.5/src/os/bluestore/BlockDevice.cc: 135: ceph_abort_msg("abort() called")
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xe1) [0x55b7667809d0]
2: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
3: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
4: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
5: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
6: (main()+0x1443) [0x55b7667c0253]
7: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
8: (_start()+0x2a) [0x55b7667d56fa]
0> 2020-11-17T09:09:14.787-0500 7f6eb7768e00 -1 *** Caught signal (Aborted) **
in thread 7f6eb7768e00 thread_name:ceph-osd
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (()+0x12730) [0x7f6eb81b9730]
2: (gsignal()+0x10b) [0x7f6eb7c9a7bb]
3: (abort()+0x121) [0x7f6eb7c85535]
4: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1b2) [0x55b766780aa1]
5: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
6: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
7: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
8: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
9: (main()+0x1443) [0x55b7667c0253]
10: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
11: (_start()+0x2a) [0x55b7667d56fa]
NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.
*** Caught signal (Segmentation fault) **
in thread 7f6eb7768e00 thread_name:ceph-osd
ceph version 15.2.5 (73e4b91c0ea5263d266983f379539340dea672fa) octopus (stable)
1: (()+0x12730) [0x7f6eb81b9730]
2: (pthread_getname_np()+0x44) [0x7f6eb81ba8e4]
3: (ceph::logging::Log::dump_recent()+0x428) [0x55b766fcf7d8]
4: (()+0x1032385) [0x55b766df0385]
5: (()+0x12730) [0x7f6eb81b9730]
6: (gsignal()+0x10b) [0x7f6eb7c9a7bb]
7: (abort()+0x121) [0x7f6eb7c85535]
8: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x1b2) [0x55b766780aa1]
9: (BlockDevice::create(ceph::common::CephContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, void (*)(void*, void*), void*, void (*)(void*, void*), void*)+0x4d4) [0x55b766d812c4]
10: (BlueStore::_open_bdev(bool)+0x6d) [0x55b766c91efd]
11: (BlueStore::mkfs()+0x416) [0x55b766cfced6]
12: (OSD::mkfs(ceph::common::CephContext*, ObjectStore*, uuid_d, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)+0x1ae) [0x55b7667fff9e]
13: (main()+0x1443) [0x55b7667c0253]
14: (__libc_start_main()+0xeb) [0x7f6eb7c8709b]
15: (_start()+0x2a) [0x55b7667d56fa]
root@frank:~/spdk# apt list --installed | grep ceph
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
ceph-base/stable,now 15.2.5-pve1 amd64 [installed]
ceph-common/stable,now 15.2.5-pve1 amd64 [installed]
ceph-fuse/stable,now 15.2.5-pve1 amd64 [installed]
ceph-mds/stable,now 15.2.5-pve1 amd64 [installed]
ceph-mgr-modules-core/stable,now 15.2.5-pve1 all [installed,automatic]
ceph-mgr/stable,now 15.2.5-pve1 amd64 [installed]
ceph-mon/stable,now 15.2.5-pve1 amd64 [installed]
ceph-osd/stable,now 15.2.5-pve1 amd64 [installed]
libcephfs2/stable,now 15.2.5-pve1 amd64 [installed]
python-ceph-argparse/now 14.2.11-pve1 all [installed,local]
python3-ceph-argparse/stable,now 15.2.5-pve1 all [installed,automatic]
python3-ceph-common/stable,now 15.2.5-pve1 all [installed,automatic]
python3-cephfs/stable,now 15.2.5-pve1 amd64 [installed,automatic]