Amazon OpenSearch Service ドメインのディスク領域が、ノード間で不均等に分散されています。その結果、ディスク使用量の歪度が高くなっています。
簡単な説明
ディスク使用量は、次の理由により歪度が高くなる可能性があります。
OpenSearch Service クラスターでシャード割り当てを再調整するには、次のアプローチを検討します。
- シャードの割り当て、シャードサイズ、インデックスシャーディング戦略を確認します。
- シャードのサイズがインデックス間で同じであることを確認します。
- パフォーマンスを向上させるために、シャードサイズを 10 GB~50 GB に維持します。
- OpenSearch Service クラスターにデータノードを追加します。
- シャーディング戦略を更新します。
- 古いインデックスまたは未使用のインデックスを削除して、ディスク容量を解放します。
解決方法
シャードの割り当て、シャードのサイズ、インデックスシャーディング戦略を確認する
各ノードに割り当てられたシャードの数と各ノードで使用されているディスク容量を確認するには、次の API を使用します。
GET _cat/allocation?v
各ノードに割り当てられたシャードと各シャードのサイズを確認するには、次の API を使用します。
GET _cat/shards?v
注意: この API は、シャードのサイズがインデックスごとに異なる可能性があることを示しています。
インデックスのシャーディング戦略が不均一だと、データに歪みが生じる可能性があります。この場合、大きなインデックスのシャードは少数のノードにのみ存在します。インデックスのシャーディング戦略を確認するには、次の API を使用します。
GET _cat/indices?v
シャードのサイズがインデックス間で同じであることを確認します。
インデックスのサイズが大幅に異なる場合は、rollover index API を使用して、特定のインデックスサイズに達したときに新しいインデックスを作成します。または、Index State Management (ISM) を使用して、OpenSearch Service バージョン 7.1 以降の新しいインデックスを作成できます。ISM を使用したエイリアスのローリングの詳細については、Open Distro ウェブサイトの「rollover」を参照してください。
シャードサイズを 10 GB~50 GB に維持してパフォーマンスを向上させる
インスタンスのサイズが大きい場合は、Amazon OpenSearch Service のペタバイト規模を使用してシャードサイズを決定します。例えば、複数の i3.16xlarge.elasticsearch インスタンスがある OpenSearch Service ドメインでは、利用可能なリソースが増えるため、最大 100 GB のシャードサイズをサポートできます。シャーディング戦略の詳細については、Choosing the number of shards を参照してください。
OpenSearch Service クラスターにデータノードを追加する
OpenSearch Service クラスターが高いディスク使用レベルに達した場合は、クラスターにデータノードを追加します。データノードを追加すると、リソースが増え、クラスターのパフォーマンスが向上します。
注: 使用可能なストレージ領域が不足している場合、OpenSearch Service はクラスターを自動的に再調整しません。その結果、データノードが未使用のストレージ容量を使い果たすと、クラスターはすべての書き込みをブロックします。ディスク容量管理の詳細については、Amazon OpenSearch Service ドメインのストレージ容量不足をトラブルシューティングするにはどうすればよいですか?を参照してください。
シャーディング戦略を更新する
デフォルトでは、Amazon OpenSearch Service には 5:1 のシャーディング戦略があります。この戦略においては、各インデックスは 5 つのプライマリシャードに分割されます。各インデックス内では、各プライマリシャードにも独自のレプリカがあります。OpenSearch Service では、障害が発生した場合に確実にバックアップがあるようにするため、プライマリシャードとレプリカシャードが別々のデータノードに自動的に割り当てられます。
OpenSearch Service のデフォルト動作を変更するには、シャードがサイズに基づいて均等に分散されるようにインデックスを設計します。
- 既存のインデックスの場合、reindex API を使用してプライマリシャードの数を変更します。_reindex API を使用すると、小さいインデックスを大きいインデックスにマージしたり、大きいインデックスを分割したりできます。大きいインデックスがより多くのプライマリシャードに分割されると、シャードサイズは小さくなります。
- 新しいインデックスの場合は、インデックステンプレート API を使用してプライマリシャードとレプリカシャードの数を定義します。
その後、シャードのインデックス設定を更新します。詳細については、Elasticsearch ウェブサイトの「インデックス設定の更新 API」を参照してください。
古いインデックスまたは未使用のインデックスを削除してディスク容量を解放する
OpenSearch Service または Elasticsearch バージョン 6.8 以降は ISM をサポートしています。ISM では、カスタム管理ポリシーを定義して、定められた期間後に古いインデックスまたは未使用のインデックスを削除できます。
関連情報
必要なストレージを計算する
Amazon OpenSearch Service の使用開始: 必要なシャード数