我的问题是关于主-主(3 个主节点)文件同步设置,其中每个节点位于不同的数据中心。我有三台应用服务器,用户可以在其中创建/修改/删除文件,我需要保持它们同步,希望同步之间的延迟较低(2 分钟是可以接受的,实时是理想的)。我们总共有376,136总共有100GB最多修改(创建 + 删除 + 修改)1,000每天修改 2000 个文件。可以合理地假设一个文件不会同时在两个不同的服务器上被修改。
上周,我在 Google 上搜索了很多有关此问题的信息,但尚未找到“就是这个!”的解决方案。
我所看到的选项是:
- Unison:废弃软件(我的系统管理员声称它不可靠)
- Rsync:不适用于删除,并且不是双向的
- Osync:可能是这样,但似乎可能会受到大文件树的阻碍
- lsyncd:从他们的 GitHub 页面来看,它似乎是迄今为止最好的选择。
- Minio(使用 aw3 文件存储方式):它不是为主-主设置而设计的,而是为分布式存储解决方案而设计的
- 云存储:这是理想的选择,但我们国家没有好的云提供商,而且国际互联网速度很差,所以国外存储对我们来说不太适用
- GlusterFS / Ceph / DRBD:难以配置、维护、控制和调试的黑魔法,不太适合数据中心之间的同步(根据我的经验,欢迎提供更多见解)
- 镜像:它似乎是一个不错的选择,但似乎是为内联网和小文件设计的。
我们使用docker,但我还没有找到可以解决这个问题的docker卷插件。
有人遇到/解决过这个问题吗?哪个工具更好?还有其他工具更适合解决这个问题吗?
答案1
我将使用 GlusterFS(它不是所以很难设置),但您也可以尝试使用 CSYNC2:
https://github.com/LINBIT/csync2
我曾经在集群上复制一组文件,并取得不错的效果。