我必须为一个项目设置新的基础设施。我们有两个办公室,它们与互联网的上下行链路(2 MBit SDSL)速度较慢,而一台服务器 C 与互联网的链路速度为 100 MBit。然后,每个办公室(A 和 B)都有一台带有 Samba 共享的 Ubuntu 机器,以便特定办公室中的每个用户都可以在 Windows 上的驱动器号下安装该共享。这样,他们就可以快速访问,因为内部 LAN 使用 100/1000 MBit。接下来,两台 Ubuntu 机器(A 和 B)和 Ubuntu 服务器(C)应该在它们之间复制数据。它们都有一个 1 TB 的驱动器,它们上面的数据应该始终完全相同。
因此我尝试集群文件系统在服务器 A 和 C 上,但似乎不太可靠(服务器 B 目前不存在)。为了进行快速测试,我将一个 10 MB 文件复制到服务器 A 上的 glusterfs 挂载点。在同一秒内,该文件出现在服务器 C 上,但只有 6 MB。服务器 C 上的文件需要长达 30 分钟才能达到其正确的 10 MB 大小。因此,我并不想在生产环境中使用它。
主要问题是办公室中的用户希望快速连接到本地服务器,如果有人更改、删除、移动或创建文件,则其他服务器上也应更改、删除、移动或创建该文件。也许仅使用服务器 A 和 B 作为缓存就足够了,但最好的服务是什么?
非常感谢您的帮助。找到合适的解决方案会很好。谢谢!
答案1
这个问题的标准解决方案是利用一个名为齐奏他们的网页上写道:
Unison 是一款适用于 OSX、Unix 和 Windows 的文件同步工具。它允许将一组文件和目录的两个副本存储在不同的主机上(或同一主机上的不同磁盘上),并分别进行修改,然后通过将每个副本中的更改传播到另一个副本来更新它们。
与 Samba Share 的集成非常简单:详细讨论在 Samba Wiki 页面上。
基本上,它包括四个步骤:
用户同步。最方便的是让两个系统的用户都属于同一组。如果共享属于同一个用户,并且任何人都可以修改其内容,那么这一点尤其容易。但您也可以设置您的系统以拥有全部两个 LAN 的用户,这完全取决于您。
无密码访问。这是在两个系统之间实现自动且安全的 ssh 连接所必需的。
Unison 设置(最简单的部分,仅一行)。
crontab 设置。这是每分钟同步两台机器所必需的(无法通过 crontab 更频繁地进行同步)。这也是一行代码。
基本上就是这些了。