ceph J 版本编译及部署
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ceph J 版本编译及部署相关的知识,希望对你有一定的参考价值。
本文适用于具有一定ceph源码编译基础的人阅读,本文主要从操作过程中遇到问题及解决角度出发;
一、安装必要的安装包
默认的centos7 版本对于ceph的源码编译没有对应的rpm包,需要额外下载。
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 包。
二、编译中问题
生成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. 步骤“一、安装必要的安装包”中大部分的rpm 安装问题;
b. pip命令无法找到,安装pip
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
三、部署中问题
a. mon 初始化失败:
[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版本
gatherkeys 问题
[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
初始化成功后:
主机名和/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/
以上是关于ceph J 版本编译及部署的主要内容,如果未能解决你的问题,请参考以下文章