day35 sersync實(shí)時(shí)同步

實(shí)時(shí)同步概述
  • 實(shí)時(shí)同步概念說(shuō)明
    實(shí)時(shí)同步的概念:是一種只要當(dāng)前目錄發(fā)生變化則會(huì)觸發(fā)一個(gè)事件,事件出發(fā)后會(huì)將變化的目錄同步至遠(yuǎn)程服務(wù)器。

  • 實(shí)時(shí)同步的作用:
    保證數(shù)據(jù)的連續(xù)性;
    減少人力維護(hù)成本。

  • 數(shù)據(jù)備份的方法:
    定時(shí)任務(wù)備份:主要是內(nèi)部人員備份數(shù)據(jù),備份周期最短是1分鐘。
    實(shí)時(shí)任務(wù)備份:主要是外部人員備份數(shù)據(jù),一般是用戶保存數(shù)據(jù),當(dāng)用戶在網(wǎng)站提交保存數(shù)據(jù)時(shí),沒(méi)有同步等待時(shí)間。

  • 實(shí)時(shí)同步的原理:
    1.監(jiān)控存儲(chǔ)服務(wù)器,查看數(shù)據(jù)的信息變化,主要用到的工具為inotify;
    2.利用同步傳輸數(shù)據(jù)軟件,將變化的數(shù)據(jù)增量傳輸給遠(yuǎn)程服務(wù)器;
    3.實(shí)現(xiàn)實(shí)時(shí)同步。

實(shí)時(shí)同步的工具:sersync+rsync,inotify+rsync
Inotify是一個(gè)通知接口,用來(lái)監(jiān)控文件系統(tǒng)的各種變化,如果文件存取,刪除,移動(dòng)??梢苑浅7奖愕貙?shí)現(xiàn)文件異動(dòng)告警,增量備份功能,并針對(duì)目錄或文件的變化及時(shí)作出響應(yīng)。Inotify+rsync可以實(shí)出發(fā)式實(shí)時(shí)同步增量備份。
inotify的作用:監(jiān)控目錄中數(shù)據(jù)信息變化;
sersync是國(guó)人基于rsync+inotify-tools開(kāi)發(fā)的工具,不僅保留了inotify的優(yōu)點(diǎn)同時(shí)還強(qiáng)化了實(shí)時(shí)監(jiān)控,文件過(guò)濾,簡(jiǎn)化配置等功能,幫助用戶提高了運(yùn)行效率,節(jié)省時(shí)間和網(wǎng)絡(luò)資源。

sersync服務(wù)安裝部署
  • 第一步:安裝軟件,將軟件推送到指定的目錄
[root@nfs01 ~]# yum install rsync inotify -y
[root@nfs01-server ~]# cd /server/tools/
[root@nfs01-server tools]# ls
sersync_installdir_64bit.zip
[root@nfs01-server tools]# mv sersync_installdir_64bit.zip  /usr/local/
[root@nfs01-server tools]# unzip /usr/local/sersync_installdir_64bit.zip 
Archive:  /usr/local/sersync_installdir_64bit.zip
   creating: sersync_installdir_64bit/
   creating: sersync_installdir_64bit/sersync/
   creating: sersync_installdir_64bit/sersync/bin/
  inflating: sersync_installdir_64bit/sersync/bin/sersync  
   creating: sersync_installdir_64bit/sersync/conf/
  inflating: sersync_installdir_64bit/sersync/conf/confxml.xml  
   creating: sersync_installdir_64bit/sersync/logs/
  • 第二步:修改配置文件信息
<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>
 24         <localpath watch="/backup"> ## 目錄信息
 25           <remote ip="172.16.1.41" name="backup"/> ## 備份服務(wù)器IP,backup模塊信息
 26             <!--<remote ip="192.168.8.39" name="tongbu"/>-->
 27             <!--<remote ip="192.168.8.40" name="tongbu"/>-->
 28         </localpath>
 29         <rsync>
 30             <commonParams params="-avz"/> ## 選項(xiàng)參數(shù),默認(rèn)有-delete
 31             <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/>                 ## 開(kāi)啟認(rèn)證用戶功能   
 32             <userDefinedPort start="false" port="874"/><!-- port=874 -->
 33             <timeout start="false" time="100"/><!-- timeout=100 -->
 34             <ssh start="false"/>
 35         </rsync>

[root@nfs01-server local]# ll /usr/local/sersync_installdir_64bit/sersync/bin/sersync        
-rwxr--r-- 1 root root 1810128 Oct 26  2011 /usr/local/sersync_installdir_64bit/sersync/bin/sersync

[root@nfs01-server bin]# ./sersync -dro  /usr/local/sersync_installdir_64bit/sersync/conf/confxml.xml 
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 ## 命令參數(shù)解釋說(shuō)明
option: -d      run as a daemon
option: -r      rsync all the local files to the remote servers before the sersync work
option: -o      config xml name:  /usr/local/sersync_installdir_64bit/sersync/conf/confxml.xml
daemon thread num: 10
parse xml config file
host ip : localhost     host port: 8008
daemon start,sersync run behind the console 
use rsync password-file :
user is rsync_backup
passwordfile is         /etc/rsync.password
config xml parse success
please set /etc/rsyncd.conf max connections=0 Manually
sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) 
Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)
please according your cpu ,use -n param to adjust the cpu rate
------------------------------------------
rsync the directory recursivly to the remote servers once
working please wait...
execute command: cd /backup && rsync -avz -R --delete ./ rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password >/dev/null 2>&1 
run the sersync: 
watch path is: /backup ## 成功??!
實(shí)現(xiàn)實(shí)時(shí)同步的腳本

[root@nfs01 scripts]# cat sersync.sh

#!/bin/bash
#1. jiankong date
inotifywait -mrq /backup --format "%w%f" -e create,delete,close_write,move | while read line

#2. push data
do
rsync -avz --delete /backup rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password
done
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容