2010-09-13 58 views
0

我们有两个数据中心,每个数据中心都有多个共享基于EMC大型nfs的Linux服务器。在多个数据中心中跟踪nfs/sync nfs的更改

挑战在于让两个nfs保持同步。现在假设写操作只会发生在nfs1上,然后它必须将更改传播到nfs2。

定期的通用rsyncs已经证明太慢了 - 即使使用-az,每个rsync都需要几个小时才能完成。当文件或目录实际发生更改时,我们需要执行特定的同步。

那么问题是,我们如何知道文件或目录何时发生了变化? inotify是明显的答案,但它着名的不适用于nfs。 (如果inotify安装在nfs服务器上,可能会有工作,但这不是我们的选择 - 我们只控制客户端,而不是服务器。)

Linux nfs客户端允许您捕获它发送到服务器的所有更改,以日志文件或其他方式?或者我们可以破解客户端来做到这一点?然后,我们可以从每个客户端收集更改,并定期启动目标rsyncs。

欢迎任何其他想法。谢谢!

回答

0

如果您需要保持2个EMC服务器同步,则可能更好地考虑EMC特定的镜像功能来实现此目的。通常这些是基于块的更新,以实现高性能和低带宽利用率。例如,在NetApp上使用SnapMirror可以实现此目的。我不太熟悉EMC,但快速谷歌搜索显示EMC MirrorView或EMC SRDF是可能的选择。