[Groonga-commit] droonga/wikipedia-search.wiki at 7f78e1e [master] Created Droongaクラスタにノンストップでノードを追加する手順 (markdown)

アーカイブの一覧に戻る

YUKI Piro Hiroshi null+****@clear*****
Mon May 19 16:55:12 JST 2014


YUKI "Piro" Hiroshi	2014-05-19 16:55:12 +0900 (Mon, 19 May 2014)

  New Revision: 7f78e1e7fdc9bde6a28de7a0383e279646b4b829
  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/7f78e1e7fdc9bde6a28de7a0383e279646b4b829

  Message:
    Created Droongaクラスタにノンストップでノードを追加する手順 (markdown)

  Added files:
    Droongaクラスタにノンストップでノードを追加する手順.md

  Added: Droongaクラスタにノンストップでノードを追加する手順.md (+90 -0) 100644
===================================================================
--- /dev/null
+++ Droongaクラスタにノンストップでノードを追加する手順.md    2014-05-19 16:55:12 +0900 (d8f0881)
@@ -0,0 +1,90 @@
+ノードを追加する操作において想定されるワークフローを検討する。
+
+## 前提
+
+ * node0/192.168.100.50
+ * node1/192.168.100.51
+
+の2つのレプリカがあると仮定する。
+ここに
+
+ * node2/192.168.100.52
+
+を追加する。
+
+## 基本方針
+
+ 1. node1をクラスタから一旦切り離す。
+ 2. node1, node2それぞれでサブクラスタを形成する。
+ 3. node1からnode2へデータを複製する。
+ 4. node1, node2を元のクラスタに戻す。
+
+
+## step1: node1をクラスタから切り離す
+
+node1のdroonga-engineを止める。
+
+    node1% sudo service droonga-engine stop
+
+この時点で、node1はクラスタから切り離される。
+
+## step2: node1, node2それぞれでサブクラスタを形成する。
+
+node1のcatalog.jsonを更新する。
+
+    node1% droonga-catalog-remove-replicas  --dataset=Starbucks \
+                                            --hosts=192.168.100.50 \
+                                            --catalog=~/droonga/catalog.json
+
+catalog.json.2014-05-19T15-30-42
+catalog.json.2014y05m19d15h30m42s などの名前でバックアップが作成される。
+
+    node1% sudo service droonga-engine restart
+
+これで、node1だけのクラスタができた。
+
+※node0はnode1のserfが起動した事を検知するが、何らかの方法で、serfのクラスタには組み込まれない事を検知することにする。
+
+次に、node2だけのクラスタを作る。
+
+    node1% scp catalog.json 192.168.100.52:~/droonga/
+    node1% droonga-catalog-add-replicas  --dataset=Starbucks \
+                                         --hosts=192.168.100.52 \
+                                         --catalog=~/droonga/catalog.json
+    node1% droonga-catalog-remove-replicas  --dataset=Starbucks \
+                                            --hosts=192.168.100.51 \
+                                            --catalog=~/droonga/catalog.json
+    node1% sudo service droonga-engine restart
+
+これで、node2だけのクラスタができた。
+
+## step3: node1からnode2へデータを複製する。
+
+drndumpでデータを複製する。
+
+    node1% drndump --host=192.168.100.51 \
+                   --dataset=Starbacks \
+             droonga-client --host=192.168.100.52
+
+※droonga-requestコマンドが標準入力からjsonsを受け取れる前提。
+
+## step4: node1, node2を元のクラスタに戻す。
+
+catalog.jsonのクラスタ構成を更新する。
+
+    node0% droonga-catalog-add-replicas  --dataset=Starbucks \
+                                         --hosts=192.168.100.52 \
+                                         --catalog=~/droonga/catalog.json
+
+新しいcatalog.jsoを展開する。
+
+    node0% scp catalog.json 192.168.100.51:~/droonga/
+    node0% scp catalog.json 192.168.100.52:~/droonga/
+
+droonga-engineを再起動する。
+
+    node0% sudo service droonga-engine restart
+    node1% sudo service droonga-engine restart
+    node2% sudo service droonga-engine restart
+
+以上でノードの追加は完了である。
\ No newline at end of file
-------------- next part --------------
HTML����������������������������...
ダウンロード 



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