Ceph-Openstack学习笔记

1、Ceph是集对象存储,块存储,文件存储为一体的开源存储系统

2、Cluster map实现“无需查表,算算就好”的去中心设计思想

RADOS集群主要由两种节点组成。一种是为数众多的、负责完成数据存储和维护功能的OSD(Object Storage Device),另一种则是若干个负责完成系统状态检测和维护的monitor,OSD和monitor之间相互传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构。这种数据结构被称之为Cluster MAP。

大量的客户端程序通过与OSD或者monitor的交互获取cluster map,然后直接在本地进行计算,得出对象的存储位置后,便直接与对应的OSD通信,完成数据的各种操作。

cluster map的更新完全取决于系统的状态变化:OSD出现故障,或者RADOS规模扩大

3、透过librados API,应用不仅能够实现对数据对象的操作,还能够实现对RADOS系统的管理和配置:

Ceph提供基础库librados  API,对RDAOS系统进行检测盒策略优化等管理功能;RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和Ceph FS(Ceph File System),在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口

4、Ceph中file,object,PGs(Placement Group),OSD映射关系:

(1)文件到对象映射:一对多关系。objectid 由fileid和file被切割成object的份数确定(如file aa.txt的fileid是aa,切割成10份,oid则为aa1,aa2,.....aa10);

(2)对象到PG映射:多对一关系。pgid:objectid的静态hash与pg的数量m-1按位相与产生pgid

(3)PG到OSD映射:对对多关系。将pgid做CRUSH算法得到N个OSD,N个OSD共同负责存储和维护一个PG中的所有object,N根据可靠性需求进行配置(2或者3)。pg和OSD的映射关系由OSD扩容或者设备损坏/维护才会发生变化

5、写机制优化:

   两次写过程:一次为OSD讲数据写入内存缓冲区,便向客户端发出确认信息,客户端可以继续执行下一步操作;第二次,当数据从缓存写入磁盘,再向Client发送一次确认信息,Client根据需要可将缓存数据删除。

6、集群维护

  OSD上报状态信息,monitor负责整个Ceph集群中所有OSD状态的发现与记录,形成cluster map的master版本,并扩散至全体OSD以及client。OSD使用cluster map进行数据的维护,client使用cluster map进行数据寻址。

7、cluster map信息是以异步且lazy的形式扩散

   monitor并不会在每一次cluster map版本更新后都将新版本广播至全体OSD,而是在有OSD向自己上报信息时,将更新回复给对方。类似的,各个OSD也是在和其他OSD通信时,将更新发送给版本低于自己的对方。

更多精彩请参考:http://www.infoq.com/cn/news/2014/01/ceph-overview

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值