Elasticsearchクラスタを試してみた

概要

スピーカー:@dozonot wiki用に作成したElasticsearchのクラスタについて話をしました。 スピーカーも昨日から触り始めたばかりですので、間違いなどあるかもしれません。 現在私ができるのは「こんなのができたよ」というのを見せることだけなので、有識者がいたら適宜コメント下さい。

デモの内容

デモ環境の構成図です。
00.png

GUI上から、サンプルIndexをを表示している状態です。
01.png

試験用のCrowiからIndex作成のタスクを実行しています。
02.png

Crowi 用のIndexが作成されます。
04.png

ElasticsearchはRESTfull APIで設定変更可能です。
05.png

レプリケーションの面数を2に変更します。(デフォルト1)
GUI上からも、レプリケーションが増えたことを確認できます。
06.png

ノードを超えるレプリケーション数を指定してみます。
07.png

レプリケーション先が存在しないため、不健全な状態となります。
08.png

レプリケーションの面数を2に戻します。
サービス故障を試します。マスターノードでElasticsearchのサービスを終了させます。
09.png

クラスタからNode-1が見えなくなり、不健全な状態となります。
マスターノード(星印)がNode-1からNode-2に切り替わっていることも確認できます。
10.png

しばらく待つとレプリケーションが行われます。
残存しているノードでレプリケーション可能なIndexについては正常な状態に戻ります。(右側のIndex)
レプリケーション不可な場合は、不健全な状態のままとなります。(左側のIndex)
11.png

停止していたNode-1(旧マスター)のサービスを再起動します。
12.png

クラスタに自動的にNode-1が追加されます。
マスターノードはNode-2のまま、切り戻しは発生しません。
右側のIndexについては、負荷分散が行われます。
左側のIndexについては、正常なノードからレプリケーションが行われ健全な状態に復旧されます。
13.png