目录
2-2 安装 ccache 加速编译过程(此步骤非必须,选装 ccache 为了提高 ceph 编译速度)
4-1 使用 vstart 启动 ceph debug 环境
1 前言:
ceph 是一个庞大的项目,拥有百万行以上的代码量,复杂程度和开发成本颇高。
网上关于 ceph 开发的中文资料并不多,写这篇博客的初衷就是借助一个简单的例子,为新手提供一个 ceph 开发入坑攻略。
准备工作:
- 准备一台虚拟机(有条件的可以直接上物理机),推荐配置200G硬盘,20核以上CPU,内存64G,ceph 代码编译过程需要占用大量磁盘空间和cpu资源。
- 虚拟机需要联网,我这里使用的是 CentOS 8.2.2004 镜像。
- 一台 windows 电脑,用于搭建开发环境。
2 在虚拟机上 clone 代码并编译
2-1 安装 ceph 编译环境用到的依赖包
yum -y install rdma-core-devel gcc-c++ systemd-devel keyutils-libs-devel openldap-devel leveldb-devel snappy-devel lz4-devel curl-devel nss-devel
yum -y install libzstd zstd gcc cmake make git wget
2-2 安装 ccache 加速编译过程(此步骤非必须,选装 ccache 为了提高 ceph 编译速度)
参考: https://github.com/ccache/ccache/blob/master/doc/INSTALL.md
# 下载安装包并解压
mkdir /home/ccache
cd /home/ccache
wget https://github.com/ccache/ccache/releases/download/v4.0/ccache-4.0.tar.gz
tar -zxvf ccache-4.0.tar.gz
cd ccache-4.0
# 编译安装
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DZSTD_FROM_INTERNET=ON ..
make
make install
# 修改配置
mkdir -p /root/.config/ccache/
# 添加如下配置:
vi /root/.config/ccache/ccache.conf
max_size = 25G
sloppiness = time_macros
run_second_cpp = true
2-3 下载 ceph 代码并编译
克隆 ceph 代码库
mkdir /home/ceph
cd /home/ceph
git clone https://github.com/ceph/ceph.git
cd ceph
切换到你需要的分支,笔者这里以 N 版本为例
git checkout nautilus
执行依赖安装脚本
./install-deps.sh
如果提示没有 libbabeltrace-devel ,添加如下 yum 源
[apt-mirror.front.sepia.ceph.com_lab-extras_8_]
name=created by dnf config-manager from http://apt-mirror.front.sepia.ceph.com/lab-extras/8/
baseurl=http://apt-mirror.front.sepia.ceph.com/lab-extras/8/
enabled=1
gpgcheck=0
然后 yum 安装 libbabeltrace-devel
如果报错 Problem: package python36-rpm-macros-3.6.8-2.module_el8.1.0+245+c39af44f.noarch conflicts with py