Linux系统运维之nfs文件存储实时复制数据备份(同步)
前言
数据的实时复制备份能够保证用户的重要的数据不丢失,数据一有变化就备份到备份服务器上,保证数据的安全。要实现这个功能就要用到rsync(远程复制)服务和监控服务Inotify机制(inotify-tools、sersync、Irsyncd),这里需要配置好rsync服务,可参考小编以前的rsync介绍篇
https://editor.****.net/md/?articleId=108039236
一、inotify机制介绍
Inotify是一种异步事件监控机制,Linux内核从2.6.13起,加入了Inotify支持,通过Inotify可以监控文件中增、删、改、查、移动等各种事件,利用这个内核的接口,第三方的软件(inotify-tools、sersync、Irsyncd)就可以监控文件系统下文件的各种变化。
Inotify程序原理是一种事件驱动机制,它为应用程序监控文件机制事件提供了实时响应事件的机制,可以做到对事件处理的实时响应。
Inotify机制优点
监控文件系统事件变化,通过复制工具实现数据实时同步备份,支持多线程实时复制
Inotify机制缺点
实测并发如果大于200个文件(10-100k),复制就会有所延迟,文件的数量或者大小越大,复制延迟就越长。
二、实现所需软件及配置
1、inotify-tools
1)安装
安装inotify-tools
yum install epel-release -y (先安装)
yum install inotify-tools -y
2)实现监控命令inotifywait
参数介绍:
参数 | 解释说明 |
---|---|
-m(–monitor) | 始终保持事件监听状态(重要参数) |
-d(–daemon) | 类似于-m参数,只是将命令运行在后台,记录触发的事件信息在指定文件中 |
-r | 递归监控目录数据信息变化(重要参数) |
-e | 指定监听的事件,如果省略表示对所有的事件进行监听(重要参数) |
-o(outfile) | 打印事件到文件中,相当于标准正确输出 |
-s(–syslog) | 发送错误到syslog中,相当于标准错误输出 |
-q(–quiet) | 输出信息少(打印事件信息) |
-excludei | 排除文件或者目录,不区分大小写 |
-timemt | 指定时间输出的格式 |
–format |
被监控的文件的事件
事件名称 | 时间说明 |
---|---|
access | 文件或者目录被读取 |
midify | 文件或者目录被写入 |
attrib | 文件或目录属性改变 |
close_write | 文件或目录关闭,在写入模式打开之后关闭的(重要) |
close_nowrite | 文件或目录关闭,在只读模式打开后关闭的 |
close | 文件或目录关闭,不管是读或只读模式 |
open | 文件或目录被打开 |
moved_to | 文件或目录被移动到监听的目录中 |
moved_from | 文件或目录被移动从监听的目录中 |
create | 文件或目录被创建在监控的目录中(重要) |
delete | 文件或目录被删除在监听的目录中 |
delete_self | 文件或目录被删除 |
unmount | 文件系统包含的文件会目录不能卸载 |
2、sersync
安装sersync软件:
参考:
https://www.cnblogs.com/knight-zhou/p/12067602.html
sersync的配置文件路径:
编辑软件安装路径下面的confxml.xml文件