Perché il dominio di Amazon OpenSearch Service è bloccato sullo stato "Elaborazione in corso"?

Ultimo aggiornamento: 05-08-2021

Il cluster Amazon OpenSearch Service (successore di Amazon Elasticsearch Service) è bloccato nello stato “Elaborazione”. Perché sta accadendo e come posso impedirlo?

Breve descrizione

Il cluster di OpenSearch Service entra nello stato "Elaborazione" quando si trova nel mezzo di una modifica della configurazione. Il cluster può rimanere bloccato nello stato “Elaborazione” se si verifica una delle due situazioni:

  • Non si riesce ad avviare un nuovo set di nodi di dati.
  • La migrazione dello shard al nuovo set di nodi di dati non ha esito positivo.

Se si avvia una modifica alla configurazione, lo stato del dominio cambia in “Elaborazione” mentre OpenSearch Service crea un nuovo ambiente. Nel nuovo ambiente, OpenSearch Service lancia un nuovo set di nodi applicabili (come dati, master o UltraWarm). Al termine della migrazione, i nodi più vecchi vengono terminati.

Risoluzione

Impossibile avviare un nuovo set di nodi di dati

Quando si apportano modifiche simultanee alla configurazione del cluster prima del completamento della prima modifica, il cluster può rimanere bloccato. Assicurarsi di verificare la presenza di eventuali distribuzioni blu/verdi in corso nel proprio cluster. Per verificare se sono in corso implementazioni blu/verdi, controllare il numero totale di nodi in Amazon CloudWatch. Se si osserva un numero di nodi superiore al previsto, è probabile che sia in corso una distribuzione blu/verde.

Utilizzare la seguente chiamata API per recuperare ulteriori informazioni sui nodi aggiuntivi e sul processo di migrazione dello shard:

GET /_cluster/health?pretty and GET /_cat/recovery?pretty

Se viene utilizzato un dominio Amazon Virtual Private Cloud (VPC), accertarsi di disporre di un numero sufficiente di indirizzi IP gratuiti nella sottorete. Se non ci sono abbastanza indirizzi IP specificati nella sottorete, l'avvio di nuovi nodi non va a buon fine. Di conseguenza, il cluster rimane bloccato nello stato “Elaborazione”. Per ulteriori informazioni, consulta Prenotazione di indirizzi IP in una sottorete VPC.

Se è stato crittografato un dominio OpenSearch Service, assicurarsi che la propria chiave AWS KMS sia presente nel proprio account AWS prima di apportare una modifica alla configurazione. Se è stata eliminato accidentalmente la chiave AWS KMS, il cluster può rimanere bloccato nello stato “Elaborazione”.

Il cluster può anche rimanere bloccato per i seguenti motivi:

  • Un nodo master sovraccarico con troppe attività in sospeso o livelli elevati di pressione della CPU e della memoria JVM. Utilizzare l'API delle attività in sospeso di cat per verificare eventuali attività in sospeso. Vi è anche la possibilità di controllare i parametri di riferimento MasterCPUUtilization e MasterJVMMemoryPressure in Amazon CloudWatch.
  • I prerequisiti di autenticazione dell'autenticazione Amazon Cognito per OpenSearch Dashboards non sono stati soddisfatti. Se è stata configurata configurato l'autenticazione di Amazon Cognito per Dashboard OpenSearch, assicurarsi di aver soddisfatto i prerequisiti di autenticazione. Ad esempio, OpenSearch Service deve avere il pool di utenti, il pool di identità Amazon Cognito e il ruolo Identity Access Management (IAM) di AWS impostati con autorizzazioni corrette. Il nome predefinito per questo ruolo è CognitoAccessForAmazonOpenSearch (con la politica AmazoneScognitoAccess allegata).
    Nota: se è stato creato un ruolo IAM personalizzato, assicurarsi che il proprio ruolo abbia le stesse autorizzazioni di CognitoAccessForAmazonOpenSearch.

La migrazione dello shard al nuovo set di nodi dati non ha esito positivo

Una migrazione dello shard (dal vecchio set al nuovo set di nodi di dati) potrebbe non avere esito positivo per i seguenti motivi:

  • Il cluster di OpenSearch Service è attualmente in stato di integrità rosso. Se il cluster è in stato di integrità rosso, risolvi il problema dello stato del cluster rosso in modo che passi a uno stato integro.
    Nota: è consigliabile configurare il cluster quando è in uno stato integro.
  • I nodi sono fuori servizio a causa di un carico di elaborazione elevato provocato dall'elevata pressione della memoria JVM e dall'utilizzo della CPU. Per risolvere questo problema, ridurre il traffico di rete verso il cluster o arrestare completamente il traffico di rete, per ripristinare lo stato integro del cluster. In caso contrario, il processo di distribuzione blu/verde potrebbe scadere e richiedere un intervento manuale.
  • A causa di guasti hardware interni, i frammenti sui vecchi nodi di dati possono rimanere bloccati durante una migrazione. (Nota: a seconda del problema hardware, anche il cluster potrebbe non essere ripristinato automaticamente.) Se il cluster non si ripristina automaticamente, OpenSearch Service eseguirà script di riparazione automatica per riportare i nodi a uno stato integro. La perdita del volume root di un nodo può impedire a OpenSearch Service di rispondere e un gruppo Auto Scaling sostituisce automaticamente i nodi difettosi. Se il volume EBS collegato per un nodo si interroga, è necessario un intervento manuale per sostituire il volume EBS. Per aiutare a individuare quali frammenti sono ancora in funzione da un set di nodi precedente, utilizzare i seguenti comandi API: API di allocazione cat, API di nodi cat o API di shard cat.
  • Un trasferimento di frammento bloccato causato da una memoria libera insufficiente nel nuovo set di nodi. Questo problema si verifica quando sono presenti nuovi dati che entrano nel cluster durante un processo di distribuzione blu/verde.
    Nota: una distribuzione blu/verde non viene attivata se OpenSearch Service rileva meno spazio di quello necessario per una corretta migrazione dei dati.
  • Un trasferimento di frammenti bloccati causato da frammenti bloccati su un set di nodi più vecchio. Per accertarsi che i frammenti non siano fissati a nessun nodo prima che venga apportata una modifica alla configurazione, controllare l'impostazione dell'indice. In alternativa, verificare se il cluster ha un blocco di scrittura causato da un'elevata pressione della memoria JVM o da uno spazio su disco insufficiente.

Per identificare quali frammenti di indice sono bloccati e le impostazioni dell'indice corrispondenti, utilizzare i seguenti comandi:

curl -X GET "ENDPOINT/_cluster/allocation/explain?pretty"
curl -X GET "ENDPOINT/INDEX_NAME/_settings?pretty"

Nelle impostazioni dell'indice, controllare se viene visualizzata una di queste impostazioni:

{
    "index.routing.allocation.require._name": "NODE_NAME" (OR)
    "index.blocks.write": true
    }

Se si osserva «index.routing.allocation.require. _name»: «NODE_NAME» nelle impostazioni dell'indice, rimuovere l'impostazione in questo modo:

curl -X PUT "ENDPOINT/INDEX_NAME/_settings?pretty" H 'Content-Type: application/json' -d '
{
"index.routing.allocation.require._name": null
}'

Per ulteriori informazioni, consultare Filtraggio dell'allocazione degli shard a livello di indice sul sito Web Elasticsearch.

Se si osserva “index.blocks.write”: true nelle impostazioni dell'indice, significaa che il cluster ha un blocco di scrittura. Il blocco di scrittura è probabilmente causato da un'elevata pressione della memoria JVM o da uno spazio su disco insufficiente. Assicurarsi di risolvere questi problemi prima di implementare altri suggerimenti per la risoluzione dei problemi. Per ulteriori informazioni sulla risoluzione dei problemi di questa eccezione, consulta ClusterBlockException.

Nota: se il cluster rimane bloccato nello stato “Elaborazione” per più di 24 ore, vuol dire che il cluster necessita di un intervento manuale. Inoltre, se non sono state apportate modifiche alla configurazione ma il numero di nodi è superiore al previsto, è possibile che sia in corso una patch software.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?