rsync+sersync实现多台服务器实时同步

一.简介

1.1.rsync简介

rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

它的特性如下:

可以镜像保存整个目录树和文件系统。

可以很容易做到保持原来文件的权限、时间、软硬链接等等。

无须特殊权限即可安装。

快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync 在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接。

支持匿名传输,以方便进行网站镜象。

1.2.sersync简介

在分布式应用中会遇到一个问题,就是多个服务器间的文件如何能始终保持一致。一种经典的办法是将需要保持一致的文件存储在NFS上,这种方法虽然简单方便但却将本来多点的应用在文件存储上又变成了单点,这违背了分布式应用部署的初衷。为了保留多点特性,文件仍然保存在各服务器上,那就需要在每个服务器中保持文件的同步。

服务器同步的解决方案有很多。比较流行的有inotify-tools+rsync和Openduckbill(依赖于inotify-tools)。现在介绍一个解决方案sersync,相对上面两个项目有以下优点:

(1)sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤,所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。

(2)sersync配置起来很简单,其中bin目录下已经有基本上静态编译的2进制文件,配合bin目录下的xml配置文件直接使用即可。

(3)使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。

(4)有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则按设定时长对同步失败的文件重新同步。

(5)自带crontab功能,只需在xml配置文件中开启,即可按要求隔一段时间整体同步一次。无需再额外配置crontab功能。

(6)能够实现socket与http插件扩展。

二.同步原理图

2.1.同步原理图

2.2.同步机制概述

三台机器都安装rsync软件,0.1机器和0.3机器安装一个sersync服务,0.2安装两个sersync服务。

   同步原理:0.1和0.2机器互相同步,0.2和0.3机器互相同步。

  (1)假设0.1机器有新文件产生或者旧文件有新变动,sersync会检测到目录变化,通过rsync同步到0.2机器上,这时候0.2上的sersync2会检测到目录发生变化,通过rsync同步文件到0.3机器。

  (2)假设0.2机器有新文件产生或者旧文件有新变动,sersync检测到目录变化,通过rsync同步到0.1机器上,sersync2检测到目录变化,通过rsync同步到0.3机器上。

  (3)假设0.3机器有新文件产生或者旧文件有新变动,sersync会检测到目录变化,通过rsync同步到0.2机器上,这时候0.2上的sersync检测到目录发生变化,通过rsync同步文件到0.1机器上。

三.rsync安装与sersync配置同步

3.1.rsync安装

3.1.1.安装rsync

192.168.0.1、0.2、0.3节点都按照下面步骤安装rsync

Centos6.5系统默认安装rsync,如下图所示:

如果没有安装的话,请加最下方博主微信获取安装包使用下面命令安装:

#rpm –ivh rsync-3.0.6-12.el6.x86_64.rpm

为了方便管理rsync的启停呢,安装xinetd软件,请加最下方博主微信获取安装包使用下面命令安装:

#rpm –ivh xinetd-2.3.14-40.el6.x86_64.rpm

3.1.2.rsync配置

安装完xinetd后要修改以下配置文件:

#vim /etc/xinetd.d/rsync

默认disable = yes,这里需要把yes改成no,

--config是rsync的配置文件,默认没有下面会配置,路径不能写错,修改完后保存退出。

然后是配置rsync的主配置文件及密码文件:

#vim /etc/rsyncd.conf

port = 873

uid = root

gid = root

read only = no

use chroot = yes

transfer logging = true

log format = %h %o %f %l %b

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock

max connections = 30

[rsync]

path = /rsync/data

comment = work rsync

auth users = root

secrets file = /etc/rsyncd.pas

下面是配置密码文件

#vim /etc/rsyncd.pas

root:123456

#chmod 600 /etc/rsyncd.pas

#vim /etc/rsyncd.pas1

123456

#chmod 600 /etc/rsyncd.pas

将rsync添加为系统服务并开机自启动:

#chkconfig –add rsync

#chkconfig rsync on

#service xinetd start

#netstat –anpt | grep 873

3.2.sersync配置同步

3.2.1.节点1配置

192.168.0.1服务器sersync配置

请加最下方博主微信获取安装包

上传软件包sersync_64bit_binary_stable_final.tar.gz到服务器rsync目录下:

#tar –zxvf  sersync_64bit_binary_stable_final.tar.gz

#cd GNU-Linux-x86/

#vim confxml.xml

启动sersync

#/rsync/GNU-Linux-x86/sersync2  -d -r -o /rsync/GNU-Linux-x86/confxml.xml

设置开机自启动:

#echo “/rsync/GNU-Linux-x86/sersync2  -d -r -o /rsync/GNU-Linux-x86/confxml.xml” >> /etc/rc.local

3.2.2.节点2配置

192.168.0.2服务器sersync配置如下

上传软件包sersync_64bit_binary_stable_final.tar.gz到服务器rsync目录下:

#tar –zxvf  sersync_64bit_binary_stable_final.tar.gz

#cd GNU-Linux-x86/

#vim confxml.xml

#vim confxml2.xml

启动sersync

#/rsync/GNU-Linux-x86/sersync2  -d -r -o /rsync/GNU-Linux-x86/confxml.xml

#/rsync/GNU-Linux-x86/sersync2  -d -r -o /rsync/GNU-Linux-x86/confxml2.xml

设置开机自启动:

#echo “/rsync/GNU-Linux-x86/sersync2 -d -r -o /rsync/GNU-Linux-x86/confxml.xml” >> /etc/rc.local

#echo “/rsync/GNU-Linux-x86/sersync2 -d -r -o /rsync/GNU-Linux-x86/confxml2.xml” >> /etc/rc.local

3.2.3.节点3配置

192.168.0.3服务器sersync配置如下

上传软件包sersync_64bit_binary_stable_final.tar.gz到服务器rsync目录下:

#tar –zxvf  sersync_64bit_binary_stable_final.tar.gz

#cd GNU-Linux-x86/

#vim confxml.xml

启动sersync

#/rsync/GNU-Linux-x86/sersync2  -d -r -o /rsync/GNU-Linux-x86/confxml.xml

设置开机自启动:

#echo “/rsync/GNU-Linux-x86/sersync2 -d -r -o /rsync/GNU-Linux-x86/confxml.xml” >> /etc/rc.local

到此为止,三台服务器相互同步已经配置完成,具体效果请看视频演示 

加博主微信获取视频演示

 如果对此有兴趣,请扫下面二维码免费获取更多详情,如果文章对您有帮助,请打赏博主一两毛钱。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值