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

Lesedauer: 4 Minute
0

Der Festplattenspeicher in meiner Amazon OpenSearch Service-Domain ist ungleichmäßig auf die Knoten verteilt. Infolgedessen ist die Festplattenauslastung stark verzerrt.

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, benötigen unterschiedliche Shard-Größen unterschiedlich viel Speicherplatz.
  • Verfügbarer Festplattenspeicher 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:

GET _cat/allocation?v

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

GET _cat/shards?v

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

Die ungleichmäßige Sharding-Strategie für Indizes kann zu Datenverzerrungen führen. In diesem Fall befinden sich Shards größerer Indizes nur auf wenigen Knoten. Überprüfen Sie die Sharding-Strategie für Indizes. Verwenden Sie die folgende API:

GET _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 Rolling eines Alias mithilfe von ISM finden Sie unter Rollover auf der Open Distro-Website.

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

Wenn Sie über eine große Klasse von Instances verfügen, 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 einem Datenknoten der ungenutzte Speicherplatz ausgeht, blockiert der Cluster daher alle Schreibvorgänge. Weitere Informationen zur Speicherplatzverwaltung finden Sie unter Wie behebe ich zu wenig Speicherplatz in meiner Amazon OpenSearch Service-Domain?

Aktualisieren Sie Ihre Sharding-Strategie

Standardmäßig hat Amazon OpenSearch Service eine Sharding-Strategie von 5:1, wobei jeder Index in fünf primäre Shards unterteilt ist. Innerhalb jedes Index hat jeder primäre Shard auch sein eigenes Replikat. OpenSearch Service weist automatisch primäre Shards und Replikat-Shards separaten Datenknoten zu und stellt sicher, dass im Falle 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 Indexvorlagen-API, um die Anzahl der Primär- und Replikat-Shards zu definieren.

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

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

OpenSearch Service oder Elasticsearch Version 6.8 oder höher unterstützen ISM. Mit ISM können Sie benutzerdefinierte Verwaltungsrichtlinien definieren, sodass alte oder unbenutzte Indizes nach einer festgelegten Dauer gelöscht werden.


Relevante Informationen

Berechnung des Speicherbedarfs

Erste Schritte mit Amazon OpenSearch Service: Wie viele Shards brauche ich?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr