Getting Started with Scylla on Ubuntu

Prerequisites

  • Ubuntu 14.04 with kernel 3.15 or later for the 64-bit x86_64 architecture. Check and update Ubuntu kernel.
  • Root or sudo access to the system. The Scylla packages create a scylla user. When starting Scylla as a service, the service runs as this user.

For server configuration, see documentation on recommendations for high performance.

Install

sudo apt-get update
sudo apt-get install scylla

(if prompt for Postfix Configuration, choose No configuration)

Configure and run Scylla on Ubuntu 14.04

Configure Scylla

Update the /etc/scylla/scylla.yaml configuration file. In particular, you must update listen_address to the IP address you want Scylla to listen to (the default is 127.0.0.1) and seed nodes in the seed_provider section to point to your cluster seeds (default is single seed node at 127.0.0.1).

Scylla checks that the data directory is on an XFS filesystem. In order to disable this check for test installs on another filesystem, set Scylla to developer mode using the following command (as root):

/usr/lib/scylla/scylla_dev_mode_setup --developer-mode 1

This script will write the developer mode setting into /etc/scylla.d/dev-mode.conf.

You can change the location of the data directory in the scylla.yaml file, ensuring the scylla user has read and write permissions on the directory.

More on Scylla configuration.

Scylla setup

Run the scylla_setup script to tune the system settings.

sudo scylla_setup

This script invokes a set of scripts to configure several operating system settings. It also runs a short (up to a few minutes) benchmark on your storage and generates the /etc/scylla.d/io.conf configuration file. Once the file is ready, you can start Scylla (see below). There is no need to run scylla-io-setup again on this machine, unless you change storage. Scylla will not run without the io.conf file unless in developer mode (see above).

Details on the configuration performed by scylla_setup are in the Scylla System Configuration reference document. (If you need to install an older version of Scylla, you will need to run the individual scripts covered there.)

Run Scylla as a service

sudo service scylla-server start

If Scylla starts successfully, you will see:

$ sudo service scylla-server start
scylla-server start/running, process 9367

and you are able to access the node with cqlsh:

$ cqlsh
Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 2.1.8 | CQL spec 3.2.0 | Native protocol v3]
Use HELP for help.

If Scylla does not start up successfully and you see:

$ sudo service scylla-server start
scylla-server stop/waiting

You should check Scylla logs in /var/log/syslog and follow its instructions (or report a bug).

Run scylla-jmx as a service

sudo service scylla-jmx start

After the JMX proxy is started, you can access the Scylla server using nodetool:

$ nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address    Load       Tokens  Owns    Host ID                               Rack
UN  127.0.0.1  16.83 KB   256     ?       ec2c7a8b-182a-408f-aad8-052247f7e677  rack1

Note: Non-system keyspaces don't have the same replication settings, effective ownership
information is meaningless

Run cassandra-stress

Finally, to test the Scylla node, run cassandra-stress:

cassandra-stress write -mode cql3 native

Reference

Scylla servers set up using this method have the system configuration covered on System Configuration Guide already applied, by the deb package install scripts. See the guide for a complete reference on settings used.