Scylla Manager Upgrade - Scylla Manager 2.x.a to 2.y.b

This document describes upgrade guide between two following Minor or Patch releases of Scylla Manager 2.x.y

Applicable versions

This guide covers upgrading Scylla Manager version 2.x.a to version 2.y.b, on the following platforms:

  • Red Hat Enterprise Linux, version 7

  • CentOS, version 7

  • Debian, version 9

  • Ubuntu, versions 16.04, 18.04

Upgrade Procedure

Note

In Scylla Manager 2.x.a new component called Scylla Manager Agent is introduced which is running on each scylla node in the cluster as a sidecar. Upgrading this component means commands have to be executed for each node separately.

Upgrade procedure for the Scylla Manager includes upgrade of three components server, client, and the agent. Entire cluster shutdown is NOT needed. Scylla will be running while the manager components are upgraded. Overview of the required steps:

  • Stop all Scylla Manager tasks (or wait for them to finish)

  • Stop the Scylla Manager Server 2.x.a

  • Stop the Scylla Manager Agent 2.x.a on all nodes

  • Upgrade the Scylla Manager Server and Client to 2.y.b

  • Upgrade the Scylla Manager Agent to 2.y.b on all nodes

  • Run scyllamgr_agent_setup script on all nodes

  • Start the Scylla Manager Agent 2.y.b on all nodes

  • Start the Scylla Manager Server 2.y.b

  • Validate status of the cluster

Upgrade steps

Stop all Scylla Manager tasks (or wait for them to finish)

On the Manager Server check current status of the manager tasks:

sctool task list -c <cluster>

None of the listed tasks should have status in RUNNING.

Stop the Scylla Manager Server 2.x.a

On the Manager Server instruct Systemd to stop the server process:

sudo systemctl stop scylla-manager

Ensure that it is stopped with:

sudo systemctl status scylla-manager

It should have a status of “Active: inactive (dead)”.

Stop the Scylla Manager Agent 2.x.a on all nodes

On each scylla node in the cluster run:

sudo systemctl stop scylla-manager-agent

Ensure that it is stopped with:

sudo systemctl status scylla-manager-agent

It should have a status of “Active: inactive (dead)”.

Upgrade the Scylla Manager Server and Client to 2.y.b

On the Manager Server instruct package manager to update server and the client:

CentOS, Red Hat:

sudo yum update scylla-manager-server scylla-manager-client -y

Debian, Ubuntu:

sudo apt-get update
sudo apt-get install scylla-manager-server scylla-manager-client -y

Upgrade the Scylla Manager Agent to 2.y.b on all nodes

On each scylla node instruct package manager to update the agent:

CentOS, Red Hat:

sudo yum update scylla-manager-agent -y

Debian, Ubuntu:

sudo apt-get update
sudo apt-get install scylla-manager-agent -y

Run scyllamgr_agent_setup script on all nodes

Note

Script mentioned in this section is added in version 2.0.2 so it won’t be available for earlier versions.

This step requires sudo rights:

$ sudo scyllamgr_agent_setup
Do you want to create scylla-helper.slice if it does not exist?
Yes - limit Scylla Manager Agent and other helper programs memory. No - skip this step.
[YES/no] YES
Do you want the Scylla Manager Agent service to automatically start when the node boots?
Yes - automatically start Scylla Manager Agent when the node boots. No - skip this step.
[YES/no] YES

First step relates to limiting resources that are available to the agent and second instructs systemd to run agent on node restart.

Start the Scylla Manager Agent 2.y.b on all nodes

On each scylla node instruct Systemd to start the agent process:

sudo systemctl start scylla-manager-agent

Ensure that it is running with:

sudo systemctl status scylla-manager-agent

It should have a status of “Active: active (running)”.

Start the Scylla Manager Server 2.y.b

On the Manager Server instruct Systemd to start the server process:

sudo systemctl daemon-reload
sudo systemctl start scylla-manager

Ensure that it is started with:

sudo systemctl status scylla-manager

It should have a status of “Active: active (running)”.

Validate status of the cluster

On the Manager Server check the version of the client and the server:

sctool version
Client version: 2.y.b-0.20200123.7cf18f6b
Server version: 2.y.b-0.20200123.7cf18f6b

Check that cluster is up:

sctool status -c <cluster>

All running nodes should be up.

Rollback Procedure

Note

Rolling back to 2.x.a is not recommended because 2.y.b contains bug fixes and performance optimizations so you will be going back to a lesser version. This should be only used as a last resort.

Rollback procedure contains the same steps as upgrade but with downgrading the components to older version:

  • Stop all Scylla Manager tasks (or wait for them to finish)

  • Stop the Scylla Manager Server 2.y.b

  • Stop the Scylla Manager Agent 2.y.b on all nodes

  • Downgrade the Scylla Manager Server and Client to 2.x.a

  • Downgrade the Scylla Manager Agent to 2.x.a on all nodes

  • Start the Scylla Manager Agent 2.x.a on all nodes

  • Start the Scylla Manager Server 2.x.a

  • Validate status of the cluster

Rollback steps

Stop all Scylla Manager tasks (or wait for them to finish)

On the Manager Server check current status of the manager tasks:

sctool task list -c <cluster>

None of the listed tasks should have status in RUNNING.

Stop the Scylla Manager Server 2.y.b

On the Manager Server instruct Systemd to stop the server process:

sudo systemctl stop scylla-manager

Ensure that it is stopped with:

sudo systemctl status scylla-manager

It should have a status of “Active: inactive (dead)”.

Stop the Scylla Manager Agent 2.y.b on all nodes

On each scylla node in the cluster run:

sudo systemctl stop scylla-manager-agent

Ensure that it is stopped with:

sudo systemctl status scylla-manager-agent

It should have a status of “Active: inactive (dead)”.

Downgrade the Scylla Manager Server and Client to 2.x.a

On the Manager Server instruct package manager to downgrade server and the client:

CentOS, Red Hat:

sudo yum downgrade scylla-manager-server-2.x.a* scylla-manager-client-2.x.a* -y

Debian, Ubuntu:

sudo apt-get install scylla-manager-server=2.x.a scylla-manager-client=2.x.a -y

Downgrade the Scylla Manager Agent to 2.x.a on all nodes

On each scylla node instruct package manager to downgrade the agent:

CentOS, Red Hat:

sudo yum downgrade scylla-manager-agent-2.x.a* -y

Debian, Ubuntu:

sudo apt-get install scylla-manager-agent=2.x.a -y

Start the Scylla Manager Agent 2.x.a on all nodes

On all nodes instruct Systemd to start the agent process:

sudo systemctl start scylla-manager-agent

Ensure that it is running with:

sudo systemctl status scylla-manager-agent

It should have a status of “Active: active (running)”.

Start the Scylla Manager Server 2.x.a

On the Manager Server instruct Systemd to start the server process:

sudo systemctl stop scylla-manager

Ensure that it is stopped with:

sudo systemctl status scylla-manager

It should have a status of “Active: active (running)”.

Validate status of the cluster

On the Manager Server check the version of the client and the server:

sctool version
Client version: 2.x.a
Server version: 2.x.a

Check that cluster is up:

sctool status -c <cluster>

All running nodes should be up.