二 Ceph存储工作原理及实现

认识Ceph

  ceph是一个能提供文件存储,快存储和对象存储的分布式存储系统。它提供了一个可无限伸缩的Ceph存储集群

  ceph构架

  参考官网:https://ceph.io/

  中文官网:http://docs.ceph.org.cn/

   ceph架构

  中文图示

   RADOS:Ceph的高可靠,高可拓展,高性能,高自动化都是由这一层来提供的, 用户数据的存储最终也都是通过这一层来进行存储的。

    可以说RADOS就是ceph底层原生的数据引擎, 但实际应用时却不直接使用它,而是分为如下4种方式来使用

  LIBRADOS是一个库, 它允许应用程序通过访问该库来与RADOS系统进行交互,支持多种编程语言。如Python,C,C++等.  简单来说,就是给开发人员使用的接口。
  CEPH FS通过Linux内核客户端和FUSE来提供文件系统。(文件存储)
  RBD通过Linux内核客户端和QEMU/KVM驱动来提供一个分布式的块设备。(块存储)
  RADOSGW是一套基于当前流行的RESTFUL协议的网关,并且兼容S3和Swift。(对象存储)

  

  ceph存储数据方法(IO算法)

  1,File用户需要读写的文件。File->Object映射

  a.ino(File的元数据,File的唯一id)

  b.ono(File切分产生的某个object序号,默认以4M分一个快大小)

  c.oid(object id:ino+ono)

  2,Object是RADOS需要的对象,Ceph指定一个静态hash函数计算oid的值,将oid映射成一个近似均匀分布的伪随机值,然后和mask按位相于,得到pgid.Object->PG映射

  a.hash(oid)& mask->pgid

  b.mask=PG总数m(m为2的整数幂)-1

  3.PG(Placement Group)用途是对object的存储进行组织和位置映射(类似于redis cluter里面的slot概念)一个PG里面会有很多object。采用CRUSH算法将pgid代入其中,然后得到一组OSD。PG-》OSD映射

  a.CRUSH

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值