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 组件职责,后续会针对每个组件作更具体的介绍,心愿对你有帮忙,谢谢。