使用 UNISON 设置服务器集群以双向线/星/全连接方式同步文件?

使用 UNISON 设置服务器集群以双向线/星/全连接方式同步文件?

我很感激我对同一主题提出了多个问题,但它们都与同一目的有关。

运行水平扩展集群设置,并尝试设置 unison 来同步“var/www/html”以实现 HA。

两台服务器之间的同步很容易,而且运行顺利,但是将会有 10 多台服务器通过 vLAN 连接。

经过大量搜索后,我发现大多数人甚至 Unison 文档都推荐“星型拓扑”设置:

在此处输入图片描述

然而,我可能只是误解了设置,或者我的担心是真的(你告诉我)。

星型拓扑:

在“星型拓扑”设置中,“中心”服务器将更改推送至其余服务器。

例如,我们有服务器:A(集线器)、B、C、D、E、F。如果我们在服务器 A 上添加/更改某些内容,它将与服务器 B、C、D、E、F 同步。

但是由于我将网站托管在“/var/www/html”,那么在以下情况下会发生什么:

  • 所有服务器前面都使用负载均衡器
  • wordpress 网站托管在多个服务器上
  • 一位作者添加了一篇带有图片的博客文章,但他在服务器 D 上进行操作,因为负载均衡器会将他“投放”到任何一台服务器上

我想要对此进行解释,是否需要从每台服务器推送到 A ?

如果您能提供一些示例安装脚本的话我将非常感激。

全连接拓扑:

  • 这能通过一致努力实现吗?
  • 它比星型拓扑更好、更可靠吗?
  • 每个服务器上的安装脚本是什么样的?

非常感谢所有提供反馈的人!

答案1

由于您的目标是在这些服务器之间同步网站,因此您需要确保服务器始终保持同步;确保在一台服务器上更改文件和让 Unison 将这些更改更新到另一台服务器之间几乎没有延迟。使用 Unison 选项repeat=watch或使用可以轻松完成此操作inotifytools

特尔德:星型拓扑避免了全连接拓扑带来的麻烦。

星型拓扑设置可以立即同步更改,但需要运行几次 Unison。假设负载均衡器将用户引导至服务器D,然后该用户上传图像。然后,如果 Unison 运行该选项,基本上作为守护进程监视文件更改,那么它将在图像上传后立即repeat=watch开始同步到中心节点。现在,您需要触发 Unison在设置中的其他辐射服务器之间运行。理想情况下,您希望将这项工作拆分到辐射节点之间,而不是运行一堆 Unison 实例来推送到辐射节点。因此,我会使用来监视更改,每当发生变化时,就向每个辐射节点发送命令以运行 Unison 来获取更改。AAAinotifytoolsAAA

相比之下,完全连接的设置会带来一些复杂性,尤其是当仅用于repeat=watch即时同步时。假设用户将文件上传到服务器D。然后在完全连接的设置中,您将运行 Unison每次一个,每个其他服务器一次同步该文件。因此,首先D同步到A,然后D开始同步到B,但由于A已更改并且现在与不同步B,它还将运行 Unison 并尝试同步到B,现在B尝试同时从两个源获取更新...这可能会让 Unison 至少感到烦躁。然后,除了第一个麻烦之外,您还可能在两台服务器上看到冲突的更改,比如说,一个用户将他们的文件上传到,D但在所有内容同步之前,另一个用户将同名文件上传到E

相关内容