---
Title: Upgrade a cluster's operating system
alwaysopen: false
categories:
- docs
- operate
- rs
description: Upgrade a Redis Enterprise Software cluster's operating system to a later
major version.
linkTitle: Upgrade operating system
toc: 'true'
weight: 70
url: '/operate/rs/7.4/installing-upgrading/upgrading/upgrade-os/'
---
To upgrade the operating system (OS) on a Redis Enterprise Software cluster to a later major version, perform a rolling upgrade. Because you upgrade one node at a time, you can upgrade your cluster's OS without downtime.
## Prerequisites
Before you upgrade a cluster's operating system:
1. [Upgrade all nodes in the cluster]({{< relref "/operate/rs/7.4/installing-upgrading/upgrading/upgrade-cluster" >}}) to a Redis Enterprise Software version that supports the OS's current version and upgrade version.
To learn which versions of Redis Enterprise Software support specific OS versions, see [Supported platforms]({{< relref "/operate/rs/7.4/references/supported-platforms#supported-platforms" >}}).
1. If the cluster contains databases that use modules:
1. Update all nodes in the cluster to [Redis Enterprise Software version 7.2.4-52](https://redis.io/docs/latest/operate/rs/release-notes/rs-7-2-4-releases) or later before you upgrade the OS.
1. Check the status of modules using [`rladmin`]({{< relref "/operate/rs/7.4/references/cli-utilities/rladmin" >}}):
```sh
rladmin status modules
```
The output lists the module versions installed on the cluster and the module versions used by existing databases:
```sh
CLUSTER MODULES:
MODULE VERSION
RedisBloom 2.6.3
RediSearch 2 2.8.4
RedisGears 2.0.12
RedisGraph 2.10.12
RedisJSON 2.6.6
RedisTimeSeries 1.10.6
DATABASE MODULES:
DB:ID NAME MODULE VERSION ARGS STATUS
db:1 db1 RediSearch 2 2.6.9 PARTITIONS AUTO OK, OLD MODULE VERSION
db:1 db1 RedisJSON 2.4.7 OK, OLD MODULE VERSION
```
1. If any databases use custom modules, manually uploaded modules, or modules marked with `OLD MODULE VERSION`, upload module packages for the OS upgrade version to a cluster node. See [Install a module on a cluster]({{< relref "/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster" >}}) for instructions.
{{}}
The uploaded module packages have the following requirements:
- The module is compiled for the OS upgrade version.
- The module version matches the version currently used by databases.
{{}}
1. If the cluster uses custom directories, make sure the OS upgrade version also supports custom directories, and specify the same custom directories during installation for all nodes. See [Customize installation directories]({{< relref "/operate/rs/7.4/installing-upgrading/install/customize-install-directories" >}}) for details.
## Perform OS rolling upgrade
To upgrade the cluster's operating system, use one of the following rolling upgrade 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. Create a node with the OS upgrade version.
1. [Install the cluster's current Redis Enterprise Software version]({{< relref "/operate/rs/7.4/installing-upgrading/install/install-on-linux" >}}) on the new node using the installation package for the OS upgrade version.
1. [Add the new node]({{< relref "/operate/rs/7.4/clusters/add-node" >}}) to the cluster.
1. If the [cluster uses DNS]({{}}), add the new node’s IP address to the DNS records.
1. [Remove one node]({{< relref "/operate/rs/7.4/clusters/remove-node#remove-a-node" >}}) running the earlier OS version from the cluster.
1. Repeat the previous steps until all nodes with the earlier OS version are removed.
### Replace node upgrade method {#replace-node-upgrade}
1. [Remove a node]({{< relref "/operate/rs/7.4/clusters/remove-node#remove-a-node" >}}) with the earlier OS version from the cluster.
1. Uninstall Redis Enterprise Software from the removed node:
```sh
sudo ./rl_uninstall.sh
```
1. Either upgrade the existing node to the OS upgrade version, or create a new node with the OS upgrade version.
1. [Install the cluster's current Redis Enterprise Software version]({{< relref "/operate/rs/7.4/installing-upgrading/install/install-on-linux" >}}) on the upgraded node using the installation package for the OS upgrade version.
1. [Add the new node]({{< relref "/operate/rs/7.4/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/7.4/references/cli-utilities/rladmin/cluster/join" >}}) with the `replace_node` flag:
```sh
rladmin cluster join nodes username password replace_node
```
1. If the [cluster uses DNS]({{}}), add the new node’s IP address to the DNS records.
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/7.4/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 ()
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 OS version are replaced.