開源分布式存儲之我見
發布者:博特叔叔機器人編程
相信很多公司和樂視一樣,本就不充足的研發隊伍,由于種種歷史和政治原因,在同一個領域里充斥了大量類似的開源項目,在我們的分布式存儲系統里,目前就采用了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
最后不得不談一下筆者的*愛,Ceph。初次接觸他是在2012年初。它*大的優勢就是同時支持三種存儲接口,是真正意義上的融合存儲。但它mds的設計過于學術,似乎很難有穩定下來的一天。Ceph真正大火也是得益于跟opestack的結合,現在它已經是openstack快存儲的不二之選。它的對象存儲也還算穩定,dreamhost,CERN包括最近的yahoo都有PB級的生產級別使用。
總結下來HDFS如果不是離線的大數據計算,應該是*沒吸引力的。如果是非要用文件系統接口,那只能是gluster。如果單純的對象存儲推薦swift。如果考慮更好的兼容S3或者跟openstack相結合,當然是ceph。
Gluster和Ceph都是c/c++,對于java和pyhon大行其道的今天,選擇要慎重。但如果有點情懷特別是追求底層的性能,可以挑戰一下ceph。