ceph容器化部署

作者:【吴业亮】

博客:https://wuyeliang.blog.csdn.net/

1、节点规划

192.168.8.11 node1    admin(启动mon、osd、mgr)
192.168.8.12 node2    node2(启动mon、osd)
192.168.8.13 node3    node3(启动mon、osd)

2、配置/etc/hosts(各个节点)

192.168.8.11 node1
192.168.8.12 node2
192.168.8.13 node3

3、关闭防火墙和selinux(各个节点)

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

禁用 SELINUX:修改配置文件(重启生效)+ 手动设定(立即生效)

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

4、配置互信(各个节点)

ssh-keygen        
ssh-copy-id node1
ssh-copy-id node2
ssh-copy-id node3

3、镜像下载(各个节点)

docker pull ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7-x86_64

4、首先启动主节点mon(node1节点)

docker run -d --net=host --name=mon -v /etc/ceph:/etc/ceph -v /var/lib/ceph:/var/lib/ceph -e MON_IP=192.168.8.11 -e CEPH_PUBLIC_NETWORK=192.168.8.0/24 ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7-x86_64  mon

5、拷贝配置文件和系统文件到其他两个节点
这一步非常重要。如果没有拷贝admin节点安装mon后生产的配置文件和系统文件到其他节点,就开始在其他节点启动mon则三个节点会单独启动3个ceph集群,而不是一个集群的三个mon节点(因为已设置过节点名称和无密码访问,故scp可直接使用)

若直接使用非xfs文件系统的硬盘,需要在配置文件中加以下配置:

vim /etc/ceph/ceph.conf
osd max object name len = 256 
osd max object namespace len = 64

然后将配置文件推送到其他各节点

scp -r /etc/ceph node2:/etc/
scp -r /etc/ceph node3:/etc/

scp -r /var/lib/ceph node2:/var/lib/
scp -r /var/lib/ceph node3:/var/lib/

6、再用4中的命令启动其他节点mon,对应IP做相应修改

docker run -d --net=host --name=mon -v /etc/ceph:/etc/ceph -v /var/lib/ceph:/var/lib/ceph -e MON_IP=192.168.8.12 -e CEPH_PUBLIC_NETWORK=192.168.8.0/24 ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7-x86_64  mon

docker run -d --net=host --name=mon -v /etc/ceph:/etc/ceph -v /var/lib/ceph:/var/lib/ceph -e MON_IP=192.168.8.13 -e CEPH_PUBLIC_NETWORK=192.168.8.0/24 ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7-x86_64  mon

7、挂载osd

mkfs.xfs /dev/sdb
mount /dev/sdb  /osd0

8、启动OSD服务

docker run -d --net=host --name=osd1 -v /etc/ceph:/etc/ceph -v /var/lib/ceph:/var/lib/ceph -v /dev:/dev -v /osd0:/var/lib/ceph/osd --privileged=true ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7-x86_64 osd_directory        (osd1做对应修改)

9、其他OSD参照步骤7和8

……

10、在node1启动mgr:

docker run -d --net=host \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7-x86_64 mgr

11、在ceph中创建一个pool

docker exec mon ceph osd pool create rbd 64

12、配置crushmap,根据osd数目,0.15做相应调整,整体之和不大于1

docker exec mon ceph osd crush add osd.0 0.15 host=admin
docker exec mon ceph osd crush add osd.1 0.15 host=admin

检查osd tree

docker exec mon ceph osd tree

13、更新crushmap使得节点都归属于root default

docker exec mon ceph osd crush move node0 root=default
docker exec mon ceph osd crush move node1 root=default

14、检查ceph运行情况

docker exec mon ceph -s

15、测试ceph集群
测试ceph集群在块存储下镜像的创建和文件的上传,如果成功才能说明ceph集群安装成功

docker exec mon rbd create rbd/test-image --size 100M
docker exec mon rbd info rbd/test-image
docker exec mon rados -p rbd ls

参考:
https://www.twblogs.net/a/5c1f4166bd9eee16b3da855f/zh-cn/

发布了235 篇原创文章 · 获赞 120 · 访问量 81万+

猜你喜欢

转载自blog.csdn.net/wylfengyujiancheng/article/details/90576421