溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

sersync實時同步

發(fā)布時間:2020-07-11 20:12:18 來源:網(wǎng)絡(luò) 閱讀:547 作者:菜鳥東哥 欄目:網(wǎng)絡(luò)安全

1.1.1 sersync的特點

  • 支持配置文件管理

  • 真正的守護(hù)進(jìn)程socket

  • 可以對失敗文件定時重傳(定時任務(wù)功能)

  • 第三方的HTTP接口(例如更新cdn緩存)

  • 默認(rèn)多線程同步

  • sersync配置文件

  • 安裝sersync(一)

[root@nfs01 local]# rz -E                  ##window安裝包上傳至Linux

rz waiting to receive.

[root@nfs01 local]# ls

28-sersync.tar.gz  bin etc  games  include lib  lib64  libexec sbin  share  src

[root@nfs01 local]# tar   xf 28-sersync.tar.gz

[root@nfs01 local]# ls

28-sersync.tar.gz  etc   include  lib64    sbin    share

bin                games  lib     libexec  sersync  src

注:軟件包可以從網(wǎng)上下載,然后上傳到Linux中,解壓到/usr/local/下面

                           

1.1.2.2修改sersync配置文件(二)

[root@nfs01 conf]# vim/usr/local/sersync/conf/confxml.xml

<?xml version="1.0"encoding="ISO-8859-1"?>

<head version="2.5">

   <host hostip="localhost"port="8008"></host>

   <debug start="false"/>

   <fileSystem xfs="false"/>

###軟件的過濾功能,排除指定的文件,不進(jìn)行同步

 

   <filter start="false">

      <excludeexpression="(.*)\.svn"></exclude>

      <excludeexpression="(.*)\.gz"></exclude>

      <excludeexpression="^info/*"></exclude>

      <excludeexpression="^static/*"></exclude>

   </filter>

###過濾功能結(jié)束

 

##sersync軟件監(jiān)控指定事件信息:表示觸發(fā)監(jiān)控管理的事件。

   <inotify>

      <deletestart="true"/>

      <createFolderstart="true"/>

      <createFilestart="false"/>

      <closeWritestart="true"/>

      <moveFromstart="true"/>

      <moveTostart="true"/>

      <attribstart="false"/>

      <modifystart="false"/>

   </inotify>

##sersync軟件監(jiān)控指定事件信息結(jié)束

 

###sersync主要參數(shù)配置信息開始(可修改此部分

   <sersync>

      <localpathwatch="/data">            ###指定監(jiān)控的本地目錄信息為/data

          <remote ip="172.16.1.41"name="nfsbackup"/>      rsync服務(wù)器與模塊信息

          <!--<remoteip="192.168.8.39" name="tongbu"/>-->

          <!--<remoteip="192.168.8.40" name="tongbu"/>-->

      </localpath>

 

###sersync主要參數(shù)配置信息部分

      <rsync>

          <commonParamsparams="-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>

###sersync主要參數(shù)配置信息部分結(jié)束

 

      <failLogpath="/application/logs/rsync_fail_log.sh"timeToExecute="60"/><!--default every 60mins execute once-->                  ##定義失敗的默認(rèn)日志信息

      <crontabstart="false" schedule="600"><!--600mins-->

          <crontabfilterstart="false">

             <excludeexpression="*.php"></exclude>

             <excludeexpression="info/*"></exclude>

          </crontabfilter>

      </crontab>

      <pluginstart="false" name="command"/>

   </sersync>

 

   <plugin name="command">

      <paramprefix="/bin/sh" suffix=""ignoreError="true"/>   <!--prefix/opt/tongbu/mmm.sh suffix-->

      <filterstart="false">

          <includeexpression="(.*)\.php"/>

          <includeexpression="(.*)\.sh"/>

      </filter>

   </plugin>

 

   <plugin name="socket">

      <localpathwatch="/opt/tongbu">

          <deshost ip="192.168.138.20"port="8009"/>

      </localpath>

   </plugin>

   <plugin name="refreshCDN">

      <localpathwatch="/data0/htdocs/cms.xoyo.com/site/">

          <cdninfodomainname="ccms.chinacache.com" port="80"username="xxxx" passwd="xxxx"/>

          <sendurlbase="http://pic.xoyo.com/cms"/>

          <regexurl regex="false"match="cms.xoyo.com/site([/a-zA-Z0-9]*).xoyo.com/p_w_picpaths"/>

      </localpath>

   </plugin>

</head>

[root@nfs01 conf]#

sersync的幫助信息:

[root@nfs01 bin]#/usr/local/sersync/bin/sersync -help

set the system param

executeecho 50000000 >/proc/sys/fs/inotify/max_user_watches

executeecho 327679 >/proc/sys/fs/inotify/max_queued_events

parse the command param

_______________________________________________________

參數(shù)-d:啟用守護(hù)進(jìn)程模式

參數(shù)-r:在監(jiān)控前,將監(jiān)控目錄與遠(yuǎn)程主機(jī)用rsync命令推送一遍

c參數(shù)-n: 指定開啟守護(hù)線程的數(shù)量,默認(rèn)為10

參數(shù)-o:指定配置文件,默認(rèn)使用confxml.xml文件

參數(shù)-m:單獨啟用其他模塊,使用 -m refreshCDN 開啟刷新CDN模塊

參數(shù)-m:單獨啟用其他模塊,使用 -m socket 開啟socket模塊

參數(shù)-m:單獨啟用其他模塊,使用 -mhttp 開啟http模塊

不加-m參數(shù),則默認(rèn)執(zhí)行同步程序

________________________________________________________________

[root@nfs01 bin]#

1.1.2.3配置sersync的命令(三)

[root@nfs01 bin]# which sersync                   ###配置完配置文件,但是系統(tǒng)并沒有sersync這個命令

/usr/bin/which: no sersync in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

1,###追加環(huán)境變量

[root@nfs01 bin]# echo"export PATH=$PATH:/usr/local/sersync/bin" >>/etc/profile

[root@nfs01 bin]# tail -n 2/etc/profile

unset -f pathmunge

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin

[root@nfs01 bin]# which sersync

/usr/bin/which: no sersync in(/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

2,###生效環(huán)境變量配置文件

[root@nfs01 bin]#source /etc/profile

[root@nfs01 bin]# which sersync

/usr/local/sersync/bin/sersync

[root@nfs01 bin]#

1.1.2.4啟動sersync命令(四)

NFS客戶端上配置sersync,啟動命令。

[root@nfs01 data]#sersync -dro /usr/local/sersync/conf/confxml.xml

set the system param

executeecho 50000000 >/proc/sys/fs/inotify/max_user_watches

executeecho 327679 >/proc/sys/fs/inotify/max_queued_events

parse the command param

option: -d   run as a daemon

option: -r    rsync all the local files to the remote servers before the sersyncwork

option: -o    config xml name /usr/local/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 maxconnections=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 cpurate

chmod: cannot access`/application/logs/rsync_fail_log.sh': No such file or directory

------------------------------------------

rsync the directory recursivly to theremote servers once

working please wait...

execute command: cd /data &&rsync -avz -R --delete ./  --timeout=100rsync_backup@172.16.1.41::nfsbackup --password-file=/etc/rsync.password>/dev/null 2>&1

run the sersync:

watch path is: /data

[root@nfs01 data]#

在服務(wù)器上查看/backup文件中變化

[root@backup nfsbackup]# rm -fr *

[root@backup nfsbackup]# ls

[root@backup nfsbackup]# ls

3 4  hehe  maomao oldboy

[root@backup nfsbackup]#

  • sersync的參數(shù)

-r  開啟第一次進(jìn)行一次完全的同步,保持一致

-o指定confxml.xml 的文件

-n 指定默認(rèn)線程池的線程總數(shù),如果不指定默認(rèn)啟動線程池的數(shù)量是10,CPU使用過高,可以通過這個參數(shù)進(jìn)行調(diào)整

-d參數(shù)為后臺啟動

-m 不同步,只運行插件


1.2 高并發(fā)數(shù)據(jù)實時同步方案小結(jié):

  • inotifysersync+rsync,是文件級別的。

  • drbd文件系統(tǒng)級別,基于block塊同步,但是備節(jié)點數(shù)據(jù)不可用。

  • 第三方軟件的同步功能:mysql,oracle,mongodb

  • 程序雙寫,直接寫雙臺服務(wù)器

  • 利用業(yè)務(wù)邏輯解決(讀寫分離)

  • NFS集群(1 4 5 方案整合)(雙寫主存儲,備用存儲 inotify/sersync+rsync),沒有解決延遲問題。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI