使用ceph-deploy在虚拟机上搭建一个单副本ceph测试环境

使用ceph-deploy在虚拟机上搭建一个单副本的ceph测试环

 我安装的版本是ceph 10.2.5,J版及以上可以使用该方法。安装步骤如下:

- 配置源
- 关闭防火墙
- 安装ceph和ceph-deploy
- 使用ceph-deploy部署
- 添加osd
- J版自动化脚本
- L版自动化脚本
- 在没有分区的时候dd会导致创建osd失败

1、配置源

在虚拟机上配置自己需要的源,我用的是自己的源。

vim /etc/yum.repos.d/ceph.repo
[test-repo]
name=test
baseurl=http://192.168.122.10/test
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
enabled=1

2、关闭防火墙

iptables -F
getenforce
setenforce 0

3、安装ceph和ceph-deploy

yum install ceph-{版本号}
yum install ceph-deploy-{版本号}

4、使用ceph-deploy部署

   ceph-deploy new node-1
   ceph-deploy mon create-initial

4、添加osd

测试环境我直接用的一块裸盘,如果用cache可能需要激活osd。可以参考官网的方法。

 ceph-deploy --overwrite-conf --ceph-conf /etc/ceph/ceph.conf osd prepare node-1:/dev/vdb

5、安装中出现的问题

缺少lsb的包,直接yum 安装

6、J版自动化脚本

自动化脚本只适用我的简单测试环境。

node=$1

#清除以前安装的ceph

systemctl stop ceph-osd\@0
systemctl stop ceph-osd\@1

systemctl disable ceph-osd\@0
systemctl disable ceph-osd\@1

systemctl stop ceph-mon\@${node}
systemctl disable ceph-mon\@${node}

yum -y erase ceph
yum -y erase ceph-common
yum -y erase ceph-deploy

umount /dev/vdb1
umount /dev/vdc1

dd if=/dev/zero of=/dev/vdb1 bs=8k count=1 oflag=dsync
dd if=/dev/zero of=/dev/vdb2 bs=8k count=1 oflag=dsync
dd if=/dev/zero of=/dev/vdc1 bs=8k count=1 oflag=dsync
dd if=/dev/zero of=/dev/vdc2 bs=8k count=1 oflag=dsync

sync

parted /dev/vdb rm 1
parted /dev/vdb rm 2
parted /dev/vdc rm 1
parted /dev/vdc rm 2

rm -rf /etc/ceph/*
rm -rf /var/lib/ceph/*/*
rm -rf /var/run/ceph/*
rm -rf /var/log/ceph/*

#安装新的

iptables -F
getenforce
setenforce 0
yum -y install ceph-10.2.5
yum -y install ceph-deploy
ceph-deploy new $node
ceph-deploy mon create-initial

ceph-deploy --overwrite-conf --ceph-conf /etc/ceph/ceph.conf osd prepare $node:/dev/vdb
ceph-deploy --overwrite-conf --ceph-conf /etc/ceph/ceph.conf osd prepare $node:/dev/vdc
ceph osd pool set rbd size 1

在没有分区的时候dd会导致创建osd失败。因为没有分区时,dd在/dev/目录下创建了两个vdb和vbc两个目录,创建osd时失败报错。

ls -alh /dev/vd*
rm -rf /dev/vdb1
rm -rf /dev/vdb2
rm -rf /dev/vdc1
rm -rf /dev/vdc2

7、L版自动化脚本

node=$1

#清除以前安装的ceph

systemctl stop ceph-osd\@0
systemctl stop ceph-osd\@1

systemctl disable ceph-osd\@0
systemctl disable ceph-osd\@1

systemctl stop ceph-mon\@${node}
systemctl disable ceph-mon\@${node}

yum -y erase ceph
yum -y erase ceph-common
yum -y erase ceph-deploy

umount /dev/vdb1
umount /dev/vdc1

dd if=/dev/zero of=/dev/vdb1 bs=8k count=1 oflag=dsync
dd if=/dev/zero of=/dev/vdb2 bs=8k count=1 oflag=dsync
dd if=/dev/zero of=/dev/vdc1 bs=8k count=1 oflag=dsync
dd if=/dev/zero of=/dev/vdc2 bs=8k count=1 oflag=dsync

sync

parted /dev/vdb rm 1
parted /dev/vdb rm 2
parted /dev/vdc rm 1
parted /dev/vdc rm 2

rm -rf /etc/ceph/*
rm -rf /var/lib/ceph/*/*
rm -rf /var/run/ceph/*
rm -rf /var/log/ceph/*

#安装新的

iptables -F
getenforce
setenforce 0
yum -y install ceph-12.2.2
yum -y install ceph-deploy-1.5.38
cd /etc/ceph/
pwd
ceph-deploy new $node
ceph-deploy mon create-initial
ceph-deploy mgr create node-1

ceph-deploy --overwrite-conf --ceph-conf /etc/ceph/ceph.conf osd prepare $node:/dev/vdb
ceph-deploy --overwrite-conf --ceph-conf /etc/ceph/ceph.conf osd prepare $node:/dev/vdc

你可能感兴趣的:(ceph,ceph)