YUKI Piro Hiroshi
null+****@clear*****
Tue May 20 18:52:47 JST 2014
YUKI "Piro" Hiroshi 2014-05-20 18:52:47 +0900 (Tue, 20 May 2014) New Revision: 742974a33e97977e4af1fe04e7e2ba1a6fac2e24 https://github.com/droonga/wikipedia-search/wiki/Droonga%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%81%AB%E3%83%8E%E3%83%B3%E3%82%B9%E3%83%88%E3%83%83%E3%83%97%E3%81%A7%E3%83%8E%E3%83%BC%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86/742974a33e97977e4af1fe04e7e2ba1a6fac2e24 Message: Updated Droongaクラスタにノンストップでノードを追加する手順 (markdown) Modified files: Droongaクラスタにノンストップでノードを追加する手順.md Modified: Droongaクラスタにノンストップでノードを追加する手順.md (+32 -1) =================================================================== --- Droongaクラスタにノンストップでノードを追加する手順.md 2014-05-20 18:48:15 +0900 (3c41a13) +++ Droongaクラスタにノンストップでノードを追加する手順.md 2014-05-20 18:52:47 +0900 (2de4734) @@ -16,6 +16,20 @@ を複製元として使う。 +## 事前実装 + +serfを利用したクラスタの死活監視の仕組みについて、以下の挙動になるよう変更を行っておく。 + + * serfの各ノードは、タグ情報として「自分が属しているクラスタ」の情報(全ノードの名前を連結した文字列、またはそのハッシュ値)を持つ。 + * `sert members` の結果のうち、状態が「live」で且つタグ情報に含まれている所属クラスタの情報が自分と一致するノードだけを、「生存しているノード」と判断する。 + +また、droonga-engineは以下の挙動になるよう変更を行っておく。 + + * 新しいcatalog.jsonが監視対象ディレクトリ(staging-catalog)以下に配置されたら、即座にそれを検知する。 + * effectiveDateが現在時刻より前であれば、監視対象ディレクトリに置かれたstagingなcatalog.jsonの内容を、メモリ上のcatalog.jsonの内容に即座に反映する。と同時に、ファイルへの書き込み権限がある場合は、本番のcatalog.jsonにも変更を反映する。 + + + ## 基本方針 1. node2をクラスタに仮追加する @@ -39,7 +53,24 @@ ## step2: node1, node2をクラスタから切り離す node1, node2のcatalog.jsonのノード構成を変更し、クラスタから切り離す。 -手順は[通常版の場合](./Droonga%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%81%AB%E3%83%8E%E3%83%BC%E3%83%89%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86#step2-node1%E3%82%92%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%BF%E3%81%8B%E3%82%89%E5%88%87%E3%82%8A%E9%9B%A2%E3%81%99)と同じとする。 + +node1, node2のcatalog.jsonを更新する。 + + node1% droonga-catalog-modify-replicas --dataset=Starbucks \ + --add-hosts="" \ + --remove-hosts=192.168.100.50,192.168.100.52 \ + --source=~/droonga/catalog.json \ + --output=~/droonga/staging-catalog/catalog.json + node2% droonga-catalog-modify-replicas --dataset=Starbucks \ + --add-hosts="" \ + --remove-hosts=192.168.100.51,192.168.100.52 \ + --source=~/droonga/catalog.json \ + --output=~/droonga/staging-catalog/catalog.json + + + * この時点で、node1, node2はクラスタから切り離される。 + (生存ノードから見た時は、node1は死んだノードとして扱われる。) + * node1/node2自身から見た時は、node1/node2だけのクラスタとなっている。 この時、生存ノードは以下のモードに切り替わる。 -------------- next part -------------- HTML����������������������������... ダウンロード