准备:
1.centos 7系统
2.ceph-10.2.3源码
3.ceph-deploy源码
https://github.com/ceph/ceph-deploy/tree/v1.5.36
4.依赖包
可以通过以下路径下载依赖包:https://pkgs.org/
1.安装依赖包
首先安装编译ceph所依赖的软件包,如下:(共20个)。可以通过for i in `ls`; do rpm -ivh $i ; done
cryptopp-5.6.2-10.el7.x86_64.rpm
leveldb-devel-1.12.0-11.el7.x86_64.rpm
python-remoto-0.0.25-1.el7.noarch.rpm
cryptopp-devel-5.6.2-10.el7.x86_64.rpm
libatomic_ops-devel-7.2d-7.el7.x86_64.rpm
python-tox-1.4.2-8.el7.noarch.rpm
Cython-0.19-3.el7.x86_64.rpm
python-2.7.5-34.el7.x86_64.rpm
snappy-devel-1.1.0-3.el7.x86_64.rpm
fcgi-2.4.0-25.el7.x86_64.rpm
python-execnet-1.2.0-4.el7.1.noarch.rpm
xfsprogs-devel-3.2.2-2.el7.x86_64.rpm
fcgi-devel-2.4.0-25.el7.x86_64.rpm
python-libs-2.7.5-34.el7.x86_64.rpm
yasm-1.2.0-4.el7.x86_64.rpm
gperftools-devel-2.4-7.el7.x86_64.rpm
python-pip-7.1.0-1.el7.noarch.rpm
yasm-devel-1.2.0-4.el7.x86_64.rpm
leveldb-1.12.0-11.el7.x86_64.rpm
python-py-1.4.30-2.el7.noarch.rpm
2.编译ceph
① 进入ceph-10.2.3源码目录,执行./autogen.sh.
② 执行./configure --prefix=/usr --sbindir=/sbin --localstatedir=/var--sysconfdir=/etc --with-debug
③ make –j32 install
完成ceph源码的编译。
3.Ceph-deploy工具的安装
将ceph-deploy源码拷贝到服务器上任意目录下,执python setup.py install,完成ceph-deploy工具的安装。
建议使用新版本,适用版本是1.5.36
源码安装:
https://github.com/ceph/ceph-deploy/tree/v1.5.36
python setup.py install
rpm下载路径:
http://download.ceph.com/rpm/el7/noarch/ceph-deploy-1.5.36-0.noarch.rpm
4.部署ceph
(1)前期准备工作
①.修改主机名
vim /etc/hosts 添加 192.168.1.111 host111
vim /etc/sysconfig/network 添加 NETWORKING =yes
HOSTNAME=host111
(以上配置重启才能生效,可以在终端执行hostname=host111,然后关闭终端,再重新打开即可)
生效后终端显示如下:
[root@host111 ceph_deploy]#
②.关闭防火墙
sudo systemctlstop firewalld.service
sudo systemctldisable firewalld.service
③.创建ceph用户
由于centos7.2的特性以及ceph 版本的迭代,systemctl及udev规则都是指定的ceph用户和ceph用户组,原来0.87.1使用的root用户,这里需要使用ceph用户,并提升ceph用户权限至root用户
adduser -d /home/ceph -m ceph
passwd ceph 添加密码
vim /etc/passwd提升权限,修改ID值与root用户ID值0相同即可!
④.拷贝脚本
cp ceph-10.2.3//src/init-ceph /etc/init.d/ceph && chmod 777 /etc/init.d/ceph
cp ceph-10.2.3/src/ceph-osd-prestart.sh /usr/lib/ceph/ &&chmod 755 /usr/lib/ceph/ceph-osd-prestart.sh
cp -rfpd ceph-10.2.3/udev/* /lib/udev/rules.d/
⑤.添加库路径
vim /etc/ld.so.conf添加上/usr/lib,保存退出后,执行命令ldconfig让其生效
(2)正式开始部署
①创建monitor
ceph-deploy new $HOST_NAME(主机名) --cluster-network 192.168.1.0/24 --public-network 192.168.1.0/24
执行完上述步骤后,会在当前目录下生成三个文件:ceph.conf ceph.log ceph.mon,keyring
ceph-deploy --overwrite-conf mon create-initial
执行完上述步骤后,此时通过命令ceph -s可以看到集群信息
②格式化磁盘
for i in $HOST_NAME
do
for j in `ls /dev/sd* |grep -v -w sda|grep -v [0-9]$`
do
ceph-deploy disk zap $i:$j
done
done
③prepare磁盘
for i in $HOST_NAME
do
osd_num=0
for j in `ls /dev/sd* |grep -v -w sda|grep -v [0-9]$`
do
test -d /var/lib/ceph/osd/ceph-$osd_num || mkdir -p /var/lib/ceph/osd/ceph-$osd_num
ceph-deploy --overwrite-conf osd prepare ${i}:${j}
let osd_num+=1;
done
done
④对osd进行激活
#active
for i in $HOST_NAME
do
for j in `ls /dev/sd* |grep -v -w sda|grep -v [0-9]$`
do
ceph-deploy osd activate ${i}:${j}1
done
done
⑤创建mds
一般创建两个,一主一备。
#create mds
for i in 1 2
do
test -d /var/lib/ceph/mds/ceph-$i ||mkdir -p /var/lib/ceph/mds/ceph-$i
ceph-deploy mds create $HOST_NAME:$i
done
⑥创建元数据池
ceph osd pool create mpool 128 128
ceph osd pool set mpool size 1
其中mpool是meta pool的名字 ,128 128 分别是pg数和pg组的数,一般为大于 (该池子中osd的个数*100 /副本数) 的最小2次幂
⑦创建数据池
分为两种形式,一种是纠删池,另一种是副本池(与元数据池一样)
纠删池:
ceph osd erasure-code-profile set isa plugin=isa k=4 m=2 ruleset-failure-domain=osd
ceph osd pool create $DATA_POOL 1024 1024 erasure isa
副本池:
ceph osd pool create dpool 2048 2048
ceph osd pool set dpool size 3
⑧创建文件系统
ceph fs new inspurfs mpool dpool