There are several reasons why you might want to change the configuration of a cluster:
- To increase or decrease cluster capacity by changing the amount of reserved memory and storage.
- To enable high availability by adjusting the number of availability zones that your cluster runs in.
- To upgrade to new versions of Elasticsearch. You can upgrade from one major version to another, such as from 1.7.5 to 2.3.5, or from one minor version to another, such as 2.3.5 to 2.4.0. You can’t downgrade versions.
- To update Elasticsearch clusters and Kibana after an updated Elastic Stack pack for a particular version has been added to your Elastic Cloud Enterprise installation.
- To change what plugins are available on your cluster.
With the exception of major version upgrades, we can perform all these changes without having to interrupt your cluster. You can continue searching and indexing.
Many changes can also be done in bulk: in one action, you can add more memory and storage, upgrade minor versions, adjust the number of plugins and adjust fault tolerance by changing the number of availability zones. Elastic Cloud Enterprise performs all of these changes by making the cluster with the new configuration join the existing cluster. After joining, the new nodes recover the indexes and start handling requests. When all the new nodes are ready, the old ones are brought down. Note that if you do a major version upgrade, you cannot also change the cluster configuration at the same time. Simply perform these configuration changes separately.
When you change the configuration of a cluster, existing data is migrated to new nodes. For clusters containing large amounts of data, this migration can take some time, especially if your cluster is under a heavy workload. (Is your cluster under a heavy load? You might need to stop routing requests first.)