Amazon OpenSearch Service ドメインのディスク容量がノード間で不均等に分散されています。その結果、ディスク使用量に極端な偏りが生じています。
簡単な説明
次の理由により、ディスク使用量が大きく偏る場合があります。
- クラスター内のシャードのサイズが不均一である。OpenSearch Service はシャードの数をノード間で均等に分散しますが、シャードサイズにより、必要なディスク容量は左右されます。
- ノードで使用可能なディスク容量の不足。詳細については、「ディスクに基づいてシャード割り当てを設定する」(Elasticsearch のウェブサイト) を参照してください。
- 不適切なシャード割り当て戦略。
OpenSearch Service クラスターのシャード割り当てを再調整するには、1 つ以上の解決策を実行してください。
解決策
シャード割り当て、シャードサイズ、インデックスシャーディング戦略を確認する
各ノードに割り当てられたシャードの数および、各ノードで使用しているディスク容量を確認するには、次の API を実行します。
GET _cat/allocation?v
各ノードに割り当てられたシャードおよび、各シャードのサイズを確認するには、次の API を実行します。
GET _cat/shards?v
注: 上記の API 出力は、シャードのサイズがインデックスによって異なっているかどうかを示しています。
インデックスのシャーディング戦略が不均一な場合、データに偏りが生じる可能性があります。インデックスのシャーディング戦略を確認するには、次の API を実行します。
GET _cat/indices?v
すべてのインデックスでシャードのサイズが等しいことを確認する
インデックスサイズが大きく異なる場合は、特定のインデックスサイズに達したときにロールオーバー API を使用して新しいインデックスを作成します。詳細については、Elastic のウェブサイトで「新しいインデックスにロールオーバーする」を参照してください。または、OpenSearch Service バージョン 7.1 以降では、Index State Management (ISM) を使用しても新しいインデックスを作成できます。ISM を使用してエイリアスをロールオーバーする方法の詳細については、Open Distro のウェブサイトで「ロールオーバー」を参照してください。
シャードサイズを 10 GB から 50 GB の範囲に設定し、パフォーマンスを向上させる
インスタンスのクラスが大きい場合は、OpenSearch Service でペタバイトスケールを使用してシャードサイズを決定します。たとえば、複数の i3.16xlarge.search インスタンスを含む OpenSearch Service ドメインでは、利用可能なリソースが増えるため、最大 100 GB のシャードサイズをサポートできます。シャーディング戦略の詳細については、「シャード数を選択する」を参照してください。
OpenSearch Service クラスターにデータノードを追加する
OpenSearch Service クラスターのディスク使用率が高い場合は、クラスターにデータノードを追加します。データノードを追加すると、クラスターのパフォーマンスを向上させるためのリソースも増えます。
注: OpenSearch Service は、利用可能なストレージ容量が不足している場合でも、クラスターを自動的に再調整しません。その結果、データノードで未使用のストレージ容量が枯渇すると、クラスターはすべての書き込みをブロックします。ディスク容量の管理に関する詳細については、「OpenSearch Service ドメインでストレージスペースが不足した場合のトラブルシューティング方法を教えてください」を参照してください。
シャーディング戦略をアップデートする
デフォルトでは、Amazon OpenSearch Service は 5:1 のシャーディング戦略を採用しており、各インデックスは 5 つのプライマリシャードに分割されます。各インデックスにおいて、各プライマリシャードにはレプリカも配置されます。OpenSearch Service は、プライマリシャードとレプリカシャードを別々のデータノードに自動的に割り当てることで、障害が発生した場合に備えてバックアップを確保します。
OpenSearch Service のデフォルト動作を変更するには、シャードがサイズによって均等に分散されるようにインデックスを設計します。
既存のインデックスでは、reindex API を使用してプライマリシャードの数を変更します。詳細については、Elastic のウェブサイトで「ドキュメントの再インデックス」を参照してください。reindex API は、小容量インデックスを大容量インデックスにマージしたり、大容量インデックスを分割したりできます。大容量インデックスをより多くのプライマリシャードに分割すると、シャードサイズは小さくなります。
新しいインデックスでは、インデックステンプレート API を使用するとプライマリシャードとレプリカシャードの数を定義できます。詳細については、Elastic のウェブサイトで「インデックステンプレートの作成または更新」を参照してください。
次に、シャードのインデックス設定を更新します。詳細については、Elastic のウェブサイトで「インデックス設定の更新」を参照してください。
古いインデックスや未使用のインデックスを削除し、ディスク容量を解放する
OpenSearch Service または Elasticsearch バージョン 6.8 以降では ISM をサポートしています。ISM では、カスタム管理ポリシーにより、古いインデックスや未使用のインデックスが一定期間後に削除されるように定義できます。
関連情報
ストレージ要件を計算する
Amazon Elasticsearch Service の開始方法: シャードはいくつ必要ですか?