Ceph对象存储(一)

一、Ceph RADOS组成

1、OSDs,负责存储所有的Objects数据;

2、Monitor,保存集群中所有OSDs状态信息,以及负责管理Cluster Map,其中Cluster Map是整个RADOS系统的关键数据结构,管理集群中的所有成员、关系、属性等信息以及数据的分发。多Monitor时,使用paxos算法来选择leader,避免单点故障;

二、RADOS 系统逻辑结构

三、RADOS设计思想

基于计算的对象寻址机制,流程图如下:

寻址流程解读:(映射、映射、再映射......)

(1)FIle---->object映射:将用户态的file,映射成RADOS能够处理的object,实质以统一大小进行切块,并分配id,便于管理以及方便对多个object并行处理;

(2)Object--->PG映射:利用静态哈希函数得到objectID的伪随机值,再“位与”mask上使得每个object获取属于自己的PG;

(3)PG--->OSD映射:将pg映射到数据的shij实际存储单元OSD,RADOS利用CRUSH算法,由pgid得到一组n个OSD;再由OSD daemon执行映射到本地的object在本地系统中存储、访问、云数据维护等操作,

特别注意:该次映射功能性特别强;直接受到cluster map以及rule的影响,只有在cluster map和存储策略均不发生改变时,PG和OSD映射关系才固定的;

计算PG的ID示例:

Client输入pool ID和对象ID(如  pool=‘livepool’,object-id=‘join’)

CRUSH获取对象IDbibi并对其hash

CRUSH计算OSD个数hash取模获得PG的ID(如0 * 58)

CRUSH获取已命名pool的ID(如livepool=4)

CRUSH预先考虑到pool ID相同的PG ID(如4.0 * 58)

数据操作流程之写入流程:

数据操作流程之读流程:

四、CRUSH

(1)一致性hash

(2)CRUSH核心:PG and Crushmap

POOL概述:

存储对象的逻辑分区:所有权和访问对象

                                     对象副本的数目

                                     pg的数目

                                     crush rule set的使用

pg、pool、osd关系图

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章