Skip to content

Commit

Permalink
Jira DOC-802: RS - Update "upgrade existing deployment" article... (#…
Browse files Browse the repository at this point in the history
…1489)

* Squashed commit of the following updates 

commit e26f2e90 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Tue Aug 10 2021 09:37:51 GMT-0500 (Central Daylight Time) 

    Ugh.  Tpyo


commit 322e1820 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Mon Aug 09 2021 22:52:07 GMT-0500 (Central Daylight Time) 

    More updates


commit d589f766 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Mon Aug 09 2021 11:41:30 GMT-0500 (Central Daylight Time) 

    Initial draft of changes


commit 46ba9c7a 
Author: Lance Leonard <lanceleonard@users.noreply.github.com> 
Date: Fri Aug 06 2021 14:19:43 GMT-0500 (Central Daylight Time) 

    Merge branch 'master' into content-updates to bring up-to-date with other project (though Fri Aug 6)


commit 0e20399b 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Fri Aug 06 2021 10:38:21 GMT-0500 (Central Daylight Time) 

    Updated terraform IAM template json


commit 5feb8d43 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Fri Aug 06 2021 10:23:00 GMT-0500 (Central Daylight Time) 

    Updated circleci jobs


commit 2a79ccb4 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 03 2021 14:32:43 GMT-0500 (Central Daylight Time) 

    Updated contribution and editing guides


commit a5a66a71 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 03 2021 14:30:22 GMT-0500 (Central Daylight Time) 

    Updated site title


commit 89cfb28c 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 17:13:57 GMT-0500 (Central Daylight Time) 

    updated footer


commit 94ae7731 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 17:12:44 GMT-0500 (Central Daylight Time) 

    logo


commit c8d1f0c2 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Jul 27 2021 16:34:56 GMT-0500 (Central Daylight Time) 

    README and LICENSE updates

* Squashed commit of the following web updates

commit 9b11ae0b 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Tue Aug 10 2021 10:48:09 GMT-0500 (Central Daylight Time) 

    Updated website.json


commit 3ace752e 
Author: Rachel Elledge <rachel.elledge@redislabs.com> 
Date: Mon Aug 09 2021 09:08:58 GMT-0500 (Central Daylight Time) 

    Updated robots.txt

* A couple more updates

* Updated search site url

* Updated CircleCI jobs

* Logo (#1480)

* Updated CircleCI jobs

* Fixing CircleCI config bug

* Fixing table layout.  (Maybe?) (#1482)

* Fixing table layout.  (Maybe?)

* Adding missing newline

* Adjusting z-index to fix icon overlap issues

* Adding redirect. (#1484)

* Updating css test (#1483)

* Fixing table layout.  (Maybe?)

* Adding missing newline

* Adjusting z-index to fix icon overlap issues

* Updating test rule

* Css fix test (#1485)

* Fixing table layout.  (Maybe?)

* Adding missing newline

* Adjusting z-index to fix icon overlap issues

* Updating test rule

* Varying the test

* Doc 851 log-collector script instructions (#1486)

* Fixed incorrect GTM container and deduped the GA scripts (#1487)

* Fixed incorrect GTM ID and deduped GA scripts

* Added purge site cache step to CircleCI deploy jobs (#1488)

* Initial draft of upgrade updates.

* Editoiral fixes/updates.

Co-authored-by: Rachel Elledge <rachel.elledge@redislabs.com>
Co-authored-by: Rachel Elledge <86307637+rrelledge@users.noreply.github.com>
Co-authored-by: Kaitlyn Michael <76962844+kaitlynmichael@users.noreply.github.com>
  • Loading branch information
4 people authored Aug 17, 2021
1 parent b7cc310 commit 257d2a7
Show file tree
Hide file tree
Showing 6 changed files with 112 additions and 57 deletions.
155 changes: 105 additions & 50 deletions content/rs/installing-upgrading/upgrading.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,93 @@
---
Title: Upgrade Redis Enterprise Software
Title: Upgrade an existing Redis Enterprise Software deployment
linkTitle: Upgrade existing deployment
description:
weight: 60
alwaysopen: false
categories: ["RS"]
aliases: /rs/administering/installing-upgrading/upgrading/
---
To upgrade the Redis Enterprise Software software on a cluster,
To upgrade Redis Enterprise Software on a cluster,
you must upgrade each of the nodes and then upgrade each of the databases in the cluster.

For Active-Active clusters, you must upgrade all the nodes on all clusters first, and then upgrade each of the databases in each cluster.

{{< warning >}}
Always check the [release notes]({{< relref "/rs/release-notes/_index.md" >}}) before upgrading to a newer version of Redis Enterprise Software. Pay attention to any upgrade notices (for example, the [Redis Enterprise 6.0 upgrade notes]({{< relref "/rs/release-notes/rs-6-0-may-2020#upgrade" >}})).
{{< /warning >}}
## Upgrade planning

The upgrade process requires a bit of planning:

1. Always check the [release notes]({{< relref "/rs/release-notes/_index.md" >}}) before upgrading to a newer version of Redis Enterprise Software.

In particular, take note of any upgrade notes, such as the [Redis Enterprise 6.0 upgrade notes]({{< relref "/rs/release-notes/rs-6-0-may-2020#upgrade" >}}).

2. Verify version requirements:

Version requirements:
- To upgrade your cluster to v6.2, your cluster must first be on 6.0 or above _and_ your database nodes must be running Redis 6.

- To upgrade your cluster to v6.0, your cluster must first be on 5.4.0 or above
and the databases must be running Redis 5.
- To upgrade your cluster to v6.0.20, your cluster must first be on 5.6.0
- To upgrade your cluster to v5.6, your cluster must first be on 5.0.2-30 or above.
- To upgrade your cluster to v5.4, your cluster must first be on 5.0 or above.
- To upgrade your cluster to v5.2, your cluster must first be on 4.5 or above.

The upgrade process for a Redis Enterprise Software cluster is "ongoing" when the nodes in the cluster have mixed versions.
The upgrade is only considered complete when all of the nodes are upgraded to the new version.
- To upgrade your cluster to v6.0, your cluster must first be on 5.4.0 or above _and_ the databases must be running Redis 5.

{{< warning >}}
- To upgrade your cluster to v5.6, your cluster must first be on 5.0.2-30 or above.

Using features from the newer version before all nodes are upgraded can produce unexpected results or cause failures in the cluster.
- To upgrade your cluster to v5.4, your cluster must first be on 5.0 or above.

{{< /warning >}}
- To upgrade your cluster to v5.2, your cluster must first be on 4.5 or above.

3. Avoid using features introduced in the newer version until after all nodes have been upgraded; otherwise, unexpected results or cluster failures can occur.

## Upgrade process

The upgrade process includes several tasks, including upgrading:

- [Open source Redis](#upgrade-open-source-redis)
- [Each node](#upgrade-a-node) in the cluster
- [Each database](#upgrade-a-database)
- [Active-Active databases](#upgrade-activeactive-databases)

The following sections provide more info.

The upgrade process for a Redis Enterprise Software cluster is considered _ongoing_ when nodes in the cluster have mixed versions.

The upgrade process is only considered _complete_ when all nodes are upgraded to the new version.

### Upgrade open source Redis

Part of the Redis Enterprise Software upgrade process includes upgrading open source (OSS) Redis, also known as _core_ Redis.

Each upgrade of Redis Enterprise Software includes _two_ versions of OSS Redis to help smooth the upgrade process:

- The _latest_ release reflects the most recent minor release (example: Redis 6.2), whether major (x.0 release) or minor (x.y).

- The last _major_ release reflects the most recent major release (example: 6.0).

When you upgrade OSS Redis, you can upgrade from:

- The previous major release to the current major release.

## Upgrade a node
- The previous minor release to the current minor release.

If you're not currently using either of the supported previous releases included with the update, you need to separately update OSS Redis to one of those releases; otherwise, the update to Redis Enterprise Software fails.

You can use `rladmin` to choose which release to install:

``` shell
tune cluster redis_upgrade_policy latest
```

Updating OSS Redis also updates the default version used to create or update databases. For example, if you update to the example 6.2 release described earlier and then you create a database, its version is `6.2`.

Databases cannot be used by earlier versions of OSS Redis. Later versions of OSS Redis can, for the most part, use older database versions. (For details, review the relevant release notes.)

Use `rladmin` to change the default database version:

``` shell
tune cluster default_redis_version 6.2
```

To learn more, see the [rladmin reference]({{< relref "/rs/references/rladmin.md#tune-cluster" >}})

### Upgrade a node

Upgrading the software on a node requires installing the [RS installation
package]({{< relref "/rs/installing-upgrading/_index.md" >}})
Expand Down Expand Up @@ -72,14 +125,14 @@ important to upgrade the nodes one by one, and **not attempt to upgrade
more than one node at a time**.
{{< /warning >}}

To make sure that the node is functioning properly, run [`rlcheck`]({{< relref "/rs/references/rlcheck.md" >}}) and `rladmin status extra all`
To make sure that the node is functioning properly, run [`rlcheck`]({{< relref "/rs/references/rlcheck.md" >}}) and <nobr>`rladmin status extra all`</nobr>
on the node both before and after the upgrade.

If you have the RS management UI open in the browser while you are
upgrading the nodes, make sure that you refresh the browser before trying
to work with the UI again.

## Upgrade a database
### Upgrade a database

Some upgrades add support for new Redis versions. In these cases,
we recommend upgrading the databases to the new Redis
Expand All @@ -88,10 +141,9 @@ compatible. Redis Software also supports a mix of Redis database versions.

Redis Software always supports two Redis versions. By default, new Redis databases
are created with the latest version, and existing databases get upgraded
to the latest version according to the instructions detailed below. If
you would like to change the default Redis version to the previous
version supported, you should use the `tune cluster default_redis_version`
command in the `rladmin` CLI and set it to the previous Redis version supported.
to the latest version according to the instructions detailed below.

To change the default Redis version to the previously supported version, use `rladmin` and run the <nobr>`tune cluster default_redis_version`</nobr> command.

To check whether your Redis database versions match the latest supported Redis
version:
Expand Down Expand Up @@ -126,40 +178,43 @@ a result:
- For databases that have neither replication nor [persistence]({{< relref "/rs/concepts/data-access/persistence.md" >}})
enabled, the database loses all its data after it is restarted.

## Upgrade Active-Active databases {#upgrading-activeactive-databases}
### Upgrade Active-Active databases

When you upgrade an Active-Active (CRDB) database, you can also upgrade:

- **Protocol version** - RS 5.4.2 and higher include a new CRDB protocol version to support new Active-Active features.
The CRDB protocol is backward-compatible so that RS 5.4.2 CRDB instances can understand write-operations that come from instances with the older CRDB protocol, but CRDB instances with the older protocol cannot understand write-operations of instances with the newer protocol version.
As a result, after you upgrade the CRDB protocol on one instance,
instances that were not upgraded yet cannot receive write updates from the upgraded instance.
- **Protocol version** - Starting with version 5.4.2, a new CRDB protocol version helps support Active-Active features.

The CRDB protocol is backward-compatible, which means v5.4.2 CRDB instances can understand write-operations from instances using the the earlier CRDB protocol. However, earlier CRDB instances (those using the older protocol cannot) understand write-operations from instances using the newer protocol version.

Once you upgrade the CRDB protocol on one instance, non-upgraded instances cannot receive write updates from the upgraded instance.

The upgraded instance receives updates from upgraded and non-upgraded instances.

{{< note >}}
When upgraded to the latest protocol version, upgraded instances automatically receives any missing write-operations.

_Guidelines:_

- Upgrade all instances of a specific CRDB within a reasonable time frame to avoid temporary inconsistencies between the instances.
- Make sure that you upgrade all instances of a specific CRDB before you do global operations on the CRDB, such as removing instances and adding new instances.
- Protocol version 0 is deprecated on RS 6.0.20 or later.
- To avoid a failed upgrade, make sure all your Active-Active databases are configured with the latest protocol version before upgrading to Redis Enterprise Software 6.0.20 or later.
- Upgrade all instances of a specific CRDB within a reasonable time frame to avoid temporary inconsistencies between the instances.

{{< /note >}}
- Make sure that you upgrade all instances of a specific CRDB before you do global operations on the CRDB, such as removing instances and adding new instances.

After you upgrade an instance to use the new protocol version,
it automatically receives any missing write-operations.
- As of v6.0.20, protocol version 0 is deprecated; support will be removed in a future version.

- **Feature set version** - RS 5.6.0 and higher include a new feature set version to support new Active-Active features.
When you update the feature set version for an Active-Active database, the feature set version is updated for all of the database instances.
- To avoid upgrade failures, update all Active-Active databases to the latest protocol version _before_ upgrading Redis Enterprise Software to v6.0.20 or later.

- **Feature version** - Starting with version 5.6.0, a new feature version (also called a _feature set version_) helps support new Active-Active features.

When you update the feature version for an Active-Active database, the feature version is updated for all of the database instances.

{{< note >}}
_Guidelines:_

- As of v6.0.20, feature version 0 is deprecated; support will be removed in a future version.

- Feature set version 0 is deprecated on RS 6.0.20 or later.
- To avoid a failed upgrade, make sure all your Active-Active databases are configured with the latest feature set version before upgrading to Redis Enterprise Software 6.0.20 or later.
{{< /note >}}
- To avoid upgrade failures, update all Active-Active databases to the latest protocol version _before_ upgrading Redis Enterprise Software to v6.0.20 or later.

To upgrade a CRDB instance:

1. [Upgrade RS](#upgrading-a-node) on each node in the clusters where the CRDB instances are located.
1. [Upgrade Redis Enterprise Software](#upgrading-a-node) on each node in the clusters where the CRDB instances are located.

1. To see the status of your CRDB instances, run: `rladmin status`

Expand All @@ -171,24 +226,24 @@ To upgrade a CRDB instance:

![crdb-upgrade-node](/images/rs/crdb-upgrade-node.png)

1. To upgrade each CRDB instance including the Redis version and CRDB protocol version, run:
1. To upgrade each CRDB instance, including the Redis version and CRDB protocol version, run:

```sh
rladmin upgrade db <database_name | database_ID>
```

If the protocol version is old, read the warning message carefully and confirm.

![crdb-upgrade-protocol](/images/rs/crdb-upgrade-protocol.png)

The CRDB instance uses the new Redis version and CRDB protocol version.

{{% expand "To upgrade the CRDB instance without upgrading the protocol version:" %}}
You can use the `keep_crdt_protocol_version` option to upgrade the database
without upgrading the CRDB protocol version and continue using the old version.
If you use this option, make sure that you upgrade the CRDB protocol soon after with the `rladmin upgrade db` command.
Use the `keep_crdt_protocol_version` option to upgrade the database feature version
without upgrading the CRDB protocol version.

If you use this option, make sure that you upgrade the CRDB protocol soon after with the `rladmin upgrade db` command.

You must upgrade the CRDB protocol before you update the CRDB feature set version.
{{% /expand %}}
You must upgrade the CRDB protocol before you update the CRDB feature set version.

1. If the feature set version is old, you must upgrade all of the CRDB instances. Then, to update the feature set for each active-active database, run:

Expand Down
2 changes: 1 addition & 1 deletion content/rs/release-notes/rs-5-6-0-april-2020.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ categories: ["RS"]
### Upgrade

- Follow [these instructions]({{< relref "/rs/installing-upgrading/upgrading.md" >}}) for upgrading to RS 5.6.0 from RS 5.0.2 and above.
- For Active-Active databases, you must upgrade the [feature set version]({{< relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases" >}}).
- For Active-Active databases, you must upgrade the [feature set version]({{< relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases" >}}).

### End of life

Expand Down
4 changes: 2 additions & 2 deletions content/rs/release-notes/rs-6-0-12-january-2021.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ And other functional and stability improvements.
#### Upgrade instructions

- Follow [these instructions]({{<relref "/rs/installing-upgrading/upgrading.md">}}) for upgrading to RS 6.0.12 from RS 5.4.0 and above.
- For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{<relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases">}}).
- For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{<relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases">}}).

#### Product lifecycle information

Expand Down Expand Up @@ -92,7 +92,7 @@ This is a configurable option and currently under preview mode. This behavior wi

To enable the syncer automatic recovery, do these steps on each participating cluster:

1. [Upgrade the featureset version]({{< relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases" >}}) to `3`.
1. [Upgrade the featureset version]({{< relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases" >}}) to `3`.
1. Enable the syncer automatic recovery using the REST API:

```sh
Expand Down
2 changes: 1 addition & 1 deletion content/rs/release-notes/rs-6-0-20-april-2021.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ And other functional and stability improvements.

- Note that upgrades from earlier Redis Software versions are not supported.

- For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{<relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases">}}).
- For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{<relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases">}}).

- Upgrades of Active-Active databases to Redis Software 6.0.20, will require all their
instances to run with protocol version 1 and featureset version 1 or above.
Expand Down
2 changes: 1 addition & 1 deletion content/rs/release-notes/rs-6-0-8-september-2020.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This version includes the new RediSearch 2.0 module, open source Redis 6.0.5, ch
### Upgrade instructions

Follow [these instructions]({{< relref "/rs/installing-upgrading/upgrading.md" >}}) for upgrading to RS 6.0.8 from RS 5.4.0 and above.
For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{< relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases" >}}).
For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{< relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases" >}}).

### End of life

Expand Down
4 changes: 2 additions & 2 deletions content/rs/release-notes/rs-6-0-may-2020.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ This new version bundles open-source Redis 6, implements enhanced Access Control
### Upgrade instructions

Follow [these instructions]({{< relref "/rs/installing-upgrading/upgrading.md" >}}) for upgrading to RS 6.0 from RS 5.4.0 and above.
For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{< relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases" >}}).
For Active-Active deployments, this release requires that you [upgrade the CRDB featureset version]({{< relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases" >}}).

### End of life

Expand Down Expand Up @@ -45,7 +45,7 @@ For more information, check out the [Redis Enterprise Software user management d

### Active-Active support for Redis Streams

RS 6.0 adds support for Redis Streams on Active-Active geo-distributed databases using conflict-free replicated data type (CRDT). You can now use all Redis Streams commands including consumer groups on Active-Active databases. To enable it, [upgrade your Active-Active database]({{< relref "/rs/installing-upgrading/upgrading#upgrading-activeactive-databases" >}}) featureset version to the latest (featureset version = 2) as part of the upgrade process.
RS 6.0 adds support for Redis Streams on Active-Active geo-distributed databases using conflict-free replicated data type (CRDT). You can now use all Redis Streams commands including consumer groups on Active-Active databases. To enable it, [upgrade your Active-Active database]({{< relref "/rs/installing-upgrading/upgrading#upgrade-activeactive-databases" >}}) featureset version to the latest (featureset version = 2) as part of the upgrade process.
For more information, check out [Redis Streams on Active Active databases]({{< relref "/rs/references/developing-for-active-active/developing-strings-active-active.md" >}}).

## Redis modules
Expand Down

0 comments on commit 257d2a7

Please sign in to comment.