在Ceph与Swift之间,存在一些孰优孰劣的争辩。Ceph在访问数据和存储信息方面提供了更大的灵活性,但这并不完全意味着它是一个比Swift更好的对象存储系统。
Swift和Ceph都提供对象存储,将数据分割成二进制对象并将其复制到存储中。使用Ceph和Swift,对象存储都是在Linux文件系统之上创建的。此外,Ceph和Swift都是在考虑可伸缩性的情况下构建的,因此可以很容易地根据需要添加存储节点。两者的不同之处主要在于:
访问数据
Swift是由Rackspace开发的,目的是为该公司的云提供可扩展存储。因为它是基于云开发的,所以它的主要访问方法是通过RESTful API。应用程序可以直接对Swift寻址(绕过操作系统)并将数据提交给Swift存储。这在纯基于云的环境中非常有用,但它也使访问云外的快速存储变得更加复杂。
至于Ceph,从一开始,其开发人员就致力于使其成为一个比Swift更开放的对象存储系统。Ceph有四种访问方法:
·通过Rados网关访问Amazon S3兼容的RESTful API:这使得Ceph可以与Swift相媲美,也可以与Amazon S3云环境中的任何东西相媲美。
·CephFS:这是一个可移植操作系统接口兼容的文件系统,运行在任何Linux发行版上,所以操作系统可以直接访问Ceph存储。
·Rados Block Device (RBD): RBD是一个Linux内核级的块设备,允许用户像访问其他Linux块设备一样访问Ceph。
·ISCSI 网关:这是SUSE对Ceph项目的补充。它允许管理员在Ceph上运行iSCSI网关,将其转换为任何操作系统都可以访问的SAN文件。
因此在对比评估Ceph与Swift时,请记住,Ceph提供了更多访问对象存储系统的方法。正因如此,它比Swift更实用、更灵活。
访问存储信息
Ceph与Swift截然不同的另一个方面是客户端如何访问对象存储系统。在Swift中,客户端必须联系Swift网关,这会带来一些潜在的单点故障。为了解决这个问题,许多Swift环境为Swift网关实现了高可用性。
Ceph使用一个对象存储设备(OSD),运行在每个存储节点上运行。Ceph可以通过OSD获取关于存储拓扑的信息,以及在哪里收集二进制对象以访问原始数据。访问对象存储所需的另一个组件在客户机上运行,因此Ceph对存储的访问没有一个单独的入口点。这使得它比Swift更灵活。
关于用例
Ceph和Swift的组织方式存在着根本性的差异,但这并不意味着两者孰优孰劣。两者都是非常优秀的开源项目,被世界各地区的用户积极使用——出于不同的原因。Ceph在需要高度一致性的虚拟机、数据库和其他数据类型交互的单站点环境中表现良好,Swift更适合处理大量数据的大型环境,这种差异是两个对象存储系统如何在其复制算法中处理数据一致性的直接结果。
Ceph数据在整个集群中是强一致的,而Swift数据是最终一致的,它通过在软件层面引入一致性散列技术和数据冗余性,牺牲一定程度的数据一致性来达到高可用性和可伸缩性,在跨集群同步数据之前可能会需要一些时间。
所以总的来说,Ceph与Swift这两种对象存储系统,谁都不能说绝对优于另一种,因为它们服务于不同目的。
原文作者:Sander van Vugt 来源:TechTarget