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

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

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

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

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

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

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

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

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

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

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

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

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