过去 2 天我一直在玩 gluster,并在这里和他们的问题系统上提问。有些东西我真的不明白。我看到人们说这样的话
在服务器之间设置复制砖(因为你只使用 3 个,复制会更安全),每台服务器都会将所有其他服务器的文件视为“本地”——即使一台服务器出现故障,文件也已复制到其他服务器。
或者
Gluster 将保持跨卷(砖块)的文件同步,并具有“自我修复”功能,可以处理由于一台服务器离线而导致的任何不一致。
由于我将远程卷从服务器挂载到客户端,gluster 如何处理服务器节点的故障,卷是从哪个节点挂载的?从我尝试过的客户端上安装卷的文件夹变得无法访问,我必须使用 umount 来解除对它的阻止。之后没有来自服务器的内容。
这基本上是我在任何解释中都没有看到的内容:当服务器节点出现故障时会发生什么,以及是否可以像 unison 或 rsync 那样真正复制内容?
在深入了解如何使用 gluster 设置复制之后,我遇到了这个问题:Apache Can Read The GlusterFS Brick Directly But Write to the GlusterFS Mount?
我还发现了一个似乎可以解释同一件事的方法,我认为我理解它,但现在我认为我不理解。
因此,为了获得这种复制功能,我需要让两台机器同时充当服务器和客户端吗?现在我不明白这种关系是如何运作的:B 不是,例如 A 的客户吗?
是否涉及多个级别的客户端-服务器关系?A 是 A 的客户端,B 是 B 的客户端,每个文件夹都安装在同一台机器上的一个卷中,并且这两个卷在第三层关系中以某种方式同步(从 A 到 B)?
为什么上面的问题是关于写入文件系统或已安装卷的问题?当我让 B 成为 A 的客户端时,A 导出一个文件夹,B 将其安装为文件夹中的远程卷时,我从不问自己在写什么:我写入了 A 上的原始文件夹和安装的卷B. 这不是它应该如何工作的吗?
我需要实现某种 HA 设置,其中两台服务器需要能够始终保持同步,无论您在哪一台服务器上写入。数据库部分可以通过主主复制设置来覆盖。然而,当涉及到文件和内容时,我一直无法找到能够很好地满足这些需求的东西。例如,我需要能够将 /var/www 从一台机器复制到另一台机器,并且能够在其中任何一台机器中进行写入,并且无论 http 请求发送到何处,始终具有相同的可用内容。
所以我不确定双向复制是否是通常不做的事情,我需要重新考虑这一点,或者我还没有对此进行足够的研究,但我不知所措。我似乎没有找到其他解决方案。
还有其他东西可以处理自动透明的双向文件复制吗?