Hatena::ブログ(Diary)

130単位

2011-06-23

lsyncd2系で複数サーバーにリアルタイム同期

同期元でファイルの変更を検知してリアルタイムミラーリングできます。2.0系から設定ファイルがXMLでなくLUAという言語のものになったようです。

環境

構成

同期先サーバー

rsyncdで待ち受け
  • rsyncd設定
sudo vim /etc/rsyncd.conf
[application]
path = /path/to/application
log file = /tmp/rsyncd.log
uid = apache
gid = apache
read only = no
  • rsyncd起動
sudo rsync --daemon
rsyncd自動起動
sudo yum install xinetd
sudo vim /etc/xinetd.d/rsync
service rsync
{
        disable = no
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/bin/rsync
        server_args     = --daemon
        log_on_failure  += USERID
}
  • disableをnoにする
  • xinetdによる起動
sudo /etc/init.d/xinetd start
sudo chkconfig xinetd on

同期元サーバー

lsyncdインストール
#必要なパッケージ
sudo yum install make gcc pkgconfig lua-devel
#lsyncd DL&展開
wget http://lsyncd.googlecode.com/files/lsyncd-2.0.4.tar.gz
tar xzf lsyncd-2.0.4.tar.gz
#インストール
cd lsyncd-2.0.4
./configure
make && sudo make install
lsyncd設定
sudo vim /etc/lsyncd.conf
settings = {
   logfile    = "/tmp/lsyncd.log", --ログファイル
   statusFile = "/tmp/lsyncd.status", --同期ファイル状態
   nodaemon   = false, --デーモンモードON/OFF
}

sync {
    default.rsync, --同期コマンド種別
    source="/path/to/source", --同期元
    target="xxx.xxx.xxx.xxx::application", --同期先
    rsyncOps="-ltus" --rsync上書きオプション
}

--[[
sync {
    default.rsync,
    source="/path/to/source",
    target="xxx.xxx.xxx.xxx::application",
    rsyncOps="-ltus"
}
]]
  • settingsに設定記述
  • syncに同期の情報記述
  • defalut.rsyncの動作
/usr/bin/rsync -ltsd --delete --include-from=- --exclude=* SOURCE TARGET
lsyncd起動
#動作チェック
lsyncd -rsync /path/to/source xxx.xxx.xxx.xxx::destmodule
#通常起動
lsyncd /etc/lsyncd.conf

使ってみて

  • ファイル変更から同期開始までは数秒の遅延がある
  • Webサーバー追加時は設定追記してlsyncd再起動必要
  • Webサーバーキャッシュクリアしたい場合
  • オートスケーリングとの共存は相当困難な気がする
    • オートスケーリング前提なら管理サーバーでrsyncd動かしてWeb側の初期スクリプトで取りにいくのが良さげ

関連リンク


4774145017
プロのための Linuxシステム構築・運用技術 (Software Design plus)

4774146005
サーバ/インフラエンジニア養成読本 [現場で役立つ知恵と知識が満載!] (Software Design plus)

関連記事

トラックバック - http://d.hatena.ne.jp/deeeki/20110623/lsyncd2_multiple_servers
リンク元