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

来源:互联网 发布:centos yum 源更新 编辑:程序博客网 时间:2024/05/26 07:28

背景

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

Ceph

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

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

Swift

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

对比

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

 SwiftCephReplicationYesYesMax. obj.
size5gb
(bigger objects segmented)UnlimitedMulti DC
installationYes (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 OpentsackYesPartial
(lack of Keystone support)Replicas
managementNoYesWriting
algorithmSynchronousSynchronousAmazon S3
compatible APIYesYesData placement
methodRing (static mapping structure)CRUSH (algorithm)

结论

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

参考资料

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