我的问题是关于主-主(3 个主节点)文件同步设置,其中每个节点位于不同的数据中心。我有三个应用程序服务器,用户可以在其中创建/修改/删除文件,我需要让它们保持同步,希望同步之间的延迟低(2 分钟是可以接受的,实时是理想的)。我们总共有376,136 个文件,总共100GB修改(创建 + 删除 + 修改)每天最多1,000 个文件。一个文件不会同时在两个不同的服务器上被修改是一个合理的假设。
上周我在这个问题上搜索了很多谷歌,但我还没有找到“就是这样!” 解决方案。
我看到的选项是:
- Unison:Abandonware(我的系统管理员声称它不可靠)
- Rsync:不适用于删除,也不是双向的
- Osync:可能是,但似乎它可能受到大文件树的阻碍
- lsyncd :从他们的 GitHub 页面来看,它似乎是迄今为止最好的选择。
- Minio(使用 aw3 文件存储方式):它不是为 master-master 设置而设计的,而是为分布式存储解决方案设计的
- 云存储:这是理想的,但我们国家没有好的云提供商,而且这里的国际互联网速度很差,所以国外的存储对我们不起作用
- GlusterFS / Ceph / DRBD:难以配置、维护、控制和调试的黑魔法,不太适合数据中心之间的同步(根据我的经验,欢迎提供更多见解)
- Mirror:看起来是个不错的选择,但似乎是为内网和小文件设计的。
我们与 dockers 合作,但我还没有找到可以解决这个问题的 docker volume 插件。
任何人面临/解决这个问题?哪个工具更好?有没有其他工具更适合这个问题?