LoginSignup
2
0

More than 5 years have passed since last update.

Zen2あれこれ

Last updated at Posted at 2019-01-24

はじめに

毎度のことながら、備忘録につきとりとめはないです。

(2019.03.18 ちょっと追記

Zen2

Elasticsearch 7.0からZenにかわって搭載されるDiscoveryモジュールです。

以降は、こちらに記載されていることを試しつつ書いたものです。

Zenと比べて、ちょいちょい設定とか動きが違います。
詳しいところは・・・オンラインマニュアルか、公式ブログで公開される情報を確認。

起動時の設定チェック

若干うざいですが、起動時に設定が足りてないと怒られます。
ここみて設定しましょう。

Quorum baseの決定

Zenでは、discovery.zen.minimum_master_nodesに最低マスターノード数を指定していました。
この設定はZen2では無くなり、現在のマスターノード数に応じて自動で定足数を決定します。

たとえば5台のマスターノード(データノードを兼務してても良い)があるとします。このとき、スプリットブレインが発生しないようにするには、最低3ノードが必要なので、定足数は3となります。
Zen2環境では、同時に2ノードまでは落ちてもそのまま動き続けますが、3ノード落ちるとその時点でクラスタの動作が停止します(6.xまでと同じように、discovery.zen.no_master_blockで動作が変わります(7.0では試してないけど))。
⇒名称が変わってました。cluster.no_master_blockです。

定足数の自動削減設定

デフォルトでは、定足数は現在稼働しているマスターノード数に基づいて決定されます。
先ほどのように5ノードで起動した後で3ノードに減った場合は、定足数は2になります。

この動作は、elasticsearch.ymlにcluster.auto_shrink_voting_configurationを設定することで変更できます。
falseにした場合は、5ノードから3ノードに減った後でも定足数は3のままとなります。従って、この後1ノードでも落ちるとクラスタの動作は停止します。

Voting Configuration

定足数は、マスターノードのうち投票権を持つノード数が影響してきます。
明示的にマスターノードから投票権を削除するには、Voting configuration exclusions API(長い!)を使用します。

たとえば5台(名前はnode-1~node-5とします)のマスターノードがあるとします。
このとき、node-4とnode-5から投票権を削除します。

POST /_cluster/voting_config_exclusions/node-4
POST /_cluster/voting_config_exclusions/node-5

この状態で、node-3~node-5を停止した場合、通常であればクラスタの動作ができなくなるところが、問題なく動作かのうとなります。これは、2台の投票権が削除されたことにより定足数が3になるためです。

現在どのノードが投票権を削除されているかを確認するには、以下のようにします。

GET /_cluster/state?filter_path=metadata.cluster_coordination.voting_config_exclusions
GET /_cluster/state?filter_path=metadata.cluster_coordination

とだけすると、現在のマスターノードも表示されるようになります。

投票権を戻す場合は、

DELETE /_cluster/voting_config_exclusions

をします。
が、これ実行した後で状況を確認すると、リストに乗ったままなんですよねぇ・・・

DELETE /_cluster/voting_config_exclusins?wait_for_removal=false

にすると、すぐに消えます。

ちょっとわかりにくくなりますが、
1. 最初に5ノード立ち上げる
2. 2ノードから投票権を削除する
3. 3ノード落とす
4. 削除した投票権を戻す
とした場合、投票権を持つノードは3台のままで2ノードが動いているので、そのまま動作を続けます。これはcluster.auto_shrink_voting_configurationの設定に依存しません。

その他

設定項目はいろいろあります。
GAが楽しみですね~

追記

2019.03.18追記

elasticsearch-nodeなるツールが追加されているらしい。

少なくとも1台のMaster-eligible nodeがあるときに、その1台を使って unsafe-bootstrap で新しいクラスタを起動。当たらいクラスタに detach-cluster でノードを移動。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0