Openstack 对象存储服务之争:Ceph或者Swift

背景

Ceph现在已经是Openstack官方主要支持的存储后端,而最新的Ceph不仅可以提供快服务,文件服务,而且还可以提供对象存储。Openstack Swift也提供对象存储服务,那这两者到底是竞争关系,还是互补关系呢?

Ceph

Ceph是一个基于伪随机算法的强一致性分布式存储系统,它主要提供块服务,能很好的支持顺序IO和随机IO。除了用作cinder后端给虚拟机提供卷服务,同时也可以作为glance的后端;

一般来说,为了同时保证写性能和一致性,一个强一致性系统节点间通讯的延迟要尽量小,所以这样的系统一般不支持跨机房,跨地域的大规模部署。

Swift

swift天生就是专门为对象存储模型设计的,这些特征包括:
  1. 支持不同的存储后端,不依赖后端的任何如多副本,RAID特性来提供可靠性;
  2. 最终一致性模型;
  3. 支持跨机房,跨地域部署;
  4. 主要用来支持append io和顺序io;

对比

下面是Mirantis针对ceph和swift在对象存储服务的对比:

  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)

结论

我个人认为,ceph毕竟不是一个专门的对象存储系统,其对象存储服务其实是在block服务上模拟出来的,所以和专门的对象存储swift比起来,在部署规模,使用成本上会有比较大的差距;但是,因为不是所有的云都需要大规模的对象存储,考虑到跨地域场景时,swift的部署也很复杂,所以在刚开始搭建openstack云服务时,或者是对象存储业务量不是很大时,为了节省系统搭建时间,使用ceph提供S3服务也是个不错的选择。

参考资料

  • Object Storage approaches for OpenStack Cloud: Understanding Swift and Ceph

你可能感兴趣的:(openstack)