ceph luminous版本编译及部署
钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>
一、载ceph L版本代码
github下载即可,省略
二、改do_cmake.sh文件
注释这一行,添加如下: #cmake -DBOOST_J=$(nproc) $ARGS "$@" .. cmake -DCMAKE_C_FLAGS="-O0 -g3 -gdwarf-4" -DCMAKE_CXX_FLAGS="-O0 -g3 -gdwarf-4" -DBOOST_J=$(nproc) $ARGS "$@" ..
上述修改解释:
CMAKE_C_FLAGS=“-O0 -g3 -gdwarf-4” : c 语言编译配置 CMAKE_CXX_FLAGS=“-O0 -g3 -gdwarf-4” :c++ 编译配置 -O0 : 关闭编译器的优化,如果没有,使用GDB追踪程序时,大多数变量被优化,无法显示, 生产环境必须关掉 -g3 : 意味着会产生大量的调试信息 -gdwarf-4 : dwarf 是一种调试格式,dwarf-4 版本为4
三、执行do_cmake.sh脚本,
这个步骤会创建一个叫build的目录,进入到build目录。可以看到Makefile文件,方便下一步的make编译。
此步骤应该会报很多错误,逐个解决即可:
大约需要安装一下rpm包及其依赖包:
yum install python-sphinx nss-devel lttng-ust-devel babeltrace libbabeltrace-devel libibverbs python3 python3-devel python-Cython python3*-Cython gperftools gperftools-devel gperf Tips:这里安装python3-devel的时候会冲突,需要先卸载python-devel,等待安装python3-devel后,再安装python-devel即可; rpm -e python-devel yum install python-devel
1. pthread_create 问题
该问题定位很久...
/home/ceph-luminous/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8:对‘pthread_create’未定义的引用
解决:
yum install python-sphinx
有博客说可以通过升级cmake的版本可以解决,但是升级后问题依然存在。
ref:https://tracker.ceph.com/issues/19294
2. nss相关
解决:
yum install nss-devel
3.LTTngUST相关
解决:
yum install lttng-ust-devel
4.babeltrace相关
解决:
yum install babeltrace
yum install libbabeltrace-devel
5.libibverbs相关
解决:
yum install libibverbs
6.liblua相关
该问题也定位很久。
解决:
忘记怎么解决了,
似乎是用do_cmake.sh 脚本中,执行git submodule update --init --recursive,安装相关源码包?(因为之前为了方便,我把这行注释掉了)
已经编译好的环境上相关依赖包? [root@ceph1 ceph-luminous]# rpm -qa | grep lua lua-5.1.4-15.el7.x86_64 lua-static-5.1.4-15.el7.x86_64 [root@ceph1 ceph-luminous]# ls src/lua/ cmake CMakeLists.txt dist.info doc etc Makefile README.md src
https://tracker.ceph.com/issues/21418
7.Python3Libs问题
解决:
yum install yum
install python3-devel python3-devel
tips:先卸载rpm -e python-devel,再安装python3-devel,再安装python-devel
8.Cython问题
解决:
yum install python-Cython,其实安装了: sclo-cassandra3-runtime-1.0-17.el7.x86_64 sclo-cassandra3-python2-Cython-0.27.1-2.el7.x86_64 yum install python3*-Cython,其实安装了: python34-3.4.10-4.el7.x86_64.rpm python34-Cython-0.28.5-1.el7.x86_64.rpm python34-libs-3.4.10-4.el7.x86_64.rpm python36-Cython-0.28.5-1.el7.x86_64.rpm
9.gperf问题:
解决:
yum install gperftools gperftools-devel (69个依赖包)
yum install gperf
10.sclo问题
解决:
yum install centos-release-scl
至此执行do_cmake.sh 完成
四、编译和安装
执行cmake . -LH 查看下ceph有哪些编译选项,根据自己的需要来选择
执行
cmake .. -DWITH_LTTNG=OFF -DWITH_RDMA=OFF -DWITH_FUSE=OFF -DWITH_DPDK=OFF -DCMAKE_INSTALL_PREFIX=/usr
执行make –j8编译源码
执行make install编译安装源码
五、检查ceph版本,prettytable问题
解决:
yum install python-prettytable
六、开始部署
1.时间同步:
[root@ceph-node1 ~]# yum install -y ntp ntpdate ntp-doc [root@ceph-node2 ~]# yum install -y ntp ntpdate ntp-doc [root@ceph-node3 ~]# yum install -y ntp ntpdate ntp-doc [root@ceph-node1 ~]# ntpdate ntp1.aliyun.com 31 Jul 03:43:04 ntpdate[973]: adjust time server 120.25.115.20 offset 0.001528 sec [root@ceph-node1 ~]# hwclock Tue 31 Jul 2018 03:44:55 AM EDT -0.302897 seconds [root@ceph-node1 ~]# crontab -e */5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com
2.节点间无密钥访问及/etc/hosts、主机名配置
略
3.mon的初始化配置
ceph-deploy new ceph1 ceph2 ceph3 --public-network=192.168.111.0/24 --cluster-network=192.168.111.0/24 ceph-deploy --overwrite-conf mon create-initial
问题一:
报错:Failed to execute command: systemctl enable ceph.target(该问题处理较长时间)
设置setenforce 0 后
主要是源码安装后, /usr/lib/systemd/system/下没有生成对于得target和service文件
解决:
[root@ceph2 ceph-luminous]# pwd /home/ceph-luminous cp systemd/ceph*.target /usr/lib/systemd/system/ cp systemd/ceph*.service /usr/lib/systemd/system/ cp systemd/ceph /usr/lib/systemd/system/
问题二:
没有ceph用户问题
解决:
添加ceph用户,并修改权限 adduser -d /home/easystack/ -m ceph vim /etc/passwd //改为0
问题三:
这个是因为/etc/hosts 的名字和hostname不一致导致(或者冲突导致)。
修改正确后:
执行ceph-deploy admin ceph1 ceph2 ceph3 把key推送到相应的位置(主要是ceph.client.admin.keyring要放到 /etc/ceph/ 下)
至此,mon初始化成功
4、mgr部署
no active mgr 这个 manager 是在 J 版本以后加入的,此时需要开启这个功能模块:
解决:
手动创建mgr目录即可:mkdir -p /var/lib/ceph/mgr
重新部署:
5、osd部署
//这里prepare换为create 效果相同 ceph-deploy osd prepare --bluestore --block-wal /dev/vde1 --block-db /dev/vde2 ceph1:/dev/vdb ceph-deploy osd activate ceph1:/dev/vdb1
部署后block-wal、block-db以及block之间的结构关系(以osd.0为例):
部署成功后,出现“ HEALTH_WARN application not enabled on 1 pool(s)”,refs:https://ceph.io/community/new-luminous-pool-tags/
大概是给创建的存储池做标记使用: use 'ceph osd pool application enable <pool-name> <app-name>', where <app-name> is 'cephfs', 'rbd', 'rgw', or freeform for custom applications. 处理: ceph osd pool application enable dpool rbd
a.通过允许高层管理工具轻松确定池的用例,从而简化其行为。例如,新的Ceph仪表板(即将发布的博客)目前使用一组启发式方法来猜测是否将池用于RBD工作负载。池标签避免了笨拙且容易出错的过程。
b.防止应用程序使用未正确标记以供其使用的池。例如,rbd CLI可以警告或阻止在带有RGW标签的池中创建映像。
6、结束
最终部署完成,效果图:
部署脚本:
deploy_luminous.sh
参考链接:
https://www.cnblogs.com/powerrailgun/p/12133107.html
https://www.cnblogs.com/linuxk/p/9419423.html
https://www.cnblogs.com/hukey/p/11975109.html
- Apache源码编译安装2.2.17版本以及部署AWStats日志分析系统配置详解
- 在eclipse中部署openfire4.0.4(最新版本) 源码后编译
- ceph J 版本编译及部署
- jdk版本及编译版本导致服务器部署UnsupportedClassVersionError错误
- Spark 1.6.0 (Scala 2.11)版本的编译与安装部署
- 在线 Beosin EOS-IDE 免费版本同时支持智能合约在线编辑、编译、运行调试、部署
- linux下部署tomcat指定JDK版本编译并运行javaWEB应用
- PaddleDetection C++版本编译部署指南
- solc@0.6.3 web3@1.2.6 都是最新版本的,编译与部署示例以及和合约交互
- 在eclipse中部署openfire4.0.4(最新版本) 源码后编译
- CentOS 6.4编译安装和部署Zabbix 2.0版本监控(中文)
- eclipse中部署openfire4.0.4(最新版本) 源码后编译
- 关于CTPN论文实现cpu版本的编译问题
- Openfire3.10beta版源码在eclipse上部署编译
- 自由拼音输入法(freepy) 版本2.2编译方案
- 新电脑或新环境windows版本下jdk、myElipse等环境的部署
- Android tcsetattr() failed native method return null 把NDK版本换成14的编译就好了
- 关于x264 2011在VC2005及以上版本的编译
- 部署LNMP环境 - 编译安装PHP
- wince编译Debug版本错误解决