・ElasticsearchはDataNode内のディスク使用率が以下の閾値を超えると保管しているシャードを別のNodeに再配置しようと働きかけます。
cluster.routing.allocation.disk.watermark.high
その際に以下の基準があるかご存じでしょうか。
- DataNode内のどのシャードが再配置の対象となるのか
- どのNodeが再配置先の対象となるのか
・ElasticsearchはDataNode内のディスク使用率が以下の閾値を超えると保管しているシャードを別のNodeに再配置しようと働きかけます。
cluster.routing.allocation.disk.watermark.high
その際に以下の基準があるかご存じでしょうか。
ver 8.2.1 のコードを見てみました。
BalancedShardsAllocator.moveShards で実装されています。各データノードごとに均等にシャード存在可否の判断ができるような順序で判断するようです。例: node1 (s1, s2), node2 (s3, s4), node3 (s5) の場合、 s1, s3, s5, s2, s4 の順でチェックするイメージ。各ノードごとのシャード順はそのノードにシャードが配置された順です。
クラスタ内のデータノードで均等にシャードを担当するように振り分けます。 BalancedShardsAllocator で実装しています。WeightFunction で weight の小さいデータノード順に、配置可能かをチェックして配置可能であればそのデータノードを利用します。空きディスク、データティアなどそれぞれの観点でチェックする複数の AllocationDecider で配置可能か確認します。全ての AllocationDecider で配置可能となった最も weight の少ないデータノードを利用します。WeightFunction はそのノードが保持しているシャードの個数をもとに計算しています。すなわち、担当シャード数の一番少ないノードです。
ご回答をありがとうございます。助かりました
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
© 2020. All Rights Reserved - Elasticsearch
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant logo are trademarks of the Apache Software Foundation in the United States and/or other countries.