J'ai un cluster ES avec 4 nœuds:
number_of_replicas: 1
search01 - master: false, data: false
search02 - master: true, data: true
search03 - master: false, data: true
search04 - master: false, data: true
J'ai dû redémarrer search03, et quand il est revenu, il a rejoint le cluster sans problème, mais a laissé 7 fragments non attribués.
{
"cluster_name" : "tweedle",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 4,
"number_of_data_nodes" : 3,
"active_primary_shards" : 15,
"active_shards" : 23,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 7
}
Maintenant, mon cluster est à l'état jaune. Quelle est la meilleure façon de résoudre ce problème?
- Supprimer (annuler) les fragments?
- Déplacer les fragments vers un autre nœud?
- Allouer les fragments au nœud?
- Mettre à jour 'number_of_replicas' à 2?
- Quelque chose d'autre entièrement?
Fait intéressant, lorsqu'un nouvel index a été ajouté, ce nœud a commencé à travailler dessus et a bien joué avec le reste du cluster, il a juste laissé les fragments non attribués traîner.
Suivez la question: est-ce que je fais quelque chose de mal pour que cela se produise en premier lieu? Je n'ai pas beaucoup confiance dans un cluster qui se comporte de cette façon lorsqu'un nœud est redémarré.
REMARQUE: Si vous exécutez un cluster à nœud unique pour une raison quelconque, vous devrez peut-être simplement effectuer les opérations suivantes:
curl -XPUT 'localhost:9200/_settings' -d '
{
"index" : {
"number_of_replicas" : 0
}
}'
{ "error" : "ElasticsearchIllegalArgumentException[[allocate] failed to find [logstash-2015.01.05][1] on the list of unassigned shards]", "status" : 400 }
même si je peux voir que ce fragment est l'un des non alloués dans ES-Head