美文网首页
解决编译安装无法创建Bluestore OSD的问题

解决编译安装无法创建Bluestore OSD的问题

作者: 退休码农飞伯德 | 来源:发表于2020-07-18 22:02 被阅读0次

阅读了ceph-volume的源码,找到了编译安装创建bluestore osd失败的问题。编译安装和rpm打包安装区别不大,安装的文件都类似,主要的区别就是安装路径的问题。ceph文件众多,有二进制文件、库文件、service文件等,这些文件rpm包的安装路径和编译安装的默认路径完全不同。

拿ceph-volume说,ceph-volume除了二进制文件,还有python脚本和service文件。问题就出在ceph-volume的service文件:rpm包将它的service文件安装在了systemctl能识别到的路径,而编译安装却默认安装在了/usr/local,导致使用systemctl创建bluestore osd服务时找不到ceph-volume的service文件。所以解决办法也很容易,就是修改编译安装的默认路径。

在do_cmake阶段修改默认安装路径。这里我写了一个脚本,将默认路径和rpm包安装的路径保持一致:

./do_cmake.sh \
    -DCMAKE_C_FLAGS=-ltbb  \
    -DCMAKE_INSTALL_PREFIX=$(rpm --eval "%{_prefix}") \
    -DCMAKE_INSTALL_LIBDIR=$(rpm --eval "%{_libdir}")  \
    -DCMAKE_INSTALL_LIBEXECDIR=$(rpm --eval "%{_libexecdir}") \
    -DCMAKE_INSTALL_LOCALSTATEDIR=$(rpm --eval "%{_localstatedir}") \
    -DCMAKE_INSTALL_SYSCONFDIR=$(rpm --eval "%{_sysconfdir}") \
    -DCMAKE_INSTALL_MANDIR=$(rpm --eval "%{_mandir}") \
    -DCMAKE_INSTALL_DOCDIR=$(rpm --eval "%{_docdir}/ceph") \
    -DCMAKE_INSTALL_INCLUDEDIR=$(rpm --eval "%{_includedir}") \
    -DCMAKE_BUILD_TYPE=DEBUG \
    -DALLOCATOR=libc -O0 -g3 -gdwarf-4

相关文章

网友评论

      本文标题:解决编译安装无法创建Bluestore OSD的问题

      本文链接:https://www.haomeiwen.com/subject/mfqqkktx.html