如何实现Linux多台服务器间的文件双向同步

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何实现Linux多台服务器间的文件双向同步相关的知识,希望对你有一定的参考价值。

参考技术A 1.跨平台使用;
2.对内核和用户权限没有特别要求;
3.Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;
4.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。

rsync + inotify 实现多台服务器数据同步

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

方案实施:

技术图片

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
技术图片
2 rsync服务器端,也就是web所在服务器,如web1,仅安装rsync即可
yum -y install rsync
编辑rsync配置文件vim /erc/rsyncd.conf:
技术图片
3,启动rsync服务:
systemctr start rsyncd

4,在rsync客户端上编写rsync脚本,赋予可执行权限:
技术图片
然后执行 ./rsync.sh &
在客户端写入一个测试文件,然后在其他服务器上查看是否同步。

以上是关于如何实现Linux多台服务器间的文件双向同步的主要内容,如果未能解决你的问题,请参考以下文章

多台服务器间 数据库和文件如何同步,用啥工具比较好。

Linux 远程同步:rsync

Linux Debian8 Rsync+Sersync实现数据实时同步

如何配置多台mysql 服务器?

Ftrans文件同步系统异于其他同步软件的6点分析

多台服务器之间如何让sqlserver,mysql数据库进行数据同步?