Setting up a Docker evaluation

Summary

This article describes how to set up a multi-node cluster in a Docker environment for simple evaluation.

Prerequisites

  • Docker engine

Getting started

The Docker strategy is as follows:

  • We will be using the bureau14/qdb docker container
  • This container uses qdbd as entrypoint, so we can easily add additional command-line arguments to it
  • We will mount volumes for perisstent storage, license files, and others.

Generally we recommend to run RHEL (or derivatives) on the Docker host because of better support of dtrace / systemtap, but any Linux distribution is supported.

To get started, first do a sanity check whether your docker environment works at all:

    docker run -d --name qdb-server bureau14/qdb --security=0
    docker run -ti --link qdb-server:qdb-server bureau14/qdbsh --cluster qdb://qdb-server:2836
 

You should be presented with a QuasarDB shell, which means everything is working.

Cluster setup

In the evaluatgion environment, what you want to do is:

  • Put your QuasarDB license.txt in a persistent volume
  • Mount /var/lib/qdb to this persistent volume
  • Optionally, mount your qdb authentication information (public/private keys and users) in the cluster

We can now set up our cluster like this:

    mkdir /db1 && cp license.txt /db1/license.txt
    mkdir /db2 && cp license.txt /db2/license.txt
    mkdir /db3 && cp license.txt /db3/license.txt
 
    docker run -d --name qdb-server1 -v /db1:/var/lib/qdb bureau14/qdb:2.6.0 --security=0 --log-level=debug
    docker run -d --name qdb-server2 --link qdb-server1:successor -v /db2:/var/lib/qdb bureau14/qdb:2.6.0 --peer successor:2836 --security=0 --log-level=debug
    docker run -d --name qdb-server3 --link qdb-server2:successor -v /db3:/var/lib/qdb bureau14/qdb:2.6.0 --peer successor:2836 --security=0 --log-level=debug
 
You will likely provision your persistent volumes differently, but the mechanism will work the same. You can look at the docker logs verify the peers connect properly:
 
    docker logs  qdb-server1 | grep successor
    07:18:10.967661999    38        debug   ring stabilization for 172.17.0.2:2836 changed successor from 172.17.0.2:2836 to 172.17.0.3:2836
    07:18:10.967867477    38        info    cached 1 new successor(s)
    07:18:23.650560746    38        debug   ring stabilization for 172.17.0.2:2836 changed successor from 172.17.0.3:2836 to 172.17.0.4:2836
    07:18:23.650939296    38        info    cached 1 new successor(s)

This tells you that the nodes have connected to each other and are behaving as a cluster.

Your Docker cluster is now ready for evaluation. 

Was this article helpful?
0 out of 0 found this helpful