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

Linux系统运维之nfs文件存储实时复制数据备份(同步)
参数介绍:

参数 解释说明
-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

Linux系统运维之nfs文件存储实时复制数据备份(同步)
sersync的配置文件路径:
编辑软件安装路径下面的confxml.xml文件
Linux系统运维之nfs文件存储实时复制数据备份(同步)
Linux系统运维之nfs文件存储实时复制数据备份(同步)