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����������������������������...ダウンロード