Sersync服務器同步

 實驗環境:

同步豬服務器:192.168.1.128

同步目標服務器:192.168.1.100

軟件下載:http://code.google.com/p/sersync

sersync主要用於服務器同步,web鏡像等功能。基於boost1.43.0,inotify api,rsync command.開發。目前使用的比較多的同步解決方案是inotify-tools+rsync ,另外一個是google開源項目Openduckbill(依賴於inotify- tools),這兩個都是基於腳本語言編寫的。相比較上面兩個項目,本項目優點是:
  1. sersync是使用c++編寫,而且對linux系統文件系統產生的臨時文件和重複的文件操作進行過濾(詳細見附錄,這個過濾腳本程序沒有實現),所以在結合rsync同步的時候,節省了運行時耗和網絡資源。因此更快。
  2. 相比較上面兩個項目,sersync配置起來很簡單,其中bin目錄下已經有基本上靜態編譯的2進制文件,配合bin目錄下的xml配置文件直接使用即可。
  3. 另外本項目相比較其他腳本開源項目,使用多線程進行同步,尤其在同步較大文件時,能夠保證多個服務器實時保持同步狀態。
  4. 本項目有出錯處理機制,通過失敗隊列對出錯的文件重新同步,如果仍舊失敗,則按設定時長對同步失敗的文件重新同步。
  5. 本項目自帶crontab功能,只需在xml配置文件中開啓,即可按您的要求,隔一段時間整體同步一次。無需再額外配置crontab功能。
  6. 本項目socket與http插件擴展,滿足您二次開發的需要。

 

 

 

 

1:安裝配置同步目標主機(192.168.1.100)

yum install rsync xinetd -y

添加同步模塊 vi /etc/rsyncd.conf

uid=root

gid=root

max connections=36000

use chroot=no

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

 

[wow]          #同步模塊名wow

path=/opt/wow       #同步文件目錄

comment = test files

ignore errors = yes

read only = no

hosts allow = 192.168.1.128/24    #從此ip同步

hosts deny = *

使用xinetd管理rsync服務

vim /etc/xinetd.d/rsync

disable=yes改成no

/etc/init.d/xinetd start

chkconfig rsync on

2.安裝配置主同步服務器(192.168.1.128)

yum install rsync -y

tar zxf sersync2.5_64bit_biary_stable_final.tar.gz

cd GUN-Linux-x86

修改配置文件 vim confxml.xml

...

<sersync>

          <localpath watch="/opt/wow">     #本地同步目錄

          <remote ip="192.168.1.100" name="wow">   #同步目標服務器IP和同步模塊

          <remote ip="192.168.1.101" name="wow">

<localpath>

...

運行同步腳本./sersync2 -r   #遠程和本地整體同步一遍

./sersync2 -n 8 -r -d 設置線程池工作線程8個,-d打入後臺實時同步。

默認可以對多臺機器同步,如果想同步本地多個目錄

修改同步目標主機的同步模塊添加

[lol]          #同步模塊名lol

path=/opt/lol       #同步文件目錄

comment = test files

ignore errors = yes

read only = no

hosts allow = 192.168.1.128/24    #從此ip同步

hosts deny = *

修改主同步服務器

cp confxml.xml confxml-1.xml

vim confxml-1.xml

...

<sersync>

          <localpath watch="/opt/lol">     #本地同步目錄

          <remote ip="192.168.1.100" name="lol">   #同步目標服務器IP和同步模塊

          <remote ip="192.168.1.101" name="lol">

<localpath>

...

執行./sersync2 -r -d打入後臺實時同步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章