開源分布式存儲之我見
發(fā)布者:博特叔叔機(jī)器人編程
相信很多公司和樂視一樣,本就不充足的研發(fā)隊伍,由于種種歷史和政治原因,在同一個領(lǐng)域里充斥了大量類似的開源項(xiàng)目,在我們的分布式存儲系統(tǒng)里,目前就采用了HDFS,Gluster,Swift和Ceph四種系統(tǒng)。今天就憑著印象,聊一聊這四種分布式存儲的不同。
1.HDFS
其實(shí)在真正搞過分布式文件系統(tǒng)的人看來,HDFS不能算得上是真正的文件系統(tǒng)。因?yàn)樗麑?shí)在太簡單,太粗糙。甚至連搞個append接口都搞了老半天,到現(xiàn)在應(yīng)該還不支持隨機(jī)讀寫之類的文件系統(tǒng)*基本的功能。他*大的優(yōu)勢是借助hadoop這個生態(tài)系統(tǒng)得以比較穩(wěn)定。另外還有一個優(yōu)勢就是他是用java寫的,這樣一幫java程序員也可以號稱自己在搞文件系統(tǒng)了。
HDFS到現(xiàn)在應(yīng)該還是不是真正意義上的分布式,他的nameode的federation相當(dāng)于靜態(tài)目錄,雖然共享存儲池,但是namespace是不共享的。
2.Gluster
Gluster*大的優(yōu)勢在于他繼承了傳統(tǒng)文件系統(tǒng)的posix接口,而且表現(xiàn)比較穩(wěn)定。雖然他的元數(shù)據(jù)的分布式hash帶來很多性能上的問題,但如果非要用文件系統(tǒng)接口的似乎也沒有更好的選擇。
但是Gluster用的是c/c++,對于很多只想拿來就用不想踩坑的同學(xué)無疑是個負(fù)擔(dān),萬一出了問題不是很容易解決。
3.Swift
Swift的流行得益于openstack,它應(yīng)該是目前*流行的對象存儲系統(tǒng),印象中有在生產(chǎn)環(huán)節(jié)跑到上百PB的case。但總感覺這玩意用python寫的,有點(diǎn)粗糙,似乎就是一堆腳本的拼湊。
4.Ceph
最后不得不談一下筆者的*愛,Ceph。初次接觸他是在2012年初。它*大的優(yōu)勢就是同時支持三種存儲接口,是真正意義上的融合存儲。但它mds的設(shè)計過于學(xué)術(shù),似乎很難有穩(wěn)定下來的一天。Ceph真正大火也是得益于跟opestack的結(jié)合,現(xiàn)在它已經(jīng)是openstack快存儲的不二之選。它的對象存儲也還算穩(wěn)定,dreamhost,CERN包括最近的yahoo都有PB級的生產(chǎn)級別使用。
總結(jié)下來HDFS如果不是離線的大數(shù)據(jù)計算,應(yīng)該是*沒吸引力的。如果是非要用文件系統(tǒng)接口,那只能是gluster。如果單純的對象存儲推薦swift。如果考慮更好的兼容S3或者跟openstack相結(jié)合,當(dāng)然是ceph。
Gluster和Ceph都是c/c++,對于java和pyhon大行其道的今天,選擇要慎重。但如果有點(diǎn)情懷特別是追求底層的性能,可以挑戰(zhàn)一下ceph。