YUKI Piro Hiroshi
null+****@clear*****
Mon Apr 6 15:52:54 JST 2015
YUKI "Piro" Hiroshi 2015-04-06 15:52:54 +0900 (Mon, 06 Apr 2015) New Revision: 2201f282475573f288b34d753cc2e0cfa013401c https://github.com/droonga/wikipedia-search/wiki/%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%E5%A0%B4%E9%9D%A2%E3%81%AE%E6%A4%9C%E8%A8%BC%E6%89%8B%E9%A0%86/2201f282475573f288b34d753cc2e0cfa013401c Message: Updated ノンストップでノードを追加する場面の検証手順 (markdown) Modified files: ノンストップでノードを追加する場面の検証手順.md Modified: ノンストップでノードを追加する場面の検証手順.md (+11 -32) =================================================================== --- ノンストップでノードを追加する場面の検証手順.md 2015-04-06 15:39:34 +0900 (8dc5685) +++ ノンストップでノードを追加する場面の検証手順.md 2015-04-06 15:52:54 +0900 (560951f) @@ -196,56 +196,35 @@ $SOURCE_SUDO service td-agent start ## joinのステップ実行 +コマンドのshorthandを用意 + ~~~ serf="sudo -u droonga-engine -H /home/droonga-engine/droonga/serf" ~~~ -roleを変更 +まず新ノードをjoinさせる ~~~ $serf query -rpc-addr node2:7373 change_role '{"node":"node2:10031/droonga","role":"absorb-destination"}' -$serf members -rpc-addr node2:7373 -$serf query -rpc-addr node1:7373 add_replicas '{"cluster_id":"8951f1b01583c1ffeb12ed5f4093210d28955988","dataset":"Default","hosts":["node2"]}' $serf query -rpc-addr node2:7373 join '{"node":"node2:10031/droonga","type":"replica","source":"node1:10031/droonga","dataset":"Default"}' ~~~ -これで、各ノードは同一クラスタで、且つ新ノードのみが機能していない状態になる。 - この時点で、droonga-http-server �� node2は、接続先engineが存在しない(認識できていない)。 よって、全てが完了した後でdroonga-http-serverからserfクラスタへの再joinが必要となるが、現在はその仕組みがないので、手動でのdroonga-http-serverver再起動などの作業が必要である。何か対策を考えないといけない。 -次に、コピー元ノードの更新を止める。 +次に、他のノードから新ノードを見えるようにする。 ~~~ -$serf query -rpc-addr node1:7373 change_role '{"node":"node1:10031/droonga","role":"absorb-source"}' -$serf members -rpc-addr node1:7373 -echo '{"dataset":"Default","type":"system.status"}' | droonga-request --host node1 --receiver-host node -2 -Elapsed time: 0.019290464 -{ - "inReplyTo": "1427442288.9436483", - "statusCode": 200, - "type": "system.status.result", - "body": { - "nodes": { - "node0:10031/droonga": { - "status": "inactive" - }, - "node1:10031/droonga": { - "status": "active" - }, - "node2:10031/droonga": { - "status": "dead" - } - }, - "reporter": "node1:47716/droonga @ node1:10031/droonga" - } -} +$serf query -rpc-addr node1:7373 add_replicas '{"cluster_id":"8951f1b01583c1ffeb12ed5f4093210d28955988","dataset":"Default","hosts":["node2"]}' ~~~ -データをコピーする。 +これで、各ノードは同一クラスタで、且つ新ノードのみが機能していない状態になる。 +新ノード宛の書き込みメッセージの配送が始まるが、メッセージはバッファに溜まるようになっている。 + +次に、コピー元ノードの更新を止めて、データをコピーする。 ~~~ +$serf query -rpc-addr node1:7373 change_role '{"node":"node1:10031/droonga","role":"absorb-source"}' $serf query -rpc-addr node2:7373 absorb_data '{"node":"node2:10031/droonga","source":"node1:10031/droonga","port":10031,"tag":"droonga","dataset":"Default","messages_per_second":100}' $serf query -rpc-addr node2:7373 report_metadata '{"node":"node2:10031/droonga","key":"absorbing"}' @@ -254,7 +233,7 @@ $serf query -rpc-addr node1:7373 report_metadata '{"node":"node1:10031/droonga", $serf query -rpc-addr node2:7373 set_metadata '{"node":"node2:10031/droonga","key":"last_processed_message_timestamp","value":"2015-03-24T04:36:09.423Z"}' ~~~ -roleを戻す。 +最後に、roleを戻す。 ~~~ $serf query -rpc-addr node1:7373 change_role '{"node":"node1:10031/droonga","role":null}' -------------- next part -------------- HTML����������������������������... Descargar