Openstack 对象存储服务之争:Ceph或者Swift
Openstack 对象存储服务之争:Ceph或者Swift
背景
Ceph现在已经是Openstack官方主要支持的存储后端,而最新的Ceph不仅可以提供快服务,文件服务,而且还可以提供对象存储。Openstack Swift也提供对象存储服务,那这两者到底是竞争关系,还是互补关系呢?Ceph
Ceph是一个基于伪随机算法的强一致性分布式存储系统,它主要提供块服务,能很好的支持顺序IO和随机IO。除了用作cinder后端给虚拟机提供卷服务,同时也可以作为glance的后端;一般来说,为了同时保证写性能和一致性,一个强一致性系统节点间通讯的延迟要尽量小,所以这样的系统一般不支持跨机房,跨地域的大规模部署。
Swift
swift天生就是专门为对象存储模型设计的,这些特征包括:对比
下面是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
评论暂时关闭