50台集群架构配置介绍-sersync

sersync实时复制工具实践

环境

  • NFS ip = 10.0.0.31
  • backup ip = 10.0.0.41(作为实时共享)
    在backup的rsync服务配置里面加一个模块,创建/nfsbackup并改变权限。
[root@backup ~]#vim /etc/rsyncd.conf
[nfsbackup]
path = /nfsbackup
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24 
[root@backup ~]# pkill rsync 配置完后要重启,先删掉目前的进程!
[root@backup ~]# lsof -i :873
[root@backup ~]# rsync --daemon
[root@backup ~]# lsof -i :873  
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rsync   1401 root    4u  IPv4  14468      0t0  TCP *:rsync (LISTEN)
rsync   1401 root    5u  IPv6  14469      0t0  TCP *:rsync (LISTEN)
[root@backup ~]# mkdir -p /nfsbackup
[root@backup ~]# chown -R rsync.rsync /nfsbackup

在nfs客户端推送资料到backup里面:

[root@nfs01 data]#   rsync -avz /data/ [email protected]::nfsbackup --password-file=/etc/rsync.password
sending incremental file list
./
a
b
c

sent 182 bytes  received 68 bytes  500.00 bytes/sec
total size is 0  speedup is 0.00
[root@backup nfsbackup]# ls   --->我们回到backup去看看
a  b  c 

实现从nfs客户端到rsync服务端的rsync服务部署

sersync优点:

1)支持配置文件管理
2)真正的守护进程socket
3)可以对失败文件定时重传(定时任务功能)
4)第三方的HTTP接口(更新CDN缓存)
5)默认多线程rsync同步

高并发数据实时同步方案小结:
1.inotify(sersync)+rsync 是文件级别的 ----> 效率不高
2.drbd文件系统级别,文件级别的,基于block。缺点:备节点数据不可用。
3.第三方软件的同步功能: mysql 同步、orcale,mongodb
4.程序双写,直接写两台服务器。
5.透过业务逻辑解决(读写分离,备读不到,读主)
6.NFS集群(双写主存储,备存储用inotify(sersync)+rsync ,备没有找主 解决延迟问题)

sersync实时复制工具实践

rsync部署如上面的例子:
第一个里程碑:实现从nfs客户端到rsync服务端的rsync服务部署

第二个里程碑:在客户端安装sersync

网上源安装:

git clone https://github.com/wsgzao/sersync
把这个档案放在/application 里面,整理成下面的样子
[root@nfs01 sersync]# tree
.
├── bin
│   └── sersync
├── conf
│   └── confxml.xml   ---->配置文件
├── GNU-Linux-x86
├── logs
└── sersync2.5.4_64bit_binary_stable_final.tar.gz

4 directories, 3 files

在confxml.xml里面:

过滤功能:

 6       <filter start="false">
  7         <exclude expression="(.*)\.svn"></exclude>
  8         <exclude expression="(.*)\.gz"></exclude>
  9         <exclude expression="^info/*"></exclude>
 10         <exclude expression="^static/*"></exclude>
 11     </filter>

inotify监控什么属性:(true表示当前有监控的事件)

 12     <inotify>
 13         <delete start="true"/>
 14         <createFolder start="true"/>
 15         <createFile start="false"/>
 16         <closeWrite start="true"/>
 17         <moveFrom start="true"/>
 18         <moveTo start="true"/>
 19         <attrib start="false"/>
 20         <modify start="false"/>
 21     </inotify>

sersync同步

    <sersync>
        <localpath watch="/data">
            <remote ip="172.16.1.41" name="nfsbackup"/>
            <!--<remote ip="192.168.8.39" name="tongbu"/>-->
            <!--<remote ip="192.168.8.40" name="tongbu"/>-->
        </localpath>
        <rsync>
            <commonParams params="-avz"/>
            <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="true" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>
        <failLog path="/application/logs/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
        <crontab start="false" schedule="600"><!--600mins-->
            <crontabfilter start="false">
                <exclude expression="*.php"></exclude>
                <exclude expression="info/*"></exclude>
            </crontabfilter>
        </crontab>
        <plugin start="false" name="command"/>
    </sersync>

配置完后,将sersync加上可执行的权限:

chmod +x bin/sersync 

可执行的参数:

[root@nfs01 data]# /application/sersync/bin/sersync -h
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
_______________________________________________________
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
________________________________________________________________

执行sersync:

 /application/sersync/bin/sersync -d -r -n 8 -o /application/sersync/conf/confxml.xml

检验成果:

在NFS服务端:  
[root@nfs01 data]# ps -ef | grep sersync                                 root       4180      1  0 10:57 ?        00:00:00 /application/sersync/bin/sersync -d -r -n 8 -o /application/sersync/conf/confxml.xml
root       4194   2910  0 10:57 pts/0    00:00:00 grep sersync
[root@nfs01 data]# cd /data
[root@nfs01 data]# ls
[root@nfs01 data]# touch stu{01..10}
[root@nfs01 data]# ls
stu01  stu02  stu03  stu04  stu05  stu06  stu07  stu08  stu09  stu10

到backup
[root@backup nfsbackup]# ls
stu01  stu02  stu03  stu04  stu05  stu06  stu07  stu08  stu09  stu10
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章