Ceph 入门系列(一):ceph历史

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/don_chiang709/article/details/90298128

Ceph 项目起源于其创始人Sage Weil在加州大学Santa Cruz分校攻读博士期间的研究课题。项目的起始时间为2004年,在2006年基于开源协议开源了Ceph的源代码。Sage Weil也相应成立了Inktank公司专注于Ceph的研发。在2014年5月,该公司被Red Hat收购。Ceph项目的发展历程如下:

 

 

一、优势

CRUSH 算法

CRUSH 算法是 Ceph 最初的两大创新之一(另一个是基于动态子树分区的元数据集群),也是整个 RADOS 的基石,是 Ceph 最引以为豪的地方。

CRUSH 在一致性哈希基础上很好的考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。同时, CRUSH 算法支持副本和 EC 两种数据冗余方式,还提供了四种不同类型的 Bucket(Uniform, List, Tree, Straw),充分考虑了实际生产过程中硬件的迭代式部署方式,虽然实际生产中大多数情况下的都是只用了一种 Straw。

另外根据 Sage 的论文,CRUSH 算法具有相当好的可扩展性,在数千 OSD 的情况下仍然能保证良好的负载平衡。但这更多是理论层面的,目前还没有人给出在数 PB 规模的生产环境中的测试结果。

总的来看,CRUSH 算法仍然是目前经过实践检验的最好的数据分布算法之一。

统一存储架构

Ceph 最初设计的 RADOS 是为其实现一个高性能的文件系统服务的,并没有考虑对于块设备、对象存储的支持,也就没有什么 RBD、RADOS GateWay,跟别提 OpenStack 和 qemu 之类的了。但谁想无心插柳柳成荫,由于 RADOS 出色的设计和独立简洁的访问接口,再加上 Sage 敏锐的眼光,Ceph 社区果断推出了用于支持云计算的分布式块存储 RBD 和分布式对象存储 RADOS GateWay,并将开发中心全面转向云计算领域。

不得不说,RADOS 的设计还是非常的优秀。从架构上来看,RBD 和 RADOSGateWay 实际上都只是 RADOS 的客户端而已,但得益于 RADOS 的优秀设计,RBD 和 RADOSGateWay 的设计和实现都很简单,不需要考虑横向扩展、冗余、容灾、负载平衡的等复杂的分布式系统问题,同时能够提供足够多的特性和足够优秀的性能,因此迅速得到了社区的认可。另一方面,Ceph 为 OpenStack 提供了良好的支持,成为了目前最火的 OpenStack 底层存储系统。乘着云计算和 OpenStack 的东风,Ceph 作为一个统一存储系统,似乎大有舍我取谁之势。

丰富的特性

Ceph 的特性不可谓不多,从分布式系统最基本的横向扩展、动态伸缩、冗余容灾、负载平衡等,到生产环境环境中非常实用的滚动升级、多存储池、延迟删除等,再到高大上的 CephFS 集群、快照、纠删码、跨存储池缓存等,不可谓不强大。

但是就像大多数开源系统一样,Ceph 的基本特性,或者说真正在生产环境中用的上的特性还是非常靠谱的,但其他“高级”特性就只能打一个问号了。特别是在 CephFS 模块,由于 Ceph 社区目前的开发重点主要还是与云计算相关的部分,即 RBD 和 RADOSGateWay,导致 CephFS 的开发停滞了很久,相关的特性,例如元数据集群、快照等,目前都不满足生产环境的要求。

社区

Ceph 社区现在已经有很多厂商实际上或者号称参入进来,其中不乏 Intel、Dreamhost、SanDisk 这样的大厂,也不乏 UnitedStack 这样的 Start-Up 公司,还有电信、大学、研究所这类非存储领域的公司或单位。但实际上整个 Ceph 还是掌握在 Inktank 或者说 RedHat 的手中,绝大多数核心代码由他们贡献,也是他们 Review 和 Merge。总的来说还是一个集权组织。

总的来说,Ceph 瑕不掩瑜,仍然是一个优秀,甚至出色的开源存储系统。如果说分布式存储在云计算时代是风口上的猪,那么 Ceph 也是一直优秀的猪。

 

 

 

 

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页