文档章节

二、ceph编译源码、单机搭建调试环境

一只小江
 一只小江
发布于 2015/10/10 17:28
字数 627
阅读 2484
收藏 2

准备一台机器:

 root@test3:~# cat /proc/version Linux version 3.13.0-32-generic (buildd@kissel) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014

 

一·、下载ceph源码

准备下载ceph的源代码 http://ceph.com/resources/downloads/,初学者尽量在官网下载,如果在git上下载有时可能会缺少文件,导致编译不通过。

二、编译源码

1. 下载源码后,将源码包(ceph-0.94.3.tar.gz)导入到 虚拟机中,然后解压源码包  

root@cci-test3:~/blog#:tar -xvf ceph-0.94.3.tar.gz
.............................................
ceph-0.94.3/config.sub#
ceph-0.94.3/py-compile
ceph-0.94.3/README
root@cci-test3:~/blog# ls
ceph-0.94.3  ceph-0.94.3.tar.gz
root@cci-test3:~/blog#

2. 安装ceph需要依赖的的库

root@cci-test3:~/blog#:apt-get install autotools-dev autoconf automake cdbs gcc g++ git libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libcrypto++ libexpat1-dev pkg-config
root@cci-test3:~/blog#:

3. 安装库完成后,进入ceph源码根目录

root@cci-test3:~/blog/ceph-0.94.3#:./autogen.sh
...................
root@cci-test3:~/blog/ceph-0.94.3#:./configure
...............
root@cci-test3:~/blog/ceph-0.94.3#: make -j5
..........
root@cci-test3:~/blog/ceph-0.94.3#:

编译成功,这个编译的时间会持续的比较久

4. 编译代码结束后,进入src目录

root@cci-test3:~/blog/ceph-0.94.3/src/#:MON=1 MDS=0 ./vstart.sh -d -n -x
......
root@cci-test3:~/blog/ceph-0.94.3/src/#:./ceph -s
*** DEVELOPER MODE: setting PATH, PYTHONPATH and LD_LIBRARY_PATH ***
    cluster 05f0dc34-4a98-498a-9e89-06decaba704c
     health HEALTH_OK
     monmap e1: 1 mons at {a=192.168.138.95:6789/0}
            election epoch 2, quorum 0 a
     osdmap e9: 3 osds: 3 up, 3 in
      pgmap v2689: 8 pgs, 1 pools, 0 bytes data, 0 objects
            54178 MB used, 48713 MB / 105 GB avail
                   8 active+clean
root@cci-test3:~/blog/ceph-0.94.3/src/#

  5. 调试集群已经启动成功,可以使用命令停止集群

root@cci-test3:~/blog/ceph-0.94.3/src/# ./stop.sh

  6. 接下来就可以更改代码了,修改代码后可以重新编译,然后启动集群。查看编译后的集群。

osd目录:~/blog/ceph-0.94.3/src/dev/
log目录:~/blog/ceph-0.94.3/src/out/

 

总结:按着上面的步骤修改代码调试代码就很方便了,大家可以放开手脚去调试测试代码了。接下来会深入代码去分析,敬请期待

© 著作权归作者所有

一只小江
粉丝 102
博文 21
码字总数 51352
作品 0
杭州
程序员
私信 提问
加载中

评论(6)

zhangwenyu
zhangwenyu
你好,你这是不用安装吗?直接编译之后就模拟一个ceph的环境?
一只小江
一只小江 博主

引用来自“安静美男子”的评论

嗯,明白。只会编译修改过的文件。我以为要全部编译一次,非常感谢。另我看您源码中有些类图,是自己画的还是代码分析工具分析的。思路很是清晰
是 自己 看懂之后 画出来的
安静美男子
安静美男子
嗯,明白。只会编译修改过的文件。我以为要全部编译一次,非常感谢。另我看您源码中有些类图,是自己画的还是代码分析工具分析的。思路很是清晰
一只小江
一只小江 博主

引用来自“安静美男子”的评论

您好!请教一个问题,修改源码后编译怎么选择性编译呢?
你指的是 修改了某个文件 怎么对这个文件相关的和引用文件重新编译? 使用makefile 的编译方法,会自动选择性的编译那些修改过的文件和引用文件,没有变化的文件是不会再次编译的。所以编译的时候仍然可使用 make -j。使用该命令编译的时候注意输出,可以看到只编译了修改的文件和引用的文件。使用make -j5 这样的命令 可以明显的看出 第二次编译 比第一次编译快很多,就是因为第一次编译为全编译,第二次编译只编译的改变的文件。
安静美男子
安静美男子
您好!请教一个问题,修改源码后编译怎么选择性编译呢?
西昆仑
西昆仑
Hi, 你也在研究ceph哈,有空可以加我QQ一起讨论:644657055
ceph源代码部署测试环境

一、下载ceph源代码。 由于通过源代码编译、安装并部署ceph,所以通常从github上下载ceph源代码。 #git clone https://github.com/ceph/ceph.git 二、编译ceph源代码。 最好不要在git的maste...

linuxhunter
2016/06/03
1K
1
Ceph编译安装教程

Ceph官方版本目前支持的纠删码很有限,实验室这块希望能够整合我们自主开发的纠删码BRS(Binary Reed–Solomon encoding),所以需要编译Ceph环境。Ceph官方目前推荐的安装方式都是通过Ceph-...

LeeHappen
2017/12/01
0
0
tcmu+librbd ISCSI

tcmu+librbd环境搭建 1.环境 升级内核要求>=4.4.8 备注:解决 targetcoreuser.h 头文件缺失问题 2.安装依赖 2.1 ceph相关 2.1 其他依赖 2.TCMU-runner编译安装 2.1 获取源码 2.2 编译安装 2....

banwh
2018/01/09
235
0
ceph编译(二)

参考:https://my.oschina.net/linuxhunter/blog/682013 一、克隆ceph源码:git clone https://github.com/ceph/ceph.git 完成后进入ceph源码目录 cd ceph。 二、克隆ceph源码的子模块,否则...

zrz11
2016/12/12
197
0
linux环境下kafka的搭建

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/changyinling520/article/details/99228607 一.kafka基本实现配置 准...

火腿编程
08/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zk中leader和follower启动时信息交互

QuorumPeer中读取节点状态信息,不同状态下设置不同角色 1 Leader启动Follower接收器LearnerCnxAcceptor LearnerCnxAcceptor负责接收非leader连接请求,线程中创建LearnerHandler处理器 2 Le...

writeademo
36分钟前
5
0
完美的Linux之【navi】使用笔记

今天要说的是才上线才两天,就已经获得超过1000星。开发者是一位来自巴西的小哥Denis Isidoro。 开发的工具navi Linux用户的日常困惑 > 新命令 用完就忘 ? > 一时想不起来命令的单词怎么拼?...

我们都很努力着
37分钟前
6
0
iptables删除命令中的相关问题

最近在做一个V**N中间件的配置工作,在配置iptables的时候,当用户想删除EIP(即释放当前连接),发现使用iptables的相关命令会提示错误。iptables: Bad rule (does a matching rule exist ...

Linux就该这么学
49分钟前
5
0
ExtJS 4.2 评分组件

本文转载于:专业的前端网站➸ExtJS 4.2 评分组件 上一文章是扩展ExtJS自带的Date组件。在这里将创建一个评分组件。 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2...

前端老手
57分钟前
5
0
springboot2.0.6启动解析(四)观察器、启动的错报告、Headless模式相关分析

解析SpringApplication的run方法观察器、启动的错报告、Headless模式、监听器相关分析 public ConfigurableApplicationContext run(String... args) { // 构造一个任务执行观察器(Jav...

小亮89
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部