LoginSignup
7
7

More than 5 years have passed since last update.

vagrant-riak-clusterでノード3台をclusterするまでの手順

Posted at

Riakのインストールは難しくないですが(binaryをインストールすればErlang runtimeもついてくるし)、
Vagrantは便利すぎるのでvagrant-riak-clusterを使うことに。
その作業ログを残しておきます。

以下、VirtualBoxおよびVagrantはインストールされているものとする。
(両者とも、公式からbinary installerをダウンロードしていれればいいと思う)
(Vagrant、最新はv1.2.4かと思います)

まずは以下のリポジトリからgit clone


$ git clone https://github.com/hectcastro/vagrant-riak-cluster.git

直下にVagrantFileがあることを確認。
とりあえず起動したい人はVagrantFileのあるディレクトリにて$ vagrant upとすればVMが3つ立ち上がる。
この段階ではまだclusterにはなっていない。

このVagrantの構成は以下。

  • VMが3つ作られる(ノード名:riak1 / riak2 / riak3)。VirtualBoxを起動すれば、3つできてるのが確認できる。
  • それぞれメモリを1024M消費
  • 消費メモリ変えたいときは
    config.vm.provider(:virtualbox) { |v| v.customize ["modifyvm", :id, "--memory", 1024] }
    の--memoryの値を変更
  • boxはcentos6.4/ubuntu12.04から選択可能(デフォルトではUbuntuが選択される?)
  • Riak用のcookbookはbasho/riak-chef-cookbook
  • BackendはBitcaskかeLevelDB(デフォルトはBitcask)
  • 2i使いたくてeLevelDBにしたいときは、cookbookを書き換える必要がある。
https
# riak_kv storage_backend
default['riak']['config']['riak_kv']['storage_backend'] = "riak_kv_bitcask_backend"

cookbookをcloneしてローカルのcookbookを参照させる方法は以下。
Berkshelfでcookbookの参照先を変える

  • riak1ノードのみforwarded_portが設定されている。フォワードされているポートは以下
port protocol
8098 HTTP
8069 HTTPS
8087 Protocol Buffer
  • 内部ネットワークが設定されていてそれによりノード間の通信が可能
  • 内部ネットワークでのIPはそれぞれ以下のとおり
Node Name IP
riak1 33.33.33.10
riak2 33.33.33.20
riak3 33.33.33.30

clusterの設定

ということで、各ノードをcluster joinさせる。riakdocs

まずはriak1の状態を確認

$ cd vagrant-riak-cluster
$ vagrant ssh riak1
vagrant@riak1 $ sudo riak-admin member-status

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%      --      'riak@33.33.33.10'
-------------------------------------------------------------------------------
Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

riak2, riak3からjoin

$ cd vagrant-riak-cluster
$ vagrant ssh riak2
vagrant@riak2 $ sudo riak-admin member-status

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%      --      'riak@33.33.33.20'
-------------------------------------------------------------------------------
Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

vagrant@riak2 $ sudo riak-admin cluster join riak@33.33.33.10
Success: staged join request for 'riak@33.33.33.20' to 'riak@33.33.33.10'

(riak3については上記のriak2をriak3に変更)

riak1に戻って


vagrant@riak1 $ sudo riak-admin cluster plan
=============================== Staged Changes ================================
Action         Details(s)
-------------------------------------------------------------------------------
join           'riak@33.33.33.20'
join           'riak@33.33.33.30'
-------------------------------------------------------------------------------


NOTE: Applying these changes will result in 1 cluster transition

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

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%     34.4%    'riak@33.33.33.10'
valid       0.0%     32.8%    'riak@33.33.33.20'
valid       0.0%     32.8%    'riak@33.33.33.30'
-------------------------------------------------------------------------------
Valid:3 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

WARNING: Not all replicas will be on distinct nodes

Transfers resulting from cluster changes: 42
  21 transfers from 'riak@33.33.33.10' to 'riak@33.33.33.30'
  21 transfers from 'riak@33.33.33.10' to 'riak@33.33.33.20'


vagrant@riak1 $ sudo riak-admin cluster commit
Cluster changes committed
vagrant@riak1 $ sudo riak-admin member-status
================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid      34.4%      --      'riak@33.33.33.10'
valid      32.8%      --      'riak@33.33.33.20'
valid      32.8%      --      'riak@33.33.33.30'
-------------------------------------------------------------------------------
Valid:3 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

できた!(((o(*゚▽゚*)o)))

確認

$ curl -v http://127.0.0.1:8098/riak/test/doc2

not foundって返ってきたら成功。

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7