Ceph在Ubuntu下编译打包

本文详细记录了在Ubuntu系统中编译Ceph的完整过程,包括下载源码、安装依赖、多线程编译、解决编译及打包时遇到的各种问题,如子模块缺失、文件校验不符、cmake错误等,为读者提供了一份实用的参考指南。
摘要由CSDN通过智能技术生成

概述
前几天在一台ubuntu测试机上进行了Ceph编译打包,过程也是相当揪心。记录一下过程,方便以后查阅。

准备

准备一台ubuntu机器,物理机虚拟机都行,但应该物理机好一点,在编译的时候可以使用多线程加速。

下载源码

第一种方式是在Github上下载源码

git clone git@github.com:ceph/ceph

这样下载源码不会下载Ceph的子模块,这样编译的时候会出现问题。
运行以下命令来安装这些子模块:

git submodule update --init --recursive

不知道为啥我电脑用git下载不了源码,所以这个方法自己没有亲身实践。

第二种方式是在官网下载源码

http://ceph.com/resources/downloads/

官网有个好处就是会将所有子模块一并下载下来,免除掉些许麻烦。

这次我编译的是Ceph-10.2.2版本。

安装依赖

现在Ceph都会自带install-deps.sh来安装所需要的依赖包。
如果出现问题,手动装也是能解决问题的。

sudo 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

若是之后过程中提示缺少什么包,手动安装就好了。

编译方法

在Github上或者自带文档上面都能看到编译方法,也很简单,就这三步,照着做就好了。

./autogen.sh
./configure
make

make的时候可以使用多线程来加速make -j4,可以把4换成你CPU的核数,这样会快些。

编译成功

编译完源码后,你可以启动一个开发模式的 Ceph 集群,命令如下:

cd src
install -d -m0755 out dev/osd0
./vstart.sh -n -x -l
# check that it's there
./ceph health

若是前面一切顺利的话,运行完就成功了。可以进入到编译的目录下去,开始运行测试集群:

root@cci-test3:~/blog/ceph-10.2.2/src/#:MON=1 MDS=0 ./vstart.sh -d -n -x
......
root@cci-test3:~/blog/ceph-10.2.2/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-10.2.2/src/#

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

./stop.sh

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

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

打包

Ubuntu下使用dpkg工具打包

sudo apt-get install dpkg-dev
dpkg-checkbuilddeps        # make sure we have all dependencies
dpkg-buildpackage

要是不出问题的话,慢慢等着就可以了,打包的过程不比编译的过程慢,我这里会先生成一个.dsc文件和源码的tar包,可以上官网看这个.dsc文件干嘛的,我也没去关心了。
最后面打包的结果如下,很多个deb包:

-rw-r--r-- 1 root root     16828 Oct 12 18:34 ceph_10.2.2-1_amd64.changes
-rw-r--r-- 1 root root    999078 Oct 12 17:26 ceph_10.2.2-1_amd64.deb
-rw-r--r-- 1 root root      3744 Oct 12 14:55 ceph_10.2.2-1.dsc
-rw-r--r-- 1 root root  66488177 Oct 12 14:55 ceph_10.2.2-1.tar.gz
-rw-r--r-- 1 root root  53079646 Oct 12 17:27 ceph-base_10.2.2-1_amd64.deb
-rw-r--r-- 1 root root  12683536 Oct 12 17:37 ceph-common_10.2.2-1_amd64.deb
-rw-r--r-- 1 root root 222737196 Oct 12 17:43 ceph-common-dbg_10.2.2-1_amd64.deb
-rw-r--r-- 1 root root   1020478 Oct 12 17:43 ceph-fs-common_10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值