備忘録、はじめました。

作業したこと忘れないようにメモっておきます。

Riak 2.1.0をソースからインストール&クラスターの構築

はじめに

※ 2.0.4から2.1.0に更新しました。

以下、準備するものになります。

1ノードのスペックは以下になります。
* MEM: 1024 MB

  • CPUs: 1 core

  • HDD: 10 GB

  • NIC: 2枚 (ひとつはNATで、もうひとつはホストオンリーアダプタ)

ネットワークの設定

まずはじめに、/etc/network/interfacesのファイルを修正します。

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

# The secondary network interface
auto eth1
iface eth1 inet static
address 192.168.56.xxx
network 192.168.56.0
netmask 255.255.255.0
broadcast 192.168.56.255
gateway 192.168.56.1

addressのIPはRiakの各ノードのIPアドレスが当てはまります。設計したIPを入れます。 ※ eth0はNAT接続で、eth1はホストオンリーアダプタ

networkingをリスタートします。

$ sudo service networking restart

また、デフォルトゲートウェイ(デフォゲ)がホストオンリーアダプタになってしまっているのを修正します。

$ sudo ip r 
default via 192.168.56.1 dev eth0 
10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15 
192.168.56.0/24 dev eth1  proto kernel  scope link  src 192.168.56.202 

$ sudo ip r del default
$ sudo ip r add default via 10.0.2.2

NAT側のeth0のデフォゲを設定します(10.0.2.2はvirtualboxの仕様)。 ※ NAT側にデフォゲを設定するのは外部ネットワークに接続するためです。あとで、apt-get等でRiakの依存パッケージをインストールしたいから設定します。Riakがインストールできてしまえば今後必要ないので、デフォルトのデフォゲを192.168.56.xにしてます。

とりあえず、goolgeさんにpingしてみます。

$ ping www.google.com

返信があれば、完了です。

Riakのインストール

インストール前準備

$ sudo apt-get install build-essential libncurses5-dev openssl libssl-dev fop xsltproc unixodbc-dev
$ sudo apt-get install libwxbase2.8 libwxgtk2.8-dev libqt4-opengl-dev
$ sudo apt-get install libpam0g-dev
$ sudo apt-get install libssl0.9.8

Erlangのインストール

バージョンは必ずR16B02にしてください。公式指定です。
また、今回はインストール方法は割愛します。

Riakのインストール

$ sudo su - 
# cd /opt
# curl -O http://s3.amazonaws.com/downloads.basho.com/riak/2.1/2.1.0/riak-2.1.0.tar.gz
# tar zxvf riak-2.1.0.tar.gz
# cd riak-2.1.0

ここで、makeをする前にRiakがどのIPで起動するか設定をします。デフォルトだとローカルホスト(127.0.0.1)から起動するようになってます。

# sed -i -e "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]/192.168.56.xxx/g" rel/vars.config
# sed -i -e "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]/192.168.56.xxx/g" rel/vars/dev_vars.config.src  
# sed -i -e "s/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]/192.168.56.xxx/g" rel/vars/perf_vars.config.src

上記コマンドでは、127.0.0.1を192.168.56.xxxに置換しています(xxxは適宜置き換えてください)。 完了したら、makeを実行します。

# make locked-deps
# make rel

次に、オープンできるファイル制限数ulimitを変更します。 riakの推奨は65536となります。今回は恒久的な設定を行います。

# touch /etc/security/limits.d/91-riak.conf
# echo "root soft nofile 65536" >> /etc/security/limits.d/91-riak.conf
# echo "root hard nofile 65536" >> /etc/security/limits.d/91-riak.conf

設定を反映させるために一度、ログアウトしログインします。

下記、コマンドでriakを開始できます。

# rel/riak/bin/riak start

ホストOS側から、pingを打ってみます。

# curl -v http://192.168.56.xxx:8098/ping

OKが帰ってきたら成功です。

また、ブラウザからも確認可能です。
http://192.168.56.xxx:8098/ping

ついでに、riakの実行ファイルのパスを通しておきます。

# touch /root/.bash_profile
# echo "export PATH=$PATH:/opt/riak-2.1.0/rel/riak/bin > /root/.bash_profile"

Clusterの構築

Riakを複数インストールできたとします。 masterノードをどれでもいいので決定して、下記コマンドにてclusterを構築していきます。 今回マスターは192.168.56.xxxにします。

(192.168.56.xxx)# riak-admin cluster join riak@192.168.56.yyy
Success: staged join request for `riak@192.168.1.yyy` to `riak@192.168.56.xxx

(192.168.56.xxx)# riak-admin cluster plan
(192.168.56.xxx)# riak-admin cluster commit
Cluster changes committed

確認します。

(192.168.56.xxx)# riak-admin status | grep ring_members
ring_members : ['riak@192.168.1.10','riak@192.168.1.11']

Riak Controlの設定

riak control(WebのUI)を見れるようにします。 etc/riak.confを設定します。下記、二つのパラメータの値を変更します。

riak_control = on

listener.https.internal = 192.168.56.xxx:8069

次に、オレオレ証明書を作成し、Riakのetc/に置きます。

(192.168.56.xxx)# openssl req -new -days 3650 -key key.pem -out csr.pem
(192.168.56.xxx)# openssl x509 -in csr.pem -out cert.pem -req -signkey key.pem -days 3650
(192.168.56.xxx)# mv key.pem /opt/riak-2.0.4/rel/riak/etc
(192.168.56.xxx)# mv cert.pem /opt/riak-2.0.4/rel/riak/etc

riakを再起動します。

(192.168.56.xxx)# riak restart

ホストOSのからRiak Controlにアクセスします。https://192.168.56.xxx:8069/admin
接続できたら完了となります。

参考URL

Installing Riak from Source
Basic Cluster Setup
Apache/オレオレ証明書の作成 - PukiWiki