标签:
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. 改变服务器布局。
有上传文件的,全部单独一台服务器,然后再分发。
标签:
原文地址:http://my.oschina.net/shyl/blog/485224