Ceph是一个多版本存储系统,它把每一个待管理的数据流(例如一个文件) 切分为一到多个固定大小的对象数据,并以其为原子单元完成数据存取。
对象数据的底层存储服务是由多个主机 (host) 组成的存储集群,该集群也被称之为 RADOS (ReliableAutomatic Distributed object Store) 存储集群,即可靠、自动化、分布式对象存储系统
librados是RADOS存储集群的API,它支持C、C++、JavaPython、Ruby和PHP等编程语言
Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表,论文发表于2006年),并随后贡献给开源社区。
官方地址: https://ceph.com/en/
官方文档: https://docs.ceph.com/en/1atest
github地: https://github.com/ceph/ceph
ceph通过内部的crush机制,实时方式计算出一个文件应该存储到那个存储对象里面,从而实现快速查找对象的一种方式。
为什么Ceph 这么火?
功能强大: Ceph能够同时提供对象存储、块存储和文件系统存储三种存储服务的统一存储架构。
可扩展性: Ceph得以摒弃了传统的集中式存储元数据寻址方案,通过rush算法的寻址操作,有相当强大的扩展性。
高可用性: Ceph 数据副本数量可以由管理员自行定义,并可以通过Crush算法指定副本的物理存储位置以分隔故障域,支持数据强一致性的特性也使Ceph具有了高可靠性,可以忍受多种故障场景并自动尝试并行修复。
RadosGW、RBD和CephFS都是RADOS存储服务的客户端,它们把RADOS的存储服务接口(librados)分别从不同的角度做了进一步抽象,因而各自适用于不同的应用场景。
也就是说,ceph将三种存储类型统一在一个平台中,从而实现了更强大的适用性。