原文地址:https://www.reddit.com/r/sysadmin/comments/9onemk/ceph_vs_glusterfs/
Ceph 和 Gluster 是针对不同问题的完全不同的解决方案。它们有一些重叠,但我会尝试给你一个概述。几年来,我一直在运行一个相当大的 Gluster 部署,这是我根据经验、文档以及 RedHat 一直试图向我推销的东西的看法。
Ceph 首先是对象。在 Ceph 的大部分历史中,它是分层在本机文件系统(通常是 xfs)之上的对象,相对于底层硬件的原始 IOP/吞吐量而言,它的运行速度非常慢。Ceph 最近发布了“bluestore”,它试图让 Ceph 在没有中间 FS 的情况下直接将数据写入磁盘。Ceph 所做的一切都是围绕对象进行的。它完全基于 RADOS,他们自己的内部对象层。Ceph-FS 分层在对象之上。Ceph 块分层在对象之上,Ceph 对象?除非您的应用程序使用本机 RADOS(大多数情况下不会),否则您正在使用转换层从 swift/S3 转到 RADOS。根据文档,Ceph 是一款瑞士军用电锯,配有附加牙签和雨伞。因此,设置不一定容易。
Gluster——Gluster在架构上基本上与Ceph相反。Gluster是一个文件存储先、后、大部分的中间。一只醉酒的猴子可以在任何有文件夹的东西上设置 Gluster,并且可以为它编译代码,包括容器、虚拟机、云机器等等。想要创建 Gluster 卷?这是 2 个步骤(假设您已经在 2/3 个节点上安装了该软件包并且您想要副本 3):
gluster peer probe othernode(x但是很多其他节点)
gluster 卷创建副本 3 node1:/path node2:/path node3:/path
就是这样,你完成了。您有一个 Gluster 副本 3 卷。警告!如果你这样做,你将度过一段糟糕的时光。Gluster 应该使用正确的 FS 选项、LVM 精简池、快照等运行。RH 建议使用 XFS,而不是 ZFS,因为存在某些错误。绝对不推荐使用 EXT,并且不推荐使用 btrfs 或其他奇怪的东西。
Gluster 现在有一个块层,并且有一个对象层(swift)很长时间了。它们位于本机 glusterfs 文件系统之上。要让它们启动和运行,需要不同程度的恶作剧。
很少有其他 Gluster 说明: Gluster 可以扩展到疯狂的容量,但是您开始在高文件数时遇到性能问题。高砖数量加剧了这一点。元数据性能简直糟糕透顶。Gluster 可能不应该用于事务性的东西,比如数据库,或者依赖于非常严格的锁定的东西,比如 VMWare(现在需要调查 VMWare 和 Gluster 都支持 NFSv4.1,但是使用 glusterfs+gNFS 绝对不行NFSv3)。Gluster 大型流文件性能非常棒。如果您有几个 PB 的 linux ISO 或权力的游戏(RH 的参考客户之一在欧洲某处运行流媒体 GoT),Gluster 很棒。RH + Commvault 显然有一个参考架构,其中 Commvault 处理重复数据删除,而 Gluster 是一个横向扩展的备份文件存储,
Gluster 的另一个问题,老实说,这是所有这些开源软件定义系统的问题是管理层。因为开源人员喜欢制作软件乐高积木,所以没有像使用专有设备那样的统一/简单管理。Gluster 依赖于操作系统和 LVM 以及现在的 VDO 和文件系统以及任何其他存储层(如 RAID 卡)都可以自行运行,而 Gluster 层以下的任何内容都必须弄清楚如何处理自己。这对 1 个节点来说并不痛苦,对 2 个节点来说有点痛苦,而且对很多节点来说真的很痛苦,除非你编写了自定义脚本来监视所有内容,并通过大量令人敬畏的解析来从文本输出中提取相关数据. GlusterD 2.