Ceph是什么?

Ceph是一个开源的分布式存储系统,可大规模扩大、高性能、无单点故障,在一般的服务器上能够反对到PB级容量,商用机器上反对的容量能够达到EB级别。

Ceph的竞争力

市面上提供云存储的分布式系统如阿里云的OSS(底层存储框架为JindoFS),亚马逊的S3,Hadoop生态下的HDFS,OpenStack内的Swift,都是十分优良、风行的存储解决方案,Ceph作为同类产品,依然不逊色:

  • 更低的TCO(总体领有老本),Ceph能够部署在一般的商用服务器上,比专有存储系统的估算更低。
  • Ceph的每一个组件都是牢靠的并反对高可用。
  • 分布式存储,客户端动静地计算数据存储地位,不适度依赖元数据服务器。
  • Ceph集群外部发现的节点宕机,磁盘损坏等故障,Ceph集群可能利用正本数据进行自我修复,保障集群数据可用。
  • Ceph退出Linux内核主线。
  • Ceph可能同时提供对象存储、块存储、文件存储。

Ceph的对立存储计划

Ceph的对立存储计划同时满足对象存储、块存储和文件存储,并且Ceph曾经退出Linux内核主线,意味着Ceph存储更加贴近OS层,对立存储计划架构图如下所示:

从上图能够晓得,Ceph仅从软件层面就提供了对象、块和文件存储。对象存储要比块或者文件更加适应当初的混合的非结构化数据。

传统的文件存储系统中,文件是通过文件目录进行寻址的,宏大文件目录或深层次目录构造,均会影响文件搜寻的效率,Ceph底层并不存在块和文件的治理,而是治理对象并且在对象之上反对基于块和文件的存储,对象的寻址通过惟一的标识符,并存储在扁平的寻址空间中,客户端应用CRUSH算法失去一个存储对象的存储地位,从根本上解决海量文件搜寻慢的问题。

Ceph整体架构

Ceph集群次要由Monitor、OSD两个守护过程组成,每个守护过程互相独立,独特构建集群的残缺性能个性,架构示意图如下:

简要论述每个ceph组件的性能:

  • RBD,也叫Ceph块设施,原先叫做RADOS块设施,对外提供块存储,它能够像祼磁盘一样被映射、格式化、挂载到操作系统上。
  • RADOS GW,Ceph对象网关,简称为RGW,目前对Amazon S3和OpenStack对象存储API提供了兼容的Restful API接口,另外RGW还反对多租户和OpenStack的Keystone身份验证服务。
  • Ceph FS,Cehp文件系统,提供了一个任意大小且兼容POSIX的分布式文件系统,它依赖Ceph MDS(元数据)来跟踪文件层次结构。
  • librados库是RBD、RGW的根底,能够为Ceph FS提供POSIX接口,librados目前反对PHP、Ruby、Java、Python、C和C++语言,用来简化RADOS层的拜访,并且提供librados API对RADOS进行本地化拜访。
  • RADOS,全称是牢靠、主动、分布式对象存储(Reliable Autonomic Distributed Oject Store),是Ceph集群的根底,RADOS负责Ceph中的所有数据都以对象模式存储。RADOS层提供的个性次要有:数据一致性、可靠性,数据迁徙和再均衡。
  • MON,Ceph的monitor组件,将集群的状态保留在几个map构造里,如OSD、MON、PG和CRUSH,集群内所有的节点都向MON组件上报信息,monitor将每一个组件将上报的状态信息存储在不同的map里,monitor不存储理论的数据,只存储集群状态信息。
  • OSD,Ceph对外存储设备,负责数据读写操作,真正存储用户数据的组件,一个OSD守护过程与集群的一个物理磁盘绑定,一般来说,用于部署Ceph集群物理机器(或虚拟机)的磁盘数量与OSD守护过程数量是一样的。
  • MDS,元数据服务器,只有Ceph FS才须要,对象存储场景不须要应用到MDS。

小结

本篇简略介绍了分布式存储组件Ceph的根本个性,实用的存储计划,以及Ceph架构的介绍,先简略理解一下Ceph组件职责,后续会针对每个组件作更具体的介绍,心愿对你有帮忙,谢谢。