期中架构-第四章-实时同步服务知识梳理

期中架构-第四章-实时同步服务知识梳理
======================================================================

01. 课程概念介绍
01.为什么要用实时同步服务
因为定时任务有缺陷,一分钟以内的数据无法进行同步,容易造成数据丢失

02.实时同步的工作原理
a 创建储存数据的目录
b 利用实时同步软件监控我们进行备份的数据目录
c 利用rsync服务镜像数据推送传输备份


02. 实时同步服务软件部署
1)inotify+rsync实现实时同步备份

第一个里程:将inotify安装成功 (装在存储服务器上)
rpm -qa inotify-tools

重要补充:
[root@nfs01 ~]# rpm -ql inotify-tools 查看软件包
/usr/bin/inotifywait 实现数据目录信息变化监控的命令(重点了解)
/usr/bin/inotifywatch 监控数据信息变化,对变化数据进行统计


[root@nfs01 ~]# cd /proc/sys/fs/inotify/
[root@nfs01 inotify]# ll
total 0
-rw-r--r-- 1 root root 0 May 12 11:10 max_queued_events
-rw-r--r-- 1 root root 0 May 12 11:10 max_user_instances
-rw-r--r-- 1 root root 0 May 12 11:10 max_user_watches
max_queued_events:设置inotifywatch或inotifywait命令可以监控的文件数量(单进程)
默认最多监控8192个文件
max_user_instances:设置每个用户可以运行的 inotifywatch或inotifywait命令的进程数
默认每个用户可以开启inotify服务的128个进程
max_user_watches : 设置inotify实例事件(event)队列可容纳的事件数量
默认监控事件队列长度为16384

第二个里程:将rsync守护进程服务部署完成
rsync服务端部署
a 检查rsync服务是否安装
b 编写rsync主配置文件
c 创建备份目录管理用户
d 创建备份目录,并授权给管理用户
e 创建认证文件,编写认证用户和密码信息,并设置文件权限为600
f 启动rsync守护进程服务

rsync客户端部署
a 检查rsync服务是否安装
b 创建认证文件,编写认证用户密码信息即可,不需要用户信息,设置文件权限为600
c 利用客户端进行数据同步测试


第三个里程:要让inotify软件和rsync软件服务建立连接(通过shell脚本实现)
rsync软件应用命令:
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password


inotify软件应用命令:
inotifywait
-m 始终保持事件监听状态
-r 进行递归监控
-q 无用的输出信息,不进行显示
--timefmt 设定日期的格式
--format 命令执行过程中。输出的信息格式
-e 指定监控的事件信息
man inotifywait 查看所有参数说明和所有可以监控的事件信息

-e参数主要用到的监控的事件信息:
create创建 delete删除 move——to移入 close_write修改

inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" /data 相对完整的命令应用
inotifywait -mrq --timefmt "%F" --format "%T %w%f 事件信息:%e" -e create /data 指定监控创建事件

inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /data
以上是实现实时同步过程,所需要的重要监控命令

编写脚本:实现inotify与rsync软件的结合
#!/bin/bash
####################
inotifywait -mrq --format "%w%f" -e create,delete,moved_to,close_write /data|\
while read line
do
rsync -az --delete /data/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password


shell循环语法总结:
for循环 for xx in 循环条件内容信息;do xxx;done
while循环 while 循环条件;do xx ; done 《--只要满足条件,就一直循环
while true;do xx ;done 《--死循环

运维工作中编写自动化脚本规范:
1.先完成基本功能需求
2.优化完善脚本内容
3.协商一些注释说明信息
4.进行反复测试

第四个里程:进行最终测试
sh -x intofy.sh
#############################################################

sersync+rsync实现实时同步备份
第一个里程:下载安装sersync软件
先下载软件,把软件包传到系统上
unzip sersync_installdir_64bit.zip
cd sersync_installdir_64bit
mv sersync /usr/local/
tree

第二个里程编写sersync配置文件
[root@nfs01 local]# vim sersync/conf/confxml.xml

6 <filter start="false">
7 <exclude expression="(.*)\.svn"></exclude>
8 <exclude expression="(.*)\.gz"></exclude>
9 <exclude expression="^info/*"></exclude>
10 <exclude expression="^static/*"></exclude>
11 </filter>
说明:实现同步数据过滤排除功能,默认是关闭的<filter start="false">

<inotify>
3 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="false"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="false"/>
20 <modify start="false"/>
21 </inotify>
说明:类似于inotify的-e参数,指定监控的事件信息


24 <localpath watch="/data">
25 <remote ip="172.16.1.41" name="backup"/>
26 <!--<remote ip="192.168.8.39" name="tongbu"/>-->
27 <!--<remote ip="192.168.8.40" name="tongbu"/>-->
28 </localpath>
29 <rsync>
30 <commonParams params="-az"/>
31 <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
32 <userDefinedPort start="false" port="874"/><!-- port=874 -->
33 <timeout start="false" time="100"/><!-- timeout=100 -->
34 <ssh start="false"/>
说明:以上内容是数据同步推送的配置信息,类似于
rsync -az --delete /data/ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
是必须要调整修改的

 

 



第三个里程:应用sersync软件,实现实时同步
[root@nfs01 proc]# cd /usr/local/sersync/
[root@nfs01 sersync]# cd bin/
[root@nfs01 bin]# ll
total 1768
-rw-r--r-- 1 root root 1810128 Oct 26 2011 sersync
[root@nfs01 bin]# chmod +x sersync 《---文件默认没有执行权限,所以给它加上x权限

sersync命令参数:
参数-d: 启用守护进程模式
参数-r: 在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
参数-o: 指定配置文件,默认使用confxml.xml文件

/usr/local/sersync/bin/sersync -dro /usr/local/sersync/conf/confxml.xml 绝路路径启动服务

posted @ 2020-05-12 17:23  王子建  阅读(138)  评论(0)    收藏  举报