Wie bringe ich die ungleiche Shard-Verteilung in meinem Amazon-OpenSearch-Service-Cluster wieder ins Gleichgewicht?

Letzte Aktualisierung: 23.9.2021

Der Festplattenspeicher in meiner Amazon-OpenSearch-Service-Domäne ist ungleichmäßig über die Knoten verteilt. Infolgedessen ist die Speicherplatzauslastung stark verzerrt. Wie kann ich meine Knotenverteilung wieder ins Gleichgewicht bringen?

Kurzbeschreibung

Die Speicherplatzauslastung kann aus den folgenden Gründen stark verzerrt sein:

  • Ungleichmäßige Shard-Größen in einem Cluster. Obwohl OpenSearch Service die Anzahl der Shards gleichmäßig auf die Knoten verteilt, können unterschiedliche Shard-Größen unterschiedliche Mengen an Speicherplatz benötigen.
  • Verfügbarer Speicherplatz auf einem Knoten. (Weitere Informationen finden Sie auf der Elasticsearch-Website unter Festplattenbasierte Shard-Zuweisung.)
  • Falsche Strategie für die Shard-Zuweisung. (Weitere Informationen finden Sie unter Das Geheimnis der Shard-Zuweisung des OpenSearch Service lüften.)

Beachten Sie die folgenden Ansätze, um die Shard-Zuweisung in Ihrem OpenSearch-Service-Cluster wieder ins Gleichgewicht zu bringen:

  • Überprüfen Sie die Shard-Zuweisung, die Shard-Größen und die Index-Sharding-Strategie.
  • Achten Sie darauf, dass die Shards in den Indizes gleich groß sind.
  • Behalten Sie Shard-Größen zwischen 10 GB und 50 GB bei, um eine bessere Leistung zu ermöglichen.
  • Fügen Sie Ihrem OpenSearch-Service-Cluster weitere Datenknoten hinzu.
  • Aktualisieren Sie Ihre Sharding-Strategie.
  • Löschen Sie die alten oder ungenutzten Indizes, um Speicherplatz freizugeben.

Auflösung

Überprüfen Sie die Shard-Zuweisung, die Shard-Größen und die Index-Sharding-Strategie

Verwenden Sie die folgende API, um die Anzahl der jedem Knoten zugewiesenen Shards und die Menge des verwendeten Speicherplatzes auf jedem Knoten zu überprüfen:

$ curl -XGET ES_Endpoint/_cat/allocation?v

Um die jedem Knoten zugewiesenen Shards und die Größe der einzelnen Shards zu überprüfen, verwenden Sie die folgende API:

$ curl -XGET ES_Endpoint/_cat/shards?v

Hinweis: Diese API zeigt, dass die Größe von Shards für verschiedene Indizes variieren kann.

Die uneinheitliche Sharding-Strategie für Indizes kann zu einer Verzerrung der Daten führen, wenn sich Shards größerer Indizes auf nur wenigen Knoten befinden. Überprüfen Sie die Sharding-Strategie für Indizes mithilfe der folgenden API:

$ curl -XGET ES_Endpoint/_cat/indices?v

Achten Sie darauf, dass die Shards in den Indizes gleich groß sind

Wenn die Indexgröße erheblich variiert, verwenden Sie die Rollover-Index-API, um einen neuen Index zu erstellen, wenn bestimmte Indexgrößen erreicht werden. Oder Sie können das Index State Management (ISM) verwenden, um einen neuen Index für die Versionen 7.1 und höher von OpenSearch Service zu erstellen. Weitere Informationen zum Rollover eines Alias mit ISM finden Sie unter Rollover auf der Website Open Distro.

Behalten Sie Shard-Größen zwischen 10 GB und 50 GB bei, um eine bessere Leistung zu ermöglichen

Wenn Sie eine große Anzahl von Instances haben, verwenden Sie die Petabyte-Skala für Amazon OpenSearch Service, um die Shard-Größen zu bestimmen. Eine OpenSearch-Service-Domäne mit mehreren i3.16xlarge.search-Instances kann zum Beispiel Shard-Größen von bis zu 100 GB unterstützen, da mehr Ressourcen zur Verfügung stehen. Weitere Informationen zur Sharding-Strategie finden Sie unter Auswahl der Anzahl von Shards.

Fügen Sie Ihrem OpenSearch-Service-Cluster weitere Datenknoten hinzu

Wenn Ihr OpenSearch-Service-Cluster eine hohe Speicherplatzauslastung erreicht hat, dann sollten Sie dem Cluster weitere Datenknoten hinzufügen. Durch das Hinzufügen von Datenknoten werden außerdem weitere Ressourcen hinzugefügt, um die Clusterleistung zu verbessern.

Hinweis: OpenSearch Service gewichtet den Cluster nicht automatisch neu, wenn es an verfügbarem Speicherplatz mangelt. Wenn also ein Datenknoten keinen freien Speicherplatz mehr hat, blockiert der Cluster alle Schreibvorgänge. Weitere Informationen zur Verwaltung des Speicherplatzes finden Sie unter Wie füge ich mehr Speicherplatz zu einer Amazon-OpenSearch-Service-Domäne hinzu?

Aktualisieren Sie Ihre Sharding-Strategie

Standardmäßig hat OpenSearch Service eine Sharding-Strategie von 5:1, wobei jeder Index in fünf primäre Shards aufgeteilt ist. Innerhalb jedes Index hat jeder primäre Shard auch sein eigenes Replikat. OpenSearch Service weist primäre Shards und Replika-Shards automatisch separaten Datenknoten zu und stellt sicher, dass im Fall eines Fehlers ein Backup vorhanden ist.

Um das Standardverhalten von OpenSearch Service zu ändern, gestalten Sie Ihre Indizes so, dass Shards gleichmäßig nach Größe verteilt werden:

  • Verwenden Sie für bestehende Indizes die reIndex-API, um die Anzahl der primären Shards zu ändern. Die _reIndex-API kann verwendet werden, um kleinere Indizes zu einem größeren Index zusammenzuführen oder um den größeren Index aufzuteilen. Wenn der größere Index in mehrere primäre Shards aufgeteilt wird, werden die Shard-Größen verringert.
  • Verwenden Sie für neue Indizes die Vorlagen-API, um die Anzahl der primären und Replika-Shards zu definieren.

Aktualisieren Sie dann die Einstellungen der Indizes für Ihre Shards. Weitere Informationen finden Sie auf der Elasticsearch-Website unter Einstellungen der Indizes aktualisieren.

Löschen Sie die alten oder ungenutzten Indizes, um Speicherplatz freizugeben

OpenSearch Service Versionen 7.1 und höher unterstützen Index State Management. Mit ISM können Sie benutzerdefinierte Verwaltungsrichtlinien definieren, sodass alte oder unbenutzte Indizes nach einer festgelegten Dauer gelöscht werden.

Amazon OpenSearch Service ist der Nachfolger von Amazon Elasticsearch Service.


War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?