Hey All,
I'm in trouble.
I want perform rolling restart (so any service break) on our Elasticsearch Cluster (v 5.5).
Particularity : One node contains four java instance of Elasticsearch.
It's ok this procedure :
-
Disable shard allocation.
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d' {"transient": {"cluster.routing.allocation.enable": "none"}}' -
Stop non-essential indexing and perform a synced flush (Optional)
curl -X POST "localhost:9200/_flush/synced?pretty" -
Stop one node (so in my case, restart one node = restart four instances)
Stop elasticsearch node -
Start node (so my four instance going to start)
-
Reenable shard allocation.
curl -X PUT "localhost:9200/_cluster/settings?pretty" -H 'Content-Type: application/json' -d'
{"transient": {"cluster.routing.allocation.enable": "all"}}' -
Wait for the node to recover
-
Repeat on next node "multi instance"
So, it's better to stop/start master instance in first no ?
Also, i increase max byte recovery per seconde to speed up the rolling restart.