Ceph分布式存储系统(5)

(2)   扩展性:Ceph集群中可以分布式的部署多个ceph-mds进程实例,他们共同完成Ceph文件系统相关的工作,并且能够动态的实现负载均衡。

3.3. 超大规模智能守护(OSD

在许多传统的集群架构中,往往设立一个中心节点来掌控整个集群的全部元数据信息,这样不仅会因为单点问题对系统的高可用性造成影响,而且中心节点的性能也会成为系统横向扩展的瓶颈。在Ceph就没有这样的瓶颈,在Ceph中,每个Ceph的客户端和OSD节点都保存有整个系统相关的拓扑信息。这样,客户端就能直接和存储数据的OSD节点进行交互,OSD节点相互之间也能直接进行交互。Ceph中去中心节点的架构能够带来以下一些好处:

(1)   OSD节点能直接为客户端提供服务:我们知道,任何网络设备都有一个并发连接的上限。中心节点结构的分布式集群中,中心节点往往是整个系统性能的瓶颈。Ceph中客户端能与存放数据的OSD节点直接通信,而不用经过任何的中心节点,这样整个系统不仅没有单点问题,而且性能就得到了很大的提升。

(2)   OSD节点参与系统的维护:通常一个OSD节点加入到Ceph存储集群中,要向集群中的Monitor节点汇报自己的状态。如果OSD节点宕机,则需要系统能自动检测出来。这通常是由Monitor节点周期性的对各个OSD节点中的相关服务进行检测来实现。如果Monitor节点检测的周期间隔太短会影响系统的性能;而如果检测周期间隔太长,则会使整个系统有较长的时间处于不一致的状态。Ceph中允许OSD节点对相邻的OSD节点的状态进行检测,如果相邻的节点有状态变化,OSD节点则会主动向整个集群进行汇报,同时集群中相关的Cluster Map得到更新。这样大大减轻了Monitor节点的压力。系统的扩展性和高可用性得到很大的提升。

(3)   OSD节点定期的数据清洁:数据清洁是指,一个OSD节点中存储的对象与另外一个存储该对象副本的OSD节点之间进行对象的元数据对比,依此来找出文件系统相关的错误。CephOSD节点能够自动的进行数据清洁(通常是一天一次)。除了普通的数据清洁,CephOSD节点还可以通过对相同对象不同副本中的数据进行按位(bit-for-bit)的深度数据清洁(通常一周一次)。这种数据清洁机制对系统的数据一致性有很大的帮助。

(4)   数据智能备份:和Ceph客户端一样,Ceph OSD节点也使用CRUSH算法。但是和客户端使用CRUSH算法来查找数据不同,Ceph OSD节点使用该算法来计算对象的备份副本应该被存储在哪个位置。数据智能备份的大致流程如图所示:

wKiom1cGM-_RJ1yPAAAven1_Nk8653.png

3.4. 智能负载均衡

当在Ceph集群中增加或减少OSD设备时,集群会执行负载再均衡的过程(rebalancing)。首先,集群地图(Cluster Map)会得到更新,PG ID以及OSD集群相关的信息都会得到更新。如下图,简单展示了增加OSD存储设备时数据再均衡的大致过程。其中,一些PG从其原来所处的OSD存储设备迁移到了新的OSD存储设备。在数据再均衡过程中,CRUSH保持稳定,有许多的PG还是依然保留其原有的配置。并且由于进行了数据的迁出,原有OSD设备中的剩余容量也会相应的有所增加。整个数据再均衡过程也是利用的CRUSH算法,数据依然是均衡的分布在新的OSD集群中。

wKioL1cGNK3Cpcc2AAA2DX7ve98454.jpg

 

四、小结

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8d8809a81e4821d92d8b9e8e1cf0c2e4.html