[groonga-dev,03044] Re: Droongaのクラスタ構築についてのご質問

Back to archive index

YUKI Hiroshi yuki****@clear*****
2015年 1月 7日 (水) 10:56:07 JST


Droonga開発チームの結城です。
フィードバックありがとうございます!
ご不便をおかけして申し訳ありません……

> これはnode2の49126ポート、あるいはその他のポートも開放する必要があると
いうことでしょうか?
> (現在はnode1, node2ともdroonga-engineの10031、droonga-http-serverの
10041、serfの7946,
> 8946ポートしか開放していません)

node2上でdroonga-http-serverが動作していて、node2のdroonga-http-serverに
対してHTTPリクエストを送ったという状況であれば、このような現象が起こる可
能性は高いです。
droonga-http-server @ node2は、droonga-engine @ node1からのレスポンスを受け
取るための物と、droonga-engine @ node2からのレスポンスを受け取るための物
の、2つのサーバソケットを開いて接続を待ち受けます。
これらのソケットのためのポートが解放されていないと、droonga-http-
server @ node2droonga-engine @ node1空送り返されてきたメッセージを受け取る
ことができません。

現状では、これらのソケットのためのポート番号は完全にランダムに決定される
仕様のため、あらかじめ開放するポートを決めておくということが残念ながらで
きません。
droonga-http-serverがdroonga-engineからのメッセージを待ち受けるための
ポートを固定、あるいは使うポート番号の範囲を指定できるように、なるべく早
急に何らかの対策を講じたいと思っております!


Seto Ryuta wrote:
> こんにちは。瀬戸と申します。
> 
> 新規サービスの検索サーバーとしてdroongaを利用させて頂いています。
> 
> droongaの単体ノード2つで起動確認をした後、複数ノードの設定を試みているのですが、
> エラーにより応答が得られなくなってしまいました。
> その際に発生したエラーについてご質問させて下さい。
> 
> node1, node2という2つのサーバーを用意し、それぞれにdroonga1.0.9を導入し、単体でサービス起動、応答確認を行いました。
> その後、droonga-engine-configure,
> droonga-http-server-configureからクラスタ構成に設定を変更しました。
> また、相互にノードが参照できるよう、/etc/hosts にそれぞれのホスト名を記述し、serfで利用する7946, 8946ポートを解放しました。
> 以上の設定を行った後、droongaを再起動し、system/statusのリクエストをしたのですが、サーバーから応答が得られなくなってしまいました。
> droongaを停止させると、node1のdroonga-engineに次のようなログが残っていました。
>    2015-01-07T09:24:20+09:00[3966][error]: [3960] fluent-message-sender:
> failed to connect to node2:49126
> これはnode2の49126ポート、あるいはその他のポートも開放する必要があるということでしょうか?
> (現在はnode1, node2ともdroonga-engineの10031、droonga-http-serverの10041、serfの7946,
> 8946ポートしか開放していません)
> ご教示頂ければ幸いです。
> よろしくお願いします。
> 
> 
> node1のdroonga-engineログ(IPアドレスは伏せています)
> ====================================================
> 2015-01-07T09:23:49+09:00[3966][info]: engine: catalog loaded
> path="/home/droonga-engine/droonga/catalog.json" mtime=2015-01-06 18:56:20
> +0900
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Starting Serf agent...
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Starting Serf agent
> RPC...
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Serf agent running!
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:      Node name:
> 'node1:10031/droonga'
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:      Bind addr:
> '[node1のIPアドレス]:7946'
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:       RPC addr:
> 'node1:7373'
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:      Encrypted: false
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:       Snapshot: false
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:        Profile: lan
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: Log data will now stream
> in as it occurs:
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]:
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: Serf agent
> starting
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: serf: EventMemberJoin:
> node1:10031/droonga [node1のIPアドレス]
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: Joining
> cluster...(replay: false)
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: joining: [node2]
> replay: false
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: serf: EventMemberJoin:
> node2:10031/droonga [node2のIPアドレス]
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: joined: 1 nodes
> 2015-01-07T09:23:48+09:00[3960][info]: serf[3964]: agent: Join completed.
> Synced with 1 initial agents
> 2015-01-07T09:23:49+09:00[3960][info]: serf[3964]: agent: Received event:
> member-join
> 2015-01-07T09:23:50+09:00[3960][info]: serf[3964]: agent.ipc: Accepted
> client: [node1のIPアドレス]:38466
> 2015-01-07T09:23:53+09:00[3960][info]: serf[3964]: serf: EventMemberJoin:
> node2/protocol-adapter [node2のIPアドレス]
> 2015-01-07T09:23:54+09:00[3960][info]: serf[3964]: agent: Received event:
> member-join
> 2015-01-07T09:23:54+09:00[3960][info]: serf[3964]: agent.ipc: Accepted
> client: [node1のIPアドレス]:38467
> 2015-01-07T09:23:55+09:00[3960][info]: serf[3964]: agent.ipc: Accepted
> client: [node1のIPアドレス]:38468
> 2015-01-07T09:23:50+09:00[3966][info]: engine: live-nodes loaded
> path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07
> 09:23:50 +0900
> 2015-01-07T09:23:55+09:00[3966][info]: engine: live-nodes loaded
> path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07
> 09:23:54 +0900
> 2015-01-07T09:24:20+09:00[3966][error]: [3960] fluent-message-sender:
> failed to connect to node2:49126
> 2015-01-07T09:24:24+09:00[3966][error]: [3960] fluent-message-sender:
> failed to connect to node2:34670
> 
> 
> 
> node2のdroonga-engineログ(IPアドレスは伏せています)
> ====================================================
> 2015-01-07T09:21:14+09:00[24485][info]: engine: catalog loaded
> path="/home/droonga-engine/droonga/catalog.json" mtime=2015-01-06 18:58:10
> +0900
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Starting Serf agent...
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Starting Serf agent
> RPC...
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Serf agent running!
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:      Node name:
> 'node2:10031/droonga'
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:      Bind addr:
> '[node2のIPアドレス]:7946'
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:       RPC addr:
> 'node2:7373'
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:      Encrypted: false
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:       Snapshot: false
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:        Profile: lan
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: Log data will now
> stream in as it occurs:
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]:
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: agent: Serf agent
> starting
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: serf: EventMemberJoin:
> node2:10031/droonga [node2のIPアドレス]
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: agent: Joining
> cluster...(replay: false)
> 2015-01-07T09:21:13+09:00[24479][info]: serf[24483]: agent: joining:
> [node1] replay: false
> 2015-01-07T09:21:13+09:00[24479][warn]: serf[24483]: agent: error joining:
> dial tcp [node1のIPアドレス]:7946: connection refused
> 2015-01-07T09:21:13+09:00[24479][warn]: serf[24483]: agent: Join failed:
> dial tcp [node1のIPアドレス]:7946: connection refused, retrying in 30s
> 2015-01-07T09:21:14+09:00[24479][info]: serf[24483]: agent: Received event:
> member-join
> 2015-01-07T09:21:15+09:00[24479][info]: serf[24483]: agent.ipc: Accepted
> client: [node2のIPアドレス]:52964
> 2015-01-07T09:21:16+09:00[24479][info]: serf[24483]: serf: EventMemberJoin:
> node1:10031/droonga [node1のIPアドレス]
> 2015-01-07T09:21:17+09:00[24479][info]: serf[24483]: agent: Received event:
> member-join
> 2015-01-07T09:21:17+09:00[24479][info]: serf[24483]: agent.ipc: Accepted
> client: [node2のIPアドレス]:52965
> 2015-01-07T09:21:20+09:00[24479][info]: serf[24483]: agent.ipc: Accepted
> client: [node2のIPアドレス]:52966
> 2015-01-07T09:21:20+09:00[24479][info]: serf[24483]: serf: EventMemberJoin:
> node2/protocol-adapter [node2のIPアドレス]
> 2015-01-07T09:21:21+09:00[24479][info]: serf[24483]: agent: Received event:
> member-join
> 2015-01-07T09:21:22+09:00[24479][info]: serf[24483]: agent.ipc: Accepted
> client: [node2のIPアドレス]:52970
> 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: Joining
> cluster...(replay: false)
> 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: joining:
> [node1] replay: false
> 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: joined: 1 nodes
> 2015-01-07T09:21:43+09:00[24479][info]: serf[24483]: agent: Join completed.
> Synced with 1 initial agents
> 2015-01-07T09:21:59+09:00[24479][info]: serf[24483]: serf:
> EventMemberLeave: node1:10031/droonga [node1のIPアドレス]
> 2015-01-07T09:22:00+09:00[24479][info]: serf[24483]: agent: Received event:
> member-leave
> 2015-01-07T09:21:15+09:00[24485][info]: engine: live-nodes loaded
> path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07
> 09:21:15 +0900
> 2015-01-07T09:21:18+09:00[24485][info]: engine: live-nodes loaded
> path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07
> 09:21:17 +0900
> 2015-01-07T09:21:22+09:00[24485][info]: engine: live-nodes loaded
> path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07
> 09:21:22 +0900
> 2015-01-07T09:22:01+09:00[24485][info]: engine: live-nodes loaded
> path="/home/droonga-engine/droonga/state/live-nodes.json" mtime=2015-01-07
> 09:22:00 +0900
> 2015-01-07T09:22:01+09:00[24485][error]: [24479] fluent-message-sender:
> failed to connect to node1:10031
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service: failed to
> run services: IOError: closed stream
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:130:in
> `close'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:130:in
> `shutdown'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:74:in
> `shutdown_heartbeat_receiver'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:45:in
> `stop_gracefully'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/fluent_message_receiver.rb:53:in
> `stop_immediately'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:224:in
> `stop_immediately'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:165:in
> `block in run_worker_process_agent'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:116:in
> `call'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:116:in
> `on_stop_immediately'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:103:in
> `block in create_output'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:107:in
> `call'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/worker_process_agent.rb:107:in
> `block in create_output'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> (eval):8:in `instance_exec'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> (eval):8:in `on_close'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:112:in
> `close'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:134:in
> `rescue in on_readable'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:127:in
> `on_readable'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/io.rb:191:in
> `on_readable'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/loop.rb:88:in
> `run_once'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/cool.io-1.2.4/lib/cool.io/loop.rb:88:in
> `run'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:120:in
> `run_services'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:56:in
> `run'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/lib/droonga/command/droonga_engine_service.rb:32:in
> `run'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/lib/ruby/gems/2.1.0/gems/droonga-engine-1.0.9/bin/droonga-engine-service:20:in
> `<top (required)>'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/bin/droonga-engine-service:23:in `load'
> 2015-01-07T09:22:03+09:00[24485][error]: droonga-engine-service:
> /usr/local/bin/droonga-engine-service:23:in `<main>'
> 
> --
> 瀬戸
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/groonga-dev
> 

-- 
結城 洋志 <YUKI Hiroshi>
E-mail: yuki****@clear*****

株式会社クリアコード
〒170-0005 東京都豊島区南大塚3-29-9
           中野ビル3階
TEL : 03-5927-9440
FAX : 03-5927-9441
WWW : http://www.clear-code.com/




groonga-dev メーリングリストの案内
Back to archive index