[Groonga-commit] droonga/wikipedia-search.wiki at f7a24fc [master] Created Droongaクラスタにデータ流入を止めてノードを追加する手順 (markdown)

アーカイブの一覧に戻る

YUKI Piro Hiroshi null+****@clear*****
Tue May 20 18:47:23 JST 2014


YUKI "Piro" Hiroshi	2014-05-20 18:47:23 +0900 (Tue, 20 May 2014)

  New Revision: f7a24fce5253f6d634070beec14ddc3d075e0e1a
  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%87%E3%83%BC%E3%82%BF%E6%B5%81%E5%85%A5%E3%82%92%E6%AD%A2%E3%82%81%E3%81%A6%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/f7a24fce5253f6d634070beec14ddc3d075e0e1a

  Message:
    Created Droongaクラスタにデータ流入を止めてノードを追加する手順 (markdown)

  Added files:
    Droongaクラスタにデータ流入を止めてノードを追加する手順.md

  Added: Droongaクラスタにデータ流入を止めてノードを追加する手順.md (+80 -0) 100644
===================================================================
--- /dev/null
+++ Droongaクラスタにデータ流入を止めてノードを追加する手順.md    2014-05-20 18:47:23 +0900 (5e0228e)
@@ -0,0 +1,80 @@
+ノードを追加する操作において想定されるワークフローを検討する。
+
+## 前提
+
+ * node0/192.168.100.50
+ * node1/192.168.100.51
+
+の2つのレプリカがあると仮定する。
+ここに
+
+ * node2/192.168.100.52
+
+を追加する。
+
+## 基本方針
+
+ 1. データの投入を止める
+ 2. node2でサブクラスタを形成する。
+ 3. node0/1からnode2へデータを複製する。
+ 4. node2を元のクラスタに編入する。
+ 5. データの投入を再開する
+
+## step1: データの投入を止める
+
+writeなリクエストが来ないように、クローラを停止したり、バッファになっているfluentdの所でせき止めたりして、データの投入を停止する。
+
+## step2: node2でサブクラスタを形成する
+
+node2だけのクラスタを作る。
+
+    node1% scp catalog.json 192.168.100.52:/tmp/
+    node2% droonga-catalog-modify-replicas  --dataset=Starbucks \
+                                            --add-hosts=192.168.100.52 \
+                                            --remove-hosts=192.168.100.50,192.168.100.51 \
+                                            --source=/tmp/catalog.json \
+                                            --output=~/droonga/staging-catalog/catalog.json
+
+これで、node2だけのクラスタができた。
+
+## step3: node0/1からnode2へデータを複製する
+
+drndumpでデータを複製する。
+
+    node1% drndump --host=192.168.100.51 \
+                   --dataset=Starbacks  | \
+             droonga-client --host=192.168.100.52
+
+※droonga-requestコマンドが標準入力からjsonsを受け取れる前提。
+
+※step2, step3を1操作で行うコマンドの案
+
+    node1% droonga-replicate --from-host=192.168.100.51 \
+                             --from-port=10031 \
+                             --to-host=192.168.100.52 \
+                             --to-port=10031 \
+                             --datasets=Starbacks \
+                             --tag=starbacks
+
+## step4: node2を元のクラスタに編入する。
+
+catalog.jsonのクラスタ構成を更新する。
+
+    node2% droonga-catalog-modify-replicas  --dataset=Starbucks \
+                                            --add-hosts=192.168.100.52 \
+                                            --remove-hosts="" \
+                                            --source=~/droonga/catalog.json \
+                                            --output=~/droonga/staging-catalog/catalog.json
+
+新しいcatalog.jsonを展開する。
+
+    node0% scp ~/droonga/staging-catalog/catalog.json 192.168.100.51:~/droonga/staging-catalog/
+    node0% scp ~/droonga/staging-catalog/catalog.json 192.168.100.52:~/droonga/staging-catalog/
+
+droonga-engineが新しいcatalog.jsonを自動的に検知する。
+
+## step5: データの投入を再開する
+
+せき止めていたデータの投入を再開する。
+
+以上でノードの追加は完了である。
\ No newline at end of file
-------------- next part --------------
HTML����������������������������...
ダウンロード 



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