- Clone Jepsen repository
- Configure to mount
scalar-jepsen
directory by editing ${JEPSEN_ROOT}/docker/docker-compose.dev.yml
like the following
control:
volumes:
- ${JEPSEN_ROOT}:/jepsen # Mounts $JEPSEN_ROOT on host to /jepsen control container
- ${SCALAR_JEPSEN_ROOT}:/scalar-jepsen # $SCALAR_JEPSEN_ROOT is the path of this repository on host
- Start docker with
--dev
option
$ cd ${JEPSEN_ROOT}/docker
$ ./up.sh --dev
- Run tests in
jepsen-control
- You can login
jepsen-control
by the following command
$ docker exec -it jepsen-control bash
# cd /scalar-jepsen/cassandra
# lein run test --test lwt
- Check README in each test for more detail
- Launch debian machines as a control machine and Cassandra nodes
- We recommend 1 control machine and 5 node machines
- You can decrease the number of nodes. If you do so then you will need to specify the nodes when starting a test.
- Install Java8 on each machine
sudo apt install openjdk-8-jre
- Install Leiningen (https://leiningen.org/) on the control machine
- Make an SSH key pair for Jepsen to login nodes from the control machine
- Register the public key as root on each node
$ sudo echo ssh-rsa ... >> /root/.ssh/authorized_keys
- Configure
/etc/hosts
on each machine
$ sudo sh -c "cat << EOF >> /etc/hosts
<NODE1_IP> n1
<NODE2_IP> n2
<NODE3_IP> n3
<NODE4_IP> n4
<NODE5_IP> n5
EOF"
- Run a test on the control machine
$ cd ${SCALAR_JEPSEN}/cassandra
$ lein run test --test lwt --ssh-private-key ~/.ssh/id_rsa