存储世界最近发生了很大变化。十年前,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 世界的文件系统,并且遵守所有 POSIX 标准。尽管你可以将 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。