环境分析:
目前环境4台web服务器采用共享存储技术,由于nas服务最近频繁掉线,影响网站访问,故计划采用对象存储方案。我们云环境补救措施可以用多台Linux服务器做存储,配合rsync(同步)+notify(触发)实现服务器数据同步。

方案实施:

rsync + inotify 实现多台服务器数据同步_第1张图片

1、方案分析:
每台web服务器上分别挂载一个存储盘/newweb,将原先网站访问资源指向/otherweb的路径修改至这个/newweb,由于磁盘容量没有nas大,可以将web用到的数据源,如图片、网页等放在这个路径下,邮箱、日志等继续放在nas下,即便nas掉线,也不影响网站正常访问。
2、同步步骤:
Master 作为主控制点,每次更新资源在master上,master会实时检查文件是否有更新,如果更新,则会同步数据到web1-web4上面,如果没有更新,则不会同步,这样可以减少服务器不必要的负载,同时master也可作为备份服务器。
3、技术分析:
Inotify,它是一个内核用于通知用户空间程序文件系统变化的机制,也是一种文件系统的变化通知机制,如文件增加、删除等事件可以立刻让用户态得知。
 rsync其实就是remote  rsync,它是一个远程同步工具,兼具cp和scp的功能,rsync命令的使用几乎和scp是一样一样的。rsync是通过超级守护进程xinetd进行触发同步的。
rsync+inotify组合是触发式更新,只要有数据变化,就立刻同步更新
编写rsync脚本,实现数据实时同步,可将脚本后台执行。

下面开始操作步骤:
1)rsync客户端master服务上安装rsync,inotify :
yum -y install rsync
rsync + inotify 实现多台服务器数据同步
2 rsync服务器端,也就是web所在服务器,如web1,仅安装rsync即可
yum -y install rsync
编辑rsync配置文件vim /erc/rsyncd.conf:
rsync + inotify 实现多台服务器数据同步_第2张图片
3,启动rsync服务:
systemctr start rsyncd

4,在rsync客户端上编写rsync脚本,赋予可执行权限:
rsync + inotify 实现多台服务器数据同步_第3张图片
然后执行 ./rsync.sh &
在客户端写入一个测试文件,然后在其他服务器上查看是否同步。