文档章节

Sersync服务器同步

lee_ypp
 lee_ypp
发布于 2014/07/24 09:24
字数 1383
阅读 172
收藏 8
点赞 0
评论 0

Sersync服务器同步

系统环境: RHEL6 x86_64

主服务器:server1 192.168.2.68

目标服务器:station1 192.168.2.27

条件:iptables关,selinux关

软件下载:http://code.google.com/p/sersync/

 sersync主要用于服务器同步,web镜像等功能。基于boost1.43.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的。相比较上面两个项目,本项目优点是:

● sersync是使用c++编写,而且对linux系统文 件系统产生的临时文件和重复的文件操作进行过滤(详细见附录,这个过滤脚本程序没有实现),所以在结合rsync同步的时候,节省了运行时耗和网络资源。 因此更快。

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

●另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状 态。

●本项目有出错处理机制,通过失败队列对出错的文件重新同步,如果仍旧失败,则 每10个小时对同步失败的文件重新同步。

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

●本项目socket与http插件扩展,满足您二次开发的需要。

1. 配置同步目标服务器rsync

yum install rsync -y

在目标服务器上配置如下:

vi /etc/rsyncd.conf

uid=root

gid=root

max connections=36000

use chroot=no

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

[rsync]

path=/opt/rsync

comment = test files

ignore errors = yes

read only = no

hosts allow = 192.168.2.68

hosts deny = *

 只允许主服务器server1访问,同步模块名为[rsync],/opt/rsync为文件同步目录。

 rsync --daemon

#后台运行rsync

 使用xinetd管理rsync服务

yum install xinetd -y

chkconfig rsync on

service xinetd restart

2. 在主服务器上安装配置sresync

yum install rsync -y

tar zxf sersync2.5_64bit_binary_stable_final.tar.gz

cd GNU-Linux-x86/

vi confxml.xml, 修改如下行

<inotify> 

        <delete start="true"/> 

        <createFolder start="true"/> 

        <createFile start="true"/> 

        <closeWrite start="true"/> 

        <moveFrom start="true"/> 

        <moveTo start="true"/> 

        <attrib start="true"/> 

        <modify start="true"/> 

    </inotify> 

<sersync>

<localpath watch="/opt/rsync">    #本地同步目录

<remote ip="192.168.2.27" name="rsync"/>  #目标服务器列表和同步模块名

<remote ip="192.168.0.2" name="rsync"/>

</localpath>

...

3. 运行Sersync与Sersync启动参数

sersync会对目录进行监控,将变化的目录或文件同步到远程服务器。sersync是递归监控的,如

果有多级目录,都会同步到远程服务器。常用启动方式如下:

 在主服务器上开启sersync守护进程,使sersync在后台运行,开启实时同步。

#cd GNU-Linux-x86/

#./sersync2 -d -r

set the system param

execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches

execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events

parse the command param

daemon thread num: 10

parse xml config file

host ip : localhost 

host port: 8008

config xml parse success

please set /etc/rsyncd.conf max connections=0 Manually

sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads)

please according your cpu ,use -n param to adjust the cpu rate

run the sersync:

watch path is: /opt/rsync

4、(1)配置目标服务器(多目录同步)

 cd /mnt/ 

 mkdir tongbu 

vim /etc/rsyncd.conf 

......

[tongbu]

path=/mnt/tongbu

comment = test files

ignore errors = yes

read only = no

hosts allow = 192.168.2.68

hosts deny = *

service xinetd restart

(2)配置主服务器

cd GNU-Linux-x86/ 

cp confxml.xml confxml-1.xml 

 vim confxml-1.xml 

 <sersync> 

        <localpath watch="/opt/tongbu1"> 

            <remote ip="192.168.2.27" name="tongbu"/> 

            <!--<remote ip="192.168.8.39" name="tongbu"/>--> 

            <!--<remote ip="192.168.8.40" name="tongbu"/>--> 

        </localpath> 

cd /opt/ 

mkdir tongbu1 

cd GNU-Linux-x86/ 

 ./sersync2 -r -d -o confxml-1.xml 

cd /opt/tongbu1 

touch hello 

在目标服务器的/mnt/tongbu下就会有被同步的文件hello

在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步

./sersync -r

如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行sersync,将本地与远程整体同步一次。如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效

 

指定配置文件

./sersync -o XXXX.xml

对于sersync使用可执行文件目录下的默认配置文件confxml.xml,如果需要使用另一个配置文件,可以使用-o参数指定其它配置文件。

 

指定默认的线程池的线程总数

./sersync -n num

例如 ./sersync -n 5 则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高线程总数。

 

不进行同步,只运行插件

./sersync -m pluginName

例如./sersync -m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行command插件。

 

多个参数可以配合使用

./sersync -n 8 -o abc.xml -r -d

表示,设置线程池工作线程为8个,指定abc.xml作为配置文件,在实时监控前作一次整体同步,以守护进程方式在后台运行。

 

通常情况下,对本地到远程整体同步一遍后,在后台运行实时同步。

./sersync -r -d

——leeypp@gmail.com  


© 著作权归作者所有

共有 人打赏支持
lee_ypp
粉丝 64
博文 45
码字总数 58692
作品 0
程序员
sersync+rsync原理及部署

一、为什么要用rsync+sersync架构? 1、sersync是基于inotify开发的,类似于inotify-tools的工具 2、sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某...

次渠龙哥
2015/07/23
0
0
sersync+rsync实时同步配置案例

目前业内比较靠谱的同步解决方案有: rsync+inotify-tools,Openduckbill+inotify-tools和rsync+sersync 前两者由于是基于脚本语言编写,所以规范程度,执行效率相对rsync+sersync就稍微弱一...

feilong0663
07/03
0
0
centos 6.4 搭建rsync+sersync

sersync原理是使用rsync命令推送同步的文件到rsync客户端 优点是同步快,实时同步 使用资源少 缺点是不只是双向实时同步,也就是说客户端新建文件不会同步到服务器端 对于要实施双机实时同步...

zhangdiandong
2013/12/03
0
0
7.linux同步服务器 rsync+sersync的配置

实现目标:将主机A(192.168.239.128)下的一个目录,同步到主机B(192.168.239.130)下的一个目录,并对A主机进行监控,当A主机该目录下的文件发生变化立即同步至主机B中。 1.安装rsync rsync安...

a8757906
2017/06/21
0
0
Linux下Rsync+sersync实现实时双向同步

前言: 单向同步说明: 双向同步说明: 单向同步操作步骤: 第一部分:分别在两台slave服务器172.16.100.1/172.16.100.2上操作 1、关闭SElinux、配置防火墙 ------------------------------...

StevenJHM
2017/07/14
0
0
CentOS7.X通过rsync+sersync实现文件同步

服务器文件双向、多向同步rsync+sersync 由于要关闭SELinux,文档内容仅作参考 安装前的准备(各同步服务器都配置) 安装rsync(各同步服务器都装) 配置rsyncd.conf(各服务器都配置) 配置密码文...

qq2233466866
06/11
0
0
rsync+sersync实现服务器文件同步

集群间服务器实现数据的同步一直是一个问题,比如一个lvs集群中,如果有上百台RS服务器,当更新Web程序时,如何在这么多台服务器间进行快速的更新,这是一个问题,如果使用手动更新,或者scp...

彭锐
05/04
0
0
CentOS6.8使用Rsync+sersync实现数据实时同步

Sersync简介 Sersync利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过...

justin_peng
2017/08/02
0
0
sersync实现数据实时同步

1.1 第一个里程碑:安装sersync软件 1.1.1 将软件上传到服务器当中并解压 1、上传软件到服务器上 rz -E 为了便于管理上传位置统一设置为 /server/tools 中 2、解压软件包 [root@backup sersy...

侯召顺
2017/10/22
0
0
linux系统下实现web数据同步的四种方式

实现web数据同步的四种方式 ======================================= 1、nfs实现web数据共享 2、rsync +inotify实现web数据同步 3、rsync+sersync更快更节约资源实现web数据同步 4、unison+...

English0523
2014/01/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

第17章MySQL主从配置

mysql安装总结 mysql主从准备工作: 准备两台机器,每台机器安装msyql服务,并启动mysql服务 mysql详细安装 1.首先下载二进制免编译的包,下载到/usr/local/src/目录下 2.解压压缩包 3.解压完...

Linux学习笔记
3分钟前
0
0
Redis高可用及分片集群

一、主从复制 使用异步复制 一个服务器可以有多个从服务器 从服务器也可以有自己的从服务器 复制功能不会阻塞主服务器 可以通过服务功能来上主服务器免于持久化操作,由从服务器去执行持久化...

Java大蜗牛
6分钟前
0
0
前端面试题汇总

最近在复习,准备找工作了,特此总结一下前端的相关知识。 1.获取浏览器URL中查询字符的参数: function getQuery(name){    var reg = new RegExp("(^|&)"+name+"=([^&]*)"(&|$));...

凛冬来袭
41分钟前
0
0
可持续发展的学习道路

与其要求别人,不如提升自己 内心渴望进步 经常做出改变现有模式,不断学习 寻找资源,整合资源,不断熟练这种模式 渠道很重要 先打开新世界的航路

狮子狗
45分钟前
0
0
apollox-lua开源项目 示例codepen2

今天在示例上增加了几个功能, 首先添加js array的标准库。 所有js array的方法目前都支持了。 添加查看code模式。 点击查看code可以看到生成的lua代码。默认web模式需要把标准库连接进来, ...

钟元OSS
今天
0
0
javascript性能优化之避免重复工作

javascript最重要也最根本的性能优化标准之一是避免工作,避免工作又包括两点,第一,不做不必要的工作,第二,不做重复的已经完成的工作。第一部分可以通过代码重构完成,第二部分不做重复的...

老韭菜
今天
0
0
缓存穿透、并发和雪崩那些事

0 题记 缓存穿透、缓存并发和缓存雪崩是常见的由于并发量大而导致的缓存问题,本文讲解其产生原因和解决方案。 缓存穿透通常是由恶意攻击或者无意造成的;缓存并发是由设计不足造成的;缓存雪...

Java填坑之路
今天
1
0
项目jar包管理构建工具---Maven

一、what is Maven? 我们来寻找一下官网,里面介绍了maven到底是什么?下面一句话就有讲解到:Apache Maven is a software project management and comprehension tool. Based on the conc...

一看就喷亏的小猿
今天
0
0
JVM学习手册(一):查看堆内存使用情况以及排错

平时出现内存溢出以及死锁,一般处理方式都是查看日志,找到抛出异常的代码行,然后本地分析代码,但是这样对于线上排查十分糟糕,这段时间在研究JVM发现了几个比较好的工具和指令. 1.针对频繁GC和...

勤奋的蚂蚁
今天
1
0
17.TCP:传输控制协议

介绍 TCP和UDP使用同一网络层(IP),但TCP提供了面向连接、可靠的传输层服务 TCP传输给IP层的信息单位称为报文段或段 TCP通过如下方式保证可靠性: 应用数据被分割成TCP认为最合适发送的数据...

loda0128
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部