通过源码方式在 CentOS 7 上安装 Ceph firefly
来源:互联网 发布:他趣是什么软件 编辑:程序博客网 时间:2024/05/22 13:44
通常开源软件都会提供两种安装方式:tar包安装和RPM包安装,具体到Ceph,还提供了ceph-deploy的交互式安装方式,大大简化了Ceph的安装复杂度。在生产环境下,当然是建议使用ceph-deploy。然而对于软件开发人员来说,掌握一款开源软件最好的方式就是直接调试代码,下文告诉你如何在CentOS 7 安装Ceph调试环境。
安装前准备
下载tar包
首先从ceph官方下载源码包,我这里下载的是firefly 0.80.7
#> wget http://ceph.com/download/ceph-0.80.7.tar.gz
安装依赖
#> yum install -y make automake autoconf boost-devel fuse-devel gcc-c++ libtool libuuid-devel libblkid-devel keyutils-libs-devel cryptopp-devel fcgi-devel libcurl-devel expat-devel gperftools-devel libedit-devel libatomic_ops-devel snappy-devel leveldb-devel libaio-devel xfsprogs-devel git libudev-devel libcrypto++-dev libcrypto++-utils
安装
Ceph的安装很简单,只要下面几步就好:
#> tar -zxvf ceph-0.80.7.tar.gz && cd ceph-0.80.7 #> ./autogen.sh #> ./configure --prefix=/usr/local CFLAGS=-g #> make -j8#> make install
注意:
1. configure 命令后添加了CFLAGS=-g选项,这样用gdb或者cgdb调试的时候,才能找到符号
2. make 命令使用了多线程模式,以加快构建速度,通常线程个数设置为cpu核心数
配置Ceph
安装完Ceph软件包后,下面就是配置Ceph了,首先将sample.ceph.conf和sample.fetch.conf文件拷贝到/etc/ceph/目录下,并分别重命名为ceph.conf和fetch.conf,命令如下:
#> mkdir -p /etc/ceph#> cp /ceph-0.80.7/src/sample.ceph.conf /etc/ceph/ceph.conf#> cp /ceph-0.80.7/src/sample.fetch.conf /etc/ceph/fetch.conf
编辑配置文件fetch.conf
修改后的fetch.conf 文件内容如下:
#> cat fetch.conf## from a locally accessible filecp /usr/local/etc/ceph/ceph.conf $conf
其中路径/usr/local是./configure 配置命令中指定的安装前缀
编辑配置文件ceph.conf
修改后的ceph.conf文件内容如下:
#> cat ceph.conf【global】 log file = /var/log/ceph/$cluster-$name.log##################################################################【mon】 mon data = /data/mon$id【mon.0】 host = ceph-test mon addr = 192.168.20.159:6789###################################################################【osd】 osd data = /data/osd$id //osd的数据目录,需要先挂载 osd mkfs type = xfs //使用xfs文件系统 osd mkfs options xfs = -f osd mount options xfs = rw, noatime osd journal = /var/lib/ceph/osd/$name/journal【osd.0】 host = ceph-test devs = /dev/sdb1 //需要先格式化,并挂载到对应的 “osd data”目录【osd.1】 host = ceph-test devs = /dev/sdc1【osd.2】 host = ceph-test devs = /dev/sdd1
准备OSD及MON
#> mkcephfs -a -c /user/local/etc/ceph/ceph.conf --mkfs#> /usr/local/bin/ceph osd create //ceph.conf中配置了几个OSD,该命令就需要执行几次,本文中是3次
启动ceph集群
到这里一个简单的ceph调试集群就安装完成了,使用下面的命令启动集群:
#> /etc/init.d/cpeh -a start
踩过的那些坑
Q: umount: /data/osd0 : not mounted
这是osd数据目录没有挂载导致,根据错误提示和ceph.conf配置挂载数据目录就好,如: mkfs.xfs -f /dev/sdb1 && mount -t xfs /dev/sdb1 /data/osd0
Q: usr/local/bin/ceph-osd:error while loading shared libraries: libtcmalloc.so.4: cannot open shared object file: No such file or directory
找不到tcmalloc库文件,可能是没有安装,也可能是路径不对;如果是第一种情况,安装就是;对于第二种情况,需要将tcmalloc库路径添加到ldconfig中,如下:
#> echo /usr/local/lib > /etc/ld.so.conf.d/libtcmalloc.conf#> ldconfig
Q: /etc/init.d/ceph : no such file
#> cp ceph-0.80.7/src/init-ceph /etc/init.d/ceph
Q: /lib/lsb/init-functions : no such file or directory
#> yum install redhat-lsb
Q: ImportError: No module named rados
#> cp -rfdp /usr/local/lib/python2.7/site-packages/* /usr/lib64/python2.7/
Q: Error ENOENT: osd.0 does not exist. create it before updating the crush map
同“umount: /data/osd0 : not mounted”
- 通过源码方式在 CentOS 7 上安装 Ceph firefly
- 通过源码编译的方式在fedora上安装node
- 在 CentOS 7.1 上安装分布式存储系统 Ceph(转)
- 在 CentOS 7.1 上安装分布式存储系统 Ceph
- 在 centos上安装ceph与openstack集成
- 在CentOS/RHEL上源码安装Git
- 在centos 上源码安装Lnmp
- MySQL源码在centos上安装
- CentOS系统下通过源码方式安装wine
- CentOS上以源码的方式安装Redis笔记
- 在CentOS 5.5上安装Opennebula [源码安装]
- 在CentOS上源码安装MySQL+安装问题解决+安全优化
- 在centos上通过yum安装PHP+Nginx+Mysql+phpmyadmin
- 如何通过yum命令在CentOS上安装JDK
- Centos 6.4 安装Ceph
- centos 6.2 64位上安装ceph 0.47.2
- 在 CentOS 7.0 上源码安装 Xen 4.5
- 在 CentOS 7.0 上源码安装 Xen 4.5
- Android Studio导致的假死机问题的解决
- SpringMVC中使用Interceptor拦截器
- const的含义
- RunLoop
- Light OJ 1393 - Crazy Calendar(博弈)
- 通过源码方式在 CentOS 7 上安装 Ceph firefly
- Java学习(二)
- 第三次_布局
- 在windows,如何实现fork()函数
- SpringMVC拦截器(资源和权限管理)
- 汉诺塔——递归的应用
- LeetCode House Robber I II III
- Teleport Ultra/Teleport Pro的冗余代码批量清理方法
- 自定义View-4-重写onDraw