编译Ceph并验证
编译环境准备
- 修改“yum.conf”文件。
- 打开文件。
vim /etc/yum.conf
- 按“i”进入编辑模式,添加“sslverify=false”和“deltarpm=0”。
- 按“Esc”键退出编辑模式,输入:wq!后按“Enter”键保存并退出文件。
- 打开文件。
- (可选)修改scl repo文件。仅使用CentOS 7.6操作系统时需要修改该文件。
- 下载并打开文件。
yum -y install centos-release-scl vim /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
- 按“i”进入编辑模式,修改“http”为“https”。
- 按“Esc”键退出编辑模式,输入:wq!后按“Enter”键保存并退出文件。
- 下载并打开文件。
- (可选)修改dashboard的requirements.txt。仅使用CentOS 7.6操作系统时需要修改该文件。
- 打开文件。
1
vim /home/ceph-14.2.8/src/pybind/mgr/dashboard/requirements.txt
- 按“i”进入编辑模式,注释pyopenssl。
- 按“Esc”键退出编辑模式,输入:wq!后按“Enter”键保存并退出文件。
- 打开文件。
编译软件
- 升级isa-l。
由于Ceph 14.2.8源码自带的isa-l的版本较低,需要升级isa-l。
- 进入“src”目录。
cd /home/ceph-14.2.8/src
- 备份原有isa-l,获取最新isa-l 2.29源码。
mv isa-l isa-l.bak wget https://github.com/intel/isa-l/archive/refs/tags/v2.29.0.tar.gz --no-check-certificate tar -xzvf v2.29.0.tar.gz mv isa-l-2.29.0 isa-l
- 修改ISA部分代码,适配aarch64。
具体修改内容请参考文件: https://github.com/intel/isa-l/pull/172/files#diff-bc8cf88ff358e79a71c59968b5909fab53becf65dc8d644d02ee672907deabfd。
该文件中红色代码行为删除内容,绿色代码行为新增修改内容。
升级成功后,在“isa-l/erasure_code/”目录下有“aarch64”目录。
- 进入“src”目录。
- 安装依赖。
- CentOS 7.6:
yum -y install epel-release yum -y install python36-scipy.aarch64 cd /home/ceph-14.2.8/ sh install-deps.sh
- openEuler 20.03:
cd /home/ceph-14.2.8/ sh install-deps.sh
- CentOS 7.6:
- 修改“do_cmake.sh”。
- 打开文件。
vim do_cmake.sh
- 按“i”进入编辑模式,进行如下修改,
${CMAKE} -DCMAKE_BUILD_TYPE=RelWithDebInfo $ARGS "$@" .. || exit 1
并注释“git submodule update --init --recursive”,防止做RPM包时将isa-l回退到旧版。
- 按“Esc”键退出编辑模式,输入:wq!后按“Enter”键保存并退出文件。
- 打开文件。
- 执行“do_cmake.sh”。
sh do_cmake.sh
- 编译。编译环境需要gcc 7及以上版本,用户需准备好编译环境。下文中的{number}指编译时的job数量,一般情况下该数值越大编译速度越快,但不应超过CPU核数量。
cd /home/ceph-14.2.8/build make -j{number}
- UT测试。
ctest3 -V -R unittest_erasure_code
- 删除“build”目录。
cd /home/ceph-14.2.8/ rm -rf build
父主题: 编译部署Ceph