Deploying Scylla in VirtualBox

Deploying Scylla in a VirtualBox instance can be a good start to test functionality and compatibility, and for local development and integration testing of applications using Scylla.

Please note: Deploying Scylla in VirtualBox is not recommended or supported for production. The performance benefits of Scylla may not be visible on VirtualBox.

Building the needed environment on VirtualBox

  • Download and install VirtualBox
  • Download a RHEL or CentOS .iso file to your host node. Use version 7.x or later.
  • Create a VirtualBox instance. Choose Linux, RHEL 64 bits.
  • Define the instance to have at least 4GB of memory and 20GB of disk space.
  • Attach and install the RHEL or CentOS 7.x ISO.

If you don’t have Internet connectivity from your VirtualBox instance, you will need to bring up a network interface.

Go to the network configuration directory

cd /etc/sysconfig/network-scripts/

Check for ifcfg scripts available. They will be named with the name of the Ethernet interface. You’ll have one named ifcfg-enp0s3, or similar.

Activate the connectivity, with

ifup ifcfg-enp0s3

To make the connection permanent in the next boot, open the configuration file with your preferred editor and make sure the setting is: ONBOOT=yes

Update the OS and install the wget and epel-release packages.

yum update
yum install wget epel-release

Install the Scylla repo file. Available repo files are listed on the RPM repositories for Scylla page.

Install Scylla with:

yum install scylla

Connecting to Scylla within the VirtualBox instance is possible through the cqlsh tool running on the instance. Another, more convenient, way is to connect to the Scylla server from your Mac, Linux or Windows host machine. To enable such connectivity, please follow the next procedure.

Network configuration for Scylla on VirtualBox

Define forwarding ports in the NAT configuration in VirtualBox network settings: Check your network settings and define port forwarding as described below: Machine→ Settings → Network→ Port Forwarding

../../_images/Nat_Config.png

Set the forwarding ports for Scylla: 9042, 7000, 7001, 9180 and 7199

../../_images/IP_FWD1.png
  • Open the needed port settings for cqlsh connection in the firewall, using either firewall-cmd or iptables.

In CentOS 7 you can use the firewall-cmd utility.

firewall-cmd --zone=public --add-port=9042/tcp --permanent
firewall-cmd --reload

Or, in other configurations, you can use the iptables command.

iptables -I INPUT -p tcp --dport 9042 -j ACCEPT
service iptables save
  • Next we need to configure Scylla to listen to the right IP address. Scylla must be configured to use the IP address defined by the local DHCP server. Set the following settings in the scylla.yaml file, which can be found in the /etc/scylla/ directory.
listen_address: 10.0.2.15
rpc_address: 10.0.2.15

Start Scylla with systemctl start scylla-server

  • Open a shell on your host machine and connect to the Scylla server by connecting to the 127.0.0.1 (localhost) IP address.
Scyllas-MacBook-Pro:bin scylla$ ./cqlsh 127.0.0.1
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.
cqlsh>