开源分布式存储:HDFS,Gluster,Swift和Ceph

1.HDFS

其实在真正搞过分布式文件系统的人看来,HDFS不能算得上是真正的文件系统。因为他实在太简单,太粗糙。甚至连搞个append接口都搞了老半天,到现在应该还不支持随机读写之类的文件系统最基本的功能。他最大的优势是借助hadoop这个生态系统得以比较稳定。另外还有一个优势就是他是用java写的,这样一帮java程序员也可以号称自己在搞文件系统了。

HDFS到现在应该还是不是真正意义上的分布式,他的nameode的federation相当于静态目录,虽然共享存储池,但是namespace是不共享的。

2.Gluster

Gluster最大的优势在于他继承了传统文件系统的posix接口,而且表现比较稳定。虽然他的元数据的分布式hash带来很多性能上的问题,但如果非要用文件系统接口的似乎也没有更好的选择。

但是Gluster用的是c/c++,对于很多只想拿来就用不想踩坑的同学无疑是个负担,万一出了问题不是很容易解决。

3.Swift

Swift的流行得益于openstack,它应该是目前最流行的对象存储系统,印象中有在生产环节跑到上百PB的case。但总感觉这玩意用python写的,有点粗糙,似乎就是一堆脚本的拼凑。

4.Ceph

<iframe id="aswift_1" style="left: 0px; position: absolute; top: 0px;" name="aswift_1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" width="336" height="280"></iframe>

最后不得不谈一下笔者的最爱,Ceph。初次接触他是在2012年初。它最大的优势就是同时支持三种存储接口,是真正意义上的融合存储。但它mds的设计过于学术,似乎很难有稳定下来的一天。Ceph真正大火也是得益于跟opestack的结合,现在它已经是openstack快存储的不二之选。它的对象存储也还算稳定,dreamhost,CERN包括最近的yahoo都有PB级的生产级别使用。

总结下来HDFS如果不是离线的大数据计算,应该是最没吸引力的。如果是非要用文件系统接口,那只能是gluster。如果单纯的对象存储推荐swift。如果考虑更好的兼容S3或者跟openstack相结合,当然是ceph。

Gluster和Ceph都是c/c++,对于java和pyhon大行其道的今天,选择要慎重。但如果有点情怀特别是追求底层的性能,可以挑战一下ceph。

 

http://www.kuqin.com/shuoit/20150512/345990.html

猜你喜欢

转载自m635674608.iteye.com/blog/2346835