保持网络服务器同步的最佳方法

保持网络服务器同步的最佳方法

现在我正在使用 NFS(网络文件系统)将文件服务器的 Web 根目录挂载到两个 Web 服务器上。

我觉得 NFS 占用了大量资源。有没有更好的方法来同步网络服务器上的文件?我知道你可以每隔几秒钟运行一次 rsync,但不确定这是否是最好的方法。

答案1

文件是在两个地方都修改的吗,还是集中管理?

如果可以在任何服务器上修改文件,那么 NFS 可能是明智的选择。

如果要集中管理文件,那么您可以使用一些版本控制系统(如 Subversion)来保存数据并在服务器上定期检查更改。

如果文件在一台机器上被修改,而你希望它们在另一台机器上也保持相同,那么你可以在任何更改之后或在 crontab 中使用 rsync。当没有更改需要传播时,Rsync 不会使用太多资源。

答案2

如果这是一个 Linux 系统(我猜是的),我强烈建议DRBD. 它允许您通过网络将文件系统复制到另一台机器。

您可以创建 GFS2 或OCFS2(集群)文件系统,您可以在双主模式下安装两个共享。当其中一个系统发生更改时,另一个系统会立即生效。

答案3

看一下 csync2,它更适合这种类型的事情。

http://oss.linbit.com/csync2/

答案4

那么共享存储呢?您可以在另一台机器上设置 openfiler 或 freenas,并通过 iSCSI 挂载文件系统。如果您只将文件系统用于读取,则可以使用 ext3 或 xfs 或任何类似的 fs 并以只读方式挂载文件系统。对于 rw 访问,您需要集群 fs,例如 OCFS2 或 GFS2(如果您使用 LVM,则可选 clvmd)

正如 Andy 所建议的,您也可以使用 DRDB。但它有其局限性。主要限制是仅限于 2 个服务器(主从或主主)。可以添加第三台服务器,但情况比较复杂。

相关内容