如何同步 2 个 Linux 服务器

如何同步 2 个 Linux 服务器

我遇到的问题是,我不太了解服务器管理,现在我们在负载平衡器后面有 2 个服务器,我需要同步htdocs来自 apache 的文件夹。

我认为最大的问题是,我没有服务器的 root 访问权限,只有一个“普通” ssh 用户和 ftp。

我希望您能为我提供一些关于如何处理这个问题的想法。

答案1

您可以简单地使用rsync如下方法:

$ rsync -au src dest

src和中的任何一个dest都可以写成好像user@host:src它不在本地机器上。默认情况下使用 ssh。

如果提供的用户在两台服务器上都具有足够的权限来读取和写入文件/文件夹,则您不需要根访问权限。

答案2

你可以使用类似同步使用 cron 定期镜像文件。这样做的缺点是同步不是实时的,而是按照您设置的时间间隔进行。

如果需要立即同步到组中的所有节点,则应查看类似灾难恢复数据库。如果您没有 root 权限,您将需要具有 root 权限的人为您进行设置,但这是值得的。

答案3

正如其他人所说,rsync 是一个很好的选择,但可能更简单的选择是拥有一个像 SAN 这样的网络存储设备或者只是设置一个简单的网络共享,比如 NFS 或 Samba。

我个人会只使用一个存储设备,两台服务器都会读取该设备。无论你选择哪种方式,都会成功。我不会选择 Rysnc,因为你很可能会将其放在 cron 作业中,并且你可能会遇到更新延迟,因为一台服务器已更新,而另一台服务器没有更新。但是,可能有某种方法可以让服务全天候运行以检查更改并在需要时更新其他服务器;不过我以前从未这样做过。

答案4

新数据多久添加到一次系统中?

这是决定如何处理这一问题的关键因素。

如果不经常添加数据,那么使用 rsync 或其他工具进行频繁同步就可以了。

如果数据添加频繁,则必须频繁同步。在这种情况下,您需要通过 NFS/Samba 或集群文件系统共享存储。但这需要 root 访问权限才能进行设置。

我更喜欢集中式数据。这样更容易维护、备份和保护,并且可以避免系统不同步。与尝试保持 10 个 Apache 服务器同步相比,集中式数据也更容易扩展到多个 Apache 节点。

相关内容