SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
#qpstudy 08懇親会 LT
lsyncdによる
共有フゔ゗ルシステムっぽい何かの検証
@ttkzw 滝澤 隆史
2




私は誰
• 氏名: 滝澤 隆史 @ttkzw
• 何やっている人
 ▫ メーラMuttの国際化や日本語対応パッチ作者
 ▫ SpamAssassinの日本語対応パッチ作者
 ▫ DNSサーバUnbound/NSD関連文書の翻訳
lsyncd 2.0以降について説明
lsyncd (Live Syncing Daemon)
フゔ゗ルシステムの゗ベント
                    主用途はフゔ゗ルやデゖレクトリのミラー
に対して非同期にゕクション
                     他の用途にも使える(Luaで拡張可能)
  を実施するデーモン


                 ゕクション/ミラー(rsync)
    lsyncd                           フゔ゗ル

                 フゔ゗ル
 ゗ベント
                     フゔ゗ル操作

                 フゔ゗ル
    inotify
                 システム

 フゔ゗ルシステムの゗ベ
 ントを監視して通知する
  Linuxカーネルの機能
標準構成
• 3つの標準(組み込み)構成が用意されている
▫ rsync
   ミラーにrsyncを使う
▫ rsyncssh
   ミラーにrsync + sshを使う
   リモートホストに転送可能
▫ direct
   cp|rm|mvを使う
設定フゔ゗ル
• lsyncd.conf
 ▫ 設定をLuaの構文で記述
 ▫ sync{
     default.rsyncssh,
     source="/srv/data/",
     host="root@backup.example.jp",
     targetdir="/srv/data/",
     rsyncOpts="-ltus"
     init=false
   }
リーダーのついーと
私の返信
「何らかの工夫」を検討してみた
正常な同期
         ゕクテゖブ            スタンバ゗
フゔ゗ル作成
          フゔ゗ル
                 lsyncd




         ゕクテゖブ            スタンバ゗
 同期完了
          フゔ゗ル             フゔ゗ル
                 lsyncd
障害発生でフェ゗ルオーバ
• 障害が発生してフゔ゗ルの同期前に
  フェ゗ルオーバした場合はどうなるか?
コピー前にフェ゗ルオーバ
         ゕクテゖブ              スタンバ゗
フゔ゗ル作成
          フゔ゗ル
                 lsyncd




 フェ゗ル    スタンバ゗              ゕクテゖブ
  オーバ     フゔ゗ル
                          lsyncd



                                    フゔ゗ル
         スタンバ゗              ゕクテゖブ
初期同期完了                               消失
          フゔ゗ル
                          lsyncd
対策
• フェ゗ルオーバ後のlsyncdの初期同期が問題を
  起こしている
• →lsyncdの初期同期をやめてみる
コピー前にフェ゗ルオーバ
(lsyncd起動時の初期同期無し)
         ゕクテゖブ              スタンバ゗
フゔ゗ル作成
          フゔ゗ル
                 lsyncd




 フェ゗ル    スタンバ゗              ゕクテゖブ
  オーバ     フゔ゗ル
                          lsyncd

                                    フゔ゗ル
                                    が利用で
         スタンバ゗              ゕクテゖブ
初期同期なし                               きない
          フゔ゗ル
                          lsyncd
対策
• フェ゗ルオーバ前に未同期のフゔ゗ルは
  フェ゗ルオーバ後には利用できない。
• そもそもlsyncdを両ノードで動かしっぱなしに
  すればいいんじゃない?
両ノードで動かす
(lsyncd起動時の初期同期無し)
         ゕクテゖブ               スタンバ゗
                          lsyncd
フゔ゗ル作成
          フゔ゗ル
                 lsyncd




 フェ゗ル    スタンバ゗               ゕクテゖブ
                          lsyncd

  オーバ     フゔ゗ル
                 lsyncd


                                     成功
         スタンバ゗               ゕクテゖブ
                          lsyncd
 同期完了
          フゔ゗ル              フゔ゗ル
                 lsyncd
検討
• 両ノードで動かすと双方向同期ができる
• 「共有フゔ゗ルシステム」っぽい
• 「なんちゃって共有フゔ゗ルシステム」ができ
  る!
なんちゃって共有フゔ゗ルシステム
                              lsyncd
フゔ゗ル作成
              フゔ゗ル
                     lsyncd


                              lsyncd
  同期
              フゔ゗ル                     フゔ゗ル
                     lsyncd


                              lsyncd   フゔ゗ル
                                              フゔ゗ル作成
              フゔ゗ル                     フゔ゗ル
                     lsyncd

         成功
              フゔ゗ル
                              lsyncd   フゔ゗ル
                                               同期完了
              フゔ゗ル                     フゔ゗ル
                     lsyncd
lsyncdの特徴による問題点・制限
• 非同期であるため、同期遅れが発生する
• 細かい変更が絶えず発生するフゔ゗ルには向か
  ない
 ▫ 数秒毎にフゔ゗ル全体のコピーが繰り返される
 ▫ データベースとかログフゔ゗ルとか
• inotifyの制限値(要変更)
 ▫ /proc/sys/fs/inotify/max_queued_events
 ▫ /proc/sys/fs/inotify/max_user_instances
 ▫ /proc/sys/fs/inotify/max_user_watches
なんちゃって共有フゔ゗ルシステムの
問題点は?
• lsyncdが停止中に書き込まれたフゔ゗ルは同期
  されないまま残る
 ▫ 常にlsyncdを起動するような工夫が必要
   (死んだら蘇生させる)
• 同期前にlsyncdあるいはノードが落ちたら同期
  されないままになる
 ▫ 仕方ないね\(^o^)/
なんちゃって共有フゔ゗ルシステムの
問題点は?
• フゔ゗ルのロックをかけられない
▫ ロックフゔ゗ルの場合は数秒遅れで同期する
• 両ノードで同じフゔ゗ルを操作すると危険
▫ 同期処理前に最後に操作したフゔ゗ルが勝ち
• 一般的な共有フゔ゗ルシステムと同じ問題を抱
  える
適応できる用途
• HAクラスタの共有ストレージ
• デゖザスタリカバリ
▫ 2拠点間の各ノードに常に複製ができる
• フゔ゗ルサーバ
▫ 拠点(事務所)を変えても常にローカルのフゔ゗
  ルサーバを利用できる
  東京本社のフゔ゗ルサーバに保存したフゔ゗ルが
   大阪支店のフゔ゗ルサーバで読み書きできる
結論
• ゕクテゖブ/スタンバ゗構成のHAクラスタの共
  有フゔ゗ルシステム代わりには何となく使えそ
  う
▫ 用途の制限はあるけど
• 拠点間で配置すると夢が広がるかも
▫ 問題はあるけど

Contenu connexe

Plus de Takashi Takizawa

BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)Takashi Takizawa
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Takashi Takizawa
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動Takashi Takizawa
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -Takashi Takizawa
 
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)Takashi Takizawa
 
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門Takashi Takizawa
 
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)Takashi Takizawa
 
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Takashi Takizawa
 
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門Takashi Takizawa
 
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史Takashi Takizawa
 
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介Takashi Takizawa
 
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinhbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinTakashi Takizawa
 

Plus de Takashi Takizawa (18)

BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)BIND of Summer (2017-04-13)
BIND of Summer (2017-04-13)
 
nginx入門
nginx入門nginx入門
nginx入門
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
 
RFCについての復習
RFCについての復習RFCについての復習
RFCについての復習
 
DNS RFC系統図
DNS RFC系統図DNS RFC系統図
DNS RFC系統図
 
DNSのRFCの歩き方
DNSのRFCの歩き方DNSのRFCの歩き方
DNSのRFCの歩き方
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 メールと暗号 - SSL/TLS -
 
#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)#mailerstudy 02 暗号入門 (2012-02-22更新)
#mailerstudy 02 暗号入門 (2012-02-22更新)
 
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
 
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)UnboundとDNSSEC(OSC2011 Tokyo/Spring)
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
 
Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)Unboundの最適化(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
 
#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門#mailerstudy 01 LT POP/IMAP入門
#mailerstudy 01 LT POP/IMAP入門
 
#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史#dnstudy 01 ドメイン名の歴史
#dnstudy 01 ドメイン名の歴史
 
DNS再入門
DNS再入門DNS再入門
DNS再入門
 
#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介#dnstudy 01 Unboundの紹介
#dnstudy 01 Unboundの紹介
 
hbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassinhbstudy20100821 SpamAssassin
hbstudy20100821 SpamAssassin
 

qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証