Jump to: navigation, search

Difference between revisions of "Rally"

(Install data collector node)
(Replaced content with " The page has been moved to https://rally.readthedocs.io")
(206 intermediate revisions by 13 users not shown)
Line 1: Line 1:
= Introduction =
Rally is a Benchmark-as-a-Service project for OpenStack.
Rally is intended for providing the community with a benchmarking tool that is capable of performing '''specific''', '''complicated''' and '''reproducible''' test cases on '''real deployment''' scenarios.
The page has been moved to https://rally.readthedocs.io
In the OpenStack ecosystem there are currently several tools that are helpful in carrying out the benchmarking process for an OpenStack deployment. To name a few, there are DevStack and FUEL which are intended for deploying and managing OpenStack clouds, the Tempest testing framework that validates OpenStack APIs, some tracing facilities like ''Tomograph'' with ''Zipkin'', and so on. The challenge, however, is to compile all these tools together on a reproducible basis. That can be a rather difficult task since the number of compute nodes in a practical deployment can be really huge and also because one may be willing to use lots of different deployment strategies that pursue different goals (e.g., while benchmarking the Nova Scheduler, one usually does not care of virtualization details, but is more concerned with the infrastructure topologies; while in other specific cases it may be the virtualization technology that matters). Compiling a bunch of already existing benchmarking facilities into one project, making it flexible to user requirements and ensuring the reproducibility of test results, is exactly what Rally does.
= Architecture =
Rally is basically split into 4 main components:
# Deployment Engine, which is responsible for processing and deploying VM images (using DevStack or FUEL according to user’s preferences). The engine can do one of the following:
#* deploying an OS on already existing VMs;
#* starting VMs from a VM image with pre-installed OS and OpenStack;
#* deploying multiply VMs inside each has OpenStack compute node based on a VM image.
# VM Provider, which interacts with cloud provider-specific interfaces to load and destroy VM images;
# Benchmarking Tool, which carries out the benchmarking process in several stages:
#* runs Tempest tests, reduced to 5-minute length (to save the usually expensive computing time);
#* runs the used-defined test scenarios (using the Rally testing framework);
#* collects all the test results and processes the by Zipkin tracer;
#* puts together a benchmarking report and stores it on the machine Rally was lauched on.
# Orchestrator, which is the central component of the system. It uses the Deployment Engine to run control and compute nodes and to launch an OpenStack distribution and, after that, calls the Benchmarking Tool to start the benchmarking process.
= Setup =
== Version 0.1 ==
Initial version has many configuration options hardcoded and some things needs to be done manually. Configuration and setup will be improved in future versions.
Currently rally is tested to run on x64 Ubuntu 12.04 server
=== Install data collector node ===
[http://twitter.github.io/zipkin/index.html Zipkin] is used to collect profiling information.
Zipking uses a lot of RAM so collector node should have at least 6 Gb of RAM. Later we may choose alternative collector/visualization solution.
Install with:
$ git clone https://github.com/twitter/zipkin.git
Zipkin uses sqlite by default but it doesn't work under production load. Currently we use [http://cassandra.apache.org/ Cassandra] to store collected data
Install Cassandra DB:
$ wget http://mirror.metrocast.net/apache/cassandra/2.0.0/apache-cassandra-2.0.0-bin.tar.gz
$ tar xvzf apache-cassandra-2.0.0-bin.tar.gz
$ sudo mkdir /var/lib/cassandra
$ sudo chmod a+rw /var/lib/cassandra
$ sudo mkdir /var/log/cassandra
$ sudo chmod a+rw /var/log/cassandra
$ apache-cassandra-2.0.0/bin/cassandra &> cassandra-out
Create DB schema for zipkin:
$ apache-cassandra-2.0.0/bin/cassandra-cli -host localhost -port 9160 -f zipkin/zipkin-cassandra/src/schema/cassandra-schema.txt
Zipkin needs 3 services running. For the first time start each one separately and wait for it to load completely so it could download all dependencies
$ bin/collector
$ bin/query
$ bin/web
Later you can run them all together via screen:
$ screen -dmS zipkin-collector bin/collector cassandra
$ screen -dmS zipkin-query bin/query cassandra
$ screen -dmS zipkin-web bin/web
Collector node needs to be reachable from all cloud servers and it's IP should be defined in configuration file in deploy section:
'collectors': {
  'zipkin': '#data_collector_ip#'

Latest revision as of 12:59, 30 October 2017

The page has been moved to https://rally.readthedocs.io