Help us understand the problem. What is going on with this article?

Riak2.0.0preをつかってみた

More than 5 years have passed since last update.

Riak2.0.0pre11を使ってクラスターを構築してみました。
使用したマシンは3台で全てCentOS6.4です。

1. riakのインストール

yumでバイナリパッケージをインストールします。

zsh
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を使わないなら不要です。

ssl
% 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を修正してしまいます。

/etc/riak/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がでてしまいます(´・_・`)

zsh
% /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.

Post Installation - riakdocs

下記のブログを参考に、ulimitを設定しました。

zsh
% 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は消えました!
起動確認します。

zsh
# 動いたかどうかたしかめる
% 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でないと開きません。

riak_node.png

メニューからリングっぽいやつを選択します。
「Add Node」というテキストボックスがあるので、
ここに/etc/riak/riak.confで指定したノード名を入れて「Add」します。

ノードをクラスターから外すには、メニューの壊れたリングっぽいのを選択します。

riak_node2.png

外したいノードを選択して「apply」すればOKです。

5-2. CUIからクラスターを構築

CUIからノードを追加するには、riak-adminを使います。

zsh
% riak-admin cluster join riak@localhost2  # ノード名
% riak-admin cluster plan # 確認
% riak-admin cluster commit # コミット

riak-admin cluster commitを行わないとノードの追加はクラスターに反映されません。

CUIからノードを削除します。

zsh
% riak-admin cluster leave
% riak-admin cluster commit # コミット

riak-admin cluster planでクラスターの状況を確認することができます。
以上でriak2.0.0preでのクラスター構築完了です♪

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away