Direkt zum Inhalt

Warum bleibt meine OpenSearch-Service-Domain im Status „Wird geändert“ hängen?

Lesedauer: 5 Minute
0

Ich möchte Fehler in meinem Amazon-OpenSearch-Service-Cluster beheben, der sich im Status „Wird geändert“ befindet.

Lösung

Um Probleme mit einer Domain zu beheben, die im Status Wird geändert feststeckt, führe je nach dem aufgetretenen Problem die folgenden Maßnahmen zur Problembehandlung durch.

Eine Validierungsprüfung ist mit Fehlern fehlgeschlagen

Wenn du eine Konfigurationsänderung einleitest, führt OpenSearch Service Validierungsprüfungen durch, um sicherzustellen, dass die Domain für ein Upgrade in Frage kommt. Wenn die Validierung fehlschlägt, verbleibt die Domain im Status Wird geändert. Um dieses Problem zu beheben, führe die Schritte zur Problembehandlung für den Fehler aus, der dir angezeigt wird. Versuche dann erneut, die Konfiguration zu ändern.

Du hast mehrere Konfigurationsänderungen gestartet

Du kannst keine neue Konfigurationsänderung anwenden, wenn eine bestehende Konfigurationsänderung in Bearbeitung ist. Um mehrere Konfigurationsaktualisierungen vorzunehmen, nimm alle Änderungen in eine einzige Anforderung auf. Wenn du gleichzeitige Änderungen absendest, erhältst du die Fehlermeldung „A change is already in progress“.

Validierungsprüfungen bleiben für die Dauer der Konfigurationsänderung gültig. Wenn die Konfiguration die Validierungs-Phase erfolgreich durchläuft, ändere die Ressourcen nicht, die deine Domain benötigt, bis die erste Änderung abgeschlossen ist. Deaktiviere beispielsweise nicht den AWS Key Management Service (AWS KMS)-Schlüssel, den du für die Verschlüsselung verwendest.

In den Subnetzen der VPC sind keine IP-Adressen verfügbar

Wenn nicht genügend IP-Adressen verfügbar sind, gib neue IP-Adressen in den CIDR-Blöcken des Virtual Private Cloud (VPC)-Subnetzes frei oder füge neue hinzu.

Die Shard-Migration zu den neuen Datenknoten ist noch nicht abgeschlossen

Den Fortschritt der Shard-Migration überprüfen

Nachdem OpenSearch Service die neuen Ressourcen erstellt hat, beginnt er, Shards zu den neuen Datenknoten zu migrieren. Dieser Prozess kann je nach Auslastung und Größe des Clusters mehrere Minuten bis mehrere Stunden dauern.

Führe den folgenden Befehl aus, um den Status der Shard-Migration zu überwachen:

GET /DOMAIN_ENDPOINT/_cat/recovery?active_only=true&v

Hinweis: Ersetze DOMAIN_ENDPOINT durch deinen Domain-Endpunkt. Wenn du OpenSearch Dashboards verwendest, um den vorherigen Befehl auszuführen, entferne /DOMAIN_ENDPOINT/.

Wenn sich der OpenSearch-Service-Cluster im roten Clusterstatus befindet, schlägt die Shard-Migration fehl. Informationen zur Behebung dieses Problems findest du unter Warum hat mein OpenSearch-Service-Cluster einen roten oder gelben Status?

Führe den folgenden Befehl aus, um die Größe der Shards anzuzeigen:

GET /_cat/shards?v

Führe dann den folgenden Befehl aus, um die Anzahl der jedem Knoten zugewiesenen Shards anzuzeigen:

GET /_cat/allocation?v

Wenn die neuen Knoten nicht über alle erforderlichen Shards verfügen, führe den folgenden Befehl aus, um die Ursache zu ermitteln:

GET /_cluster/allocation/explain?pretty

Weitere Informationen findest du unter CAT shards API, CAT allocation API und Cluster allocation explain API auf der OpenSearch-Website.

Bewährte Methoden von OpenSearch Service anwenden

Halte dich an die folgenden bewährten Methoden, um die Shard-Migration zu beschleunigen:

  • Verwende eine Shard-Strategie, die deinen Bedürfnissen entspricht.
  • Plane die Entwicklung und die Art der Workload ein, wenn du die Anzahl der Shards für den Index auswählst.
  • Stelle sicher, dass die CPU-Auslastung und der Java Virtual Machine (JVM)-Speicherdruck des Clusters nicht zu hoch sind.
  • Stelle sicher, dass in den neuen Knoten genügend freier Speicherplatz vorhanden ist. Lösche Indizes, die du nicht mehr benötigst, um Speicherplatz freizugeben. Eine Anleitung findest du unter Delete index API (Index-API löschen) auf der OpenSearch-Website.
    Hinweis: Speicherplatzprobleme können auftreten, wenn du dem Cluster während des Blau/Grün-Bereitstellungsprozesses neue Daten hinzufügst. Oder sie treten auf, wenn frühere Knoten große Shards haben, die OpenSearch Service den neuen Knoten nicht zuweisen kann.

Den Wert für Wiederholungsversuche der Zuweisung aktualisieren

Wenn der Shard die maximale Anzahl von Wiederholungsversuchen überschreitet und einem Knoten weiterhin nicht zugewiesen ist, versuche die Zuweisung erneut. Standardmäßig weist der Cluster einem Shard maximal 5 Wiederholungsversuche hintereinander zu.

Führe den folgenden Befehl aus, um die Anzahl der Wiederholungen für den Shard zu erhöhen:

PUT INDEX_NAME/_settings  {
    "index.allocation.max_retries" : 10
}

Hinweis: Ersetze INDEX_NAME durch deinen Indexnamen und 10 durch die Anzahl der Wiederholversuche.

In den Indexeinstellungen nach Problemen suchen

Interne Hardwarefehler können dazu führen, dass Shards auf vorhandenen Datenknoten während der Migration stecken bleiben. Basierend auf dem Hardwareproblem führt OpenSearch Service Skripts aus, um die Knoten automatisch in einen fehlerfreien Zustand zurückzuversetzen. Wenn du Shards an einen vorhandenen Satz von Knoten anheftest, kann die Shard-Migration stecken bleiben.

Um sicherzustellen, dass du keine Shards an Knoten angeheftet hast, führe die folgenden Befehle aus, um die Indexeinstellungen zu überprüfen:

GET /DOMAIN_ENDPOINT/_cluster/allocation/explain?pretty
GET /DOMAIN_ENDPOINT/INDEX_NAME/_settings?pretty

Hinweis: Ersetze DOMAIN_ENDPOINT durch deinen Domain-Endpunkt und INDEX_NAME durch deinen Index. Wenn du OpenSearch Dashboards verwendest, um den vorherigen Befehl auszuführen, entferne /DOMAIN_ENDPOINT/.

Überprüfe in der Ausgabe die folgenden Einstellungen, um Shards zu identifizieren, die an Knoten angeheftet sind:

"index.routing.allocation.require._name": "NODE_NAME"
"index.blocks.write": true

Hinweis: Ersetzen NODE_NAME durch deinen Knotennamen.

Wenn du „index.routing.allocation.require._name“: „NODE_NAME“ in den Indexeinstellungen siehst, dann führe den folgenden Befehl aus, um die Einstellung zurückzusetzen:

PUT INDEX_NAME/_settings  {
    "index.routing.allocation.require._name": null
}

Hinweis: Ersetze DOMAIN_ENDPOINT durch deinen Domain-Endpunkt und INDEX_NAME durch deinen Index.

Weitere Informationen zu Shard-Einstellungen in deinem Index findest du unter Index-level shard allocation (Shard-Zuweisung auf Indexebene) auf der Elastic-Website.

Wenn du in den Indexeinstellungen "index.blocks.write": true siehst, hat der Index einen Schreibblock. Dieses Schreibblockproblem kann aufgrund eines ClusterBlockException-Fehlers auftreten. Informationen zur Behebung dieses Problems findest du unter Wie behebe ich den 403-Fehler „index_create_block_exception“ oder „cluster_block_exception“ in OpenSearch Service?

Um den Fortschritt der Konfigurationsänderung zu überwachen, führe die DescribeDomainChangeProgress-API aus. Erstelle einen AWS-Supportfall bei Clustern, die im Status Wird geändert feststecken, oder Domains, die länger als 24 Stunden im Status Löschen älterer Ressourcen feststecken.

AWS OFFICIALAktualisiert vor 7 Monaten