关于服务期间双向同步问题

1, inotify-tools + rsync

      使用inotify-watch监视文件夹, 有改动即执行rsync

      安装使用简单, 满足实时的需要, 但不能双向,性能也是瓶颈

 

2, sersync

      inotify + rsync, c++ 编写, 配置较多,能满足一些复杂的需求, 如过滤和plugin, 能满足实时的需求,性能也不错(经测试, 一次同步8000个文件没有问题, 而且不管原有多少文件,同步文件的时间比较固定),而且有出错重传机制, 唯一的遗憾是只能单向同步, 因为,它也是监控主服务器上的文件夹有改动即对修改的文件执行rsync。

 

3, openduckbill

      和sersync差不多,使用pyinotify + rsync

 

4, csync + inotify

     安装配置麻烦, 而且用了inotify的基本都只是单向

 

5,lsyncd

     和sersync一样的

 

6,unison

     可双向同步的工具, 但要做到实时好像不容易, 如果加上inotify-tools的话估计性能会有问题, 也不宜实现

 

看过这么多都不行,看来用现有工具是不行了,换个思路

 

1, 单纯用NFS, 建立一个共享的文件目录

      取决于网络,而且会有单点瓶颈

2, GFS

      好像是redhat专用? 没太调查

3, hadoop等分布式文件系统

     以现有使用hadoop的经验看来,读取文件的速度上达不到要求,而且hadoop也不适宜大量小文件的读写。 如果在每台机器上保持一个一直与存在于hadoop上的文件夹同步的文件夹,即每天机器对hadoop文件有个cache,这样可以部分解决同步问题,当然实时性不会是秒级了,应该是分钟级了。不过这是个思路。

4. 改变服务器布局。

   有上传文件的,全部单独一台服务器,然后再分发。


你可能感兴趣的:(关于服务期间双向同步问题)