centos 6 下编译打包 ceph 10.2.0

 先来看看release note: http://docs.ceph.com/docs/master/release-notes/#v10-2-0-jewel

but CentOS 7.x. We have dropped support for CentOS 6

但是鉴于全部升级操作系统会是比较缓慢的过程所以先在现有环境编译打包

1.download
wget http://download.ceph.com/tarballs/ceph_10.2.0.orig.tar.gz
2.打包准备
tar -xzvf ceph_10.2.0.orig.tar.gz
从 src/tools/Makefile-client.am 删除rbd-nbd的相关编译项目,因为内核默认的nbd模块版本比较低不支持rbd-nbd的操作,如果需也可以选择升级这个模块
cp ceph.spec  ./
tar -cjf  ~/rpmbuild/SOURCES/ceph-10.2.0.tar.bz2 ceph-10.2.0
3.需要支持c++11的编译器
wget http://gcc.skazkaforyou.com/releases/gcc-4.9.0/gcc-4.9.0.tar.gz;
tar gcc-4.9.0.tar.gz
cd gcc-4.9.0
./contrib/download_prerequisites
yum install glibc-devel
./configure --prefix=/usr/local --enable-languages=c,c++ --disable-multilib
make install
4.安装boost
1.53 即可
解压后
由于ceph 连接的时mt版本,默认时最小编译,所以需要全部编译,另外最好卸载系统中现有的版本(实际上设置好链接顺序不会有问题)
./b2 --prefix=/usr/local  --build-type=complete --layout=tagged  install
5.安装patch
git clone https://github.com/ceph/ceph.git
cp init-ceph.in-fedora.patch ~/rpmbuild/SOURCES/
6.安装提示的依赖
rpmbuild -bb ceph.spec
注意只安装python 以外的依赖即可,由于ceph中的工具现在不再支持python2.6版本,安装python2.7版本会可能会影响yum 的使用所以现在先将其他的以来都装了省的一会麻烦
不用理会boost 和 /usr/share/selinux/devel/policyhelp is needed by ceph-1:10.2.0-0.el6.x86_64 以来
只要确认boost 安装成功一会从spec文件注释掉以来检测即可
policyhelp 比较麻烦
  https://fedoraproject.org/wiki/SELinux_Policy_Modules_Packaging_Draft
  The /usr/share/selinux/devel/policyhelp requirement was necessary to extract the version number of the selinux-policy package being built against, which is used to enforce a minimum version requirement on selinux-policy when the built package is installed. The policyhelp file itself can be found in either the selinux-policy, selinux-policy-devel, or selinux-policy-doc package (depending on OS release), which is why we cannot simply use a package name unless we are prepared to sacrifice spec file portability. From Fedora 20 onwards, this method is no longer necessary, so if your packaging is not targeting any releases prior to Fedora 20 or EPEL-5/6, the /usr/share/selinux/devel/policyhelp requirement is not needed.
    所以一会也从spec文件注释掉这部分的以来 
7.安装rocksdb
git clone https://github.com/facebook/rocksdb.git
make static_lib
8.安装python2.7
wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz 这个快些
这个直接安装就好,不过记得一定要安装/usr下,可能spec文件是在centos 7下写的其默认是python2.7 所以有些路径是写成固定的 @@
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip install distribute
pip install Cython
ln -s /usr/local/bin/sphinx-build /usr/local/bin/sphinx-1.0-build
安装所以python 包的依赖
需要yum时如果遇到问题,可以在yum的脚本直接报名python的版本,或者修改软连接
9.修改spec文件
vim ceph.spec
1)
找到%install
下面添加
%define __debug_install_post   \
       %{_rpmconfigdir}/find-debuginfo.sh %{?_find_debuginfo_opts} "%{_builddir}/%{?buildsubdir}"\
    %{nil}


2)
由于centos7 使用systemd 替代init,脚本中本来已经做了判断不过漏了一处(感觉)
%{_unitdir}/ceph.target from ceph.spec => #%{_unitdir}/ceph.target from ceph.spec
3)
删掉一下包的文件定义
rbd-nbd cephfs-java libcephfs_jni1-devel
rbd-nbd 是上面的原因,java的这两个感觉不必要,不过我不需要所以直接注释掉了
(查找%file 部分会看到这个部分内容)
4)
在%clean前加上这些
删掉多余的文件 
rm %{_libdir}/libcephfs_jni.so -f
rm %{_javadir}/libcephfs-test.jar -f
rm %{_javadir}/libcephfs.jar -f
rm %{_mandir}/man8/rbd-nbd.8* -f


10. 开始打包
/bin/env QA_RPATHS=$[ 0x0020 ]  rpmbuild -bb  ceph-10.2.0_old/ceph.spec


简介: 4 一:安装配置环境介绍 5 1:系统版本: 5 2:内核版本: 5 3:ceph版本: 5 4:ceph-deploy版本: 5 4:网络拓扑图 6 5:设备位置图 6 6:服务器配置信息及运行服务统计 7 二:系统软件基础包初始化: 10 1:安装 EPEL 软件源: 10 2:常用软件包、常用工具等(非必须、推荐安装) 10 三:集群主机系统初始化准备 10 1:规范系统主机名; 11 2:添加hosts文件实现集群主机名与主机名之间相互能够解析 11 3:每台 ssh-copy-id 完成这些服务器之间免ssh密码登录; 11 4:关闭防火墙或者开放 6789/6800~6900端口、关闭SELINUX; 11 5:关闭防火墙及开机启动 12 5:配置ntp服务,保证集群服务器时间统一; 12 6:系统优化类 12 四:集群优化配置 12 1:优化前提 12 2: 开启VT和HT 13 3:关闭CPU节能 13 4:关闭NUMA 13 5:网络优化 15 6:修改read_ahead 15 7:关闭swap 16 8:调整Kernel pid max 16 9:修改I/O Scheduler 16 五:安装部署主机(ceph-deploy)安装环境准备 17 1:建立主机列表 17 2:为所有集群主机创建一个 ceph 工作目录 17 3:同步hosts文件 17 4:测试主机名解析 17 5:ceph-deploy安装配置 18 六:创建mon 节点 18 1:安装部署集群软件包: 18 2:在安装部署节使用ceph-deploy创建,生成MON信息: 18 3:添加初始monitor节点和收集秘钥 18 4:验证集群mon节点安装成功 19 七:安装集群osd服务 19 1:查看一下 Ceph 存储节点的硬盘情况: 19 2:批量格式化磁盘 20 3:执行osd初始化命令 21 4:验证日志写入位置在ssd 硬盘分区成功 22 5:验证osd启动状态 22 6:PGs per OSD (2 < min 30)报错解决: 23 7:官方推荐pg计算公式 24 八:添加元数据服务器 24 1:添加元数据服务器 24 2:验证mds服务 24 3:删除mds节点 26 4:同步集群配置文件 26 九:crush 规则配置 26 1:ceph crush规则介绍 26 2:集群crush规则配置 27 3:修改crushmap信息 28 十:集群配置清理 29 1:清理软件包 29 2:卸载之前挂载的osd磁盘 29 3:将写入分区表的分区挂载 29 4:查看一下状态,仅剩余系统盘 30 5:清理残余key文件和残余目录 30 6:新建安装目录 30 7:重新部署集群 30 十一:集群配置参数优化 30 1:配置参数优化 30 2:同步集群配置文件 49 十二:ceph集群启动、重启、停止 49 1:ceph 命令的选项 49 2:启动所有守护进程 50 3:启动单一实例 50 十三:维护常用命令 50 1:检查集群健康状况 50 1:检查集群健康状况 50 2:检查集群的使用情况 51 3:检查集群状态 51 4:检查MONITOR状态 52 5:检查 MDS 状态: 52 十四:集群命令详解 52 1:mon 相关 52 2: msd 相关 53 4:ceph auth 相关 54 5:osd 相关 54 6:pool 相关 56 7:rados命令相关 57 8:PG 相关 59 9: rbd命令相关 61 十五:ceph 日志和调试设置 63 1:配置文件修改 63 2:在线修改日志输出级别 63 3:修改集群子系统,日志和调试设置 64 4:日志输出级别默认值 65
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值