1.综合架构-第3个服务-实时同步服务-sersync
1.1概述
应用场景: 对存储(或类似要求的服务)要求对其中的数据进行实时同步(备份),同步到指定的机器.
1.2可用选择
实时同步选择 | 应用 | 问题 |
---|---|---|
inotify | 本身不能实时同步,做监控,监控指定目录的变化,显示变化的文件/目录.inotify+脚本(rsync) | 性能不高 |
sersync | 内置了inotify和sersync命令,监控+传输,性能好。通过配置文件控制 | 没怎么更新 |
drbd | 同步是基于磁盘分区级别(block),给数据库做高可用 | 主节点,备节点。主节点正常的时候,备节点不可用 |
1.3原理
1.4配置文件
1)环境准备
mkdir -p /server/tools /app/tools
cd /server/tools
tar -zvxf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /app/tools/
cd /app/tools
mv GNU-Linux-x86/ sersync
[root@nfs01 /app/tools/sersync]# ll
总用量 1772
-rwxr-xr-x 1 root root 2214 10月 26 2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 10月 26 2011 sersync2
[root@nfs01 /app/tools/sersync]# chmod -x confxml.xml
[root@nfs01 /app/tools/sersync]# ll
总用量 1772
-rw-r--r-- 1 root root 2214 10月 26 2011 confxml.xml
-rwxr-xr-x 1 root root 1810128 10月 26 2011 sersync2
2)配置文件详解
配置文件详解
1.4实战
1)环境准备
环境准备 | 运行服务 | |
---|---|---|
nfs存储服务 | 运行sersync,监控/nfsdata目录,nfs服务此时可以没有运行 | |
backup服务端 | 运行rsync守护模式,共享目录/nfsbackup/,模块名字nfsbackup |
1.rsync服务端,共享/nfsbackup 模块叫nfsbackup
2.sersync配置,启动
3.测试
2)rsync服务端与客户端准备
a)服务端配置
1.修改配置文件增加模块
backup:
[root@backup ~]# vi /etc/rsyncd.con
[nfsbackup]
comment = "backup dir by hb"
path = /nfsbackup
systemctl restart rsyncd.service
2.创建目录
mkdir /nfsbackup
3.修改所有者
chown -R rsync:rsync /nfsbackup
b)客户端测试
[root@nfs01 /etc]# rsync -avz /etc/hostname rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.pass
sending incremental file list
hostname
sent 100 bytes received 43 bytes 95.33 bytes/sec
3)nfs准备共享目录
直接创建目录即可,未来你要准备nfs服务端的配置.
mkdir -p /nfsdata
4)sersync配置与检测
a)配置
1.备份
cp confxml.xml confxml.xml.231020.bak
2.confxml.xml:
[root@nfs01 /app/tools/sersync]# diff confxml.xml confxml.xml.231020.bak
24,25c24,25
< <localpath watch="/nfsdata">
< <remote ip="172.16.1.41" name="nfsbackup"/>
---
> <localpath watch="/opt/tongbu">
> <remote ip="127.0.0.1" name="tongbu1"/>
30,31c30,31
< <commonParams params="-az"/>
< <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/>
---
> <commonParams params="-artuz"/>
> <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
36c36
< <failLog path="/var/log/sersync.log" timeToExecute="60"/><!--default every 60mins execute once-->
---
> <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
b)启动服务
./sersync2 -dro confxml.xml
1.检查进程
pa -ef|grep sersync
root 7082 1 0 19:35 ? 00:00:00 ./sersync2 -dro confxml.xml
root 7104 6642 0 19:36 pts/0 00:00:00 grep --color=auto sersync
2.检查结果
nfs01:
cd /nfsdata
touch hbinz{1..10}.txt
backup:
root@backup /]# cd /nfsbackup/
[root@backup /nfsbackup]# ll
总用量 0
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz10.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz1.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz2.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz3.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz4.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz5.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz6.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz7.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz8.txt
-rw-r--r-- 1 rsync rsync 0 10月 20 19:37 hbinz9.txt
6)补充命令路径的问题
执行命令如果没有找到提示command not found
#解决方法
#方法01 使用命令绝对路径
#方法02 命令创建软连接放到/bin/或/sbin/
#方法03 修改PATH环境变量.
解决办法: | 应用场景 | |
---|---|---|
方案01:使用命令绝对路径 | 临时使用.如果经常使用推荐方法02或03 | |
方案02:命令创建软连接放到/bin或/sbin | 这种方法仅适用于少量命令的使用 | |
方案03:修改PATH环境变量 | 有多个命令,推荐使用本方案 | |
ln -s /app/tools/sersync/sersync2 /bin/ |
1.5sersync补充:监控多个目录
使用多个配置文件监控多个目录
准备多个配置文件即可.
sersync2 -dro /app/tools/sersync/confxml.xml #监控nfsdata目录
sersync2 -dro /app/tools/sersync/confxml-nfs02data目录.xml #监控第2个目录