關(guān)于Openstack的分布式存儲(chǔ),我關(guān)注Ceph,swift,hdfs的功能實(shí)現(xiàn)和優(yōu)缺點(diǎn),適用場(chǎng)景。
1.存儲(chǔ)文件大小
HDFS、HBase、Hive不太適合存文檔、圖片大小的文件,HDFS適用于存大文件。
SWIFT:處理幾個(gè)G的大文件性能上可能會(huì)比HDFS差,因?yàn)闆](méi)有條帶化。但遇到很多幾兆、幾十兆的,這些文件的存儲(chǔ),HDFS就不如SWIFT。所以對(duì)于日常文件的單獨(dú)處理用SWIFT,集中處理如果達(dá)到G級(jí)用HDFS。
2.存儲(chǔ)類(lèi)型:塊存儲(chǔ)和對(duì)象存儲(chǔ)
如果你只需要用塊存儲(chǔ),那當(dāng)然是Ceph,如果只需要用對(duì)象存儲(chǔ),那當(dāng)然是SWIFT。各自有各自擅長(zhǎng)的地方,不過(guò)現(xiàn)在因?yàn)镃eph也支持對(duì)象存儲(chǔ),SWIFT和Ceph又是OpenStack社區(qū)非常頻繁提到的兩種存儲(chǔ)形式,所以,有很多人會(huì)把SWIFT和Ceph在一起比較。
如果只要用對(duì)象存儲(chǔ),就選擇SWIFT;如果只要用塊存儲(chǔ),那就Ceph;即要用對(duì)象存儲(chǔ)又要用塊存儲(chǔ)的場(chǎng)合,是用SWIFT還是Ceph呢?我們一般是這樣推薦的:
1)如果節(jié)點(diǎn)數(shù)量很大,推薦用Ceph單獨(dú)做塊,用SWIFT做對(duì)象存儲(chǔ),因?yàn)樵诠?jié)點(diǎn)數(shù)量較大時(shí),Ceph的維護(hù)成本比SWIFT要高得多,大多數(shù)場(chǎng)景實(shí)際應(yīng)用的時(shí)候會(huì)發(fā)現(xiàn),大部分?jǐn)?shù)據(jù)都可以放到對(duì)象存儲(chǔ)上(這一點(diǎn)如果有疑問(wèn),歡迎隨時(shí)討論);
2)如果節(jié)點(diǎn)數(shù)量少,那就用Ceph統(tǒng)一搞定,因?yàn)橐话阏J(rèn)為生產(chǎn)環(huán)境中最小的分布式存儲(chǔ)應(yīng)當(dāng)有五個(gè)節(jié)點(diǎn),所以,如果節(jié)點(diǎn)數(shù)量少于十個(gè)或者剛到十來(lái)個(gè),那構(gòu)建兩個(gè)分布式存儲(chǔ)顯然是不理想的(考慮到空間劃分問(wèn)題);
3)如果團(tuán)隊(duì)里有牛人能輕松解決Ceph大規(guī)模部署問(wèn)題,那就果斷用Ceph;
4)如果希望對(duì)象存儲(chǔ)能夠和OpenStack其他項(xiàng)目無(wú)縫結(jié)合,如果希望實(shí)現(xiàn)多租戶,果斷用SWIFT來(lái)實(shí)現(xiàn)對(duì)象存儲(chǔ)。
3.對(duì)象存儲(chǔ)概念:
RESTful接口和扁平的數(shù)據(jù)組織形式。
4.對(duì)象存儲(chǔ)和文件系統(tǒng)存儲(chǔ)區(qū)別:
所謂文件系統(tǒng)的本質(zhì)是POSIX接口,“對(duì)象”這個(gè)名詞是做對(duì)象存儲(chǔ)的人為了把自己做的東西和文件系統(tǒng)區(qū)分開(kāi)而用的術(shù)語(yǔ),把存在對(duì)象存儲(chǔ)里的文件叫做“對(duì)象”,所以選擇文件系統(tǒng)還是對(duì)象存儲(chǔ),跟你把這堆數(shù)據(jù)稱(chēng)作對(duì)象還是文件并沒(méi)有直接關(guān)系,而是要看你是需要POSIX還是RESTful HTTP接口,是需要目錄結(jié)構(gòu)還是適用扁平數(shù)據(jù)管理結(jié)構(gòu)。
GlusterFS,它的優(yōu)點(diǎn)在于如果你需要使用POSIX接口,那GlusterFS是一個(gè)很好的選擇,但是Gluster在文件數(shù)量、目錄數(shù)量太大的情況下會(huì)出現(xiàn)性能衰減,這是文件系統(tǒng)本身的特點(diǎn)決定的,不論是哪種POSIX兼容的文件系統(tǒng),都存在類(lèi)似的問(wèn)題。