Come posso utilizzare ISM per gestire lo spazio di archiviazione insufficiente nel servizio OpenSearch di Amazon?

Ultimo aggiornamento: 21/11/2022

Il mio cluster del servizio OpenSearch di Amazon sta esaurendo lo spazio di archiviazione. Come posso utilizzare Index State Management (ISM) per gestire i problemi di archiviazione su Amazon OpenSearch Service?

Breve descrizione

Index State Management (ISM) consente di automatizzare i processi di routine e quindi applicarli agli indici e ai modelli di indice in OpenSearch Service. Con ISM, puoi definire policy di gestione personalizzati che consentono di gestire problemi come lo spazio su disco insufficiente. Ad esempio, puoi utilizzare un'operazione di rollover e una policy ISM per automatizzare l'eliminazione dei vecchi indici in base a condizioni come la dimensione dell'indice. L'operazione di rollover esegue il rollover di una destinazione in un nuovo indice quando un indice esistente soddisfa la condizione definita.

Per creare un criterio ISM per un pattern di indice utilizzando un'operazione come il rollover, attenersi alla seguente procedura:

1.    Imposta il tuo indice di rollover.

2.    Creare un criterio ISM.

3.    Allegare la policy a un indice.

4.    Aggiungi il modello.

Dopo aver collegato la policy a un indice, quest'ultimo inizia a inizializzarsi e quindi passa a stati diversi fino al completamento dell'operazione di rollover. Per ulteriori informazioni sull'operazione di rollover, consulta rollover nel sito Web Open Distro for OpenSearch.

Risoluzione

Imposta il tuo indice di rollover

Creare un indice e un alias in cui il formato dell'indice corrisponde al modello di indice:

^.*-\d+$

Importante: accertarsi di configurare correttamente l'alias di rollover. In caso contrario, riceverai un messaggio di errore.

Nell'esempio seguente, "test-index-000001" viene creato e popolato con diversi documenti. Poiché questo esempio utilizza un indice di rollover, il formato dell'indice deve corrispondere al modello.

PUT test-index-000001/_doc/1
{
    "user": "testuser",
    "post_date": "2020-05-08T14:12:12",
    "message": "ISM testing"
}

Un indice di rollover richiede un alias che punta all'indice più recente. Ciò significa che devi creare un alias ("test-index") utilizzando la seguente query:

POST /_aliases
{
     "actions": [{
          "add": {
               "index": "test-index-000001",
               "alias": "test-index"
          }
     }]
}

Nota: se un'operazione di rollover è inclusa nella policy ISM, devi includere l'alias di rollover. Per ulteriori informazioni, consulta Perché l'operazione dell'indice di rollover nella policy ISM continua a non riuscire sul servizio OpenSearch di Amazon?

Crea una policy ISM

In OpenSearch Dashboards, scegli la scheda Gestione indice e crea una policy ISM per l'operazione di rollover.

Ad esempio:

{
     "policy": {
          "policy_id": "Roll_over_policy",
          "description": "A test policy. DO NOT USE FOR PRODUCTION!",
          "schema_version": 1,
          "error_notification": null,
          "default_state": "hot",
          "states": [{
                    "name": "hot",
                    "actions": [{
                         "rollover": {
                              "min_size": "10mb"
                         }
                    }],
                    "transitions": [{
                         "state_name": "warm"
                    }]
               },
               {
                    "name": "warm",
                    "actions": [{
                         "replica_count": {
                              "number_of_replicas": 2
                         }
                    }],
                    "transitions": []
               }
          ]
     }
}

In questa policy ISM, ci sono due stati definiti: "hot" e "warm". Di default, l'indice è nello stato "hot". L'indice passa allo stato "warm" non appena raggiunge i 10 MB e viene creato un nuovo indice di rollover. Nello stato "warm", puoi eseguire varie operazioni sull'indice, ad esempio la modifica del conteggio delle repliche su due o l'esecuzione di un'operazione force_merge.

Collegamento della policy a un indice in corso

Per collegare la policy ISM a un indice, attieniti alla seguente procedura:

1.    Apri OpenSearch Dashboards dalla console di OpenSearch Service.

2.    Scegliere la scheda Gestione indice.

3.    Seleziona l'indice a cui desideri allegare la policy ISM (ad esempio: "test-index-000001").

4.    Scegli Applica policy.

5.    (Facoltativo) Se la policy specifica azioni che richiedono un alias, fornire l'alias e quindi scegliere Applica. Il tuo indice viene visualizzato nell'elenco degli indici gestiti.

Aggiunta del modello in corso

Collega la policy a un indice specifico, come "test-index-000002", creato come risultato della policy ISM. Con questo collegamento, gli indici effettuano il rollover anche quando viene soddisfatta la condizione richiesta (come la dimensione dell'indice).

È possibile creare e utilizzare un modello ISM come questo:

PUT _plugins/_ism/policies/test_policy
{
     "policy": {
          "description": "A test policy. DO NOT USE FOR PRODUCTION!",
          "last_updated_time": 1642027350875,
          "schema_version": 1,
          "error_notification": null,
          "default_state": "hot",
          "states": [{
                    "name": "hot",
                    "actions": [{
                         "rollover": {
                              "min_size": "10mb"
                         }
                    }],
                    "transitions": [{
                         "state_name": "warm"
                    }]
               },
               {
                    "name": "warm",
                    "actions": [{
                         "replica_count": {
                              "number_of_replicas": 2
                         }
                    }],
                    "transitions": []
               }
          ],
          "ism_template": {
               "index_patterns": [
                    "test*"
               ],
               "priority": 100
          }
     }
}

In questo esempio, l'API explain verifica che il modello "test_policy" creato è collegato all'indice appena creato:

GET _plugins/_ism/explain/test-index-000002
{
     "test-index-000002": {
          "index.plugins.index_state_management.policy_id": "test_policy",
          "index.opendistro.index_state_management.policy_id": "test_policy",
          "index": "test-index-000002",
          "index_uuid": "CZrQ-RzRS8SmiWIuyqFmVg",
          "policy_id": "test_policy",
          "enabled": true
     },
     "total_managed_indices": 1
}

Nota: questo indice viene compilato anche nella sezione Indici gestiti nella scheda Gestione indice di OpenSearch Dashboard.

La policy ISM afferma

Quando una policy ISM è associata a un indice, l'indice entra in uno stato di "Inizializzazione". Dallo stato "Inizializzazione", l'indice passa allo stato "Predefinito", definito nella policy. Questa operazione di "inizializzazione", e ogni operazione successiva, può richiedere dai 30 ai 48 minuti. ISM utilizza questo tempo per eseguire operazioni della policy, quindi verifica eventuali condizioni e trasferisce l'indice in stati diversi. Viene inoltre aggiunto un jitter casuale dello 0-60% per garantire che non ci siano picchi di attività provenienti da tutti gli indici contemporaneamente.

Nota: per un'operazione di rollover, un indice è "completo" dopo il rollover dell'indice, passa a uno stato "warm" e il conteggio delle repliche viene aggiornato.

Se utilizzi una policy ISM e l'indice non sta migrando correttamente, controlla lo stato dell'ISM.

Per verificare lo stato della migrazione per un determinato indice, utilizza la seguente sintassi:

GET _ultrawarm/migration/<put_index_name_here>/_status

Per ottenere una migrazione di riepilogo di tutti gli indici, utilizza la seguente sintassi:

GET _ultrawarm/migration/_status?

Questo articolo è stato utile?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?