YUKI Piro Hiroshi
null+****@clear*****
Thu Jun 26 18:00:52 JST 2014
YUKI "Piro" Hiroshi 2014-06-26 18:00:52 +0900 (Thu, 26 Jun 2014) New Revision: 3620d67ecc043e188b75a436de7b1e95ed955cbb 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/3620d67ecc043e188b75a436de7b1e95ed955cbb Message: Updated Droongaクラスタにノンストップでノードを追加する手順 (markdown) Modified files: Droongaクラスタにノンストップでノードを追加する手順.md Modified: Droongaクラスタにノンストップでノードを追加する手順.md (+13 -7) =================================================================== --- Droongaクラスタにノンストップでノードを追加する手順.md 2014-06-26 17:50:00 +0900 (6a0c31d) +++ Droongaクラスタにノンストップでノードを追加する手順.md 2014-06-26 18:00:52 +0900 (7c0de50) @@ -86,6 +86,7 @@ droonga-engineは以下の挙動になるよう変更を行っておく。 --source=~/droonga/catalog.json \ --output=~/tmp/catalog.json node0% scp catalog.json 192.168.100.52:/tmp/ + node2% echo 7375 > ~/droonga/state/serf_port node2% droonga-catalog-modify-replicas --dataset=Starbucks \ --add-hosts="" \ --remove-hosts="192.168.100.50,192.168.100.51" \ @@ -95,8 +96,8 @@ droonga-engineは以下の挙動になるよう変更を行っておく。 この時点で、 - * node2はクラスタ構成が違うので、実際にはノードとして動作しない。 - * node2は、生存ノードから見た時は死んだノードとして扱われるようになる。 + * node2はserfの監視ポートが違う(7375)ので、元のクラスタから見たらノードとして動作しない。 + * node2は、node0, node1から見た時は死んだノードとして扱われるようになる。 * node2自身から見た時は、node2だけのクラスタとなっている。 * 生存ノードからnode2へ配送される予定だったwriteなメッセージが、バッファに溜まり始める。 @@ -109,6 +110,7 @@ node1のcatalog.jsonをクラスタから切り離す。 node1のノード構成を変更する。 + node1% echo 7374 > ~/droonga/state/serf_port node1% droonga-catalog-modify-replicas --dataset=Starbucks \ --add-hosts="" \ --remove-hosts=192.168.100.50,192.168.100.52 \ @@ -117,10 +119,10 @@ node1のノード構成を変更する。 この時点で、 - * node1はクラスタ構成が違うので、実際にはノードとして動作しない。 - * node1は、生存ノードから見た時は死んだノードとして扱われるようになる。 + * node1はserfの監視ポートが違う(7374)ので、元のクラスタから見たらノードとして動作しない。 + * node1は、node0から見た時は死んだノードとして扱われるようになる。 * node1自身から見た時は、node1だけのクラスタとなっている。 - * 生存ノードからnode1へ配送される予定だったwriteなメッセージが、バッファに溜まり始める。 + * node0からnode1へ配送される予定だったwriteなメッセージが、バッファに溜まり始める。 ## step3: node1からnode2へデータを複製する。 @@ -131,8 +133,6 @@ drndumpでデータを複製する。 --dataset=Starbacks | \ droonga-client --host=192.168.100.52 -※droonga-requestコマンドが標準入力からjsonsを受け取れる前提。 - ※step2, step3を1操作で行うコマンドの案 node1% droonga-replicate --from-host=192.168.100.51 \ @@ -156,6 +156,12 @@ drndumpでデータを複製する。 droonga-engineが自動的に新しいcatalog.jsonを認識する。 +しかし、node1とnode2はserfのポート番号が違うため、まだ生存ノードから見たら死んだノード扱いになっている。 +そこで、serfのポート番号を元に戻す。 + + node1% echo 7373 > ~/droonga/state/serf_port + node2% echo 7373 > ~/droonga/state/serf_port + ここで、node1とnode2は、生存ノードから見た時に、ステータスが「死んでいるノード」から「復帰中のノード」に切り替わる。 * 生存ノードはバッファに溜め込んでおいたwriteなメッセージを、復帰中のノード(node1とnode2)に配送し始める。 -------------- next part -------------- HTML����������������������������... Download