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