第1章 数据实时同步介绍 1.1 什么是实时同步:如何实现实时同步
A. 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化
B. 发现目录中数据产生变化,就利用rsync服务推送到备份服务器上
1.2 实现实时同步的方法inotify+rsync 方式实现数据同步
sersync 方式实现实时数据同步
1.2.1 实时同步原理介绍 1.3 inotify+rsync 方式实现数据同步 1.3.1 Inotify简介Inotify是一种强大的,细粒度的。异步的文件系统事件监控机制,linux内核从2.6.13起,加入了 Inotify支持,通过Inotify可以监控文件系统中添加、删除,修改、移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而 inotify-tools 正是实施这样监控的软件。国人周洋在金山公司也开发了类似的实时同步软件sersync。
提示信息:
sersync软件实际上就是在 inotify软件基础上进行开发的,功能要更加强大些 ,多了定时重传机制,过滤机制了提供接口做 CDN,支持多线程橾作。
Inotify实际是一种事件驱动机制,它为应用程序监控文件系统事件提供了实时响应事件的机制,而无须通过诸如cron等的轮询机制来获取事件。cron等机制不仅无法做到实时性,而且消耗大量系统资源。相比之下,inotify基于事件驱动,可以做到对事件处理的实时响应,也没有轮询造成的系统资源消耗,是非常自然的事件通知接口,也与自然世界事件机制相符合。
inotify的实现有几款软件:
inotify-tools,sersync,lrsyncd
1.3.2 inotify+rsync使用方式inotify 对同步数据目录信息的监控
rsync 完成对数据信息的实时同步
利用脚本进行结合
1.4 部署inotify软件的前提需要2.6.13以后内核版本才能支持inotify软件。2.6.13内核之后版本,在没有安装inotify软件之前,应该有这三个文件。
[root@backup ~]# ll /proc/sys/fs/inotify/ total 0 -rw-r--r-- 1 root root 0 Oct 17 10:12 max_queued_events -rw-r--r-- 1 root root 0 Oct 17 10:12 max_user_instances -rw-r--r-- 1 root root 0 Oct 17 10:12 max_user_watches
1.4.1 三个重要文件的说明文件
默认值
作用说明
max_user_watches
8192
设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)
max_user_instances
128
设置每个用户可以运行的inotifywait或inotifywatch命令的进程数
max_queued_events
16384
设置inotify实例事件(event)队列可容纳的事件数量
1.4.2 【服务优化】可以将三个文件的数值调大,监听更大的范围 1.4.3 【官方说明】三个重要文件
[root@nfs01 ~]# man proc /proc/sys/fs/inotify (since Linux 2.6.13) This directory contains files max_queued_events, max_user_instances, and max_user_watches, that can be used to limit the amount of kernel memory consumed by the inotify interface. for further details, see inotify(7).
通过man手册的第7级别中查到 inotify的默认文件的详细说明。
[root@nfs01 ~]# man 7 inotify /proc/sys/fs/inotify/max_queued_events The value in this file is used when an application calls inotify_init(2) to set an upper limit on the number of events that can be queued to the corresponding inotify instance. Events in excess of this limit are dropped, but an IN_Q_OVERFLOW event is always generated. /proc/sys/fs/inotify/max_user_instances This specifies an upper limit on the number of inotify instances that can be created per real user ID. /proc/sys/fs/inotify/max_user_watches This specifies an upper limit on the number of watches that can be created per real user ID. 1.5 inotify软件介绍及参数说明 1.5.1 两种安装方式
1) yum install -y inotify-tools
2) 手工编译安装
注:
YUM 安装需要有epel源
手工编译安装方式需要到github上进行下载软件包
inotify软件的参考资料链接:
https://github.com/rvoicilas/inotify-tools/wiki
1.5.2 inotify主要安装的两个软件
inotifywait: (主要)