Sersync实现实时同步

1.配置环境

  角色    外网IP(NAT)      内网IP(LAN)    安装工具

  web01   eth0:10.0.0.7      172.16.1.7     httpd php

  nfs      eth0:10.0.0.31       172.16.1.31    nfs inotify-tools sersync

  backup    eth0:10.0.0.41        172.16.1.41    rsync-server

 

1.nfs服务器端操作如下:

  1.首先安装nfs

  yum install nfs-utils -y

  2.配置nfs

  在/etc/exports编辑如下内容

  /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)

  3.创建共享的目录

  mkdir -p /data

  4.创建组和用户

  groupadd -g 666 www

  useradd -g 666 -u 666 -M -s /sbin/nologin www

  5.授权

  chown -R www.www /data

  6.重启nfs并加入开机自启

  systemctl restart nfs

  systemctl enable nfs

  7.检查是否真的启动了NFS服务 并共享的目录是否正常

  cat /var/lib/nfs/etab

  #返回的信息

 

2.web服务端操作

  1.首先安装httpd php

  yum install httpd php -y

  2.配置httpd php

  暂时不需要配置

  3.仅启动httpd

  systmctl start httpd

  4.检查httpd是否正常

  首先写入一些东西然后在浏览器输入IP进行查看

  echo "Shanghai-Oldboyedu.com-4" > /var/www/html/index.html

  PS:index.html文件是创建的文件

  5.将wdb服务器的站点目录挂载到NFS存储的/data目录

  (此时web的/var/www/html是nfs/data的一个入口目录)

  mount -t nfs 172.16.1.31:/data /var/www/html/

  使用df -h 查看一下挂载情况

  6.然后上传作业代码进行测试是否能将用户上床的文件或者视频写入存储中

  cd /var/www/html/

  把首先准备好的zip压缩包推拽到web服务器

  然后进行解压

  unzip kaoshi.zip

  然后再次进行访问会显示上传作业的界面

 

3.backup备份服务器操作如下

  1.首先安装rsync

  yum install rsync -y

  2.配置rsync

  使用vim编辑rsyncd.conf内容如下

  uid = www
  gid = www
  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]
  path = /backup
  [data]
  path = /data
  3.创建虚拟用户以及虚拟用户的密码
  echo "rsync_backup:123456"  > /etc/rsync.passwd
  该文件权限必须是600接下来修改文件的权限
  chmod 600 /etc/rsync.passwd
  4.创建组与用户
  gruopadd -g 666 www
  useradd -u 666 -g 666 www
  5.创建目录
  mkdir -p /data /backup
  6.对目录进行修改属组与属主
  chown -R www.www /data/ /backup/

  7.重启rsync

  systemctl restart rsyncd

 

4.nfs服务端操作如下

  1.安装epel源

   wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

  2.下载inotify-tools通知工具

  yum install inotify-tools -y

  3.把事先准备好的sersync拖拽到服务器 也可以使用wget去下载

  4.解压sersync压缩包

  tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

  5.把解压出来的GNU-Linux-x86/目录移动到/usr/local/下命名为sersync

  mv GNU-Linux-x86/ /usr/local/sersync

  6.编辑sersync目录下的confxml.xml配置文件 修改配置文件内容如下 首行为行列

    5     <fileSystem xfs="true"/>  <!-- 文件系统 -->
   12     <inotify> <!-- 监控的事件类型 -->
   13         <delete start="true"/>
   14         <createFolder start="true"/>
   15         <createFile start="true"/>
   16         <closeWrite start="true"/>
   17         <moveFrom start="true"/>
   18         <moveTo start="true"/>
   19         <attrib start="true"/>
   20         <modify start="true"/>
   21     </inotify>
   23     <sersync>
   24         <localpath watch="/data"> <!-- 监控的目录 -->
   25             <remote ip="172.16.1.41" name="data"/>  <!-- backup的IP以及模块 -->
   28         </localpath>
   29         <rsync> <!-- rsync的选项 -->
   30             <commonParams params="-az"/>
   31             <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.pass"/>
   32             <userDefinedPort start="false" port="874"/><!-- port=874 -->
   33             <timeout start="true" time="100"/><!-- timeout=100 -->
   34             <ssh start="false"/>
   35         </rsync>

  7.创建密码文件

  echo "123456" > /etc/rsync.pass

  8.修改密码文件的权限为600

  chmod 600 /etc/rsync.pass

  9.在启动sersync之前可以先使用-h查看一下参数

  /usr/local/sersync/sersync2 -h

  参数-d:启用守护进程模式
  参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
  参数-n: 指定开启守护线程的数量,默认为10个
  参数-o:指定配置文件,默认使用confxml.xml文件
  参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
  参数-m:单独启用其他模块,使用 -m socket 开启socket模块
  参数-m:单独启用其他模块,使用 -m http 开启http模块
  不加-m参数,则默认执行同步程序

  10.启动sersync

  /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml

  PS:建议抓取sersync的命令,手动测试一次  (当发现不同步的时候)

  (cd /data && rsync -avz -R --delete ./  --timeout=100 rsync_backup@

  172.16.1.41::data --password-file=/etc/rsync.pass)
  PS:()忽略
 
5.模拟NFS故障 尝试将web迁移到backup服务器上使用
  backup需要安装并配置NFS
  1.安装NFS
  yum install nfs-utils -y
  2.在/etc目录下编辑exports文件内容如下(必须保持和nfs服务器一致)
  /data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
  3.启动NFS并加入开机自启
  systemctl start nfs
  systemctl enable nfs
  4.模拟NFS故障关闭NFS服务器
  shutdown -h now
  5.尝试切换服务器
  umount -lf /var/www/html/ && mount -t nfs 172.16.1.41:/data /var/www/html
  6.可以使用df -h查看挂载点
 
完结!
  
  
  
 

 

posted @ 2019-05-27 20:56  熊猫。  阅读(337)  评论(0编辑  收藏  举报