摘要
本文部分内容来源于网络,个人收集整理,请勿传播
提到数据同步就必然会谈到rsync
,一般简单的服务器数据传输会使用ftp/sftp
等方式,但是这样的方式效率不高,不支持差异化增量同步也不支持实时传输。针对数据实时同步需求大多数人会选择rsync+inotify-tools
的解决方案,但是这样的方案也存在一些缺陷(文章中会具体指出),sersync
是国人基于前两者开发的工具,不仅保留了优点同时还强化了实时监控,文件过滤,简化配置等功能,帮助用户提高运行效率,节省时间和网络资源。
可靠高效的数据实时同步方式
在同步服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在同步服务器,也就是数据源配置sersync,在同步目标服务器配置rsync。
sersync利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步。
sersync由金山的周洋开发完成,是目前使用较多的文件同步工具之一。该工具和其他的工具相比有如下优点:
- sersync是使用c++编写,由于只同步发生更改的文件,因此比其他同步工具更节约时间、带宽;
- 安装方便、配置简单;
- 使用多线程进行同步,能够保证多个服务器实时保持同步状态;
- 自带出错处理机制,通过失败队列对出错的文件重新出错,如果仍旧失败,则每10个小时对同步失败的文件重新同步;
- 自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次;
- 自带socket与http协议扩展,你可以方便的进行二次开发;
阅读原文 - http://wsgzao.github.io/post/sersync/
扩展阅读
基于rsync+sersync的服务器文件同步实战 - http://www.markdream.com/technologies/server/syncfile-by-rsync.shtml
通过 rsync sersync 实现高效的数据实时同步架构 - https://www.cnhzz.com/rsync_sersync/
rsync - https://rsync.samba.org/
inotify-tools - https://github.com/rvoicilas/inotify-tools
sersync - http://code.google.com/p/sersync/
环境
单方面同步
- 192.168.115.129 同步端
- 192.168.115.135 数据源
双向同步
- 192.168.115.129 同步端&数据源
- 192.168.115.135 数据源&同步端
同步端配置rsync
在192.168.115.129机器上配置好rsync同步模块
1 | yum install -y rsync |
启动rsync
1 | echo "rsync:rsync@123" > /etc/rsync.pass |
在192.168.115.135做测试
1 | echo "rsync@123" > /etc/rsync.pass |
数据源做sersync2
下载安装sersync2
1 | wget https://github.com/wsgzao/sersync/raw/master/sersync2.5.4_64bit_binary_stable_final.tar.gz |
修改sersync2配置
1 | vim /etc/confxml.xml |
启动sersync2
1 | sersync2 -r -d -o /etc/confxml.xml |
另一端配置
在192.168.115.135机器上配置好rsync同步模块
1 | yum install -y rsync |
启动rsync
1 | echo "rsync:rsync@123" > /etc/rsync.passt |
在192.168.115.129做测试
1 | echo "rsync@123" > /etc/rsync.passt |
修改sersync2配置
1 | vim /etc/confxml.xml |
启动sersync2
1 | sersync2 -r -d -o /etc/confxml.xml |
双向同步完成
进行测试
192.168.115.129
1 | cd /data/ftp |
192.168.115.135
1 | cd /data/ftp |
在两端查看文件同步结果
测试完成