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