一些云对象存储专家觉得Ceph比Swift要好,这么说是不对的,其实两者各有千秋,主要还得看你的工作负载需求了。
Ceph在数据访问和信息存储方面提供了很大的灵活性,但这并不意味着它比Swift更好。
Swift和Ceph都提供对象存储,他们将数据切成二进制对象并将其复制到存储中。Ceph和Swift对象存储都是在Linux文件系统之上创建的,在一些时候,它可以是一个可选的Linux文件系统。
另外,Ceph和Swift在设计之初都考虑了可扩展性,所以都可以根据需要轻松添加存储节点。
以上就是Ceph和Swift的相似之处。
数据访问
Swift是由Rackspace开发的用来为云计算提供可扩展存储的项目。它是为云而开发的,云原生的,所以它主要的访问方法RESTful API。应用程序绕开操作系统直接去Swif对接。这样做的好处是在云环境中使用时非常方便,但在访问云外的Swift存储时就比较麻烦了。
从一开始,Ceph就比Swift开放,Ceph有四种数据访问方式:
Ceph可通过Rados网关用兼容S3的RESTful API访问:这点Ceph与Swift相类似,不过S3以外,Ceph对AWS云环境下的其他内容也能很好的兼容,要知道,AWS为现代云环境画下了广阔的蓝图,有许多新的可能。
CephFS:这是一个POSIX兼容的文件系统,可以在任何Linux发行版上运行,操作系统可直接访问Ceph存储。
RDB:RBD是一个Linux内核级的块设备,允许用户像任何其他Linux块设备一样访问Ceph。
ISCSI 网关: 这一增加的功能是SUSE加上去的,它允许管理员在Ceph之上运行iSCSI网关,从而将其转变为任何操作系统都可以访问的SAN文件管理器。
Ceph架构的组成
因为Ceph可以提供多种方式来访问对象存储,所以比Swift更有可用性,扩展性更好。
访问存储信息
Ceph与Swift另外一种最大的不同还在于客户端访问对象存储系统方式。 在Swift中,客户端必须联到Swift网关,这样有出现单点故障的可能。 为了解决这一问题,许多Swift环境为Swift网关实现了高可用性。
Ceph的存储节点上运行着OSD,Ceph通过OSD能获得存储拓扑图,能通过OSD收集到二进制对象最后找到原始数据,别的部分都是访问运行在客户端上的对象的主要组件,Ceph访问存储的方式不只有单个入口,所以与Swift相比更加灵活。
用户案例
Ceph与Swift有很大不同,但并不能说谁比谁好。
两个项目都是绿色开源项目,都有来自全球的用户,用户用Ceph的理由多种多样。
在单一环境下,Ceph与虚拟机,数据库以及别的数据类型之间的数据交互表现良好,这些环境都对数据一致性有很高要求。
Swift在处理海量数据的时候比较有优势。数据一致性决定了两者对应两类应用场景。
Ceph是始终跨集群强一致性,Swift数据是最终一致的,同步一致数据需要时间。
所以说,不能说谁比谁好,这是因为设计和使用的场景根本上是有区别的。