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 cherrypycd 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 bcryptcd 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博客
Ceph源码编译和调试vstart版本(一)相关推荐
- Ceph源码编译和调试之vstart方式
存储系统:ceph-14.2.22 操作系统:ubuntu-server-18.04 前言 调试ceph源码需要提前部署好一个完整的集群,部署集群的方法很多,比如:通过ceph源码自带的vstart脚 ...
- 【flink】Flink源码编译:Flink1.11+版本编译及部署
1.概述 转载:Flink源码编译:Flink1.11+版本编译及部署
- 下载AOSP源码编译、调试、刷机
一.准备工作 系统最好是Linux或者mac OS(本文基于Ubuntu). Ubuntu设置永不休眠,在setting中搜索power.blank-screen选择never. 一块大一点儿的硬盘, ...
- Mysql源码编译和调试debug
下载源码 直接从github 上下载了源码.git 地址:https://github.com/mysql/mysql-server 下载路径如:/work/mysql-server 编译 依赖 ma ...
- OpenCPN + Ubuntu 18.04 源码编译 + Codeblocks 调试 + wxFormBuilder 安装
OpenCPN + Ubuntu 18.04 源码编译 文章目录 一.参考资料 二.源码编译流程 三.利用 IDE 编译 四.利用 IDE 调试 四.测试界面开发工具 一.参考资料 OpenCPN - ...
- Win7+VS2010:mysql 源码编译与调试
win7+vs2010源码编译mysql 最近由于在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制,目前萌生了要研究一下mysql数据库源码的想法.那么好吧,说干就干,首先我们需要 ...
- CentOS7 源码编译安装NodeJS 最新版本Shell脚本
1,环境: 操作系统 CentOS Linux release 7.6.1810 (Core) 服务器环境 "腾讯云"服务器 cat /etc/centos-release ...
- 【MySQL】ubuntu16.04安装mysql,然后源码编译Qt5.12.4版本的libqsqlmysql.so
一.Ubuntu16.04.5 安装 MySQL 1.使用apt命令安装 sudo apt install mysql-server 安装过程会提示,推荐设置MySQL的root用户密码(注意:这里r ...
- 可视化工具VisIt源码编译教程(Windows,图文讲解)
我新建了一个VisIt软件的交流qq群:1169585995,欢迎大家加入一起交流,一起学习! 所用软件及其版本 用于源码编译的软件及版本如下: Windows版本:win10 VisIt版本:vis ...
最新文章
- js和Java分别正则匹配小数点后多余的0
- 对高并发流量控制的一点思考	推荐
- python 多继承的问题
- 前端系统化学习【JS篇】:(四-3)基本数据类型之Boolean篇
- 性能测试的需求如何确定
- 随手记_C++常考面试题
- inode客户端 linux,Ubuntu 11.10 H3C iNode 客户端下载及安装图解
- 联邦学习 OR 迁移学习?联邦迁移学习不香吗
- html同页框架间本地信息传递,[MUI] mui框架实现页面间传值
- django相关报错知识整理
- python葡萄酒数据集_葡萄酒质量数据集分析
- 基于事件触发的二阶多智能体领导跟随一致性
- 计算机知识与技能竞赛配图,“高教杯”全国大学生先进制图技术与技能大赛
- 三相电网的共模与差模
- 高效程序猿的狂暴之路
- mac 开启终端代理
- 1181: 零起点学算法88——偶数求和(C语言)
- [转]60个英文阅读网站强力推荐
- (reply-code=406, reply-text=PRECONDITION_FAILED - unknown delivery tag 1, class-id=60, method-id=80)
- 策略死守“传统数据”招招落于人后?-也许您需要另类数据
热门文章
- 地理信息系统的雷达回波图
- [状态更新]MSE三个月快速复习计划,成功考上复旦软工
- 主流七款web服务器软件点评,7款主流WEB服务器软件.pdf
- VMware VCSA 8.0 Install
- Redis系列(三)-Redis哨兵模式(一篇文章让你全面的了解reids哨兵模式)
- Hive列转行 (Lateral View + explode)详解
- Vegas如何使用透明图像作遮罩?
- 中国市场的三因子模型简单实践(1)_基于python(简单使用)
- 带你读懂测绘4D产品
- 常用计算机的外部接口,笔记本电脑常见的外部接口及作用介绍