6
两台远程linux服务器之间大文件树的双向实时同步
大文件树的意思是大约20万个文件,并且一直在增长。不过,在任何给定的小时内,文件更改的数量相对较少。 双向是指更改可能在任一服务器上发生并且需要推送到另一服务器,因此rsync似乎不合适。 所谓远程,是指服务器都位于数据中心内,但在地理位置上却彼此远离。当前只有2台服务器,但是随着时间的推移可能会扩展。 实时而言,同步之间有一点延迟是可以的,但是似乎每1-2分钟运行一次cron似乎并不正确,因为在给定的小时内可能有很小一部分文件发生更改,更不用说分钟了。 编辑:这是在VPS上运行的,所以我可能只能在可以执行的内核级工作上受限制。另外,VPS的资源也不丰富,因此我回避需要大量内存的解决方案(例如Gluster?)。 什么是完成这项工作的最佳/最“公认”的方法?这似乎很常见,但是我还没有找到一种普遍接受的方法,这令人惊讶。(我正在寻求群众的安全。:) 我遇到过lsyncd来触发文件系统更改级别的同步。这似乎很聪明,尽管不是超级常见,而且我对各种lsyncd方法有些困惑。只是将lsyncd与rsync一起使用,但是由于rsync没有内存的概念,这似乎对于双向来说可能是脆弱的(例如-知道是否应该在B上删除A上的已删除文件还是在B上是新文件)应该复制到A)。 唇形看起来只是一个lsyncd + rsync的实施,对不对? 然后将lsyncd与csync2一起使用,就像这样:https : //icicimov.github.io/blog/devops/File-system-sync-with-Csync2-and-Lsyncd/ ...我倾向于这种方法,但是csync2有点古怪,尽管我确实对其进行了成功的测试。我最担心的是,我无法找到很多社区对此方法的确认。 这里的人们似乎非常喜欢Unison,但是似乎它不再处于活跃的开发中,并且不清楚它具有像lsyncd这样的自动触发器。 我已经看到Gluster提到过,但是对于我所需要的东西可能会过分杀了? 更新: fyi-我最终使用了我提到的原始解决方案:lsyncd + csync2。它似乎运行得很好,并且我喜欢将服务器非常松散地连接在一起的体系结构方法,这样每台服务器都可以无限期地独立运行,而不管它们之间的链接质量如何。