sersync,lsyncd实时同步

实时同步概述

(监控端:安装inotify-tools,rsync,准备要传到备份服务器的一端
备份端:存储监控端的一端
监控端增加减少文件,备份端实时同步
备份端增加减少文集,监控端没变化)

  • 什么是实时同步:
    只要当前目录发生变化则会触发一个事件,事件触发后将变化的目录同步至远程服务器;

  • 为什么要实时同步:
    保证数据的连续性,减少人力维护成本,解决nfs单点故障

  • 实时同步实现原理:
    实时同步需要借助inotify通知接口,用来监控目录的变化,如果监控的目录发生变更,则触发动作,这个动作可以是进行一次同步操作,或其他操作;

  • 实时同步工具选择:
    有sersync、inotify+rsync,通常我们会选择sersync,因为sersync是国人基于rsync+inotify-tools开发的工具,不仅保留了有点同事还强化了试试监控,文件过滤,简化配置等功能,帮助用户提高运行效率,节省时间和网络资源。sersync项目地址

lnotify简介

Inotify是一种强大的,细粒度的,异步的文件系统事件监视机制,Linux2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加,删除,修改,移动等各种事件,利用这个内核接口,第三方软件就可以监控文件系统下文件的各种变化情况,而inotify-tools正是实施这样监控的软件,另外一个这样效果的软件是中国人周洋在金山公司开发的sersync,还有一个配置更简单的软件叫lsyncd

#查看当前系统是否支持inotify
[root@nfs ~]# uname -r
3.10.0-957.27.2.el7.x86_64
[root@nfs ~]# ls -l /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 root root 0 Sep 12 16:17 max_queued_events
-rw-r--r-- 1 root root 0 Sep 12 16:17 max_user_instances
-rw-r--r-- 1 root root 0 Sep 12 16:17 max_user_watches
[root@nfs ~]# rpm -qc inotify-tools
package inotify-tools is not installed
[root@nfs ~]# yum -y install inotify-tools

[root@nfs01 ~]# ls -l /proc/sys/fs/inotify/
总用量 0
-rw-r--r-- 1 root root 0 7月  18 18:06 max_queued_events
-rw-r--r-- 1 root root 0 7月  18 18:06 max_user_instances
-rw-r--r-- 1 root root 0 7月  18 18:06 max_user_watches
########################################################
max_queued_events   =====>设置inotify设置inotify实例事件(event)队列可容纳的事件数量
max_user_instances  =====>设置每个用户可以运行的inotify或者inotifywatch命令的进程数
max_user_watches    =====>设置inotifywait或者inotifywatch命令可以监视的文件数量(单进程)

sysctl命令 被用于在内核运行时动态地修改内核的运行参数,可用的内核参数在目录/proc/sys中。它包含一些TCP/ip堆栈和虚拟内存系统的高级选项, 这可以让有经验的管理员提高引人注目的系统性能。用sysctl可以读取设置超过五百个系统变量。

[root@nfs01 ~]# inotifywait --help
inotifywait参数说明
参数名称            参数说明
-m ,-monitor       始终保持事件监听状态
-r,-recursive      递归查询目录
-q,-quiet          只打印监控事件的信息
-exclude           排除文件或目录时,不区分大小写
-t,-timeout        超时时间
-timefmt           指定时间输出格式
-format            指定时间输出格式
-e,event           后面指定增,删,改等事件
inotifywait events 事件说明
access             读取文件或目录内容
modify             修改文件或目录内容
attrib             文件或目录的属性改变
close_write        修改真实文件内容
close_nowrite   
close   
open               文件或目录被打开
moved_to           文件或目录移动到
moved_from         文件或目录从...移动到
move               移动文件或目录移动到监视目录
create             在监视目录下创建文件或目录
delete             删除监视目录下的文件或目录
delete_self 
umount             卸载文件系统

sersync主要用于服务器同步,web镜像等功能.基于boost1.41.0,inotify api,rsync command开发.

实时同步实践

角色 外围IP(NAT) 内网IP(LAN) 安装工具
web01 eth0:10.0.0.7 eth1:172.16.1.7 部署代码(提交东西)
nfs-server eth0:10.0.0.31 eth1:172.16.1.31 rsync+inotify+sersync
backup eth0:10.0.0.31 eth1:172.16.1.41 rsync
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值