背景
Ceph現(xiàn)在已經(jīng)是Openstack官方主要支持的存儲后端,而最新的Ceph不僅可以提供快服務(wù),文件服務(wù),而且還可以提供對象存儲。Openstack Swift也提供對象存儲服務(wù),那這兩者到底是競爭關(guān)系,還是互補(bǔ)關(guān)系呢?
Ceph
Ceph是一個(gè)基于偽隨機(jī)算法的強(qiáng)一致性分布式存儲系統(tǒng),它主要提供塊服務(wù),能很好的支持順序IO和隨機(jī)IO。除了用作cinder后端給虛擬機(jī)提供卷服務(wù),同時(shí)也可以作為glance的后端;
一般來說,為了同時(shí)保證寫性能和一致性,一個(gè)強(qiáng)一致性系統(tǒng)節(jié)點(diǎn)間通訊的延遲要盡量小,所以這樣的系統(tǒng)一般不支持跨機(jī)房,跨地域的大規(guī)模部署。
Swift
swift天生就是專門為對象存儲模型設(shè)計(jì)的,這些特征包括:
- 支持不同的存儲后端,不依賴后端的任何如多副本,RAID特性來提供可靠性;
- 最終一致性模型;
- 支持跨機(jī)房,跨地域部署;
- 主要用來支持append io和順序io;
對比
下面是Mirantis針對ceph和swift在對象存儲服務(wù)的對比:
|
|
Swift |
Ceph |
|
Replication |
Yes |
Yes |
Max. obj.
size |
5gb
(bigger objects segmented) |
Unlimited |
Multi DC
installation |
Yes (replication on the container level only,
but a blueprint proposed for full inter dc replication) |
No (demands asynchronous eventual consistency
replication, which Ceph does not yet support) |
Integration
/w Opentsack |
Yes |
Partial
(lack of Keystone support) |
Replicas
management |
No |
Yes |
Writing
algorithm |
Synchronous |
Synchronous |
Amazon S3
compatible API |
Yes |
Yes |
Data placement
method |
Ring (static mapping structure) |
CRUSH (algorithm) |
結(jié)論
我個(gè)人認(rèn)為,ceph畢竟不是一個(gè)專門的對象存儲系統(tǒng),其對象存儲服務(wù)其實(shí)是在block服務(wù)上模擬出來的,所以和專門的對象存儲swift比起來,在部署規(guī)模,使用成本上會有比較大的差距;但是,因?yàn)椴皇撬械脑贫夹枰笠?guī)模的對象存儲,考慮到跨地域場景時(shí),swift的部署也很復(fù)雜,所以在剛開始搭建openstack云服務(wù)時(shí),或者是對象存儲業(yè)務(wù)量不是很大時(shí),為了節(jié)省系統(tǒng)搭建時(shí)間,使用ceph提供S3服務(wù)也是個(gè)不錯(cuò)的選擇。
參考資料
|