ceph J 版本編譯及部署

本文適用於具備必定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

ceph J 版本編譯及部署

ceph J 版本編譯及部署

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 J 版本編譯及部署


低版本的ceph-deploy不支持systemctl,更換爲 ceph-deploy-1.5.38-0.noarch.rpm版本socket

ceph J 版本編譯及部署


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

ceph J 版本編譯及部署

初始化成功後:ui

ceph J 版本編譯及部署


主機名和/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不正確致使。

ceph J 版本編譯及部署

b. osd prepare 失敗

須要安裝sgdisk
yum install gdisk

ceph J 版本編譯及部署

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 版本編譯及部署

相關文章
相關標籤/搜索