[Groonga-commit] droonga/wikipedia-search.wiki at ead6f05 [master] Updated Droongaノードの死活管理をSerfで行う手順 (markdown)

アーカイブの一覧に戻る

YUKI Piro Hiroshi null+****@clear*****
Wed May 7 18:02:45 JST 2014


YUKI "Piro" Hiroshi	2014-05-07 18:02:45 +0900 (Wed, 07 May 2014)

  New Revision: ead6f05abdce448a957255b927cbd09af952da7d
  https://github.com/droonga/wikipedia-search/wiki/Droonga%E3%83%8E%E3%83%BC%E3%83%89%E3%81%AE%E6%AD%BB%E6%B4%BB%E7%AE%A1%E7%90%86%E3%82%92Serf%E3%81%A7%E8%A1%8C%E3%81%86%E6%89%8B%E9%A0%86/ead6f05abdce448a957255b927cbd09af952da7d

  Message:
    Updated Droongaノードの死活管理をSerfで行う手順 (markdown)

  Modified files:
    Droongaノードの死活管理をSerfで行う手順.md

  Modified: Droongaノードの死活管理をSerfで行う手順.md (+58 -0)
===================================================================
--- Droongaノードの死活管理をSerfで行う手順.md    2014-05-07 17:23:17 +0900 (379596f)
+++ Droongaノードの死活管理をSerfで行う手順.md    2014-05-07 18:02:45 +0900 (81b6186)
@@ -122,6 +122,63 @@
         node1  192.168.100.51:7946  alive
         node2  192.168.100.52:7946  alive
 
+### 障害によるクラスタからの離脱と再参加(すぐに再接続できるパターン)
+
+ 1. どれか1つのノード(例えばnode1)のVMを一時停止してみる。
+    すると、残ったノードに対してイベントが自動的に通知されて、各メンバーが持つメンバーリストが更新される。
+    * この時、クラスタに残されたノードではイベントハンドラに以下の情報が渡される(以下はnode0の場合)。
+      * $SERF_EVENT: `member-failed.`
+      * stdin: `node1 192.168.100.51`
+ 2. 他のノード(node0かnode2)で`serf members`してみる。
+    
+        (node0)
+        % serf members
+        node0  192.168.100.50:7946  alive
+        node1  192.168.100.51:7946  failed
+        node2  192.168.100.52:7946  alive
+    
+    failedとなっているのが、障害発生により暗黙的に離脱中のノードである。
+ 3. 離脱したノードのVMを再開する。
+    * この時、クラスタに残っていたノードでは一定時間ごとのポーリングによりノードの復帰が検知され、自動的に、イベントハンドラに以下の情報が渡される(以下はnode0の場合)。
+      * $SERF_EVENT: `member-join`
+      * stdin: `node1 192.168.100.51`
+ 5. クラスタへの復帰に成功したかどうか、`serf members`コマンドで確認する。
+    
+        % serf members
+        node0  192.168.100.50:7946  alive
+        node1  192.168.100.51:7946  alive
+        node2  192.168.100.52:7946  alive
+
+
+### 障害によるクラスタからの離脱と再参加(重篤な障害のパターン)
+
+ 1. どれか1つのノード(例えばnode1)のVMをリセットしてみる。
+    すると、残ったノードに対してイベントが自動的に通知されて、各メンバーが持つメンバーリストが更新される。
+    * この時、クラスタに残されたノードではイベントハンドラに以下の情報が渡される(以下はnode0の場合)。
+      * $SERF_EVENT: `member-failed.`
+      * stdin: `node1 192.168.100.51`
+ 2. 他のノード(node0かnode2)で`serf members`してみる。
+    
+        (node0)
+        % serf members
+        node0  192.168.100.50:7946  alive
+        node1  192.168.100.51:7946  failed
+        node2  192.168.100.52:7946  alive
+    
+    failedとなっているのが、障害発生により暗黙的に離脱中のノードである。
+ 3. 離脱したノードのVMを再開し、`serf agent`を実行してサービスを起動する。
+    * この時、クラスタに残っていたノードでは一定時間ごとのポーリングによりノードの復帰が検知され、自動的に、イベントハンドラに以下の情報が渡される(以下はnode0の場合)。
+      * $SERF_EVENT: `member-join`
+      * stdin: `node1 192.168.100.51`
+    * 復帰したノードの側でも、クラスタに残っていたノードからのメッセージにより`serf join`が自動的に実行される。
+ 4. クラスタへの復帰に成功したかどうか、`serf members`コマンドで確認する。
+    
+        % serf members
+        node0  192.168.100.50:7946  alive
+        node1  192.168.100.51:7946  alive
+        node2  192.168.100.52:7946  alive
+
+
 ### クラスタ全体への任意のメッセージの通知
 
  1. クラスタに参加中のノードからイベントを送る。
@@ -156,6 +213,7 @@
    このコマンドの働きは以下の通りとする。
    * `member-join`, `member-leave`イベントの受信時:liveなノードのリスト(ファイル)を更新する。
    * `user`, `query`イベントの受信時:ノードの死活状態の変更に関するものであった場合、liveなノードのリスト(ファイル)を更新する。
+   * ノードのリストのファイル
  * Droonga Engineは、初期状態で、catalog.jsonに記述されているすべてのノードがliveであると想定したliveなノードのリストを持つ。
  * Droonga Engineは、メッセージを配送する必要が生じた時は、メモリ上にあるliveなノードのリストに基づいて配送先を決定する。
  * Droonga Engineは、liveなノードのリスト(ファイル)が書き換えられたことを何らかの方法で検知して、メモリ上にあるliveなノードのリストを破棄し、ファイルから最新のliveなノードのリストを読み込む。
-------------- next part --------------
HTML����������������������������...
ダウンロード 



More information about the Groonga-commit mailing list
アーカイブの一覧に戻る