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については、正常なノードからレプリケーションが行われ健全な状態に復旧されます。