数据中心之间的主主文件同步

Jim*_*mmy 5 filesystems synchronization replication

我的问题是关于主-主(3 个主节点)文件同步设置,其中每个节点位于不同的数据中心。我有三个应用程序服务器,用户可以在其中创建/修改/删除文件,我需要让它们保持同步,希望同步之间的延迟低(2 分钟是可以接受的,实时是理想的)。我们总共有376,136 个文件,总共100GB修改(创建 + 删除 + 修改)每天最多1,000 个文件。一个文件不会同时在两个不同的服务器上被修改是一个合理的假设。

上周我在这个问题上搜索了很多谷歌,但我还没有找到“就是这样!” 解决方案。

我看到的选项是:

  • Unison:Abandonware(我的系统管理员声称它不可靠)
  • Rsync:不适用于删除,也不是双向的
  • Osync:可能是,但似乎它可能受到大文件树的阻碍
  • lsyncd :从他们的 GitHub 页面来看,它似乎是迄今为止最好的选择。
  • Minio(使用 aw3 文件存储方式):它不是为 master-master 设置而设计的,而是为分布式存储解决方案设计的
  • 云存储:这是理想的,但我们国家没有好的云提供商,而且这里的国际互联网速度很差,所以国外的存储对我们不起作用
  • GlusterFS / Ceph / DRBD:难以配置、维护、控制和调试的黑魔法,不太适合数据中心之间的同步(根据我的经验,欢迎提供更多见解)
  • Mirror:看起来是个不错的选择,但似乎是为内网和小文件设计的。

我们与 dockers 合作,但我还没有找到可以解决这个问题的 docker volume 插件。

任何人面临/解决这个问题?哪个工具更好?有没有其他工具更适合这个问题?

小智 1

我将使用 GlusterFS(设置起来并不困难),但您也可以尝试使用 CSYNC2

https://github.com/LINBIT/csync2

我曾经在集群上复制一组文件,并取得了不错的结果。