Riak 2.1.0をソースからインストール&クラスターの構築
はじめに
※ 2.0.4から2.1.0に更新しました。
以下、準備するものになります。
Ubuntu Server 14.04
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