Author Archives: 佐々木 鎮也

佐々木 鎮也

About 佐々木 鎮也

高校時代より独学でC、アセンブラを学ぶ。 パソコンスクール講師 → カノープス株式会社(現グラスバレー、MEDIAEDGE)を経て、当時の取締役の誘いでパクレゼルヴに入社する。 事業分社以前は事業部を統括。現グルーポン・ジャパン立ち上げ時のサーバーインフラなども担当。 分社化後は現社長の的場大昌に委ね技術者として専念する。 趣味は週末娘と遊ぶこと。

lsyncdを複数起動する

By | 2015/02/12 4:31 PM

lsyncdを複数起動するtips。対象はCentOS 6以前です。

/etc/lsyncd.conf には複数設定を記載することが出来ますがサービスプロセスを分けてしまいたいことがあります。
CentOS 5および6ではepelにlsyncdのパッケージが用意されており簡単にインストールすることができますが、デフォルトの起動スクリプト(/etc/init.d/lsyncd)ではkillprocやstatusの引数にpidファイル等の引数が与えられておらず、そのままコピーしても複数起動時に問題が発生し正しく動作しません。

/etc/init.d/lsyncdをスクリプトを一部修正することで複数起動しても正しく動作するようになります。
以下に修正例を記載します。

元のファイルからの修正箇所は下記のとおりです。

変更点を簡単に説明するとkillprocやstatusといった/etc/init.d/functionsで定義されているファンクションでpidファイルやlockファイルを指定するように書き換えています。
又、コピーの際にpidファイル、confファイル、sysconfigファイルなどの書き換えを行わなくてもすむように定数を変数に置き換えています。

使用方法

/etc/init.d/lsyncd を上記の例の通り修正した上で、起動スクリプトをコピーします。
下記の例では lsyncd_2 という名前でコピーしています。

新しい設定ファイル /etc/lsyncd_2.conf を編集します。

必要に応じて自動起動設定を行ってください。

lsyncdで複数サーバーをターゲットに同期する際のtips

By | 2015/01/27 7:03 PM

佐々木です。

前回に引き続き lsyncd に関するtips
lsyncdで複数サーバーと同期を行う場合、下記のような設定をよく見かけます。

これは次のように書き換えることができます。

同一設定をまとめることでスッキリしました。
上記で大分見通しがよくなりメンテナンスが行い易くなりましたが、できれば同期先の設定リストを別ファイルとして分けて読み込めるようにしたいものです。

lsyncdの設定ファイルはlua言語で書かれたコードであるため、プログラムを記載すれば実現可能です。
以下にサンプルコードを記載します。

/etc/sync-server.list には同期先のIPアドレスを記載します。


xxx.xxx.xxx.xxx
yyy.yyy.yyy.yyy

設定ファイルと思っていたものがプログラムになってしまいましたが、上記のようにしておけば何か別のバッチなどでIPアドレスのリストを吐き出せるようにするだけ同期先を追加できるようになります。

以上、ご参考になれば幸いです。

lsyncdを使う時はtimeoutを設定しましょう

By | 2015/01/26 11:50 PM

はじめまして。佐々木です。

ブログ書くべきと言い出したわりに、なかなか投稿しない悪い奴という汚名がつきそうになったので、とりあえず軽いネタをご紹介したいと思います。

lsyncdを実運用していると一時的なネットワーク通信断などが発生した場合、稀にrsyncプロセスが途中で止まってしまい、残ってしまうことがあります。
この現象が発生すると、次にファイルが更新された時でも前のプロセスが終わるまで待ち状態となり同期が停止してしまいます。

この問題はrsyncのオプションでtimeoutおよびcontimeoutを指定すると回避することができます。
lsyncd.confから設定する場合は、_extraで指定すればよいです。

以下に、設定例を記載します。

–timeoutは転送のタイムアウト値。–contimeoutはrsyncデーモンに接続する場合のタイムアウト値です。
上記設定を行っておけば、何らかの状況により同期が止まってしまった場合でも、指定時間でタイムアウトが行われ継続して同期が行われるようになります。

以上、小ネタではありますがlsyncdに関する設定のご紹介でした。