Ho un cluster ES con 4 nodi:
number_of_replicas: 1
search01 - master: false, data: false
search02 - master: true, data: true
search03 - master: false, data: true
search04 - master: false, data: true
Ho dovuto riavviare search03, e quando è tornato, è rientrato nel cluster senza problemi, ma ha lasciato in giro 7 frammenti non assegnati.
{
"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
}
Ora il mio cluster è in stato giallo. Qual è il modo migliore per risolvere questo problema?
- Eliminare (annullare) i frammenti?
- Spostare i frammenti su un altro nodo?
- Allocare i frammenti al nodo?
- Aggiorna "number_of_replicas" su 2?
- Qualcos'altro interamente?
È interessante notare che, quando è stato aggiunto un nuovo indice, quel nodo ha iniziato a lavorarci su e si è comportato bene con il resto del cluster, lasciando semplicemente in giro i frammenti non assegnati.
Segui la domanda: sto facendo qualcosa di sbagliato per far sì che ciò accada in primo luogo? Non ho molta fiducia in un cluster che si comporta in questo modo al riavvio di un nodo.
NOTA: se si esegue un cluster a nodo singolo per qualche motivo, potrebbe essere necessario semplicemente eseguire le seguenti operazioni:
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 }
anche se posso vedere che il frammento è uno di quelli non allocati in ES-Head