Sersync 是我们金山逍遥网技术支持部平台组周洋同学,开发的一款基于 inotify + rsync 的大量文件的多服务器自动同步程序,目前已开源,开源协议为 New BSD License。

  原理:
  使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件,被监听目录下如果有文件发生修改,sersync 将通过内核自动捕获到事件,并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录,不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件,并且支持多线程同步,因此效率非常高。

  应用:
  金山游戏官网的 CMS 内容发布系统。无论编辑通过 Web 还是 FTP 上传图片、视频、附件,还是系统工程师直接去CMS发布服务器上增加、修改、删除文件,干完这些事情后不用做任何处理,sersync 会自动将发生增、删、改事件的文件同步到远程服务器,并可以在文件同步完成后,自动调用 CDN(ChinaCache)缓存刷新接口,刷新发生修改、删除的文件的访问 URL。

  更多内容,请访问项目网址:http://code.google.com/p/sersync/






技术大类 » 其他Unix技术 | 评论(78) | 引用(0) | 阅读(102486)
leon365
2010-4-14 20:59
弄个配置实例出来,我们都不晓的咱个安装!
我都是看你了的v6,才装的linux的配置的!
routerpipe
2010-4-14 21:36
你的网站,国内访问不了啊。我翻墙过来的
张宴 回复于 2010-4-15 00:24
发现问题了。域名原来使用的dnspod DNS解析服务器中,ns4.dnspod.net和ns6.dnspod.net无法ping通,导致域名在部分用户处无法解析。现在已切换为域名注册商godaddy自己的服务器。
Ladon.Q Email
2010-4-14 21:50
不错,我来支持下,嘿嘿
秋爱 Email Homepage
2010-4-14 22:24
看看,正好几台VPS的同步还没做...
运行了以后系统负载大么?
tonyliao
2010-4-14 22:45
这个程序xoyo在用吗?效果怎么样?
张宴 回复于 2010-4-14 23:03
xoyo目前在用,从去年7月第一版到开始到现在,已经在线上使用和后续开发维护了10个月。包括剑网3官网jx3.xoyo.com、剑侠世界官网jxsj.xoyo.com在内的所有金山游戏官网、图片服务器pic.xoyo.com,都是走得这套同步系统+自动刷新CDN缓存机制。
lanrenvip
2010-4-14 22:48
张哥乃神人也!我今天正好在做inotify + rsync 的配置。雪中送炭啊。。。我test一下。。。。
X-Force Homepage
2010-4-15 09:16
请问这个可以远程同步吗?还是只能局域网同步?
张宴 回复于 2010-4-15 12:00
支持广域网、局域网远程同步。
无喱头 Homepage
2010-4-15 09:22
上海人民发来贺电。。。
Now163
2010-4-15 09:26
膜拜。来学习一下。
xinyv
2010-4-15 09:28
提个建议:
    原来我做过这样的东西,是用bash脚本实现的,后来发现机器多了是个问题,发现一款 mrsync 软件。原理大体相同,但mrsync 是用吧所有的要同步的机器加入一个多播组,然后用组播实现同步,这样效率会高很多。  mrsync 地址 http://mrsync.sourceforge.net/
johntech Homepage
2010-4-15 12:00
xinyv的分享不错,我现在改sersync,除了各种小bug,下一步主要参考csync搞互同步,但好像用处不大。这个mrsync貌似源码很少。好好测试,学习一下,看看能不能提高sersync效率。
dd_macle
2010-4-15 12:18
真热闹啊,搞技术的互相交流的感觉真好
mcsrainbow
2010-4-15 12:54
是仅仅用inotify做监听,然后调用rsync同步数据吧??
如果是,那么用inotify-tools 加上rsync就行了。
张宴 回复于 2010-4-15 13:15
sundy21cn Email
2010-4-15 13:07
请问这套同步机制支持增量吗?能支持大于30G以上的文件同步吗?
如果同步源上的文件删除了,目标机器上的文件,同步系统会删除吗?
张宴 回复于 2010-4-15 13:28
假设监听源服务器/opt目录,该目录下有a.txt、b.txt、c.txt三个文件。修改了b.txt文件,则自动将b.txt同步到远程服务器覆盖远程文件。删除了c.txt文件,则自动删除远程服务器b.txt。在源服务器/opt目录内创建了子目录test,则远程服务器也创建子目录test。在test目录内新建了文件d.txt,则自动将test/d.txt同步到远程服务器test/d.txt。a.txt文件没有任何修改操作,则不会同步。
小丑
2010-4-15 13:41
inotify + rsync
基本cms同步出去都是这样在做的,好东西 支持.
Boos
2010-4-15 14:52
那如果数据的删减都在主,那么要从做什么,如果要做负载的话如果从也写些数据那么从的数据怎么更新到主
希望得到点拨
奶罩
2010-4-15 15:45
发现问题了。域名原来使用的dnspod DNS解析服务器中,ns4.dnspod.net和ns6.dnspod.net无法ping通,导致域名在部分用户处无法解析。现在已切换为域名注册商godaddy自己的服务器。=======================ns4和ns6有防火墙挡住了icmp,所以ping不通,但不影响解析。而且这个防火墙是在去年中的时候就有了。作为一个技术人员,我认为应该严谨一点,不应该只通过ping不通就认定为服务不可用
张宴 回复于 2010-4-15 21:22
不好意思,没有想到只有ns4、ns6有防火墙封了icmp。一般我们的配置比较统一,同种业务的服务器,要禁止icmp全禁止,要开放icmp全开放。所以看到ns1、ns2、ns3、ns5都能ping通,而只有ns4、ns6 ping不通时,误以为这两台服务器宕机。
奶罩
2010-4-15 15:50
而且在dns的轮询机制下,只要6台服务器中有一台可用,其余5台down掉,也是可以提供正常服务的。按照用户反馈的情况,是翻墙可用,但dnspod的服务器是在墙内,用户翻到墙外,更加应该被墙挡住才对
ruochen Email
2010-4-15 17:03
能用在mysql data file的同步么?
fly
2010-4-15 17:27
正好需要
分页: 1/4 第一页 1 2 3 4 下页 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]