Upgrading to Elasticsearch version 1.7.1

In Release 9.5 of Sterling Order Management System Software, Elasticsearch version 0.20.1 has been replaced with Elasticsearch version 1.7.1 for indexing orders and shipments.

About this task

Elasticsearch can usually be upgraded using a rolling upgrade process, resulting in no interruption of service. Releases prior to version 1.0 and releases after version 1.0 are not compatible with eachother, so a rolling upgrade of these versions is not possible. Therefore, because we are upgrading from version 0.20.1, a Full Cluster Restart type of upgrade is required.

It is recommended that you back up the data on your system before performing an upgrade of Elasticsearch. This allows you to roll back your data in the event of a problem with the upgrade.

To back up a running Elasticsearch system:

Procedure

  1. Disable index flushing, as follows, to prevent indices from being flushed to disk while the backup is in process:
    curl -XPUT 'http://<local_host>:9200/_all/_settings' -d'{ "index": { "translog.disable_flush": "true" }}'
    Run the preceding command from the command line, replacing <local_host> with the IP of the server where Elasticsearch is running.

    Refer to the Elasticsearch server console or log to ensure that the following message displays for each shard:

    updating disable_flush from [false] to [true]
  2. Disable reallocation, as follows, to prevent the cluster from moving data files from one node to another node while the backup is in process:
    curl -XPUT 'http://<local_host>:9200/_cluster/settings' -d '{ "transient" : { "cluster.routing.allocation.disable_allocation": "true" }}'
    Refer to the Elasticsearch server console or log to ensure that the following message displays:
    updating [cluster.routing.allocation.disable_allocation] from [false] to [true]
  3. After reallocation and index flushing are disabled, back up the Elasticsearch's data path using any backup method, such as tar, storage array snapshots, or backup software.
  4. When the backup is complete and data no longer needs to be read from the Elasticsearch data path, re-enable reallocation and index flushing, as follows:
    curl -XPUT 'http://<local_host>:9200/_all/_settings' -d '{ "index": { "translog.disable_flush": "false" }}'
    curl -XPUT 'http://<local_host>:9200/_cluster/settings' -d '{ "transient" : { "cluster.routing.allocation.disable_allocation": "false" }}'