本文适用于具备必定ceph源码编译基础的人阅读,本文主要从操做过程当中遇到问题及解决角度出发;node
1、安装必要的安装包
默认的centos7 版本对于ceph的源码编译没有对应的rpm包,须要额外下载。python
yum install snappy-devel leveldb leveldb-devel gperftools-devel libatomic_ops-devel xfsprogs-devel yasm yasm-devel fcgi fcgi-devel Cython libblkid-devel libudev-devel expat-devel openldap-devel python-devel virtuoso-opensource* python-virtualenv openssl-devel cryptopp cryptopp-devel cryptopp-progs fuse-devel libaio-devel boost boost-devel gdisk Cython -y
以上为本身环境上须要的依赖包,可能还须要其余的,在编译过程当中遇到问题本身能够再根据状况安装必要的rpm 包。vim
2、编译中问题centos
生成makefile文件: ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-debug make -j 24 make install tips: make 根据Makefile编译源代码,链接,生成目标文件,可执行文件。 make clean 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。 make install 将编译成功的可执行文件安装到系统目录中,通常为/usr/local/bin目录。 make distclean相似make clean,但同时也将configure生成的文件所有删除掉,包括Makefile。
a. 步骤“1、安装必要的安装包”中大部分的rpm 安装问题;
b. pip命令没法找到,安装pipbash
yum install python-pip /bin/sh: /tmp/ceph-disk-virtualenv/bin/pip: 没有那个文件或目录 make[3]: *** [/tmp/ceph-disk-virtualenv] 错误 127 修改pip文件的头,由#!/usr/bin/python改成#!/usr/bin/python2.7
3、部署中问题app
a. mon 初始化失败:python2.7
[ERROR ] admin_socket: exception getting command descriptions: [Errno 2] No such file or directory 解决: case1: 修改ceph.conf配置文件(此IP段根据我的状况设定),添加public_network = 192.168.1.0/24 或者 ceph-deploy new 时候指定: ceph-deploy new ceph1 ceph2 ceph3 --public-network=192.168.111.0/24 --cluster-network=192.168.111.0/24 case2: 添加ceph用户,并修改权限 adduser -d /home/ceph/ -m ceph vim /etc/passwd //改成0 ceph:x:0:0::/home/ceph/:/bin/bash
低版本的ceph-deploy不支持systemctl,更换为 ceph-deploy-1.5.38-0.noarch.rpm版本socket
gatherkeys 问题ide
[root@node1 ~]# systemctl stop firewalld [root@node1 ~]# systemctl disable firewalld 这里cephx保留,不改成none,从新部署一遍便可解决gatherkeys 问题 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx 或者: ceph-deploy gatherkeys ceph
初始化成功后:ui
主机名和/etc/hosts不符,或者冲突问题。
[ceph3][INFO ] Running command: ceph --cluster=ceph --admin-daemon /var/run/ceph/ceph-mon.ceph3.asok mon_status [ceph_deploy.mon][WARNIN] mon.ceph3 monitor is not yet in quorum, tries left: 1 解决:是由于/etc/hosts 中主机名hostname和配置的不符合,或者是该文件中的ip不正确致使。
b. osd prepare 失败
须要安装sgdisk yum install gdisk
c. osd activate 失败
ceph-deploy osd activate ceph:/dev/vdb1 ceph:/dev/vdc1 ceph:/dev/vdd1 缺乏ceph-osd-prestart.sh文件: 解决: [root@ceph ceph-10.2.5]# chmod +x src/ceph-osd-prestart.sh [root@ceph ceph-10.2.5]# scp -rp src/ceph-osd-prestart.sh /usr/lib/ceph/