Riak2.0.0pre11を使ってクラスターを構築してみました。
使用したマシンは3台で全てCentOS6.4です。
1. riakのインストール
yumでバイナリパッケージをインストールします。
yum install http://s3.amazonaws.com/downloads.basho.com/riak/2.0/2.0.0pre11/rhel/6/riak-2.0.0pre11-1.el6.x86_64.rpm
たったこれだけ。
2. サーバ証明書の作成
riak付属の管理用webインターフェイスを使うのにサーバ証明書が必要なので、
オレオレ証明書を作っておきます。
※管理用webを使わないなら不要です。
% cd /etc/riak
# サーバのprivateキーを作成
% openssl genrsa -des3 -out key.pem 1024
# privateキーを使ってCSRを作成
% openssl req -new -key key.pem -out cert.csr
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:Tokyoとか
Locality Name (eg, city) [Default City]:区とか
Organization Name (eg, company) [Default Company Ltd]:会社名
Organizational Unit Name (eg, section) []:部署
Common Name (eg, your name or your server's hostname) []:サーバのホスト名
Email Address []:admin@email.com
# キーからパスフレーズを取り除く
% cp key.pem key.pem.org
% openssl rsa -in key.pem.org -out key.pem
# 証明書を作成
% openssl x509 -req -days 365 -in cert.csr -signkey key.pem -out cert.pem
後ほど、ここで作ったprivateキーと証明書をriakの設定ファイル内で指定します。
3. 設定ファイルの修正
ホスト名とかストレージとかあとで変更すると面倒なのでriakの起動前にconfを修正してしまいます。
# ストレージ選択オプション
# bitcaskを指定。
storage_backend = bitcask
# ノード名
# クラスターをくみたいのでLAN内で有効なFQDNを指定した
# IPでももちろん大丈夫
#nodename = riak@127.0.0.1
nodename = riak@localhost1
# ノード管理用webインターフェイスを有効にした
#riak_control = off
riak_control = on
# 管理用webのbasic認証も有効に
riak_control.auth.mode = userlist
riak_control.auth.user.user.password = pass
# 2.0から下記のオプションはなくなったよう
#riak_control.admin = true
# サーバ証明書とprivateキーを指定します。
ssl.certfile = /etc/riak/cert.pem
ssl.keyfile = /etc/riak/key.pem
# CA署名は行っていないのでcacertfileの部分はコメントアウトしておきます。
## ssl.cacertfile = /etc/riak/cacert.pem
# HTTPにバインドしたいTCPインターフェイスを指定します。
# ローカルホストでも外向きIPでもどちらも使えるように0.0.0.0をバインドしました。
#listener.http.internal = 127.0.0.1:8098
listener.http.internal = 0.0.0.0:8098
# ProtocolBuffersにバインドしたいTCPインターフェイスを指定します。
# こちらもローカルホスト、外向きIPのどちらも使えるように0.0.0.0をバインドしました。
#listener.protobuf.internal = 127.0.0.1:8087
listener.protobuf.internal = 0.0.0.0:8087
## listener.https.internal = 127.0.0.1:8098
listener.https.internal = 0.0.0.0:8069
4. riakの起動
riakを起動します。
すると、起動はするのですがwarningがでてしまいます(´・_・`)
% /etc/init.d/riak start
!!!!
!!!! WARNING: ulimit -n is 1024; 4096 is the recommended minimum.
!!!!
Bashoのriakインストールガイドに下記のような記述があります。
Open Files Limit
As you may have noticed, if you haven't adjusted your open files limit (ulimit -n), Riak > will warn you at startup about the limit. You're advised to increase the operating system > default open files limit when running Riak. You can read more about why in the Open Files > Limit documentation.
下記のブログを参考に、ulimitを設定しました。
% ulimit -n 4096
% /etc/security/limits.conf
~
* soft nofile 4096
* hard nofile 4096
# rootの指定を追加
root soft nofile 4096
root hard nofile 4096
~
# で、riakを再起動
% /etc/init.d/riak restart
warningは消えました!
起動確認します。
# 動いたかどうかたしかめる
% riak ping
pong
% riak-admin
Attempting to restart script through sudo -H -u riak
Successfully completed 1 read/write cycle to 'riak@0.0.0.0'
無事起動しました(*^^)v
5. クラスターの構築
さてriakが起動したのでクラスターを構築します。
クラスターの構築もとてもかんたんです。
管理用webからもCUIからもノードの追加及び切り離しを行うことができます。
5-1. 管理用webインターフェイスからクラスターを構築
起動したriakのうちいずれかにブラウザからアクセスします。
https://localhost1:8069/admin
※HTTPSでないと開きません。
メニューからリングっぽいやつを選択します。
「Add Node」というテキストボックスがあるので、
ここに/etc/riak/riak.confで指定したノード名を入れて「Add」します。
ノードをクラスターから外すには、メニューの壊れたリングっぽいのを選択します。
外したいノードを選択して「apply」すればOKです。
5-2. CUIからクラスターを構築
CUIからノードを追加するには、riak-admin
を使います。
% riak-admin cluster join riak@localhost2 # ノード名
% riak-admin cluster plan # 確認
% riak-admin cluster commit # コミット
riak-admin cluster commit
を行わないとノードの追加はクラスターに反映されません。
CUIからノードを削除します。
% riak-admin cluster leave
% riak-admin cluster commit # コミット
riak-admin cluster plan
でクラスターの状況を確認することができます。
以上でriak2.0.0preでのクラスター構築完了です♪