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
执行命令:
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源码目录
解决C++: fatal error: Killed signal terminated program cc1plus_lucky__peng的博客-CSDN博客