Topic: Scylla Seed Nodes Overview
Learn: What a seed node is, and how they should be used in a Scylla Cluster
Audience: Scylla Administrators
A Scylla seed node is a regular Scylla node with two extra roles:
It allows nodes to discover the cluster ring topology on startup (when joining the cluster). This means that any time a node is joining the cluster, it needs to learn the cluster ring topology, meaning: - What the IPs of the nodes in the cluster are - Which token ranges are available - Which nodes will own which tokens when a new node joins the cluster
It assists with gossip convergence. See also the gossip wiki entry. Gossiping with other nodes ensures that any update to the cluster is propagated across the cluster. This includes detecting and alerting whenever a node goes down, comes back, or is removed from the cluster.
The first node in a new cluster needs to be a seed node.
Ensure that all nodes in the cluster have the same seed nodes listed in each node’s scylla.yaml.
To maintain resiliency of the cluster, it is recommended to have more than one seed node in the cluster.
If you have more than one seed in a DC with multiple racks (or availability zones), make sure to put your seeds in different racks.
You must have at least one node that is not a seed node. You cannot create a cluster where all nodes are seed nodes.
You should have more than one seed node.
Use the following guidelines:
If your DC has more than 6 nodes in it, you need 3 seed nodes per DC.
If your DC has less than 6 nodes in it, you need 2 seed nodes per DC.
Any node which has joined the cluster can be promoted to become a seed node at any time (as long as its status in nodetool is UN). The procedure is the same as Replacing a dead seed node, except that you do not need to replace a node.
No, seeds do not auto bootstrap. If you want a node to do that, bootstrap it first and then promote it to be a seed later.
Assume you have a cluster of six nodes. The IP addresses of the cluster are:
Based on one DC in the sizing definition above, you can have 2 seed nodes. The first node should be a seed plus one more. You would assign the seed nodes in each node’s scylla.yaml file by adding the following IP addresses: