天天看点

rsync+inotify实时同步案例

随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足,首先,rsync同步数据时,需要扫描所有文件后进行比对,进行差量传输。如果文件数量达到了百万甚至千万量级,扫描所有文件将是非常耗时的。而且正在发生变化的往往是其中很少的一部分,这是非常低效的方式。其次,rsync不能实时的去监测、同步数据,虽然它可以通过linux守护进程的方式进行触发同步,但是两次触发动作一定会有时间差,这样就导致了服务端和客户端数据可能出现不一致,无法在应用故障时完全的恢复数据。基于以上原因,rsync+inotify组合出现了!

1.1 inotify介绍

2.1 rsync+inotify同步逻辑图

3.1 环境部署

4.1 inotify-slave部署

4.1.1检查是否安装rsync

4.1.2 新建rsync用户及模块目录并更改其用户组

4.1.3 编写rsync daemon配置文件/etc/rsyncd.conf

4.1.4 配置虚拟用户的密码文件

4.1.5 启动rsync 服务

4.1.6 通过inotify-master测试推送

5.1 inotify-master部署

5.1.1 查看当前系统是否支持inotify

5.1.2 inotify安装

5.1.3 inotify之inotifywait命令常用参数详解

5.1.4 编写监控脚本并加载到后台执行

5.1.5 实时同步测试

inotify是一种强大的、细粒度的、异步的文件系统事件控制机制。linux内核从2.6.13起,加入了inotify支持,通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施监控的软件。

rsync+inotify实时同步案例

2.1基本架构

主机名

IP地址

系统版本

内核版本

inotify master

192.168.42.116

centos 6.8

2.6.32-642.el6.x86_64

inotify slave

192.168.42.112

这里就是部署rsync服务,rsync daemon工作模式。

rsync+inotify实时同步案例

结果

             inotify-master配置密码文件,测试推送

注:

inotify是rsync客户端安装和执行的

企业场景压力测试200-300个同步限制,受网卡,磁盘,带宽等的制约。

inotify-master操作:

inotify-slave检查

这样我们结合inotify的测试就完成了,是不是很简单!

 本文转自 sjfbjs 51CTO博客,原文链接:http://blog.51cto.com/11886896/1872349

继续阅读