1.概述
背景
之前我们通过rsync+定时任务实现定时备份/同步
对于NFS我们需要进行实时同步
选择
分布式存储
使用实时同步服务+NFS.
选择公有云对象存储OSS,七牛存储,腾讯存储COS.
选择: nfs+实时同步工具
inotify(bug需要书写脚本,不推荐使用.):是个命令监控指定目录是否发生变化
sersync(国产开源,内置inotify+rsync命令,一个命令+一个配置文件)
lsyncd
1.1Sersync原理及架构

2.部署及使用
1.部署,及修改相关配置文件,详情见下方图
目录规划:
/app/tools/sersync/
/app/tools/sersync/bin/
/app/tools/sersync/conf/
修改之前:
GNU-Linux-x86/
GNU-Linux-x86/sersync2
GNU-Linux-x86/confxml.xml
修改完成后样子:
[root@nfs01 /app/tools/sersync]# tree
.
├── bin
│ └── sersync2
└── conf
└── confxml.xml
2.启动sersync
创建软连接
ln -s /app/tools/sersync/bin/sersync2 /bin/
启动服务端
sersync2 -rdo /app/tools/sersync/conf/confxml.xml
关闭服务需要使用kill+pid或pkill
3.接入nfs服务
服务端配置
/data/ 172.16.1.0/24(rw)
客户端挂载
mount -t nfs 172.16.1.31:/data/ /upload/

##参考配置如下
<sersync>
<localpath watch="/nfs">
<remote ip="10.0.0.41" name="nfs"/>
<!--<remote ip="192.168.8.39" name="tongbu"/>-->
<!--<remote ip="192.168.8.40" name="tongbu"/>-->
</localpath>
<rsync>
<commonParams params="-az"/>
<auth start="true" users="rsync_backup" passwordfile="/opt/rsycn.password"/>
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/var/log/rsync_fail_log.log" timeToExecute="60"/><!--default every 60mins execute once-->
<crontab start="false" schedule="600"><!--600mins-->
<crontabfilter start="false">
<exclude expression="*.php"></exclude>
<exclude expression="info/*"></exclude>
</crontabfilter>
</crontab>