Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 29 additions & 6 deletions content/operate/rs/installing-upgrading/upgrading/_index.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,42 @@
---
Title: Upgrade an existing Redis Enterprise Software deployment
Title: Upgrade an existing Redis Software deployment
alwaysopen: false
categories:
- docs
- operate
- rs
description: null
description: How to upgrade a cluster's Redis Software version, database version, and operating system.
hideListLinks: true
linkTitle: Upgrade
weight: 60
---
To upgrade Redis Enterprise Software:

1. Verify appropriate [network ports]({{< relref "/operate/rs/networking/port-configurations.md" >}}) are either open or used by Redis Enterprise Software.
## Upgrade Redis Software

1. [Upgrade the software on all nodes of the cluster.]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster" >}})
To upgrade Redis Software:

2. _(Optional)_ [Upgrade each database]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-database" >}}) in the cluster or [upgrade an Active-Active database]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-active-active" >}}) to enable new features and important fixes.
1. Verify appropriate [network ports]({{< relref "/operate/rs/networking/port-configurations.md" >}}) are either open or used by Redis Software.

1. Review the [prerequisites]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster#upgrade-prerequisites">}}).

1. Upgrade the software on all nodes of the cluster using one of the following methods:

- [In-place upgrade]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster#in-place-upgrade">}}) - Directly upgrade Redis Software on each node in the cluster. Although this method is simpler than the rolling upgrade method, it might cause brief service interruptions as each node is upgraded.

- [Rolling upgrade]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster#rolling-upgrade">}}) - Minimize downtime by adding new nodes with an updated Redis Software version to the cluster, one at a time, while keeping the rest of the cluster operational. This method is recommended for production environments that require continuous availability.

## Upgrade Redis database

[Upgrade each database]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-database" >}}) in the cluster or [upgrade an Active-Active database]({{< relref "/operate/rs/installing-upgrading/upgrading/upgrade-active-active" >}}) to enable new features and important fixes.

## Upgrade operating system

To upgrade the cluster's operating system:

1. Review the [prerequisites]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-os#prerequisites">}}).

2. Use one of the following rolling upgrade methods:

- [Extra node method]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-os#extra-node-upgrade">}}) - Recommended if you have additional resources available.

- [Replace node method]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-os#replace-node-upgrade">}}) - Recommended if you cannot temporarily allocate additional resources.
104 changes: 99 additions & 5 deletions content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,25 @@
---
Title: Upgrade a Redis Enterprise Software cluster
Title: Upgrade a Redis Software cluster
alwaysopen: false
categories:
- docs
- operate
- rs
description: Upgrade a Redis Enterprise Software cluster.
description: Upgrade a cluster to a later version of Redis Software.
linkTitle: Upgrade cluster
toc: 'true'
weight: 30
tocEmbedHeaders: true
---

Before you upgrade a cluster to a later Redis Software version, review the [supported upgrade paths](#supported-upgrade-paths) and [prerequisites](#upgrade-prerequisites).

To upgrade a cluster's Redis Software version, use one of the following methods:

- [In-place upgrade](#in-place-upgrade) - Directly upgrade Redis Software on each node in the cluster. Although this method is simpler than the rolling upgrade method, it might cause brief service interruptions as each node is upgraded.

- [Rolling upgrade](#rolling-upgrade) - Minimize downtime by adding new nodes with an updated Redis Software version to the cluster, one at a time, while keeping the rest of the cluster operational. This method is recommended for production environments that require continuous availability.

{{<embed-md "rs-upgrade-paths.md">}}

See the [Redis Enterprise Software product lifecycle]({{<relref "/operate/rs/installing-upgrading/product-lifecycle">}}) for more information about release numbers and the end-of-life schedule.
Expand All @@ -38,9 +46,9 @@ Before upgrading a cluster:

- [`GET /nodes/status`]({{< relref "/operate/rs/references/rest-api/requests/nodes/status#get-all-nodes-status" >}}) REST API request

## Upgrade cluster
## In-place upgrade

Starting with the primary (master) node, follow these steps for every node in the cluster. To ensure cluster availability, upgrade each node separately.
Starting with the primary node, follow these steps for every node in the cluster. To ensure cluster availability, upgrade each node separately.

1. Verify node operation with the following commands:

Expand All @@ -49,6 +57,10 @@ Starting with the primary (master) node, follow these steps for every node in th
$ rladmin status extra all
```

{{<warning>}}
Do not proceed if any shard, node, or endpoint is not `OK`.
{{</warning>}}

2. Download the Redis Enterprise Software installation package to the machine running the node from the Download Center on [https://cloud.redis.io](https://cloud.redis.io).

3. Extract the installation package:
Expand Down Expand Up @@ -82,7 +94,89 @@ You cannot change the installation path or the user during the upgrade.

If the Cluster Manager UI was open in a web browser during the upgrade, refresh the browser to reload the console.

After all nodes are upgraded, the cluster is fully upgraded. Certain features introduced in the new version of Redis Enterprise Software only become available after upgrading the entire cluster.
## Rolling upgrade

To perform a rolling upgrade of the cluster, use one of the following methods:

- [Extra node method](#extra-node-upgrade) - recommended if you have additional resources available

- [Replace node method](#replace-node-upgrade) - recommended if you cannot temporarily allocate additional resources

### Extra node upgrade method {#extra-node-upgrade}

1. [Install a later version of Redis Software]({{< relref "/operate/rs/installing-upgrading/install/install-on-linux" >}}) on a new node.

1. [Add the new node]({{< relref "/operate/rs/clusters/add-node" >}}) to the cluster.

1. [Remove one node]({{< relref "/operate/rs/clusters/remove-node#remove-a-node" >}}) running the earlier Redis Software version from the cluster.

1. Repeat the previous steps until all nodes with the earlier Redis Software version are removed. If the final node to remove from the cluster is the primary node, [demote it]({{<relref "/operate/rs/clusters/change-node-role#demote-primary-node">}}) to a secondary node before you remove it.

### Replace node upgrade method {#replace-node-upgrade}

1. [Remove a node]({{< relref "/operate/rs/clusters/remove-node#remove-a-node" >}}) with the earlier Redis Software version from the cluster.

1. Uninstall Redis Enterprise Software from the removed node:

```sh
sudo ./rl_uninstall.sh
```

1. [Install a later version of Redis Software]({{< relref "/operate/rs/installing-upgrading/install/install-on-linux" >}}) on the removed node or a new node.

1. [Add the new node]({{< relref "/operate/rs/clusters/add-node" >}}) to the cluster.

If you want to reuse the removed node's ID when you add the node to the cluster, run [`rladmin cluster join`]({{< relref "/operate/rs/references/cli-utilities/rladmin/cluster/join" >}}) with the `replace_node` flag:

```sh
rladmin cluster join nodes <cluster_member_ip_address> username <username> password <password> replace_node <node_id>
```

1. Verify node health:

1. Run `rlcheck` on all nodes:

```sh
rlcheck
```

The output lists the result of each verification test:

```sh
##### Welcome to Redis Enterprise Cluster settings verification utility ####
Running test: verify_bootstrap_status
PASS
...
Running test: verify_encrypted_gossip
PASS
Summary:
-------
ALL TESTS PASSED.
```

For healthy nodes, the expected output is `ALL TESTS PASSED`.

1. Run [`rladmin status`]({{< relref "/operate/rs/references/cli-utilities/rladmin/status" >}}) on the new node:

```sh
rladmin status extra all
```

The expected output is the `OK` status for the cluster, nodes, endpoints, and shards:

```sh
CLUSTER:
OK. Cluster master: 2 (<IP.address>)
Cluster health: OK, [0, 0.0, 0.0]
failures/minute - avg1 0.00, avg15 0.00, avg60 0.00.
...
```

1. Repeat the previous steps until all nodes with the earlier Redis Software version are replaced. If the final node to remove from the cluster is the primary node, [demote it]({{<relref "/operate/rs/clusters/change-node-role#demote-primary-node">}}) to a secondary node before you remove it.

## After cluster upgrade

After all nodes are upgraded, the cluster is fully upgraded. Certain features introduced in the new version of Redis Software only become available after upgrading the entire cluster.

After upgrading from version 6.0.x to 6.2.x, restart `cnm_exec` on each cluster node to enable more advanced state machine handling capabilities:

Expand Down
Loading