読者です 読者をやめる 読者になる 読者になる

riak 1.0.0 の導入方法とクラスターの構築について

riak 1.0.0 がそろそろ出るので導入方法など

変更履歴

  • パッケージを riak 1.0.0 rc2 に変更

riak って何

Basho Technology, Inc. が開発している Erlang で書かれている商用分散 KVS です。

アジェンダ

  • インストール方法
  • ローカル環境での構築
  • クラスター環境の構築

インストール方法

今回は RHEL 5.x 系で、6.x 系はまだパッケージが用意されていません。

ソースから入れろよって話しもあると思いますが、パッケージ版であれば Erlang が不要なので。
とりあえずパッケージ取得

curl -O http://downloads.basho.com/riak/riak-1.0.0rc2/riak-1.0.0rc2-1.el5.x86_64.rpm

インストール
さくっと入ります。OpenSSL を入れろといわれるかも知れません。

rpm -ihv riak-1.0.0rc1-1.el5.x86_64.rpm

一度ローカルで動かしてみてからクラスタで動かそうとするとはまるので、それを例に書いていきます。

ローカル (127.0.0.1) で動かしてみる

まずはローカルで動かす前に、設定をいじります。

/etc/riak/app.config を編集してデータベースのバックエンドを bitcask から leveldb に変更します

%% {storage_backend, riak_kv_bitcask_backend},
{storage_backend, riak_kv_eleveldb_backend},

まずはシングルノードで動かしてみましょう

/etc/init.d/riak start

動作確認をしてみて下さい、まだバケットは入っていませんが ... 。

$ curl -G -i -d buckets=true http://localhost:8098/riak

あとは Python だろうが Ruby だろうがお好きにお使い下さい。

クラスタの構成 (最低2台マシンが必要です)

今回は2ノードなので 2 台マシンを用意して下さい。仮想マシンでも良いです。

もしローカルで riak を動かしている場合は一度止めて下さい。

$ /etc/init.d/riak stop

編集する箇所が二つ増えます。

/etc/riak/app.config
それぞれのマシンの riak 設定で HTTP のリッスンを 127.0.0.1 から変更して下さい

%% {http, [ {"127.0.0.1", 8098 } ]},
{http, [ {"192.168.1.100", 8098 } ]},

/etc/riak/vm.args
それぞれのマシンで起動する riak ノードのアドレスを 127.0.0.1 から変更して下さい

# -name riak@127.0.0.1
-name riak@192.168.1.100

とりあえず最低限の設定は以上です。

riak を起動するまえに 127.0.0.1 で起動していた riak はリングファイルを 127.0.0.1 から指定した IP に変更する必要があります。

riak-admin reip riak@127.0.0.1 riak@192.168.1.100

さて起動してみましょう

$ /etc/init.d/riak start

Riak はマスターレスなのでどちらがマスターでも構いません。
とりあえず join させてみます (192.168.1.100 を 192.168.1.200 へ)

$ riak-admin join riak@192.168.1.200

join させたらメンバーステータスを見てみましょう

$ riak-admin member_status
Attempting to restart script through sudo u riak
================================= Membership ==================================
Status Ring Pending Node
-------------------------------------------------------------------------------
valid 50.0% - 'riak@192.168.1.100'
valid 50.0% -- 'riak@192.168.1.200'
-------------------------------------------------------------------------------
Valid:2 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

こちらはリングステータス

$ riak-admin ring_status
Attempting to restart script through sudo -u riak
================================== Claimant ===================================
Claimant: 'riak@192.168.1.200'
Status: up
Ring Ready: true

============================== Ownership Handoff ==============================
No pending changes.

============================== Unreachable Nodes ==============================
All nodes are up and reachable

とりあえずここまで(続く