【ceph运维】nautilus版本ceph编译

nautilus版本ceph编译

社区已经考虑到Centos下的gcc、cmake版本比较低,不支持C++17,因此在install-deps.sh中处理:

yum install centos-release-scl  
 yum install devtoolset-11
 scl enable devtoolset-11 bash

在执行make编译的时候,脚本会自动下载 boost_1_72_0.tar.bz2,由于下载地址和网络问题,下载很慢,为了节省时间,提前手动下载,将下载的好的包放在ceph/build/boost/src即可,下载地址:

https://download.ceph.com/qa/boost_1_72_0.tar.bz2

 

 修改do_cmake.sh,注释掉原来的命令,如下:

#cmake -DBOOST_J=$(nproc) $ARGS "$@" ..   

添加新的cmake命令参数:

cmake -DCMAKE_C_FLAGS="-O0 -g3 -gdwarf-4" -DCMAKE_CXX_FLAGS="-O0 -g3 -gdwarf-4" -DBOOST_J=$(nproc) $ARGS "$@" ..

解释以上参数的含义:

CMAKE_C_FLAGS=“-O0 -g3 -gdwarf-4” : c 语言编译配置
CMAKE_CXX_FLAGS=“-O0 -g3 -gdwarf-4” :c++ 编译配置
-O0 : 关闭编译器的优化,如果没有,使用GDB追踪程序时,大多数变量被优化,无法显示, 生产环境必须关掉
-g3 : 意味着会产生大量的调试信息
-gdwarf-4 : dwarf 是一种调试格式,dwarf-4 版本为4

进入ceph源码的目录执行

bash do_cmake.sh

 

这个步骤会创建一个叫build的目录。进入到build目录

cd build

执行cmake . -LH  查看下ceph有哪些编译选项,根据自己的需要来选择:

 cmake .. -DWITH_LTTNG=OFF -DWITH_RDMA=OFF -DWITH_FUSE=OFF -DWITH_DPDK=OFF -DCMAKE_INSTALL_PREFIX=/usr  

执行make –j8 编译源码

make -j 8

 

#方式1:全部编译
make all -j4
#方式2:单独编译osd某块
make ceph-osd -j4
#查看所有模块
make help

执行make install 编译安装源码

sudo make install

生成vstart脚本:

cd build 
make vstart

 

参考资料

1. Ceph编译:L版本及其之后的版本

2. Linux下Ceph源码编译和GDB调试

3. ceph入门到精通-Linux下Ceph源码编译和GDB调试

posted @ 2021-11-09 12:51  苏格拉底的落泪  阅读(253)  评论(0编辑  收藏  举报