Before upgrading Elasticsearch:
- Consult the breaking changes docs.
- Use the Elasticsearch Migration Plugin to detect potential issues before upgrading.
- Test upgrades in a dev environment before upgrading your production cluster.
- Always back up your data before upgrading. You cannot roll back to an earlier version unless you have a backup of your data.
- If you are using custom plugins, check that a compatible version is available.
Elasticsearch can usually be upgraded using a rolling upgrade process, resulting in no interruption of service. This section details how to perform both rolling upgrades and upgrades with full cluster restarts.
To determine whether a rolling upgrade is supported for your release, please consult this table:
Upgrade From | Upgrade To | Supported Upgrade Type |
---|---|---|
|
|
|
|
|
Rolling upgrade (where |
|
|
|
|
|
|
|
|
Rolling upgrade (where |
Indices created in Elasticsearch 1.x or before
Elasticsearch is able to read indices created in the previous major version only. For instance, Elasticsearch 5.x can use indices created in Elasticsearch 2.x, but not those created in Elasticsearch 1.x or before.
This condition also applies to indices backed up with snapshot and restore. If an index was originally created in 1.x, it cannot be restored into a 5.x cluster even if the snapshot was made by a 2.x cluster.
Elasticsearch 5.x nodes will fail to start in the presence of too old indices.
See Reindex to upgrade for more information about how to upgrade old indices.
!!!回滚升级就是一次升级一个节点!!!!
A rolling upgrade allows the Elasticsearch cluster to be upgraded one node at a time, with no downtime for end users. Running multiple versions of Elasticsearch in the same cluster for any length of time beyond that required for an upgrade is not supported, as shards will not be replicated from the more recent version to the older version.
Elasticsearch is able to use indices created in the previous major version only. For instance, Elasticsearch 5.x can use indices created in Elasticsearch 2.x, but not those created in Elasticsearch 1.x or before.
Elasticsearch 5.x nodes will fail to start in the presence of too old indices.
If you are running an Elasticsearch 2.x cluster which contains indices that were created before 2.x, you will either need to delete those old indices or to reindex them before upgrading to 5.x. See Reindex in place.
If you are running an Elasticsearch 1.x cluster, you have two options:
- First upgrade to Elasticsearch 2.4.x, reindex the old indices, then upgrade to 5.x. See Reindex in place.
- Create a new 5.x cluster and use reindex-from-remote to import indices directly from the 1.x cluster. See Upgrading with reindex-from-remote.
The easiest way to reindex old (1.x) indices in place is to use the Elasticsearch Migration Plugin. You will need to upgrade to Elasticsearch 2.3.x or 2.4.x first.
If you are running a 1.x cluster and would like to migrate directly to 5.x without first migrating to 2.x, you can do so using reindex-from-remote.
转自:https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html#setup-upgrade