Rolling Upgrade Documentation Incorrect?


(Pritesh Patel) #1

On this page: https://www.elastic.co/guide/en/elasticsearch/reference/6.1/rolling-upgrades.html

Step 1 says to set the allocation to 'none' :

PUT _cluster/settings
{
  "persistent": {
    "cluster.routing.allocation.enable": "none"
  }
}

Then a bunch of steps to update a node, and then step 7 to reenable shard allocation:

PUT _cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "all"
  }
}

Then in step 9 it says to repeat the previous steps for each additional node (presumably steps 1-8). However, if you run step 1 again to disable allocation, that won't do anything right? Step 1 configures a persistent setting, whereas step 7 overwrote that setting with a transient setting. So doing step 1 again to disable allocation will have no effect as transient settings take precedence over persistent ones. That seems like a bug in the docs, no?


Elasticsearch maintenance with cluster.routing.allocation.enable=none
(Mark Walkom) #2

Transient overrides persistent, until you restart the cluster and then the persistent setting applies.

But yeah, it's kinda odd that is the way it is. It might be worth raising an issue on GitHub to ask about it?


(Pritesh Patel) #3

Hey @warkolm,
before i file the github issue, just want to check my understanding. If I have 3 nodes to upgrade:

Node1:

  • step 1, set persistent allocation to 'none' (this is a cluster-wide setting, not specific to the node)
  • steps 2-6
  • step 7, set transient allocation to 'all' (this is a cluster-wide setting and overrides the value from step 1 until the master nodes are restarted?)
  • step 8

Node2:

  • step 1, set persistent allocation to 'none' (this does nothing as the persistent value was already 'none')
  • steps 2-6
  • step 7, set transient allocation to 'all' (this too does nothing as the transient value was already this)
  • step 8

Node3:

  • step 1, set persistent allocation to 'none' (this does nothing as the persistent value was already 'none')
  • steps 2-6
  • step 7, set transient allocation to 'all' (this too does nothing as the transient value was already this)
  • step 8

So when I'm upgrading node 2 and 3, allocation was not actually disabled?


(system) #4

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.