• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
坠落的星辰
博客园    首页    新随笔    联系   管理    订阅  订阅

sersync实时同步

sersync 实时同步

1.sersync基础几简介

1.1:什么是实时同步?

监控一个目录的变化, 当该目录触发事件(创建\删除\修改)
就执行动作, 这个动作可以是 rsync同步 ,也可以是其他.

1.2: 为什么要实时同步?

1.能解决nfs单点故障问题. (没什么意义) glusterfs
2.能够让本地快速切换至云端. (随时都需要留一个后手)

1.3: 实时同步的原理

借助一个通知接口, inotify. inotify监控本地主机的事件(创建\删除\修改),
则通知执行动作 这个动作可以是 rsync同步

1.4: 实时同步的场景

1、能解决nfs单点故障问题
2、能够让本地快速切换至云端

1.5: 实时同步工具选择?

1.inotify+rsync实现 写脚本来实现监控 放在后台 screen
1.脚本 (不适合)
2.同步
2.sersync实时同步
3.lsyncd
https://github.com/wsgzao/sersync

2.实时同步案例演示

2.1:规划

web			10.0.0.7 172.16.1.7		httpd\php
nfs			10.0.0.31 172.16.1.31		nfs-server  inotify rsync sersync
backup		        10.0.0.41 172.16.1.41		rsync-server  nfs-server

2.2:实现web上传视频,自动存储至NFS?

#NFS服务端:						10.0.0.31  172.16.1.31
	#1.安装nfs
	[root@nfs ~]# yum install nfs-utils -y

	#2.配置
	[root@nfs ~]# cat /etc/exports
	/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

	#3.根据配置初始化环境
	[root@nfs ~]# groupadd -g 666 www
	[root@nfs ~]# useradd -u666 -g666 www
	[root@nfs ~]# mkdir /data
	[root@nfs ~]# chown -R www.www /data/

	#4.重新启动nfs服务
	[root@nfs ~]# systemctl restart nfs-server
	[root@nfs ~]# systemctl enable  nfs-server

#WEB服务端操作:	10.0.0.7  172.16.1.7
	#1.安装httpd php
	[root@web01 ~]# yum install httpd php -y

	#2.配置httpd php
	
	#3.启动httpd
	[root@web01 ~]# systemctl start httpd
	
	#4.模拟测试
	[root@web01 ~]# echo "Oldboy Edu.com" > /var/www/html/index.html	(可以不测试)


#WEB进行挂载,上传代码:
	[root@web01 ~]# mount -t nfs 172.16.1.31:/data /var/www/html/
	[root@web01 ~]# cd /var/www/html
	[root@web01 ~]# rz kaoshi.zip
	[root@web01 ~]# unzip kaoshi.zip

#用户通过前端的web页面上传视频
	如果上传出现错误:请检查日志
	[root@web01 html]# tail -f /var/log/httpd/error_log

2.3: 当NFS的目录发生变化,则触发同步? (实时同步)

	1.怎么监控/data?  inotify
	2.同步给谁rsync  ---> backup服务器  [backup模块] [data模块]


#1.rsync服务	10.0.0.41 172.16.1.41
	#安装rsync
	[root@backup ~]# yum install rsync -y
	
	#配置rsync
	[root@backup ~]# cat /etc/rsyncd.conf
	uid = rsync
	gid = rsync
	port = 873
	fake super = yes
	use chroot = no
	max connections = 200
	timeout = 600
	ignore errors
	read only = false
	list = false
	auth users = rsync_backup
	secrets file = /etc/rsync.passwd
	log file = /var/log/rsyncd.log
	#####################################
	
	[backup]
	comment = welcome to oldboyedu backup!
	path = /backup

	[data]
	path = /data
	
	3根据rsync配置初始化环境
	[root@backup ~]# useradd -M -s /sbin/nologin rsync
	[root@backup ~]# echo "rsync_backup:123456" > /etc/rsync.passwd
	[root@backup ~]# chmod 600 /etc/rsync.passwd
	[root@backup ~]# mkdir /backup /data -p 
	[root@backup ~]# chown -R rsync.rsync /backup/ /data/

	3启动rsync
	[root@backup ~]# systemctl restart rsyncd 
	[root@backup ~]# systemctl enable rsyncd

	
#2.nfs服务配置   10.0.0.31 172.16.1.31
	#1.安装rsync inotify
	[root@nfs ~]# yum install rsync inotify-tools -y

	#2.安装sersync  ( rsync inotify )
	[root@nfs ~]# wget https://github.com/wsgzao/sersync/raw/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
	[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/
	[root@nfs ~]# mv /usr/local/GNU-Linux-x86/ /usr/local/sersync
	[root@nfs ~]# file /usr/local/sersync/confxml.xml
	
	[root@nfs ~]# echo "123456" > /etc/rsync.pass
	[root@nfs ~]# chmod 600 /etc/rsync.pass
	
	#3.启动sersync
	[root@nfs ~]# /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml
	
	#4.建议: 手动执行该命令测试是否ok,这样方便排查问题
	[root@nfs ~]# cd /data && rsync -avz -R --delete ./  --timeout=100 rsync_backup@172.16.1.41::data --password-file=/etc/rsync.pass

2.4: 模拟NFS故障, web可以快速的切换到backup的NFS服务上?

	1.backup的权限是否和NFS的权限一致?
	2.backup上是否配置NFS服务?  是否共享了/data目录?
	3.模拟NFS故障,实现切换?

#1.backup的权限是否和NFS的权限一致?		10.0.0.41 172.16.1.41
	#修改如下内容:
	[root@backup ~]# vim /etc/rsyncd.conf	
	uid = www
	gid = www
	.....

	#创建用户
	[root@backup ~]# groupadd -g 666 www
	[root@backup ~]# useradd -g666 -u666 www

	#修改权限
	[root@backup ~]# chown -R www.www /data/ /backup/

	#重启服务
	[root@backup ~]# systemctl restart rsyncd


#2.backup服务器上是否配置NFS服务?  是否共享了/data目录?	
	
	#安装NFS
	[root@backup ~]# yum install nfs-utils -y
	
	#配置NFS
	[root@backup ~]# cat /etc/exports
	/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
	[root@backup ~]# chown -R www.www /data/
	
	#启动NFS
	[root@backup ~]# systemctl enable nfs-server
	[root@backup ~]# systemctl start nfs-server
	
	
#3.模拟NFS故障,实现切换?
	[root@web01 ~]# umount -lf /var/www/html && mount -t nfs 172.16.1.41:/data /var/www/html

2.5:基于sersync海量文件实时同步

https://www.cnblogs.com/xuliangwei/p/10245289.html
S:  项目背景: *******
T:	项目任务: *******
A:	项目实施: *******
R:	产生价值: *******
	
S:  故障时间: *******
T:	故障分析: *******
A:	如何解决: *******
R:	结果: 	  *******

[root@nfs01 sersync]# vim confxml.xml
     <fileSystem xfs="true"/>  <!-- 文件系统 -->
     <filter start="false">  <!-- 排除不想同步的文件-->
         <exclude expression="(.*)\.svn"></exclude>
         <exclude expression="(.*)\.gz"></exclude>
         <exclude expression="^info/*"></exclude>
         <exclude expression="^static/*"></exclude>
     </filter>

     <inotify> <!-- 监控的事件类型 -->
         <delete start="true"/>
         <createFolder start="true"/>
         <createFile start="true"/>
         <closeWrite start="true"/>
         <moveFrom start="true"/>
         <moveTo start="true"/>
         <attrib start="false"/>
         <modify start="false"/>
     </inotify>

     <sersync>
         <localpath watch="/data"> <!-- 监控的目录 -->
             <remote ip="172.16.1.41" name="data"/>  <!-- backup的IP以及模块 -->
         </localpath>

         <rsync> <!-- rsync的选项 -->
             <commonParams params="-az"/>
             <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/>
             <userDefinedPort start="false" port="874"/><!-- port=874 -->
             <timeout start="true" time="100"/><!-- timeout=100 -->
             <ssh start="false"/>
         </rsync>

         <!-- 每60分钟执行一次同步-->
         <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--def
 ault every 60mins execute once-->
posted @ 2019-12-23 09:29  坠落的星辰  阅读(350)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3