Setup a ScyllaDB Cluster

This section describes how to set up the three-node cluster, which will be used throughout this course. This isn’t a stand-alone lesson, and some other lessons use the procedure below.

Prerequisites

Before we proceed with the ScyllaDB installation, please ensure that your environment meets the following prerequisites:

  1. Docker for MacWindows, or Unix. Please note that running ScyllaDB in Docker is recommended for testing and evaluation. Use caution when doing this in a production environment.
  2. This Git repository.
  3. 3GB of RAM or greater for Docker.
  4. If you are using Linux, you will need docker-compose.

Now let’s proceed and get a three-node cluster up and running in Docker.

If you haven’t done so yet, download the example from git:

git clone https://github.com/scylladb/scylla-code-samples.git

Setting up a Cluster

Before starting the cluster, make sure the aio-max-nr value is high enough (1048576 or more). 

This parameter determines the maximum number of allowable Asynchronous non-blocking I/O (AIO) concurrent requests by the Linux Kernel, and it helps ScyllaDB perform in a heavy I/O workload environment.

Check the value: 

cat /proc/sys/fs/aio-max-nr

If it needs to be changed:

echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf

If you have already set up a cluster in previous lessons, stop and remove it by stopping all the containers.

Note: the following stops and removes all containers in the system. Make sure that you don’t delete other non-ScyllaDB related containers!

docker stop $(docker ps -aq)
docker rm $(docker ps -aq)

Now, use docker-compose to set up the cluster:

cd scylla-code-samples/mms
docker-compose up -d

After a minute or so, the MMS should be up and running. Let’s verify this:

docker exec -it scylla-node1 nodetool status

Using nodetool, we can see that all three nodes are up and running in the cluster.

fa-angle-up