【发布时间】:2011-06-04 03:13:55
【问题描述】:
我们有两个数据中心,每个数据中心都有许多 Linux 服务器,它们共享一个基于 EMC 的大型 nfs。
挑战在于保持两个 nfs' 同步。目前假设写入只会发生在 nfs1 上,然后它必须将更改传播到 nfs2。
已证明周期性通用 rsync 太慢 - 每个 rsync 都需要几个小时才能完成,即使使用 -az 也是如此。当文件或目录实际发生变化时,我们需要进行特定的同步。
那么问题来了,我们如何知道文件或目录何时发生了变化? inotify 是显而易见的答案,但众所周知它不适用于 nfs。 (有一些关于 inotify 如果安装在 nfs 服务器上可能会工作的讨论,但这不是我们的选择 - 我们只能控制客户端,而不是服务器。)
linux nfs 客户端是否允许您以日志文件或其他方式捕获它发送到服务器的所有更改?或者我们可以破解客户端来做到这一点吗?然后我们可以从每个客户端收集更改并定期启动目标 rsync。
欢迎任何其他想法。谢谢!
【问题讨论】: