ceph luminous版本编译及部署

  |   0浏览

一、载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  gperfTips:这里安装python3-devel的时候会冲突,需要先卸载python-devel,等待安装python3-devel后,再安装python-devel即可;rpm -e python-develyum install python-devel

1. pthread_create 问题该问题定位很久.../home/ceph-luminous/build/CMakeFiles/CMakeTmp/CheckSymbolExists.c:8:对‘pthread_create’未定义的引用ceph luminous版本编译及部署

解决:yum install python-sphinx有博客说可以通过升级cmake的版本可以解决,但是升级后问题依然存在。ref:https://tracker.ceph.com/issues/192942. nss相关ceph luminous版本编译及部署解决:yum install nss-devel3.LTTngUST相关ceph luminous版本编译及部署

解决:yum install lttng-ust-devel4.babeltrace相关ceph luminous版本编译及部署解决: yum install babeltraceyum install libbabeltrace-devel

5.libibverbs相关ceph luminous版本编译及部署解决:yum install libibverbs

6.liblua相关该问题也定位很久。ceph luminous版本编译及部署解决:忘记怎么解决了,似乎是用do_cmake.sh 脚本中,执行git submodule update --init --recursive,安装相关源码包?(因为之前为了方便,我把这行注释掉了)

已经编译好的环境上相关依赖包?[root@ceph1 ceph-luminous]# rpm -qa | grep lualua-5.1.4-15.el7.x86_64lua-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问题

ceph luminous版本编译及部署

解决:yum install yum install python3-devel python3-devel

tips:先卸载rpm -e python-devel,再安装python3-devel,再安装python-devel8.Cython问题ceph luminous版本编译及部署

解决:

yum install python-Cython,其实安装了:sclo-cassandra3-runtime-1.0-17.el7.x86_64         sclo-cassandra3-python2-Cython-0.27.1-2.el7.x86_64yum 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问题:ceph luminous版本编译及部署解决:yum install gperftools gperftools-devel (69个依赖包)yum install gperf10.sclo问题ceph luminous版本编译及部署解决: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问题ceph luminous版本编译及部署解决:yum install python-prettytableceph luminous版本编译及部署

六、开始部署

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.com31 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/24ceph-deploy --overwrite-conf mon create-initial

问题一:报错:Failed to execute command: systemctl enable ceph.target(该问题处理较长时间)ceph luminous版本编译及部署设置setenforce 0 后ceph luminous版本编译及部署

主要是源码安装后, /usr/lib/systemd/system/下没有生成对于得target和service文件解决:

[root@ceph2 ceph-luminous]# pwd/home/ceph-luminouscp systemd/ceph*.target  /usr/lib/systemd/system/cp systemd/ceph*.service  /usr/lib/systemd/system/cp systemd/ceph  /usr/lib/systemd/system/

问题二:没有ceph用户问题ceph luminous版本编译及部署解决:

添加ceph用户,并修改权限adduser -d /home/easystack/ -m ceph vim /etc/passwd //改为0

ceph luminous版本编译及部署

问题三:这个是因为/etc/hosts 的名字和hostname不一致导致(或者冲突导致)。ceph luminous版本编译及部署

修改正确后:ceph luminous版本编译及部署

执行ceph-deploy admin ceph1 ceph2 ceph3 把key推送到相应的位置(主要是ceph.client.admin.keyring要放到 /etc/ceph/ 下)至此,mon初始化成功

ceph luminous版本编译及部署

4、mgr部署no active mgr 这个 manager 是在 J 版本以后加入的,此时需要开启这个功能模块:ceph luminous版本编译及部署解决:手动创建mgr目录即可:mkdir -p /var/lib/ceph/mgr

重新部署:

ceph luminous版本编译及部署

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为例):ceph luminous版本编译及部署

部署成功后,出现“ HEALTH_WARN application not enabled on 1 pool(s)”,refs:https://ceph.io/community/new-luminous-pool-tags/

ceph luminous版本编译及部署

大概是给创建的存储池做标记使用: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、结束最终部署完成,效果图:

ceph luminous版本编译及部署

部署脚本:deploy_luminous.sh

参考链接:https://www.cnblogs.com/powerrailgun/p/12133107.html https://www.cnblogs.com/linuxk/p/9419423.htmlhttps://www.cnblogs.com/hukey/p/11975109.html

原文地址:https://blog.51cto.com/wendashuai/2506536