现在我正在使用 NFS(网络文件系统)将文件服务器的 Web 根目录挂载到两个 Web 服务器上。
我觉得 NFS 占用了大量资源。有没有更好的方法来同步网络服务器上的文件?我知道你可以每隔几秒钟运行一次 rsync,但不确定这是否是最好的方法。
答案1
文件是在两个地方都修改的吗,还是集中管理?
如果可以在任何服务器上修改文件,那么 NFS 可能是明智的选择。
如果要集中管理文件,那么您可以使用一些版本控制系统(如 Subversion)来保存数据并在服务器上定期检查更改。
如果文件在一台机器上被修改,而你希望它们在另一台机器上也保持相同,那么你可以在任何更改之后或在 crontab 中使用 rsync。当没有更改需要传播时,Rsync 不会使用太多资源。
答案2
答案3
看一下 csync2,它更适合这种类型的事情。
答案4
那么共享存储呢?您可以在另一台机器上设置 openfiler 或 freenas,并通过 iSCSI 挂载文件系统。如果您只将文件系统用于读取,则可以使用 ext3 或 xfs 或任何类似的 fs 并以只读方式挂载文件系统。对于 rw 访问,您需要集群 fs,例如 OCFS2 或 GFS2(如果您使用 LVM,则可选 clvmd)
正如 Andy 所建议的,您也可以使用 DRDB。但它有其局限性。主要限制是仅限于 2 个服务器(主从或主主)。可以添加第三台服务器,但情况比较复杂。