sersync實時同步


1.什么是實時同步
實時同步是⼀種只要當前⽬錄發⽣變化則會觸發⼀個事件,事件觸發后會將變化的⽬錄同步⾄遠程服務器。
2.為什么實時同步
保證數據的連續性, 減少⼈⼒維護成本,解決nfs單點故障
3.實現同步的原理
實時同步需要借助inotify通知接⼝,⽤來監控⽬錄的變化,如果監控的⽬錄發⽣變更,則觸發動作, 這個動作可以是進⾏⼀次同步操作,或其他操作;
4.實時同步⼯具的選擇
sersync+RSYNC(√)、inotify+rsync
Inotify是⼀個通知接⼝,⽤來監控⽂件系統的各種變化,如果⽂件存取,刪除,移動。可以⾮常⽅便 地實現⽂件異動告警,增量備份,並針對⽬錄或⽂件的變化及時作出響應。rsync+inotify可以做到實 時增量備份
sersync是國⼈基於rsync+inotify-tools開發的⼯具,不僅保留了優點同時還強化了實時監控,⽂件過濾,簡化配置等功能,幫助⽤戶提⾼運⾏效率,節省時間和⽹絡資源。

sersync項⽬實戰

1.環境准備

主機 內網 安裝
web01 172.16.1.7 部署XX代碼
nfs 172.16.1.31 rsync+inotify+sersync、NFS服務端
backup 172.16.1.41 rsync服務端

2.nfs服務器部署sersync

1)安裝rsync和inotify

[root@nfs ~]# yum install -y rsync inotify-tools

2)下載sersync

[root@nfs ~]# wget
http://down.whsir.com/downloads/sersync2.5.4_64bit_binary_stable_final.tar.g z

3)安裝sersync(⼆進制包)

[root@nfs ~]# tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz

源碼包:解壓,⽣成,編譯,安裝
4)移動並改名

[root@nfs ~]# mv GNU-Linux-x86 /usr/local/sersync

5)配置sersync

[root@nfs sersync]# vim confxml.xml
	<inotify>
#監控的動作,true就推送,false就不推送
        <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="/data">
             #rsync服務端IP      #模塊名字
            <remote ip="172.16.1.41" name="data"/>
			<!--<remote ip="192.168.8.39" name="tongbu"/>-->
			<!--<remote ip="192.168.8.40" name="tongbu"/>-->               
		</localpath>
        <rsync>
              #rsync推送時的參數
            <commonParams params="-az"/>
    #rsync推送時認證           #認證的虛擬⽤戶          #虛擬⽤戶對應的密碼⽂件
            <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>
           #如果rsync不使⽤默認的873端⼝,使⽤改參數指定
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
#超時時間
            <timeout start="false" time="100"/><!-- timeout=100 -->             <ssh start="false"/>
        </rsync>
             #錯誤⽇志保存路徑
        <failLog path="/tmp/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>

6)創建密碼⽂件

[root@nfs sersync]# echo "123" > /etc/rsync.password [root@nfs sersync]# chmod 600 /etc/rsync.password

7)查看sersync命令

[root@nfs sersync]# ./sersync2 -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參數,則默認執⾏同步程序
________________________________________________________________ 
[root@nfs sersync]#

8)啟動sersync

[root@nfs sersync]# ./sersync2 -dro confxml.xml
[root@nfs sersync]# /usr/local/sersync/sersync2 -dro /usr/local/sersync/confxml.xml

9)驗證⽂件實時同步

分享擴展

1.rsync配置多模塊

uid = www
gid = www
port = 873
fake super = yes
use chroot = no
max connections = 200 timeout = 600
ignore errors read only = false list = true
auth users = rsync_backup secrets file = /etc/rsync.passwd ####################
[data]
comment = 我是⽂件共享⽬錄 path = /data
[backup]
comment = 我是數據備份⽬錄 path = /backup

2.rsync配置多模塊不通虛擬⽤戶

[root@backup backup]# vim /etc/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 = true
secrets file = /etc/rsync.passwd ####################
[data]
comment = 我是⽂件共享⽬錄
path = /data
auth users = rsync_data
[backup]
comment = 我是數據備份⽬錄
path = /backup
auth users = rsync_backup

[root@backup backup]# vim /etc/rsync.passwd 
rsync_backup:123
rsync_data:123

3.NFS配置多個⽬錄可以掛載

[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666) /backup 172.16.1.0/24(rw,sync,all_squash)
[root@nfs ~]# systemctl restart nfs

[root@web01 html]# showmount -e 172.16.1.31 Export list for 172.16.1.31:
/backup 172.16.1.0/24 /data 172.16.1.0/24

4.sersync實時同步多個不同的⽬錄

root@nfs sersync]# vim confxml2.xml  <sersync>
        <localpath watch="/backup">
            <remote ip="172.16.1.41" name="backup"/>

[root@nfs sersync]# vim confxml.xml
 <sersync>
        <localpath watch="/data">
            <remote ip="172.16.1.41" name="data"/>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM