如果需要要修改 Ceph 源码,就要自己构建安装包,然后指定 ceph-deploy 的安装源。 本文主要介绍从 git 上 clone 源码,然后用 rpmbuild 打包,最后用 ceph-deploy 安装。 环境为 Centos6.5,ceph 版本 v0.94.5(hammer)。
Ceph RPM 打包
官方的 RPM 打包教程http://ceph.com/docs/master/install/build-ceph/
。 如果只是尝试打包的话,这个教程基本够了,下面主要讲从 git 源码开始。
git(recursive 会把子模块一起克隆)
git clone --recursive https://github.com/ceph/ceph.git
cd ceph
git checkout v0.94.5 -f
安装打包依赖
./install-deps.sh
yum install rpm-build rpmdevtools
准备 rpmbuild 目录
rpmdev-setuptree
配置编译
./autogen.sh
./configure
./make_dist 0.94.5
cp ceph-0.94.5.tar.bz2 ~/rpmbuild/SOURCES/
cp rpm/init-ceph.in-fedora.patch ~/rpmbuild/SOURCES/
cp ceph.spec.in ~/rpmbuild/SPECS/ceph.spec
开始 build,编译完成会在~/rpmbuild/RPMS/x86_64 目录下生成打包文件
rpmbuild -ba ~/rpmbuild/SPECS/ceph.spec
经过漫长的等待,终于打包完成:
[root@xiexianbin_cn x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@xiexianbin_cn x86_64]# ll -al
total 722452
drwxr-xr-x 2 root root 4096 Dec 15 03:36 .
drwxr-xr-x 3 root root 4096 Dec 15 02:33 ..
-rw-r--r-- 1 root root 22108972 Dec 15 02:34 ceph-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 7179016 Dec 15 02:34 ceph-common-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 652570952 Dec 15 03:37 ceph-debuginfo-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 2184 Dec 15 02:37 ceph-devel-compat-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 20852 Dec 15 02:37 cephfs-java-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 1791916 Dec 15 02:34 ceph-fuse-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 2116 Dec 15 02:37 ceph-libs-compat-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 2454180 Dec 15 02:34 ceph-radosgw-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 45571524 Dec 15 02:37 ceph-test-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 1966220 Dec 15 02:34 libcephfs1-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 12732 Dec 15 02:34 libcephfs1-devel-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 31328 Dec 15 02:37 libcephfs_jni1-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 2524 Dec 15 02:37 libcephfs_jni1-devel-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 1707528 Dec 15 02:34 librados2-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 36516 Dec 15 02:34 librados2-devel-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 1840540 Dec 15 02:34 libradosstriper1-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 7996 Dec 15 02:34 libradosstriper1-devel-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 1853420 Dec 15 02:34 librbd1-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 9576 Dec 15 02:34 librbd1-devel-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 2032 Dec 15 02:37 python-ceph-compat-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 9748 Dec 15 02:34 python-cephfs-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 28248 Dec 15 02:34 python-rados-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 17616 Dec 15 02:34 python-rbd-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 11172 Dec 15 02:34 rbd-fuse-0.94.5-hammer.el6.x86_64.rpm
-rw-r--r-- 1 root root 489452 Dec 15 02:34 rest-bench-0.94.5-hammer.el6.x86_64.rpm
[root@xiexianbin_cn x86_64]#
注意,编译大概需要近 15G 存储空间