Supposons que j’ai 5 nœuds en cluster et que je devais supprimer 2 nœuds lors de l’exécution. Alors, comment cela peut-il être fait sans affecter les indices?
J’ai eu un stream continu de données venant à près de 10 Gbphour qui est indexé en permanence.
Est-ce que le rééquilibrage vous aidera? Merci d’avance
Vous pouvez mettre hors service un noeud en demandant au cluster de l’exclure de l’allocation. (De la documentation ici )
curl -XPUT localhost:9200/_cluster/settings -H 'Content-Type: application/json' -d '{ "transient" :{ "cluster.routing.allocation.exclude._ip" : "10.0.0.1" } }';echo
Cela entraînera Elasticsearch à allouer les fragments sur ce nœud aux nœuds restants, sans que l’état du cluster ne devienne jaune ou rouge (même si vous avez la réplication 0).
Une fois que tous les fragments ont été réaffectés, vous pouvez arrêter le noeud et faire ce que vous devez faire là-bas. Une fois que vous avez terminé, incluez le nœud pour l’allocation et Elasticsearch rééquilibrera à nouveau les fragments.
Pour supprimer le nœud elasticsearch du cluster, exécutez simplement la commande suivante
curl -XPUT PPPP:9200/_cluster/settings -H 'Content-Type: application/json' -d '{ "transient" :{ "cluster.routing.allocation.exclude._ip" : "XXXX" } }';echo
Ici, PPPP
est l’adresse IP privée du nœud maître, vous pouvez également utiliser l’ localhost
si elasticsearch est exécuté sur localhost
. XXXX
est l’adresse IP privée du noeud à supprimer du cluster.
Cette commande donnera un acknowledgement
true
si le nœud est accepté pour être supprimé et que le transfert de données commencera. Vérifiez si le transfert de données est terminé et que le nœud ne contient plus de fragments, puis arrêtez le processus elasticsearch
et stop/terminate
l’instance. Les commandes permettant de vérifier le transfert de données et les fragments restants sont disponibles dans cet article .
Vous pouvez toujours supprimer le processus pour supprimer le nœud à l’exécution. Le cluster Elasticsearch rééquilibrera automatiquement les nœuds restants. Mais, il y a des inconvénients ici.