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,RGW | 20G |
| 192.168.198.244 | MON,OSD,MGR | 20G |
| 192.168.198.245 | MON,OSD,MGR | 20G |
- 选择的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
完成后,此时的集群状态应为:

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)]](/https://i-blog.csdnimg.cn/blog_migrate/7ca674a659f2854f2bbffa5945f467b1.png#pic_center)
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)]](/https://i-blog.csdnimg.cn/blog_migrate/7a021f255c4d5bbd729481358794524e.png#pic_center)
有两个重点,第一个是health情况应该为HEALTH_OK。第二个是所有的pgs都应该是active+clean
7.启用dashboard 在任意节点使用docker exec mgr module enable dashboard,查看日志可以看到其服务监听在7000端口,访问7000端口可以得到:
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JoJHI4zI-1605435491612)(/static/images/0b9b8ed04cac6e8495c1aa6a7daa2bf4c85c3aa9.png)]](/https://i-blog.csdnimg.cn/blog_migrate/e95776c977dd82987ccd4210001c8147.png#pic_center)
本文详细介绍了在Centos7系统下如何使用docker搭建Ceph集群,包括Ceph的基本概念如OSD、Monitor和MDS,以及集群搭建的步骤,如配置MON节点、MGR节点和RGW节点,确保所有组件健康运行。

2万+

被折叠的 条评论
为什么被折叠?



