两个远程linux服务器之间的大文件树的双向实时同步

通过大文件树,我的意思是大约200k文件,并且一直在增长.但是,在任何给定的小时内,相对较少的文件都会被更改.

通过双向,我的意思是在任一服务器上都可能发生更改,需要将其推送到另一台服务器,因此rsync似乎不合适.

远距离我的意思是服务器都在数据中心,但地理位置相互远离.目前只有2台服务器,但随着时间的推移可能会扩展.

通过实时,可以在同步之间有一点延迟,但是每1-2分钟运行一次cron似乎并不正确,因为在任何给定的小时内,一小部分文件可能会发生变化,更不用说分钟了.

编辑:这是在VPS上运行所以我可能会限制我可以做的内核级别的东西.此外,VPS不是资源丰富,所以我回避需要大量内存的解决方案(如Gluster?).

完成这项工作的最佳/最“接受”方法是什么?这似乎是一个普遍的需求,但我还没有找到一个普遍接受的方法,这是令人惊讶的. (我正在寻求群众的安全.:)

我遇到lsyncd触发文件系统更改级别的同步.虽然不是很常见,但这似乎很聪明,我对各种lsyncd方法感到有点困惑.只使用lsyncd和rsync,但似乎这对于双向性来说可能很脆弱,因为rsync没有内存概念(例如,要知道A上的删除文件是否应该在B上删除,或者它是否是B上的新文件)应该复制到A). lipsync似乎只是一个lsyncd rsync实现,对吧?

然后使用lsyncd与csync2,像这样:http://www.axivo.com/community/threads/lightning-fast-synchronization-with-csync2-and-lsyncd.121/ …我倾向于这种方法,但csync2有点古怪,虽然我确实做了一个成功的测试.我最担心的是我无法找到很多社区对此方法的确认.

这里的人似乎很喜欢Unison,但似乎它是no longer under active development并且它不清楚它有像lsyncd这样的自动触发器.

我已经看过Gluster,但可能因为我需要的东西而过度杀伤?

更新:fyi-我最终使用我提到的原始解决方案:lsyncd csync2.它似乎工作得很好,我喜欢将服务器非常松散地连接在一起的架构方法,这样每个服务器都可以无限期地独立运行,而不管它们之间的链接质量如何.

解决方法

0700在 Dual-primary模式下使用 Proxy是一个选项.

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...