Ceph企业级分布式存储:原理与工程实践
上QQ阅读APP看书,第一时间看更新

1.2.2 孵化阶段

Ceph早期项目完成后,Sage获得了博士学位。随后他回到洛杉矶,继续在DreamHost公司(Sage是这家公司的联合创始人)研发Ceph,并取得了如下成果。

·Native Linux Kernel Client(2007)

·Per-directory Snapshots(2008)

·Recursive Accounting(2008)

·Object Classes(2009)

·Librados(2009)

·RGW(2009)

·Strong Authentication(2009)

·RBD(2010)

在Ceph孵化阶段的早期,Sage和他的团队意识到Linux本地客户端的支持很重要。但当时,该客户端是基于用户空间文件系统开发的,运行速度慢。为了让人们更重视Ceph,他们需要有一个可以与系统通信的本地高性能Linux客户端。

于是,Sage通过多方探索,开始开发Linux本地客户端。当他们将写好的代码提交到Linux内核时,前两次尝试均失败。Linus质疑该客户端的有用性,并认为其功能不成熟。值得庆幸的是,后续一些社区开发人员发表了支持这项工作的言论。最终在2010年提交2万行补丁后,Andrew Morton同意接纳该Linux本地客户端。Linus将其合并到Linux 2.6.34内核主线中。

被Linux内核接受这件事在Ceph的历史上有着至关重要的作用,意味着它已经成为更大的生态系统的一部分。这时,Sage意识到他们不需要把所有要做的技术都在Ceph内实现,可以依靠其他项目来完成。这也是Sage抛弃EBOFS而使用其他文件系统的主要原因。Sage最初选择了Btrfs(具有写时复制、循环冗余校验等优点),但最终证明它对于生产用例还不成熟,后来选择了XFS和Ext4(这两种文件系统成为生产部署时的主要选择)。

尽管Ceph已经做了很多改变,也取得了很多成绩,但是在实际使用中还是非常不稳定。Ceph真正迈入商业化之路是在DreamHost决定使用Ceph构建与S3兼容的对象存储服务时。此时,Sage及其团队专注于提高稳定性,并开始考虑诸如自动化测试和代码审查之类的事情。

随着项目的不断成熟,其他公司开始对Ceph产生兴趣。此时,Ceph也需要一个商业实体来资助工程继续深入,以构建和测试产品。2012年年初,Ceph从DreamHost剥离出来,转入新的合资企业Inktank。