GlusterFS vs. Ceph:两大主流开源存储对比
GlusterFS和Ceph是在现代云环境中表现最出色的两个敏捷存储系统。
在讲述GlusterFS和Ceph的相同点和区别之前,我们先谈一谈云环境中敏捷存储的一些关键点。
纵向升级和横向扩展。在云环境中,很容易向服务器添加更多存储空间和扩展可用存储池。Ceph和GlusterFS都符合这一需求,让新的存储设备可以轻松融入现有存储产品环境。
高可用。GlusterFS和Ceph都会使用复制方法将数据同时写入不同存储节点。这种运作模式会增加读写次数,但同时也确保了数据的可用性。以Ceph为例,数据在默认情况会被复制到三个不同的节点,确保数据副本一直可用。
通用的硬件。GlusterFS和Ceph的开发基础都是Linux操作系统(OS)。因此,对于硬件的唯一要求就是:能够正常运行Linux即可。由于几乎任何商品硬件都能运行Linux操作系统,只要选择这些存储技术,这些技术的使用单位就可以大幅节省硬件投入。实际上,有许多公司也正在投资专用于GlusterFS或Ceph的硬件平台,因为专门优化的硬件可以更快速高效地访问存储空间。
去中心化。正常的云环境绝对不会出现某个中心节点故障而引起的失效。对于存储系统而言,这就意味着不应该使用单个中央位置来保存元数据。GlusterFS和Ceph的解决方案实现了元数据访问分散化,从而提高了存储访问的可用性和冗余性。
接下来我们来谈谈GlusterFS与Ceph的差异和对比。顾名思义,GlusterFS是来自Linux世界的文件系统,并且完整遵守POSIX便携式操作系统接口标准。尽管您可以轻而易举地将GlusterFS集成到Linux的环境中,但是让GlusterFS和Windows环境紧密配合同样至关重要。
Ceph是一种全新的存储方法,被定义成Swift对象存储的一种实现。在对象存储中,应用程序不会直接写入文件系统,而是使用存储设施提供的直接API访问写入存储。因此,应用程序能够绕过操作系统的功能和限制。如果应用程序已经针对Ceph存储编写读写接口,那么应用程序的读写就和操作系统无关。结果是,在Windows环境中集成使用Ceph存储就和在Linux系统中一样简单。
当然,基于API来访问存储并非应用程序访问Ceph的唯一途径。为了实现最佳集成,Ceph也提供一个块设备接口,可以在Linux环境中作为常规块设备使用,使您能够使用Ceph来模拟常规Linux硬盘。Ceph还有CephFS,这是一个针对Linux环境编写的Ceph文件系统。
最近,SUSE已经添加了一个iSCSI接口,使得运行iSCSI客户端的客户端能像访问任何其他iSCSI目标一样访问Ceph存储。所有这些功能使Ceph成为异构环境的最佳选择,而不仅仅适用于Linux操作系统。
综上所述,Ceph是一个更容易集成到非Linux环境中的更灵活的产品。对于许多公司来说这就有足够的理由决定在Ceph而不是GlusterFS上构建存储产品。但是对于只需运行Linux的环境,灵活性不是重点,所以让我们再谈谈其他非常重要的事情:速度。
在GlusterFS与Ceph的比赛中已经有过若干次测试,目的是证明这些存储产品中的某一种比另一种更快,然而迄今并没有明显的赢家。GlusterFS的存储算法更快,并且由于GlusterFS在节点块中使用更多的层次化组织方式,这在某些情况下可能实现更高的速度,特别是如果和未经优化的Ceph对比的话。但另一方面,Ceph也提供了丰富的定制灵活性,这足以让Ceph与GlusterFS同样快速,结果就是,两者的性能对比都不够令人信服,不足以证实自己能完全超越对方。
最后,现实表明,Ceph独特的存取存储空间的方法正在使其成为更受欢迎的技术。事实证明更多的公司正在考虑Ceph技术而不是GlusterFS,部分原因也在于GlusterFS仍然与Red Hat关系密切。例如,SUSE没有GlusterFS的商业实施案例,而Ceph已经被开源社区大量采用,市场上已经出现多种基于Ceph的产品。结论就是:在GlusterFS与Ceph的竞争战斗中,Ceph事实上已经比GlusterFS略胜一筹。