rsync+sersync部署流程

Sersync简介

sersync是国人周洋基于Inotify开发的,类似于Inotify-tools的工具。

Sersync项目利用inotify与rsync技术实现对服务器数据实时同步的解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rsync是目前广泛使用的本地及异地数据同步工具,其优点是只对变化的目录数据操作,甚至是一个文件不同的部分进行同步,所有其优势大大超过使用挂载文件系统或scp等方式进行镜像同步。

Sersync的优点:

1、使用c++编写,对linux系统文件产生的临时文件和重复的文件操作会进行过滤,在结全rsyn同步的时候,会减少运行时消耗的本地及网络资源,因此速度更快。

2、使用多线程进行同步。

3、Sersync自带crontab功能。

4、Sersync自带socket与http的协议扩展,可以满足二次开发。

5、配置简单,源代码:http://code.google.com/p/sersync/downloads/list处下载。

Rsync+Inotify-tools与Rsync+sersync的区别:

1、Rsync+Inotify-tools

(1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

(2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此,效率很低。

2、Rsync+sersync

(1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

(2):rsync在同步的时候,只同步发生变化的这个文件或者这个目录(每次发生变化的数据相对整个同步目录数据来说是很小的,rsync在遍历查找比对文件时,速度很快),因此,效率很高。

小结:当同步的目录数据量不大时,建议使用Rsync+Inotify-tools;当数据量很大(几百G甚至1T以上)、文件很多时,建议使用Rsync+sersync。

Sersync安装配置:

安装环境:

主机名 操作系统版本 IP 角色
nfs01 CentOS release 6.8 (Final) 172.16.1.31/24 Sersync服务端
backup CentOS release 6.8 (Final) 172.16.1.41/24 Sersync客户端

部署rsync:

[[email protected] ~]# yum install rsync -y
[[email protected] ~]# rpm -qa rsync
rsync-3.0.6-12.el6.x86_64
[[email protected] ~]# useradd -s /sbin/nologin -M rsync
[[email protected] ~]# vim /etc/rsyncd.conf 
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
path = /backup/
ignore errors
read only = false
hosts allow = 172.16.1.0/24
#hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
path = /backup/
[nfsbackup]
path = /nfsbackup
#rsync_config_____end
[[email protected] ~]# mkdir -p /backup
[[email protected] ~]# chown -R rsync.rsync /backup/
[[email protected] ~]# ls -ld /backup/
drwxr-xr-x 5 rsync rsync 4096 Apr  4 13:23 /backup/
[[email protected] ~]# echo "rsync_backup:123456" >/etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# cat /etc/rsync.password
rsync_backup:123456
[[email protected] ~]# rsync --daemon
[[email protected] ~]# lsof -i:873
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   1320 root    3u  IPv4  10988      0t0  TCP *:rsync (LISTEN)
rsync   1320 root    5u  IPv6  10989      0t0  TCP *:rsync (LISTEN)

服务端部署:

[[email protected] ~]# echo "123456" >/etc/rsync.password
[[email protected] ~]# chmod 600 /etc/rsync.password
[[email protected] ~]# ls -l /etc/rsync.password
-rw------- 1 root root 7 Apr  4 14:09 /etc/rsync.password
#服务端创建同步目录并推送测试
[[email protected] conf]# mkdir -p /data/nfs-blog
[[email protected] conf]# cd /data/nfs-blog
[[email protected] nfs-blog]# ls
[[email protected] nfs-blog]# touch lisa.txt
[[email protected] nfs-blog]# rsync -avz /data/nfs-blog/lisa.txt [email protected]::backup --password-file=/etc/rsync.password 
sending incremental file list
lisa.txt

sent 65 bytes  received 27 bytes  184.00 bytes/sec
total size is 0  speedup is 0.00

sent 65 bytes  received 27 bytes  184.00 bytes/sec
total size is 0  speedup is 0.00
#客户端查看同步过来的文件
[[email protected] ~]# ll /backup/
total 0
-rw-r--r-- 1 rsync rsync 0 Apr  4 13:35 lisa.txt
至此,rsync部署完毕,下面部署sersync

部署Sersync:

[[email protected] ~]# mkdir -p /application/tools
[[email protected] ~]# cd /application/tools
#下载软件并解压
[[email protected] tools]# wget 
[[email protected] tools]# ls
sersync2.5.4_64bit_binary_stable_final.tar.gz 
[[email protected] tools]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /application/
[[email protected] tools]# cd /application/
[[email protected] application]# ls
GNU-Linux-x86  tools
[[email protected] application]# mv GNU-Linux-x86/ sersync   #把解压后的目录重命名为sersync
[[email protected] application]# ls
sersync  tools
[[email protected] application]# cd sersync/
[[email protected] sersync]# ls
confxml.xml  sersync2
[[email protected] sersync]# mkdir conf bin log             #分别建立配置文件目录
[[email protected] sersync]# mv confxml.xml conf            #把主配置文件放到conf下
[[email protected] sersync]# mv sersync2 bin/sersync        #把启动文件放到bin目录下并改名
[[email protected] sersync]# cd bin/
[[email protected] bin]# ls
sersync
#修改配置文件
[[email protected] bin]# cd ../conf/
[[email protected] conf]# cp confxml.xml{,.ori}             #先备份一份
[[email protected] conf]# ls
confxml.xml  confxml.xml.ori
[[email protected] conf]# cp confxml.xml web_conxml.xml     #给配置文件改名
[[email protected] conf]# vim web_conxml.xml                #修改配置文件
....................
24行:<localpath watch="/data/nfs-blog">             #本地同步目录
25行:<remote ip="172.16.1.41" name="nfsbackup"/>     #客户端同步目录
....................
31行:<auth start="true" users="rsync_backup" passwordfil  #指定rsync的用户和密码文件
    e="/etc/rsync.password"/> 
...............................
36行:<failLog path="/application/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->   #配置错误日志文件
                                        
[[email protected] ~]# mkdir /nfsbackup                          #修改完成后记得在客户端创建同步目录
[[email protected] ~]# chown -R rsync.rsync /nfsbackup/
[[email protected] conf]# echo "export PATH=$PATH:/application/sersync/bin" >>/etc/profile  #把sersync的执行脚本加入到PATH
[[email protected] conf]# source /etc/profile                         #让配置生效
[[email protected] conf]# sersync -r -d -o /application/sersync/conf/web_conxml.xml     #启动sersync

启动参数说明: -o:指定配置文件   -d:在后台启动  -r:主服务器和同步服务器先做同步初始保持一致

[[email protected] ~]# ps -ef|grep sersync                     #查看进程
root       1403      1  0 14:59 ?        00:00:00 sersync -r -d -o /application/sersync/conf/web_conxml.xml
root       1419   1249  0 14:59 pts/0    00:00:00 grep sersync

启动完成后测试:

#服务端创建文件
[email protected] nfs-blog]# cd /data/nfs-blog/
[[email protected] nfs-blog]# touch lisa.txt
[[email protected] nfs-blog]# ls
lisa.txt
#客户端查看
[[email protected] ~]# ll /nfsbackup/
total 0
-rw-r--r-- 1 rsync rsync 0 Apr  4 15:18 lisa.txt
时间: 2024-10-16 04:37:30

rsync+sersync部署流程的相关文章

inotify+rsync及sersync部署流程

inotify+rsync部署流程: 第一步:完成部署rsync守护进程服务 第二步:确认inotify软件是否安装扩展yum源(扩展的仓库):epel(企业级linux的yum源的扩展仓库)? 阿里云epel源:通过访问阿里yum源镜像地址获取? 直接安装epel源方式:yum install epel-releaseyum install inotify-tools -y/usr/bin/inotifywait --- 开启实时监控服务,监控目录或文件的数据变化/usr/bin/inotif

rsync+sersync部署

#sersync优点: 1.c++编写,可以对临时文件和重复文件操作进行过滤 2.配置简单 3.使用多线程进行同步 4.自带出错处理机制,通过失败队列对出错的文件重新同步,如果还失败,配置若干小时再传 5.sersync自带crotab功能,只需在xml配置文件中开启 6.sersync自带socket与http的协议扩展,可以满足有特殊需求的二次开发 #处理机制 inotify--过滤队列--线程组--调用rsync线程---远程服务器 1.sersync安装 mkdir /server/to

使用ansible自动化部署nfs+rsync+sersync+web01自动化挂载

第1章 思考 1.1如何一键使用ansible搭建 1.1.1第一步目标 首先我们要明确的是我们需要实现的是一键的自动化脚本,既执行一个脚本然后就自动化安装nfs+rsync+sersync,然后让web01自动挂载nfs共享目录, 1.1.2第二步关系明确及顺序 既然有目标了那么我们需要做的就是我们需要明白自动化安装的先后顺序. 既然我们是需要ansible才能自动化安装那么我们就需要先安装ansible 安装了ansible之后,既然我们想要挂载,那么我们就需要有nfs共享,和rsync备份

Rsync服务端部署流程

一.rsync服务端配置流程 1. 配置rsync配置文件/etc/rsyncd.conf 2.  创建同步的本地目录/dingjian 并根据需要授权 目录和/etc/rsync.password为配置文件中path = /dingjian/参数的配置 3.  账号密码文件配置: echo "rsync_backup:dingjian">/etc/rsync.password chmod 600 /etc/rsync.password 提示: 1)/etc/rsync.pass

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

Rsync+sersync实现数据实时同步Rsync??Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.Rsync的基本特点如下:?1.可以镜像保存整个目录树和文件系统:?2.可以很容易做到保持原来文件的权限.时间.软硬链接等:?3.无须特殊权限即可安装:?4.优

OpenStack Swift集群部署流程与简单使用

转载:http://www.cnblogs.com/fczjuever/p/3224022.html 之前介绍了<OpenStack Swift All In One安装部署流程与简单使用>,那么接下来就说一说Swift集群部署吧. 1. 简介 本文档详细描述了使用两台PC部署一个小型Swift集群的过程,并给出一些简单的使用实例.本文档假定如下前提条件: 使用Ubuntu操作系统. 每台机器都运行Swift的所有服务,既是Proxy Server,又是Storage Server,用户可以向

企业实时同步方案----Rsync+Sersync

在博文企业实时同步方案----Sersync介绍中我们详细介绍了Sersync的原理,设计架构以及和 Inotify 等等的优势区别.这里我就带大家一起来做一下 Rsync +Sersync 这个同步分发架构案例. 实验环境介绍: 内核版本:2.6.32-431.el6.x86_64 系统采用最小化安装,系统经过了基本优化,selinux为关闭状态,iptables为无限制模式 源码包存放位置:/root Rsync客户端+Sersync服务器(SERSYNC),承担角色MASTER,IP:17

Rsync+Sersync实时同步

一.基本介绍 1.什么是Rsync? Rsync(Remote Synchronize)是一款开源的.快速的.多功能的.可以实现全量及增量的本地或远程数据同步备份的优秀工具,并且支持多种操作系统平台运行. 官网文档:https://rsync.samba.org/ftp/rsync/rsync.html 2.Rsync简介 Rsync具有本地与远程两台主机之间的数据快速复制同步镜像.远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据. Rsync同

Rsync+Sersync实时数据同步

sersync实时数据同步 Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别? 1.Rsync+Inotify-tools (1):Inotify-tools只能记录下被监听的目录发生了变化(包括增加.删除.修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来: (2):rsync在同步的时候,并不知道具体是哪个文件或者哪个目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此