Skip to content

Commit b5c5844

Browse files
RS: Add rolling upgrade method for RS without OS upgrade (#1001)
* DOC-4639 RS: Add rolling upgrade method for RS without OS upgrade * Added upgrade index description & fixed a link's anchor * Update content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md Co-authored-by: David Dougherty <david.dougherty@redis.com> * DOC-4639 Feedback update to add warning not to proceed with upgrade if status check is not OK --------- Co-authored-by: David Dougherty <david.dougherty@redis.com>
1 parent fed481a commit b5c5844

File tree

2 files changed

+128
-11
lines changed

2 files changed

+128
-11
lines changed
Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,42 @@
11
---
2-
Title: Upgrade an existing Redis Enterprise Software deployment
2+
Title: Upgrade an existing Redis Software deployment
33
alwaysopen: false
44
categories:
55
- docs
66
- operate
77
- rs
8-
description: null
8+
description: How to upgrade a cluster's Redis Software version, database version, and operating system.
99
hideListLinks: true
1010
linkTitle: Upgrade
1111
weight: 60
1212
---
13-
To upgrade Redis Enterprise Software:
1413

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

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

19-
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.
18+
1. Verify appropriate [network ports]({{< relref "/operate/rs/networking/port-configurations.md" >}}) are either open or used by Redis Software.
19+
20+
1. Review the [prerequisites]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-cluster#upgrade-prerequisites">}}).
21+
22+
1. Upgrade the software on all nodes of the cluster using one of the following methods:
23+
24+
- [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.
25+
26+
- [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.
27+
28+
## Upgrade Redis database
29+
30+
[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.
31+
32+
## Upgrade operating system
33+
34+
To upgrade the cluster's operating system:
35+
36+
1. Review the [prerequisites]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-os#prerequisites">}}).
37+
38+
2. Use one of the following rolling upgrade methods:
39+
40+
- [Extra node method]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-os#extra-node-upgrade">}}) - Recommended if you have additional resources available.
41+
42+
- [Replace node method]({{<relref "/operate/rs/installing-upgrading/upgrading/upgrade-os#replace-node-upgrade">}}) - Recommended if you cannot temporarily allocate additional resources.

content/operate/rs/installing-upgrading/upgrading/upgrade-cluster.md

Lines changed: 99 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
11
---
2-
Title: Upgrade a Redis Enterprise Software cluster
2+
Title: Upgrade a Redis Software cluster
33
alwaysopen: false
44
categories:
55
- docs
66
- operate
77
- rs
8-
description: Upgrade a Redis Enterprise Software cluster.
8+
description: Upgrade a cluster to a later version of Redis Software.
99
linkTitle: Upgrade cluster
1010
toc: 'true'
1111
weight: 30
1212
tocEmbedHeaders: true
1313
---
1414

15+
Before you upgrade a cluster to a later Redis Software version, review the [supported upgrade paths](#supported-upgrade-paths) and [prerequisites](#upgrade-prerequisites).
16+
17+
To upgrade a cluster's Redis Software version, use one of the following methods:
18+
19+
- [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.
20+
21+
- [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.
22+
1523
{{<embed-md "rs-upgrade-paths.md">}}
1624

1725
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.
@@ -38,9 +46,9 @@ Before upgrading a cluster:
3846

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

41-
## Upgrade cluster
49+
## In-place upgrade
4250

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

4553
1. Verify node operation with the following commands:
4654

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

60+
{{<warning>}}
61+
Do not proceed if any shard, node, or endpoint is not `OK`.
62+
{{</warning>}}
63+
5264
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).
5365

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

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

85-
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.
97+
## Rolling upgrade
98+
99+
To perform a rolling upgrade of the cluster, use one of the following methods:
100+
101+
- [Extra node method](#extra-node-upgrade) - recommended if you have additional resources available
102+
103+
- [Replace node method](#replace-node-upgrade) - recommended if you cannot temporarily allocate additional resources
104+
105+
### Extra node upgrade method {#extra-node-upgrade}
106+
107+
1. [Install a later version of Redis Software]({{< relref "/operate/rs/installing-upgrading/install/install-on-linux" >}}) on a new node.
108+
109+
1. [Add the new node]({{< relref "/operate/rs/clusters/add-node" >}}) to the cluster.
110+
111+
1. [Remove one node]({{< relref "/operate/rs/clusters/remove-node#remove-a-node" >}}) running the earlier Redis Software version from the cluster.
112+
113+
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.
114+
115+
### Replace node upgrade method {#replace-node-upgrade}
116+
117+
1. [Remove a node]({{< relref "/operate/rs/clusters/remove-node#remove-a-node" >}}) with the earlier Redis Software version from the cluster.
118+
119+
1. Uninstall Redis Enterprise Software from the removed node:
120+
121+
```sh
122+
sudo ./rl_uninstall.sh
123+
```
124+
125+
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.
126+
127+
1. [Add the new node]({{< relref "/operate/rs/clusters/add-node" >}}) to the cluster.
128+
129+
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:
130+
131+
```sh
132+
rladmin cluster join nodes <cluster_member_ip_address> username <username> password <password> replace_node <node_id>
133+
```
134+
135+
1. Verify node health:
136+
137+
1. Run `rlcheck` on all nodes:
138+
139+
```sh
140+
rlcheck
141+
```
142+
143+
The output lists the result of each verification test:
144+
145+
```sh
146+
##### Welcome to Redis Enterprise Cluster settings verification utility ####
147+
Running test: verify_bootstrap_status
148+
PASS
149+
...
150+
Running test: verify_encrypted_gossip
151+
PASS
152+
Summary:
153+
-------
154+
ALL TESTS PASSED.
155+
```
156+
157+
For healthy nodes, the expected output is `ALL TESTS PASSED`.
158+
159+
1. Run [`rladmin status`]({{< relref "/operate/rs/references/cli-utilities/rladmin/status" >}}) on the new node:
160+
161+
```sh
162+
rladmin status extra all
163+
```
164+
165+
The expected output is the `OK` status for the cluster, nodes, endpoints, and shards:
166+
167+
```sh
168+
CLUSTER:
169+
OK. Cluster master: 2 (<IP.address>)
170+
Cluster health: OK, [0, 0.0, 0.0]
171+
failures/minute - avg1 0.00, avg15 0.00, avg60 0.00.
172+
...
173+
```
174+
175+
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.
176+
177+
## After cluster upgrade
178+
179+
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.
86180
87181
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:
88182

0 commit comments

Comments
 (0)