同步两个巨大的文件系统

同步两个巨大的文件系统

我需要定期同步两个巨大的文件系统。两边都运行 Linux,并具有完全的 root 访问权限。

我首选的解决方案:我可以读取已更改文件和目录的列表,并仅同步已更改的文件。但是我如何获取更改列表?Inotify 需要每个目录都有一个处理程序,但目录太多了。也许从文件系统的日志中获取?

以下是一些解决方案以及它们不适合的原因:

  • rsync:需要递归检查所有文件。有几百万个文件,但只有很少的变化。检查时间太长。
  • inotify:我需要为每个目录设置一个处理程序,但目录太多了。Inotify 不是为“监视所有文件”场景构建的。
  • DRDB:两侧应独立运行。可能会发生主机几天都无法连接的情况。

两台机器大约每 15 分钟需要同步一次。初始同步没有问题,这个问题仅与同步更改有关。

答案1

GlusterFS 怎么样?我发现它产生的流量比 DRBD 少很多。

答案2

+1 对于 GlusterFS,它是一个用户空间存储集群平台,它非常容易设置,并且在文件级别工作。

安装后,您需要做的就是在主服务器上创建一个新的复制 Gluster 卷,它将通过 TCP/IP 实时复制内容。然后设置客户端(基本上就是安装文件系统),您甚至可以在其中一台服务器上执行此操作,然后将数据始终写入新安装的文件系统。

相关内容