-
Notifications
You must be signed in to change notification settings - Fork 2
Droongaクラスタにデータ流入を止めてノードを追加する手順
YUKI "Piro" Hiroshi edited this page May 20, 2014
·
2 revisions
ノードを追加する操作において想定されるワークフローを検討する。
- node0/192.168.100.50
- node1/192.168.100.51
の2つのレプリカがあると仮定する。 ここに
- node2/192.168.100.52
を追加する。
- データの投入を止める
- node2でサブクラスタを形成する。
- node0/1からnode2へデータを複製する。
- node2を元のクラスタに編入する。
- データの投入を再開する
writeなリクエストが来ないように、クローラを停止したり、バッファになっているfluentdの所でせき止めたりして、データの投入を停止する。
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だけのクラスタができた。
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
catalog.jsonのクラスタ構成を更新する。
node0% 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を自動的に検知する。
せき止めていたデータの投入を再開する。
以上でノードの追加は完了である。