存储世界最近发生了很大变化。十年前,Fibre Channel SAN文件管理器是企业存储的标准。而在目前的环境中,受到基础架构即服务云的影响,数据存储需要更加灵活。

GlusterFS和Ceph是两个灵活的存储系统,在云环境中表现非常出色。

在尝试了解GlusterFS与Ceph之间的相似之处和不同之处之前,让我们来讨论在云环境中对灵活存储的一些要求。

纵向扩展和横向扩展。在云环境中,必须可以很容易地向服务器添加更多存储空间以及扩展可用存储池。Ceph和GlusterFS都可以通过轻松将新存储设备集成到现有存储产品中来满足这一要求。

高可用性。GlusterFS和Ceph的复制是同时将数据写入不同的存储节点。这样做的结果是,访问时间增加,数据可用性也提高。在Ceph中,默认情况下将数据复制到三个不同的节点,这确保备份始终可用。

商品化硬件。GlusterFS和Ceph是在Linux操作系统之上开发的。因此,对硬件唯一的要求是这些产品具有能够运行Linux的硬件。任何商品化硬件都可以运行Linux操作系统,结果是使用这些技术的公司可以大大减少在硬件上的投资——如果他们这样做的话。然而,实际上,许多公司正在投资专门用于运行GlusterFS或Ceph的硬件,因为更快的硬件可以更快地访问存储。

去中心化。在云环境中,永远不应该有中心点故障。对于存储,这意味着不应该用一个中央位置存储元数据。GlusterFS和Ceph实现了元数据访问去中心化的解决方案,从而降低了存储访问的可用性和冗余性。

现在来谈谈GlusterFS与Ceph的差异。顾名思义,GlusterFS是来自Linux世界的文件系统,并且遵守所有Portable Operating System Interface标准。尽管你可以将GlusterFS轻松集成到面向Linux的环境中,但在Windows环境中集成GlusterFS很难。

Ceph是一种全新的存储方法,对应于Swift对象存储。在对象存储中,应用程序不会写入文件系统,而是使用存储中的直接API访问写入存储。因此,应用程序能够绕过操作系统的功能和限制。如果已经开发了一个应用程序来写入Ceph存储,那么使用哪个操作系统无关紧要。结果是,Ceph存储在Windows环境中像在Linux环境中一样容易集成。

基于API的存储访问并不是应用程序可以访问Ceph的唯一方式。为了最佳的集成,还有一个Ceph块设备,它可以在Linux环境中用作常规块设备,使你可以像访问常规Linux硬盘一样来使用Ceph。Ceph还有CephFS,它是针对Linux环境编写的Ceph文件系统。

最近,SUSE添加了一个iSCSI接口,使得运行iSCSI客户端的客户端能像任何其他iSCSI目标一样访问Ceph存储。

所有这些功能使得Ceph成为异构环境的更好选择,而不仅仅是使用Linux操作系统。

所以Ceph是一个更灵活的产品,更容易集成到非Linux环境中。对于许多公司来说,这足以让它们在Ceph而不是GlusterFS上构建存储产品。对于仅运行Linux的环境,此功能不够有说服力,所以来谈谈另一个非常重要的事情:速度。

为了比较GlusterFS与Ceph哪个更快已经进行了几项测试,但迄今为止没有确切的结论。GlusterFS存储算法更快,并且由于GlusterFS以砖组织存储的方式实现了更多的分层,这在某些场景下(特别是使用非优化Ceph的话)可能导致更快的速度。另一方面,Ceph提供了足够的定制功能来使其与GlusterFS一样快——结果是两者的性能都不够令人信服一个比另一个更强。

然而,现实表明,Ceph访问存储的不同方法使其成为更流行的技术。事实证明,更多的公司正在考虑Ceph技术而不是GlusterFS,而且GlusterFS仍然与Red Hat密切相关。例如,SUSE还没有GlusterFS的商业实施,而Ceph已经被开源社区广泛采用,市场上有各种不同的产品。可以说,Ceph确实已经胜过GlusterFS。