When you are trying to make changes in a code, there is a big chance of failure. And if the system is as huge as OpenStack, it becomes really hard to figure the error out. Here comes Rally. Rally makes benchmarking of OpenStack simple and automated. Rally works in three steps:
1. Deployment: Rally is not a deployment tool by itself, instead it works as a plugin with devstack, RDO etc.
2. Verification: Here Rally uses tempest to verify the OpenStack cloud deployment.
3. Benchmarking: This step is used to calculate load and performance of the particular cloud deployment.
Rally generally works a command line tool (GUI is work in progress) and helps in detecting scaling and performance issues, figuring out how the code change affects the system and finding out suitable architecture of deployment etc.
The first step is to install rally in OpenStack environment. I am going to use rally as a plugin with devstack, though it is possible to install it manually in an already deployed environment. To start, clone the following repositories from github:
git clone https://github.com/openstack-dev/devstack git clone https://github.com/stackforge/rally
Now, execute the following commands from your terminal in order to set devstack up with rally:
cp rally/contrib/devstack/lib/rally devstack/lib/ cp rally/contrib/devstack/extras.d/70-rally.sh devstack/extras.d/ cd devstack echo "enable_service rally" >> localrc
Next, as usual, we run the installation script of devstack:
Go for a coffee or take a walk, until devstack completes its work!
After the installation is done, source the openrc file present in \~/.rally/ directory to start using OpenStack.
To use rally, we first need to tell it about the OpenStack deployment which is going to be benchmarked. To do that, we have a deployment configuration file. That means, you need to provide configuration details of your OpenStack deployment in form of a json file. Go to the rally directory and create a my-deployment.json file. The content of the file should be like this:
You can find the relevant information for you system in openrc file. Next, we create a deployment named test using the following command:
Run ‘rally deployment check’ to check if current deployment is ready to be benchmarked. You should get an output like this:
Next, we come to benchmarking. There are a lot of ways to test the deployment, we will use an example that comes with rally. This is a boot and delete test. First copy the test to you current directory:
cp doc/samples/tasks/nova/boot-and-delete.json my-task.json
Now, edit the my-task.json file to look like:
Edit the falvor_id and image_id according to your system. Use “glance image-list” and “nova flavor-list” commands. And now we are ready to run our first task. Type this on your machine:
rally --verbose task start --task=my-task.json
You should see the output:
You can also find out the detailed report about all the task.
There are other examples available in the doc/samples/ directory. You can learn more about test cases from these files. Happy benchmarking!