Ceph源码编译和调试vstart版本(一)

ceph调试环境及版本

  • ubuntu18.04
  • ceph v14.2.22

        ceph调试源码部署一个完整集群,使用ceph源码vstart脚本部署。

1.克隆源码仓库

git clone --recursive https://github.com/ceph/ceph.git

2.导出v14.2.22版本的ceph源码

git archive v14.2.22 | gzip > v14.2.22.tar.gz
mkdir v14.2.22
tar -zvxf v14.2.22.tar.gz -C ./v14.2.22

用git clone代码导出的v14.2.22版本可能子模块不全,导致后边编译不通过。可以直接下载代码。

下载地址:https://mirrors.aliyun.com/ceph/debian-nautilus/pool/main/c/ceph/ceph_14.2.22.orig.tar.gz

3.安装依赖库

屏蔽install-deps.sh以下两个地方

#*Bionic*)

#install_boost_on_ubuntu bionic

cd v14.2.22
./install-deps.sh

        error:

sudo rm -rf /var/lib/apt/lists/*

sudo apt-get update

重新执行./install-deps.sh

4、编译ceph源码。

4.1  开启debug模式

        修改ceph源码根目录下CMakeList文件,在set(VERSION 14.2.22)后添加

set(CMAKE_PREFIX_PATH "/root/src/ceph_v14_build")
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -Wall -g -lpthread -lssl -lcrypto")
set(CMAKE_CXX_FLAGS "-O0 -Wall -g -lpthread -lssl -lcrypto")
set(CMAKE_C_FLAGS "-O0 -Wall -g -lpthread -lssl -lcrypto")

4.2  构建build目录:

执行./do-cmake.sh

4.3  编译:

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

5 集群部署

5.1  ceph部署开发集群脚本:vstart.sh   该脚本利用本地IP和不同端口配置MON、MGR、OSD等。在build目录下,部署新集群。

MON=1 OSD=6 MDS=1 MGR=1 RGW=1  ../src/vstart.sh -d -n  -x

参数解释:

MON、 OSD、 MDS、 MGR是配置相应的个数
-d:debug,开启debug模式
-n:new,新建一个集群
-x:cephx,cephx认证

        出现dashboard不能部署,

5.1.1 查看群状态,

bin/ceph -s

问题: 在health后边,Module 'dashboard' has failed  dependency:No module named 'cherrypy'

参考使用pip命令产生错误:[ModuleNotFoundError: No module named 'cherrypy'] - 大大大大大圣归来 - 博客园

未安装依赖的cherrypy,安装。

执行命令:pip install cherrypy

5.1.2 出现问题

        

         参考网页解决:python pip 错误 ModuleNotFoundError: No module named pip._internal 解决办法_whatday的博客-CSDN博客

        执行命令:

python -m pip install --upgrade pip
sudo apt install --fix-missing python3-pip
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
python get-pip.py
rm get-pip.py
wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
python get-pip.py
pip install cherrypy
pip3 install cherrypy

cd ceph/build
MON=1 OSD=6 MDS=1 MGR=1 RGW=1 ../src/vstart.sh -d -n -x

问题:Module 'dashboard' has failed dependency: cannot import name _bcrypt

参考:记录一下升级Python3.9.0后 cannot import name ‘_bcrypt‘ from partially initialized module ‘bcrypt‘的问题_泪寒雪的博客-CSDN博客

执行命令:

pip install --upgrade bcrypt

cd ceph/build
MON=1 OSD=6 MDS=1 MGR=1 RGW=1 ../src/vstart.sh -d -n -x

输出:

将dashboard urls即https://192.168.226.139:41113拷贝到谷歌浏览器,输入用户名密码:admin/admin,即可看到视图。

 配置部署成功。

查看状态 bin/ceph -s

6.调试

参考:

Linux下Ceph源码编译和调试--vstart版本_siscte的博客-CSDN博客_ceph源码目录

Ceph调试开发环境搭建 - 云+社区 - 腾讯云

记一次ceph bug gdb调试 - 博客 - 编程圈

解决C++: fatal error: Killed signal terminated program cc1plus_lucky__peng的博客-CSDN博客

Prometheus升级指南 - 云+社区 - 腾讯云

如何在Ubuntu 16.04上安装Prometheus - 云+社区 - 腾讯云

Linux开机出现welcome to emergency mode! 解决方法after logging in ,type “journalctl -xb” to view system logs_萧然陈外的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值