Skip to content

Droongaクラスタにノードを追加する手順

YUKI "Piro" Hiroshi edited this page May 19, 2014 · 9 revisions

ノードを追加する操作において想定されるワークフローを検討する。

前提

  • 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だけのクラスタができた。