Skip to content
Igor Duarte edited this page Apr 2, 2026 · 1 revision

Add new nodes to an existing ScyllaDB cluster.

Prerequisites

Inventory

The first step is to add the new nodes to your inventory file. This simulation uses the same cluster from the Create Cluster example. New DCs and racks are supported.

[scylla:children]
scylla-dc1
scylla-dc2

[scylla-dc1]
node1 ansible_host=10.0.0.1 rack=a
node2 ansible_host=10.0.0.2 rack=b
node3 ansible_host=10.0.0.3 rack=c
node7 ansible_host=10.0.0.7 rack=a  # new
node8 ansible_host=10.0.0.8 rack=b  # new
node9 ansible_host=10.0.0.9 rack=c  # new

[scylla-dc2]
node4 ansible_host=10.0.0.4 rack=a
node5 ansible_host=10.0.0.5 rack=b
node6 ansible_host=10.0.0.6 rack=c

[scylla-manager]
manager-node ansible_host=10.0.0.10

[scylla-monitor]
monitor-node ansible_host=10.0.0.11

Suspend Scylla Manager

Suspend Scylla Manager tasks before adding new nodes:

sctool --cluster mycluster suspend

Update Monitoring

Update monitoring configuration to include new nodes before deployment. This allows you to follow the bootstrapping progress in Grafana once nodes start being added. From inside your cluster metadata directory:

ANSIBLE_ROLES_PATH=$PATH_TO_YOUR_CLONED_REPO ansible-playbook -i inventory.ini $PATH_TO_YOUR_CLONED_REPO/example-playbooks/scylla_deploy/monitoring.yml

Deploy Scylla Nodes

From inside your cluster metadata directory:

ANSIBLE_ROLES_PATH=$PATH_TO_YOUR_CLONED_REPO ansible-playbook -i inventory.ini $PATH_TO_YOUR_CLONED_REPO/example-playbooks/scylla_deploy/nodes.yml

New nodes will join the cluster automatically.

Run Cleanup

Run cleanup on existing nodes to remove data now owned by new nodes. From inside your cluster metadata directory:

ANSIBLE_ROLES_PATH=$PATH_TO_YOUR_CLONED_REPO ANSIBLE_ACTION_PLUGINS=$PATH_TO_YOUR_CLONED_REPO/example-playbooks/async_extra/action_plugins \
ansible-playbook -b --extra-vars "cleanup_batch_size=1" \
  -i inventory.ini $PATH_TO_YOUR_CLONED_REPO/example-playbooks/run_cleanup/run_cleanup.yml \
  -M $PATH_TO_YOUR_CLONED_REPO/example-playbooks/async_extra/library --limit scylla-dc1

cleanup_batch_size controls how many nodes run cleanup in parallel (default: 1).

Resume Scylla Manager

Resume Scylla Manager tasks after adding new nodes:

sctool --cluster mycluster resume

Clone this wiki locally