实时同步服务
实时同步服务简介
- 背景:
- rsync+定时任务实现定时备份/同步
- 对于存储服务需要进行实时同步
- 选择:
- nfs+实时同步工具:
- inotify:实时监控文件或目录的变化(创建、修改、删除),监控数量有限,只能用于本地文件系统,不能用于远程同步
- sersync:实时或定时同步文件和目录,能够在本地和远程之间进行数据同步(内置inotify+rsync)
- lsyncd:结合了inotify的实时性和rsync的高效性,能够在文件系统发生变化时自动同步数据
sersync原理

sersync实时同步服务架构图

实时同步服务使用流程
rsync服务准备
# rsync服务端
[nfsbackup]
comment = real time backup nfs
path = /nfsbackup/
# rsync客户端
echo 123 >/etc/client.rsync
chmod 600 /etc/client.rsync
rsync -avz /etc/passwd rsync_backup@backup::nfsbackup --password-file=/etc/client.rsync
接入nfs服务
# 服务端配置
cat /etc/exports
/data/ 172.16.1.0/24(rw)
#客户端挂载
mount -t nfs 172.16.1.31:/data/ /upload/
sersync部署使用⭐⭐⭐⭐⭐
安装部署sersync服务(nfs01)
# 1.下载sersync压缩包
[root@nfs01 ~]# wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
# 2.解压压缩包
[root@nfs01 ~]# tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
GNU-Linux-x86/
GNU-Linux-x86/sersync2
GNU-Linux-x86/confxml.xml
# 3.创建目录机构
mkdir -p /app/tools/sersync/bin/
mkdir -p /app/tools/sersync/conf/
# 4.移动文件
[root@nfs01 ~]# mv GNU-Linux-x86/confxml.xml /app/tools/sersync/conf/
[root@nfs01 ~]# mv GNU-Linux-x86/sersync2 /app/tools/sersync/bin/
[root@nfs01 ~]# tree /app/tools/sersync/
/app/tools/sersync/
├── bin
│ └── sersync2
└── conf
└── confxml.xml
sersync配置文件

- /etc/rsync.passwd密码文件必须配置权限
- ERROR: password file must not be other-accessible
- chmod 600 /etc/rsync.passwd
启动sersync
| sersync2命令选项 |
| -h |
help 显示帮助信息 |
| -d |
daemon 启动守护进程模式(后台运行) |
| -o |
option explanation 指定配置文件,默认使用confxml.xml文件 |
| -r |
recursive 在监控前,将监控目录与远程主机用rsync命令推送一遍 |

# 创建软连接
ln -s [源文件或目录] [目标链接]
[root@nfs01 ~]# ln -s /app/tools/sersync/bin/sersync2 /root/bin/sersync2
# 启动服务端
sersync2 -rdo /app/tools/sersync/conf/confxml.xml
关闭服务需要使用kill+pid或pkill