ceph基础

一:ceph起源

    Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。但是在2014年OpenStack火爆的时候、Ceph并不被很多人所接受。当时Ceph并不稳定(Ceph发布的第四个版本 Dumpling v0.67),而且架构新颖,复杂,当时人们对Ceph在生产落地如何保障数据的安全,数据的一致性存在怀疑

    随着OpenStack的快速发展,给Ceph的发展注入了强心剂,越来越多的人使用Ceph作为OpenStack的底层共享存储,Ceph在中国的社区也蓬勃发展起来。近两年OpenStack火爆度不及当年,借助于云原生尤其是Kubernetes技术的发展,作为底层存储的基石,Ceph再次发力,为Kubernets有状态化业务提供了存储机制的实现。

二:ceph基础

    ceph是一个开源的分布式存储系统,支持对象存储,快存储,文件系统。

    ceph把每一个待管理的数据流切分为一个到多个固定大小(默认4M)的对象数据,并以原子单元完成数据的读写

    对象数据的底层存储服务是有多个主机组成的存储集群,该集群为RADOS,该集群的librados是存储集群的API,支持c/c++/java/python/ruby/php/go

三:ceph组件

1)cephmon

  cephmon用于维护集群状态,如集群有多少个存储池有多少个pg,及存储池和pg的映射关系,这些信息是集群互相协调的关键信息,同时还负责管理客户端到管理守护进程之间身份认证,cephmon通常需要有多个节点实现高可用架构。

2)cephmgr

   cephmgr负责监控集群运行指标和集群状态,如存储使用率,系统负载,cephmgr内有多种组件如ceph-dashboard仪表盘组件。

3)cephosd

   cephosd是ceph集群提供存储数据,一个磁盘就是一个osd守护进程,ceph集群中的数据存储,平衡,恢复都是有osd实现,cephosd通过向cephmon上报心跳信息告知ceph集群此osd是否可用。cephosd是ceph集群存储数据组件需要多个节点实现高可用性。

4)cephmds

   提供ceph集群文件系统,对象存储和快存储不需要cephmds.

5)cephdeploy

    通过cephdeploy执行ceph各种命令行工具:rados,ceph,rbd, 该节点有admin账户只对管理员开放。

四:ceph数据存储架构

    Ceph中一切皆对象,不管是RBD块存储接口,RGW对象存储接口还是文件存储CephFS接口,其存储如到Ceph中的数据均可以看作是一个对象,一个文件需要切割为多个对象(object),然后将object存储到OSD中。

    这些切割后的对象怎么选择到对应的OSD存储节点呢,这需要依赖于Ceph的智能调度算法CRUSH,通过CRUSH算法将对象调度到合适的OSD节点上,不管是客户端还是OSD,均使用CRUSH算法来计算对象在集群中OSD的位置信息,同时保障object的副本能落到合适的OSD节点上。

1)文件切割成4M大小的数据对象

2)数据对象通过hash算法找到存储池中的pg

3)在通过crush算法找到pg映射的osd

4)pg中的主osd将对象写入到磁盘

5)主osd将数据同步给备份osd,并等到备份osd写完后返回确认消息

6)主osd将写完信息告知客户端

下一篇为ceph实战之ceph集群的搭建ceph实战之ceph搭建_Mr.Lilh的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值