Pourquoi m'est-il impossible de supprimer un index ou de mettre à niveau mon cluster Amazon OpenSearch Service ?

Lecture de 6 minute(s)
0

Je ne peux pas supprimer un index, ni mettre à niveau mon cluster Amazon OpenSearch Service. Pourquoi cela arrive-t-il ?

Brève description

Si vous tentez de supprimer un index ou de mettre à niveau votre cluster OpenSearch Service, la modification peut échouer pour les raisons suivantes :

  • La création de l'instantané est déjà en cours.
  • La création d'instantané est bloquée.
  • L'instantané en cours de création est associé à un cluster dont l'état est rouge.
  • Expiration ou échec de l'instantané.

Pour plus d'informations sur les échecs de mise à niveau d'OpenSearch Service, consultez Dépannage d'une mise à niveau. Pour plus d'informations sur le statut d'état rouge d'un cluster OpenSearch Service, consultez État de cluster rouge.

Résolution

La création d'instantané est déjà en cours

Lorsqu'un instantané est en cours, vous pouvez rencontrer l'un des messages d'erreur suivants :

  • « L'opération d'instantané antérieure n'est pas encore terminée » (lors d'une mise à niveau de cluster)
  • « Impossible de supprimer les indices qui sont instantanés » (lors de la suppression d'un index)

Si vous avez reçu une erreur, essayez ce qui suit :

1.    Pour les domaines chiffrés, utilisez la syntaxe suivante pour vérifier si un instantané automatique est déjà en cours :

curl -XGET "https://domain-endpoint/_snapshot/cs-automated-enc/_status"

2.    Pour les domaines non chiffrés, utilisez la syntaxe suivante pour vérifier si un instantané automatique est déjà en cours :

curl -XGET "https://domain-endpoint/_snapshot/cs-automated/_status"

S'il n'y a aucun instantané en cours d'exécution, la sortie suivante apparaît :

{
    "snapshots": []
}

Les crochets vides indiquent si vous pouvez supprimer l'index en toute sécurité ou effectuer une mise à niveau. Si OpenSearch Service n'est pas en mesure de vérifier si un instantané est en cours, l'opération peut échouer.

La création d'instantané est bloquée

1.    Utilisez la commande suivante pour vérifier les heures de début et de fin de vos instantanés horaires :

curl -XGET "https://domain-endpoint/_cat/snapshots/cs-automated?v&s=id"

2.    Imprimez les heures de début à l'aide d'une sortie cURL dirigée vers la commande awk :

curl -XGET "https://domain-endpoint/_cat/snapshots/cs-automated?v&s=id" | awk -F" " ' { print $4 } '

La sortie indique l'heure à laquelle les instantanés horaires ont été créés. Par exemple, la sortie suivante indique que la sortie s'exécute vers la 52e minute de chaque heure :

22:51:11
23:51:18
00:51:19
01:51:14
02:51:16
03:51:18
04:51:16
05:51:11

3.    Vérifiez l'éligibilité de la mise à niveau OpenSearch Service.

Important : n'exécutez pas le contrôle d'éligibilité à la mise à niveau tant que la prise de l'instantané n'est pas terminée.

Utilisez l'API d'état de l'instantané pour vérifier si l'instantané est terminé. L'API d'état de l'instantané renvoie un ensemble vide lorsque votre instantané est capturé. Si l'état actuel est en cours et qu'il ne change pas pendant un certain temps, alors votre instantané peut être bloqué. Il en va de même avec les instantanés ayant été arrêtés, dans la mesure où ceci peut empêcher la création d'autres instantanés. Si l'état du cluster est rouge ou qu'il existe un bloc d'écriture, effacez l'état ou le bloc pour résoudre le problème.

Remarque : les données de votre instantané peuvent changer après les modifications de configuration. Par conséquent, n'utilisez pas l'instantané pour les tâches planifiées.

L'instantané en cours est associé à un cluster dont l'état est rouge

1.    Pour répertorier uniquement les noms de référentiel membre sur votre domaine, utilisez la syntaxe suivante :

curl -XGET "http://domain-endpoint/_cat/repositories?v&h=id"

2.    Pour répertorier les noms, types et autres paramètres de référentiel membre sur votre domaine, utilisez la syntaxe suivante :

curl -XGET "http://domain-endpoint/_snapshot?pretty"
curl -XGET "https://domain-endpoint/_cluster/state/metadata"

3.    Vérifiez si vous pouvez répertorier les instantanés dans chacun des référentiels, à l'exclusion des référentiels cs-automated ou cs-automated-enc. Si vous disposez de plusieurs référentiels, utilisez un script bash similaire à celui-ci :

#!/bin/bash
repos=$(curl -s https://domain-endpoint/_cat/repositories 2>&1 |grep  -v "cs-automated" | awk '{print $1}')

for i in $repos; do
echo "Snapshots in ... :" $i >>/tmp/snapshot
`curl -s -XGET https://domain-endpoint/_cat/snapshots/$i >> /tmp/snapshot`
\echo "done..."
done

Important : il est impossible de supprimer manuellement les instantanés bloqués dans le référentiel cs-automated ou cs-automated-enc.

4.    Pour afficher la sortie dans le dossier /tmp/snapshot, utilisez la syntaxe suivante :

cat /tmp/snapshot

La commande renvoie une réponse de ce type :

Snapshots in ... : snapshot-manual-repo
axa_snapshot-1557497454881 SUCCESS 1557639400 05:36:40 1557639405 05:36:45  4.6s  7 31 0 31
2019-05-15                 SUCCESS 1560503610 09:13:30 1560503622 09:13:42 11.8s  4 16 0 16
epoch_test                 SUCCESS 1569151317 11:21:57 1569151335 11:22:15 18.1s 15 56 0 56

Le message d'erreur renvoyé indique que le compartiment Amazon Simple Storage (Amazon S3) est déjà supprimé et membre du référentiel d'instantanés :

Snapshots in ... : snapshot-manual-repo
{
    "error": {
        "root_cause": [{
            "type": "repository_exception",
            "reason": "[snapshot-manual-repo] could not read repository data from index blob"
        }],
        "type": "repository_exception",
        "reason": "[snapshot-manual-repo] could not read repository data from index blob",
        "caused_by": {
            "type": "i_o_exception",
            "reason": "Exception when listing blobs by prefix [index-]",
            "caused_by": {
                "type": "a_w_s_security_token_service_exception",
                "reason": "a_w_s_security_token_service_exception: User: arn:aws:sts::999999999999:assumed-role/cp-sts-grant-role/swift-us-east-1-prod-666666666666 is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::666666666666:policy/my-manual-es-snapshot-creator-policy (Service: AWSSecurityTokenService; Status Code: 403; Error Code: AccessDenied; Request ID: 6b9374fx-11xy-11yz-ff66-918z9bb08193)"
            }
        }
    },
    "status": 500
}

5.    Vérifiez que le référentiel d'instantanés manuel est supprimé du compartiment Amazon S3 :

aws s3 ls | grep -i "snapshot-manual-repo"

Remarque : remplacez snapshot-manual-repo par le nom de votre compartiment.

6.    Supprimez le référentiel de votre cluster :

curl -XDELETE "https://domain-endpoint/_snapshot/snapshot-example-manual-repo"

Expiration ou échec de l'instantané

Si vous avez reçu un délai d'expiration ou un échec de l'instantané, effectuez les opérations suivantes :

1.    Vérifiez que vous pouvez créer manuellement un instantané. Si vous obtenez le message d'erreur Impossible de prendre un instantané manuel, appelez l'API _cat/snapshots :

curl -XGET "https://domain-endpoint/_cat/snapshots/s3_repository"

2.    Remplacez s3_repository par le nom de votre compartiment Amazon S3. Cette syntaxe vérifie la durée d'exécution de l'instantané actuel. Si la durée vous semble raisonnable, attendez que l'instantané soit terminé, puis essayez à nouveau de prendre l'instantané.

Remarque : la durée de votre instantané peut prendre plus de temps en fonction de la taille de vos index ou de la consommation de ressources de votre cluster.

3.    Vérifiez l'état de votre cluster :

curl -XGET "https://domain-endpoint/_cluster/health?pretty"

Si l'état de votre cluster est rouge, identifiez et résolvez d'abord la cause racine de ce statut. Si OpenSearch Service déplace ou initialise des partitions, attendez la fin du processus avant de configurer des politiques d'accès. Notez que la réallocation des partitions peut mettre à rude épreuve les ressources informatiques de votre cluster. Pour plus d'informations sur la résolution des problèmes liés à un cluster à l'état rouge, consultez la section État de cluster rouge.


Informations connexes

Comment puis-je améliorer les performances d'indexation sur mon cluster Amazon OpenSearch Service ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 ans