Skip to main content

Vagrant で Riak クラスターを構築するために vagrant-riak-cluster というものをつくってみた

Vagrant で Riak クラスターを構築するために vagrant-riak-cluster というものを作ってみた。

使い方 #

使い方は READE.md にある通りで、デフォルトでは 5 ノード作成されるようにしてある。作成するノードは環境変数 NODES で定義できるようにしてあるので、3 ノード作成したい場合は下記のようにすれば良い。

$ NODES=3 vagrant up

Riak クラスターの構築 #

vagrant up 完了時には各ノードに Riak がインストールされた状態となるので、クラスターを構築するのは下記の手順が必要になる。

  1. join
  2. plan
  3. commit

join #

クラスターにノードを追加するために、下記を実行する。

$ for node in riak{2,3,4,5}; do; vagrant ssh $node -c "sudo riak-admin cluster join riak@192.168.33.11"; done;
Success: staged join request for 'riak@192.168.33.12' to 'riak@192.168.33.11'
Connection to 127.0.0.1 closed.
Success: staged join request for 'riak@192.168.33.13' to 'riak@192.168.33.11'
Connection to 127.0.0.1 closed.
Success: staged join request for 'riak@192.168.33.14' to 'riak@192.168.33.11'
Connection to 127.0.0.1 closed.
Success: staged join request for 'riak@192.168.33.15' to 'riak@192.168.33.11'
Connection to 127.0.0.1 closed.

plan #

ノード追加後のクラスターの状態を計画させるために、下記を実行する。

$ vagrant ssh riak1
[vagrant@riak1 ~]$ sudo riak-admin cluster plan
=============================== Staged Changes ================================
Action         Details(s)
-------------------------------------------------------------------------------
join           'riak@192.168.33.12'
join           'riak@192.168.33.13'
join           'riak@192.168.33.14'
join           'riak@192.168.33.15'
-------------------------------------------------------------------------------


NOTE: Applying these changes will result in 1 cluster transition

###############################################################################
                         After cluster transition 1/1
###############################################################################

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%     20.3%    'riak@192.168.33.11'
valid       0.0%     20.3%    'riak@192.168.33.12'
valid       0.0%     20.3%    'riak@192.168.33.13'
valid       0.0%     20.3%    'riak@192.168.33.14'
valid       0.0%     18.8%    'riak@192.168.33.15'
-------------------------------------------------------------------------------
Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

Transfers resulting from cluster changes: 51
  13 transfers from 'riak@192.168.33.11' to 'riak@192.168.33.13'
  13 transfers from 'riak@192.168.33.11' to 'riak@192.168.33.12'
  12 transfers from 'riak@192.168.33.11' to 'riak@192.168.33.15'
  13 transfers from 'riak@192.168.33.11' to 'riak@192.168.33.14'

commit #

計画したクラスターの状態を反映させるために、下記を実行する。

[vagrant@riak1 ~]$ sudo riak-admin cluster commit
Cluster changes committed

クラスターの状態は member-status で確認できる。

[vagrant@riak1 ~]$ sudo riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid      20.3%      --      'riak@192.168.33.11'
valid      20.3%      --      'riak@192.168.33.12'
valid      20.3%      --      'riak@192.168.33.13'
valid      20.3%      --      'riak@192.168.33.14'
valid      18.8%      --      'riak@192.168.33.15'
-------------------------------------------------------------------------------
Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

Pending-- となっていれば、クラスターの構築は完了である。

Riak Control #

Riak Control を有効にしてあるので、ブラウザで http://192.168.33.11:8098/admin にアクセスすると、下記のような画面を確認できる。