Centos7下Ceph的多机部署

本文详细介绍了在Centos7系统下如何使用docker搭建Ceph集群,包括Ceph的基本概念如OSD、Monitor和MDS,以及集群搭建的步骤,如配置MON节点、MGR节点和RGW节点,确保所有组件健康运行。

Ceph部署和基本使用

1.Ceph简介

  不管你是想为云平台提供Ceph 对象存储和/或 Ceph 块设备,还是想部署一个 Ceph 文件系统或者把 Ceph 作为他用,所有 Ceph 存储集群的部署都始于部署一个个 Ceph 节点、网络和 Ceph 存储集群。 Ceph 存储集群至少需要一个 Ceph Monitor 和两个 OSD 守护进程。而运行 Ceph 文件系统客户端时,则必须要有元数据服务器( Metadata Server )。

无描述

  • Ceph OSDs: Ceph OSD守护进程的功能的功能是存储数据,处理数据的复制,恢复,回填,再均衡。并通过检查其他OSD守护进程的心跳来向Ceph Monitors提供一些监控信息。当Ceph存储集群设定为有两个副本时,至少需要2个OSD守护进程,集群才能达到active+cleanDe zhuangtai (Ceph默认有三个副本,但你可以调整副本数量)。
  • Monitors: Ceph Monitors维护着展示集群状态的各种图标,包括监视器图,OSD图,归置组图(PG)图,和CRUSH图。Ceph保存着发生在Monitor,OSD和PG上的每一个状态变更历史信息(称为epoch)。
  • MDSs: Ceph元数据服务器为Ceph文件系统存储元数据(也就是说,Ceph块设备和Ceph对象存储设备不适用MDS)。元数据服务器使得POSIX(操作系统移植接口协议)文件系统的用户们,可以在不对Ceph存储集群造成负担的前提前,执行诸如1s,find等基本没命令。




    Cpeh把客户端数据保存为存储池内的对象,通过使用CRUSH算法,Ceph可以计算出哪个归置组(PG)应该持有指定的对象(Object),然后进一步计算出哪个OSD守护进程持有该归置组。CRUSH算法使得Ceph存储集群能够动态的伸缩、再均衡和修复。

2.使用docker进行ceph集群搭建

2.1准备工作

  • 我采用的系统为Centos7
    使用三台虚拟机来搭建集群,其结构如下表所示:
Ip地址包含节点存储空间
192.168.198.246(master)MON,OSD,MGR,RGW20G
192.168.198.244MON,OSD,MGR20G
192.168.198.245MON,OSD,MGR20G
* 提前步骤: 1.三台虚拟机免密登录 2.ntpd配置,使三台虚拟机可以时间同步
  • 选择的image版本为:
    在这里插入图片描述
这里版本选择的坑踩了很久,采用latest版本就算按照docker hub上的官方页面配置https://registry.hub.docker.com/r/ceph/daemon,也会报一些奇迹古怪的错误,在ceph-container项目的github主页上发现给出了一些稳定的image版本,从中选择了一个版本:ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7

2.2开始配置

1.先配置主节点MON节点,我的配置如下:

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

2.创建完成后,将主节点下MON的配置文件发送至另外两个节点。

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

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

3.在另外两个节点拉起MON节点,带完成后,在任意使用dcoker exec mon ceph -s查看集群状态,此时应该会发现三个MON节点在集群中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FQfQUo7b-1605435491605)(/static/images/e6dda6ddbcdb016d17841e98988062f80ee2c046.png)]

4.配置MGR节点,这一步比较简单,只需要在每个节点运行以下命令:

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

完成后,此时的集群状态应为:
  在这里插入图片描述

5.配置osd节点,我这里选择的是将一块磁盘作为存储介质,添加一块20G的空白磁盘运行命令```mkfs.xfs /dev/sdb -f 之后就可以运行以下命令:
docker run -d --net=host \
--pid=host \
--name=osd \
--privileged=true \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/ceph:/etc/ceph \
-v /var/lib/ceph/:/var/lib/ceph/ \
-v /dev/:/dev/ \
-v /run/udev/:/run/udev/ \
-e OSD_DEVICE=/dev/sdb \
ceph/daemon:v3.0.5-stable-3.0-luminous-centos-7 osd

这里也有一个坑,如果localtime不进行映射,那么container可能出现时间不同步,如果某台虚拟机关机,重启后可能集群就会报错**
每个几点的磁盘信息可用fdisk -l查询,其结果应该有:

在这里插入图片描述

此时的集群service应该是:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Qflzynme-1605435766751)(/static/images/1bd53e67fb97e67116483a834ee3ec8d166b4a31.png)]

6.添加rgw节点

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

最终集群状态应为:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KcqaffCc-1605435491611)(/static/images/7c2946daf7a77ac7757a2d8eada8f9afb9609b3c.png)]

有两个重点,第一个是health情况应该为HEALTH_OK。第二个是所有的pgs都应该是active+clean


7.启用dashboard 在任意节点使用docker exec mgr module enable dashboard,查看日志可以看到其服务监听在7000端口,访问7000端口可以得到:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JoJHI4zI-1605435491612)(/static/images/0b9b8ed04cac6e8495c1aa6a7daa2bf4c85c3aa9.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值