一、准备rsync

在backup备份服务器上准备好rsync。即完成nfs客户端到backup服务端的rsync部署------rsync备份搭建

二、inotify

inotify是一种异步文件系统事件监控机制,linux内核从2.6.13开始支持。它可以监控文件系统中添加、删除、修改、移动等各种事件。

nfs客户端安装inotify:

先检查内核版本:uname -r (2.6.13以上版本支持)

检查有没有目录:ls -l /proc/sys/fs/inotify/,有此目录表示支持

检查有没有安装:rpm -qa inotify-tools

若没有,则安装,先安装第三方源:

wget -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

再安装inotify:

yum install inotify-tools -y

rpm -qa inotify-tools -再次检查

安装完后工具集介绍:

inotifywait:在被监控的文件或目录上等待特定文件系统事件(open,close,delete等)发生,执行后处于阻塞状态,适合在shell脚本中使用。

inotifywatch:收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数统计。

inotifywait参数详解:

-m:保持实时监控

-q:仅仅打印监控事件的信息

--excludei:排除文件或目录时,不区分大小写

-d:后台运行

-r:递归,可对子目录进行监控

-e:指定需要监控的事件(

如access-文件或目录被读取,

modify-文件或目录内容被修改,

attrib-文件或目录属性被改变,

close-文件或目录封闭,无论读/写模式,

open-文件或目录被打开,

moved_to-文件或目录被移到另一个目录,

move-文件或目录被移到另一个目录或者从其他目录移到当前目录,

create-文件或目录被创建在当前目录,

delete-文件或目录被删除,

unmount-文件系统被卸载)

人工测试事件:

开启两个窗口(同一台机器):

1】测试create

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create /backup

2】监控delete

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,delete /backup

3】监控修改

inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e close_write /backup

三、当监控到nfs目录文件系统事件变化后,触发rsync推送变化的文件

cd /server/scripts

vi inotify.sh

#!/bin/bash
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f' -e create,close_write,delete /backup|while read file
docd /backup &&\rsync -az ./ --delete rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password
done

给脚本执行权限:chmod +x inotify.sh

加入后台进程(守护进程daemon)运行

vi /etc/init.d/syncd

#!/bin/bash
chkconfig: 2345 38 46
. /etc/init.d/functions
if [ $# -ne 1 ];thenusage: $0 [start|stop]exit 1
fi
case "$1" in
start)/bin/bash  /server/scripts/inotify.sh &echo $$ >/var/run/inotify.pidif [ `ps -ef|grep inotify|wc -l` -gt 2];thenaction "inotify service is started" /bin/trueelseaction "inotify service is started" /bin/falsefi;;
stop)kill -9 `cat /var/run/inotify.pid` >/dev/null 2>&1pkill inotifywaitsleep 2if [ `ps -ef|grep inotify|grep -v grep|wc -l` -eq 0];thenaction "inotify service is stopped" /bin/trueelseaction "inotify service is stopped" /bin/falsefi;;
*)

接着执行:chmod +x /etc/init.d/syncd

然后:chkconfig --add syncd

检查:chkconfig --list syncd

启动:/etc/init.d/syncd start

inotify调优:

在/proc/sys/fs/inotify目录下有三个文件,对其有一定的限制。

max_user_watches:设置命令可监视的文件数量(单进程)

max_user_instances:设置每个用户可以运行的命令的进程数

max_queued_events:设置inotify实例事件队列可容纳的事件数量

实战调整:

echo "50000000" >/proc/sys/fs/inotify/max_user_watches

echo "50000000" >/proc/sys/fs/inotify/max_queued_events

可能重启会失效,加入到/etc/rc.d/rc.local

inotify优点:

1、监控文件系统实时变化,通过同步工具实现实时数据同步

缺点:

1、并发如果大于200个文件(10-100k),同步就会有延迟

2、监控到事件后,调用rsync同步是单进程的(加&并发),sersync多进程同步

既然inotify-tools可以,为什么还要用sersync?

sersync功能多

1、支持配置文件

2、真正的守护进程

3、可以对失败文件定时重传

4、第三方的http接口(例如更新CDN缓存)

5、默认多线程rsync同步

高并发数据实时同步方案小结

1、inotify(sersync)+rsync.是文件级别的

2、drdb文件系统级别,基于block块同步,缺点:备节点数据不可用,只有主节点坏了才用

3、第三方软件的同步功能:

mysql同步,oracle,mongodb

4、程序双写,直接写两台服务器

5、通过业务逻辑解决:读写分离,备读不到,读主

6、NFS集群(双写主存储,备存储用inotify(sersync)+rsync,备没有找主解决延迟问题)

搭建rsync+inotify实时同步相关推荐

  1. Centos7 下 配置 rsync 以及 rsync+inotify 实时同步

    Centos 7 下 配置 Rsync 以及 rsync+inotify 实时同步 rsync介绍 rsync是一个开源的快速备份工具,可以在不同主机之间镜像同步整个目录树,支 持增量备份,保持链接和 ...

  2. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步

    1.什么是 Rsync? Rsync 是一个开源的快速备份工具,是Linux和UNIX操作系统默认安装的组件之一,可在不同主机间镜像同步整个目录,并支持增量备份文件传输,保持链接和权限,采用优化的同步 ...

  3. Rsync+inotify 实时同步

     Rsync+inotify 实时同步(触发式) ========================================================================= ...

  4. inotify介绍及rsync + inotify 实时同步备份

    1.前言 rsync (remote sync)是一款非常好的数据同步工具,能够通过对比同步双方的数据变动,实现增量同步,还可以通过LAN/WAN实现远程多台主机间文件的同步,还能结合crond任务计 ...

  5. centos 6.5 rsync+inotify 实时同步

    主机名.ip: server 172.31.82.184 client  172.31.82.185 需求: 1.server端 "/data/server" 做为client端 ...

  6. rsync+inotify实时同步实操

    rsync概述 一款快速增量备份工具 可以实现远程同步 支持本地复制,或者与其他SSH,rsync主机同步 配置操作 rsync 服务端:20.0.0.185 客户端:20.0.0.186 安装rsy ...

  7. Rsync下行同步+inotify实时同步介绍和部署

    Rsync下行同步+inotify实时同步介绍和部署 一.Rsync 1.Rsync同步源 2.Rsync服务器 3.同步方式 二.配置rsync源 三.rsync命令 四.配置源的两种表示方法 1. ...

  8. rsync下行同步与inotify实时同步

    rsync下行同步与inotify实时同步 一.rsync工具 二.定时同步与实时同步 三.配置rsync源 四.rsync命令 五.配置源的两种表示方法 六.inotify 七.配置rsync下行同 ...

  9. rsync同步+inotify实时同步部署

    目录 一.rsync简介 二.rsync同步源 三.配置rsync源 1.基本思路 2.rsync命令 3.配置源的两种表达方式 4.免交互格式 四.配置rsync远程同步 1.关防火墙.安装相应的软 ...

最新文章

  1. LightOJ - 1038 Race to 1 Again 基础期望概率 dp
  2. SQL 中循环、for循环、游标
  3. Cookie的生命周期
  4. 移动全平台性能测试工具PerfDog--安装及运行
  5. linux mysql 端口配置文件_Linux配置测试环境,部署项目(指定端口,数据库连接)...
  6. 七、spring生命周期之初始化和销毁方法
  7. echarts 生成 迁徙图_百度地图+echarts(迁徙图)
  8. 三维扫描仪在工业生产中的作用
  9. 给自己的django项目配置域名
  10. 一根网线连接两台电脑
  11. 使用tkinter canvas绘制中国象棋棋盘
  12. KNEEL: Knee Anatomical Landmark Localization Using Hourglass Networks
  13. 利用华为云ECS服务器搭建安防视频监控平台
  14. 風地觀 (易經大意 韓長庚)
  15. 2020中国上市公司品牌价值榜20强发布
  16. python飞机大战没有运行界面_python3实现飞机大战
  17. 华工计算机组成原理第一次作业,华工网络教育学院2018计算机组成原理作业
  18. android之cpu使用率
  19. 北航博士生联培申请经验
  20. 基于Java的宿舍管理系统

热门文章

  1. Python 第三方模块 统计1 statsmodels模块2 时间序列
  2. 一种基于浏览器的自动小票机打印实现方案
  3. 【转载】云计算、大数据和人工智能
  4. Java中的DO,DTO,VO,POJO
  5. dlist(随机选择手机品牌列表brandlist)
  6. Camera 3A 入门
  7. 达内java作业_【达内JAVA教程】达内Java基础题
  8. 电子邮件服务器组成部分,电子邮件系统由哪几部分组成?各部分的作用是什么?简述电子邮件的发送过程。...
  9. 黑马程序员 一步一步往上爬 学习毕老师java视频第17,18,19天
  10. 童年游戏 街机 雷电2 一命通关视频