部署CEPH集群
一、概述
CEPH是一个开源的项目,它是软件定义的、统一的存储解决方案。CEPH是一个可大规模扩展、高性能并且无单点故障的分布式存储系统。从一开始它就运行在通用的商用的硬件上,具有高度的可伸缩性,容量可扩展至EB界别,甚至更大。
CEPH因为开放、可扩展、分布式的本质在存储领域名声鹊起。如今公有云、私有云、乃至混合云是提供大规模基础设施的主流方案。CEPH为企业提供了基础的性能,无限的扩展性,和灵活的存储产品 。
(1)CEPH的特性:
-
所有的组件必须可以扩展
-
不能存在单点故障点
-
解决方案必须是软件定义的、开源的并且可以适配
-
CEPH软件应该运行在通用商用的硬件之上
-
所有的组件必须可能自我管理
(2)CEPH基础架构:
Ceph Node : 构成Ceph集群的基础组件
Ceph Client : 对外提供多种方式使用Ceph存储的组件
(3)CEPH集群基础组件:
包含OSD、Manager、MSD、Monitor
- OSD(ceph-osd):object storage daemon,对象存储进程。ceph 管理物理硬盘时,引入了OSD概念,每一块盘都会针对的运行一个OSD进程,也就是ceph 集群通过管理 OSD 来管理物理硬盘。OSD 一般功能为:存储数据、维护数据副本、数据恢复、数据再平衡以及对ceph monitor组件提供相关监控信息。
- Manager(ceph-mgr):用于收集ceph集群状态、运行指标,比如存储利用率、当前性能指标和系统负载。对外提供 ceph dashboard(ceph ui)和 resetful api。Manager组件开启高可用时,至少2个。
- MDS(ceph-mds):Metadata server,元数据服务。为ceph 文件系统提供元数据服务(ceph 对象存储和块存储不需要MDS)。为 posix 文件系统用户提供性能良好的基础命令(ls,find等) 。
- Monitor(ceph-mon):维护集群的状态,包含monitor组件信息,manger 组件信息,osd组件信息,mds组件信息,crush 算法信息。还负责ceph集群的身份验证功能,client在连接ceph集群时通过此组件进行验证。Monitor组件开启高可用时,至少3个 。
(4)pool的概念
由于ceph集群面对许多的独立项目,因此ceph引入了ceph pool的概念用于划分不同的项目。 ceph pool 是对 ceph 对象的逻辑划分,并不是物理划分 。 ceph pool对于用户来说,就像mysql中的database 。pool是ceph存储数据时的逻辑分区,它起到namespace的作用。其他分布式存储系统,比如Mogilefs、Couchbase、Swift都有pool的概念,只是叫法不同。每个pool包含一定数量的PG,PG里的对象被映射到不同的OSD上,因此pool是分布到整个集群的 。