一般来说我们认识的存储按照存储和管理的对象来分的话,基本上可以分为:对象存储、文件存储和块设备存储。
Ceph在众多的存储 是为数不多的在一个方案里面,提供了同时对上述三种存储支持的一个优秀的开源方案。
Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生产环境。DreamHost在2012年的时候也推出了基于Ceph的公有云对象存储服务。一个开源软件,能正在商用,尤其是作为公有云对外提供服务,是需要很大的勇气的。Ceph已经集成在了Linux内核 (2.6.34之后) 之中,并能很好的使用在OpenStack的云操作系统。事实上OpenStack在未来的版本中会全面集成Ceph。
组件
Ceph是统一分布式存储系统,具有优异的性能、可靠性、可扩展性。Ceph的底层是RADOS(可靠、自动、分布式对象存储),可以通过LIBRADOS直接访问到RADOS的对象存储系统。RBD(块设备接口)、RADOS Gateway(对象存储接口)、Ceph File System(POSIX接口)都是基于RADOS的。
Ceph的核心是RADOS,它是分布式对象存储系统,由自修复、自管理、智能的存储节点组成。RADOS作为数据持久层,是RADOS GW、RBD、CEPH FS的基础。分布式对象存储的基本问题是如何分布数据到成千上万个存储节点上,RADOS的核心是CRUSH(一个可扩展的伪随机数据分布算法)。CRUSH能够有效映射数据对象到存储节点上,而且能够处理系统的扩展和硬件失效,使得由于存储节点的添加和移除而导致的数据迁移达到最小化。CRUSH算法在效率和扩展性这两个矛盾上做了很好的平衡。
RADOS 架构
RADOS系统主要由两个部分组成:
■ 由数目可变的大规模OSDs(Object Storage Devices)组成的机群,负责存储所有的数据;
■ 由少量监视器(Monitors)组成的强耦合、小规模机群,负责管理这个集群的分布信息(Cluster Map),其中ClusterMap是整个RADOS系统的关键数据结构,管理机群中的所有成员、关系、属性等信息以及数据的分发。
对于RADOS系统,节点组织管理和数据分发策略均有内部的监视器全权负责,所以,从客户端角度设计相对比较简单,它给应用提供的仅为简单的存储接口。
Ceph现状
Ceph项目主要贡献者(大部分是Inktank公司的员工,因此Ceph目前还是由Inktank公司掌控着)。Ceph本来就有一定的影响力(源于它的架构和功能),大家对它抱有很大的希望。自从inktank公司成立之后,inktank公司也不断推动Ceph与其他系统的整合,提高Ceph的影响力,目前Ceph支持OpenStack、CloudStack和OpenNebula这三个最流行的云计算框架,以及也支持了事实的大数据标准OpenStack。
2013年Cpeh曾经做出了一个调差,在收到的81份反馈中:
■ 有36个公司在调查Ceph中
■ 有24个公司在预生产环境使用Ceph
■ 有21个公司在生产环境使用Ceph
在生产环境中,已经使用的裸磁盘有1154TB,Dreamhost已经超过 3PB了(收到的反馈中并没有DreamHost)
在预生产环境中案例中, 最大的一个环境已经达到了20PB,他被用来部署OpenStack。
未来
Ceph统一的架构满足了云计算和大数据对存储系统的需求。Ceph背后的力量很大,在商业公司的驱动下 Ceph会被集成到OpenStack、CloudStack、OpenNebula、Hadoop等优秀的开源云计算、大数据系统中;借助这些平台的力量继续推广Ceph。