Riakのクラスターを構成する手順(ノードの追加と削除)

RiakをDebianにインストールしてみました。

RiakをDebian(wheezy)にインストールする
http://symfoware.blog68.fc2.com/blog-entry-1148.html

この環境を2台用意し、クラスター構成をとってみます。

240_01.png




クラスター構成の前提条件



Basic Cluster Setup
http://docs.basho.com/riak/latest/ops/building/basic-cluster-setup/

こちらを参考にしました。

クラスター構成を取るためには、pd_ipとhttpが外部から接続可能な状態であることが必要です。
/etc/riak/app.configの内容を確認し、pd_ipとhttpを
外部から接続可能(127.0.0.1からホストIPに変更)しておきます







Node 1(192.168.1.5)サーバーでの設定



1台目のサーバーで設定した内容となります。


初期状態で、管理画面のクラスター情報は以下の通り。

240_02.png

240_03.png

riak@127.0.0.1というノードがひとつ認識されています。



まず、riakが起動している場合は停止します。


# riak stop




次に、vm.argsを編集。
「-name riak@127.0.0.1」
となっている箇所を
「-name riak@192.168.1.5」
に変更しました。

※本当は「-name riak@node1.example.com」のような形式が良いのですが
テスト環境なので名前解決できない。


# vi /etc/riak/vm.args




1行目を編集。


## Name of the riak node
#-name riak@127.0.0.1
-name riak@192.168.1.5





編集が終わったらriakを起動します。


# riak start
riak failed to start within 15 seconds,
see the output of 'riak console' for more information.
If you want to wait longer, set the environment variable
WAIT_FOR_ERLANG to the number of seconds to wait.




既にriakを起動したことがある場合は、上記のエラーメッセージが表示されます。

ドキュメントを見てみると、

Single Nodes If a node is started singly using default settings
(as, for example, you might do when you are building your first test environment),
you will need to remove the ring files from the data directory after you edit etc/vm.args.
riak-admin cluster replace will not work as the node has not been joined to a cluster.




英語苦手なんですがデフォルトで起動したことがあるノードは、ringファイルを消せってことらしいです。
ringファイルは、/var/lib/riak/ring/にありますので、全部消します。


# rm -fr /var/lib/riak/ring/*




再度起動。


# riak start



これで起動してくれると思います。


管理画面を見てみると、ちゃんとriak@192.168.1.5のノードとして認識されています。

240_04.png

240_05.png


これで1台目のサーバーでの作業は終了です。







Node 2(192.168.1.6)サーバーでの設定



Node 1で行ったのと同じ作業を行い、管理画面でノードが1つ(自分自身)認識されている状態にします。

240_06.png

240_07.png


Node 2のサーバーで、riak-admin cluster join [riak-name]コマンドを実行します。
実行すると、こんなメッセージが表示されました。


# riak-admin cluster join riak@192.168.1.5
Success: staged join request for 'riak@192.168.1.6' to 'riak@192.168.1.5'





この状態では、まだクラスターへの追加は確定していません。
riak-admin cluster planで、保留中の情報を表示できます。


# riak-admin cluster plan
=============================== Staged Changes ================================
Action         Details(s)
-------------------------------------------------------------------------------
join         'riak@192.168.1.6'
-------------------------------------------------------------------------------


NOTE: Applying these changes will result in 1 cluster transition

###############################################################################
                         After cluster transition 1/1
###############################################################################

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%     50.0%    'riak@192.168.1.5'
valid     0.0%     50.0%    'riak@192.168.1.6'
-------------------------------------------------------------------------------
Valid:2 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

WARNING: Not all replicas will be on distinct nodes

Transfers resulting from cluster changes: 32
32 transfers from 'riak@192.168.1.5' to 'riak@192.168.1.6'





riak-admin cluster commitで変更を確定します。


# riak-admin cluster commit
Cluster changes committed





再度、riak-admin cluster planを実行していると、保留中の情報が無いことが表示されます。


# riak-admin cluster plan
There are no staged changes





管理画面を見てみると、2つのノードが表示されています。

240_08.png

240_09.png








クラスターからノードの除去



Node 2をクラスターから除去してみます。
Node 2のサーバーで、riak-admin cluster leaveを実行します。


# riak-admin cluster leave
Success: staged leave request for 'riak@192.168.1.6'




cluster joinと同じく、コマンドを実行しただけでは変更は確定しません。
riak-admin cluster planを実行すると、未確定の変更情報が表示されます。


# riak-admin cluster plan
=============================== Staged Changes ================================
Action         Details(s)
-------------------------------------------------------------------------------
leave         'riak@192.168.1.6'
-------------------------------------------------------------------------------


NOTE: Applying these changes will result in 2 cluster transitions

###############################################################################
                         After cluster transition 1/2
###############################################################################

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
leaving    50.0%     0.0%    'riak@192.168.1.6'
valid     50.0%    100.0%    'riak@192.168.1.5'
-------------------------------------------------------------------------------
Valid:1 / Leaving:1 / Exiting:0 / Joining:0 / Down:0

WARNING: Not all replicas will be on distinct nodes

Transfers resulting from cluster changes: 32
32 transfers from 'riak@192.168.1.6' to 'riak@192.168.1.5'

###############################################################################
                         After cluster transition 2/2
###############################################################################

================================= Membership ==================================
Status     Ring    Pending    Node
-------------------------------------------------------------------------------
valid     100.0%     --     'riak@192.168.1.5'
-------------------------------------------------------------------------------
Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0

WARNING: Not all replicas will be on distinct nodes





riak-admin cluster commitを実行して変更内容を確定します。


# riak-admin cluster commit
Cluster changes committed





管理画面を見てみると、クラスターからの除去の様子がわかります。

240_10.png


しばらく待つと、Node 2がクラスターから除去されました。

240_11.png



Node 2のサーバーでは、クラスターから外れた後、riakもシャットダウンされます。


# riak ping
Node 'riak@192.168.1.6' not responding to pings.








管理画面からのノードの追加、削除




/etc/riak/app.configでhttpsプロトコル有効、riak_controlのenabledをtrueにしていると、
ブラウザから管理画面の表示が行えます。

https://192.168.1.5:8098/admin#/cluster
にアクセスし、ノードを追加してみます。

追加したいriakのノード名、例えばriak@192.168.1.6を入力して、JOIN NODEをクリック。

240_12.png


コマンドでノードを追加した時と同じく、一旦保留状態になります。
「This plan is correct.」にチェックをつけてCOMMITをクリック。

240_13.png


動機が始まりました。

240_14.png



逆にクラスターから指定したノードを除去するには、ActionsのHIDEをクリックして、詳細を表示。
「Allow this node to leave normally.」が選択されている状態で、STAGEをクリックします。

240_15.png


一旦保留中の状態になるので、「This plan is correct.」をチェックしてCOMMITをクリック。

240_16.png


クラスターからの削除が始まりました。

240_17.png

関連記事

コメント

非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ