引き続き追加検証しました。(少し長いです。)
・elasticsearch.ymlは前のコメントのまま
・AZ-1aに3台、AZ-1cに2台の合計5台でクラスタ化
・作成IndexのShardは5、Replicaは1
<検証パターン①>
最初から全Nodeを起動した状態でIndexを作成
GET _cat/shards
index-2018-04-06t00-00-00-000z 0 p STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 1 p STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 2 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 3 p STARTED 0 230b 10.1.1.115 kokui-az1a-03.localdomain
index-2018-04-06t00-00-00-000z 4 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 0 r STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 1 r STARTED 0 230b 10.1.1.115 kokui-az1a-03.localdomain
index-2018-04-06t00-00-00-000z 2 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 3 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 4 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
AZ-1a に3Shard、AZ-1cに2Shardで配分されている。
・・求める挙動はどちらかに片寄してできて欲しいので、求める挙動と異なる。
<検証パターン2>
段階的にNodeを起動
①AZ-1a の2Node(kokui-az1a-01、kokui-az1a-02)を起動した状態でIndexを作成
GET _cat/shards
index-2018-04-06t00-00-00-000z 0 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 1 p STARTED 0 0b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 2 p STARTED 0 0b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 3 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 4 p STARTED 0 0b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 0 r UNASSIGNED
index-2018-04-06t00-00-00-000z 1 r UNASSIGNED
index-2018-04-06t00-00-00-000z 2 r UNASSIGNED
index-2018-04-06t00-00-00-000z 3 r UNASSIGNED
index-2018-04-06t00-00-00-000z 4 r UNASSIGNED
同一AZ内でShardが作成され、Replicaは異なるAZにできて欲しいのでUNASSINGEDとなるのは納得できる。
②AZ-1c の2Node(kokui-az1c-01、kokui-az1c-02)を起動
GET _cat/shards
index-2018-04-06t00-00-00-000z 0 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 1 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 2 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 3 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 4 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 0 r STARTED 0 0b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 1 r STARTED 0 0b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 2 r STARTED 0 0b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 3 r STARTED 0 0b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 4 r STARTED 0 0b 10.1.2.90 kokui-az1c-01.localdomain
異なるAZ(1c)に起動したNodeにReplicaが作成される。
ここも挙動として納得できる。
③AZ-1a の1Node(kokui-az1a-03)を起動
GET _cat/shards
index-2018-04-06t00-00-00-000z 0 p STARTED 0 230b 10.1.1.115 kokui-az1a-03.localdomain
index-2018-04-06t00-00-00-000z 1 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 2 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 3 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 4 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 0 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 1 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 2 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 3 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 4 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
Shard-0が「kokui-az1a-02」から起動した「kokui-az1a-03」に移った。
挙動としては納得できるが、この検証は何度も実施したわけではないので、必ずShardが同一AZで構成されるのか不安。
④AZ-1a の1Node(kokui-az1a-03)を停止
GET _cat/shards
index-2018-04-06t00-00-00-000z 0 p STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 1 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 2 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 3 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 4 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 0 r STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 1 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 2 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 3 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 4 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
Shard-0の「kokui-az1a-03」を停止したので、Replica-0の「kokui-az1c-01」がShard-0に昇格。
空いたReplica-0に「kokui-az1a-01」が入った。
ReplicaがShardに昇格するのは理解できるのですが、自動的に同一AZに寄せられないものなのでしょうか。
⑤④で停止したAZ-1a の1Node(kokui-az1a-03)を起動
GET _cat/shards
index-2018-04-06t00-00-00-000z 0 p STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 1 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 2 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 3 p STARTED 0 230b 10.1.1.191 kokui-az1a-01.localdomain
index-2018-04-06t00-00-00-000z 4 p STARTED 0 230b 10.1.1.50 kokui-az1a-02.localdomain
index-2018-04-06t00-00-00-000z 0 r STARTED 0 230b 10.1.1.115 kokui-az1a-03.localdomain
index-2018-04-06t00-00-00-000z 1 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
index-2018-04-06t00-00-00-000z 2 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 3 r STARTED 0 230b 10.1.2.120 kokui-az1c-02.localdomain
index-2018-04-06t00-00-00-000z 4 r STARTED 0 230b 10.1.2.90 kokui-az1c-01.localdomain
起動した「kokui-az1a-03」はReplica-0に入った。
※「kokui-az1a-01」→「kokui-az1a-03」にチェンジ
ここも④と同様でShardとReplicaが同一AZに寄せられるように動いて欲しかった。
ということから<検証パターン②>のように起動すれば立ち上げまでは同一AZに寄せられることがわかりました。ただ、<検証パターン②>-③のケースのように運用中でのNode追加が同一AZに寄せられるのかは疑問です。また、途中で運用中の障害なのでReplicaが昇格すると同一AZ配置が維持されなくなってしまいます。障害時はしょうがない気もしますが、手動でmoveする運用が必要でしょうか?
<検証パターン①>のようになってしまうのは設定がおかしいのでしょうか?
動きがまだ腑に落ちないです。