OpenStack Xena : OpenStack Rally2021/11/25 |
Install OpenStack BenchiMarking Tool, Rally.
This example is based on the environment like follows.
------------+---------------------------+---------------------------+------------ | | | eth0|10.0.0.30 eth0|10.0.0.50 eth0|10.0.0.51 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ Control Node ] | | [ Network Node ] | | [ Compute Node ] | | | | | | | | MariaDB RabbitMQ | | Open vSwitch | | Libvirt | | Memcached httpd | | Neutron Server | | Nova Compute | | Keystone Glance | | OVN-Northd | | Open vSwitch | | Nova API | | Cinder Volume | | OVN Metadata Agent | | Cinder API | | iSCSI Target | | OVN-Controller | | Rally | | Heat API/Engine | | | +-----------------------+ +-----------------------+ +-----------------------+ |
[1] | Create user and Database for Rally in MariaDB. |
[root@dlp ~(keystone)]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 234 Server version: 10.5.9-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> create database rally; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> grant all privileges on rally.* to rally@'localhost' identified by 'password'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> grant all privileges on rally.* to rally@'%' identified by 'password'; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> exit Bye |
[2] | Rally. |
[root@dlp ~(keystone)]# dnf --enablerepo=centos-openstack-xena,powertools,epel -y install openstack-rally openstack-rally-plugins python3-fixtures
|
[3] | Configure Rally. |
[root@dlp ~(keystone)]#
vi /etc/rally/rally.conf # line 33 : add the log file name log_file = rally.log
# line 38 : add the log direcroty name log_dir = /var/log/rally
# line 203 : add the MariaDB connection info
connection = mysql+pymysql://rally:password@10.0.0.30/rally
mkdir /var/log/rally [root@dlp ~(keystone)]# rally db create Creating database: mysql+pymysql://rally:password@10.0.0.30/rally Database created successfully |
[4] | Add environment variables for Openstack to Rally to run Rally BenchiMarking Tasks. |
[root@dlp ~(keystone)]# rally deployment create --fromenv --name=my-cloud +--------------------------------------+---------------------+----------+------------------+--------+ | uuid | created_at | name | status | active | +--------------------------------------+---------------------+----------+------------------+--------+ | c74454ab-e7a0-4a87-bd1e-960b7032546c | 2021-11-25T02:49:35 | my-cloud | deploy->finished | | +--------------------------------------+---------------------+----------+------------------+--------+ Using deployment: c74454ab-e7a0-4a87-bd1e-960b7032546c ~/.rally/openrc was updated HINTS: * To use standard OpenStack clients, set up your env by running: source ~/.rally/openrc OpenStack clients are now configured, e.g run: openstack image list[root@dlp ~(keystone)]# source ~/.rally/openrc [root@dlp ~(keystone)]# rally deployment show my-cloud +--------------------------+----------+----------+-------------+-------------+---------------+ | auth_url | username | password | tenant_name | region_name | endpoint_type | +--------------------------+----------+----------+-------------+-------------+---------------+ | http://10.0.0.30:5000/v3 | admin | *** | admin | | None | +--------------------------+----------+----------+-------------+-------------+---------------+[root@dlp ~(keystone)]# rally deployment check -------------------------------------------------------------------------------- Platform openstack: -------------------------------------------------------------------------------- Available services: +-------------+----------------+-----------+ | Service | Service Type | Status | +-------------+----------------+-----------+ | __unknown__ | placement | Available | | barbican | key-manager | Available | | cinder | volumev3 | Available | | cloud | cloudformation | Available | | glance | image | Available | | heat | orchestration | Available | | keystone | identity | Available | | neutron | network | Available | | nova | compute | Available | | trove | database | Available | +-------------+----------------+-----------+ |
[5] | How to use Rally. For a sample scenario in following tutorial, there are many other samples on the site below, refer to them. ⇒ https://github.com/openstack/rally/blob/master/samples/tasks/scenarios/ |
# set Benchimarking scenario # for example, set a simple scenario to create and delete a compute instance # for [flavor], specify your own registered flavor name # for [image], specify your own registered image name
[root@dlp ~(keystone)]#
vi boot-and-delete.json { "NovaServers.boot_and_delete_server": [ { "args": { "flavor": { "name": "m1.small" }, "image": { "name": "CentOS-Stream-8" }, "force_delete": false }, "runner": { "type": "constant", "times": 10, "concurrency": 2 }, "context": {} } ] } # start BenchiMarking Tasks [root@dlp ~(keystone)]# rally task start boot-and-delete.json -------------------------------------------------------------------------------- Preparing input task -------------------------------------------------------------------------------- Task is: { "NovaServers.boot_and_delete_server": [ { "args": { "flavor": { "name": "m1.small" }, "image": { "name": "CentOS-Stream-8" }, "force_delete": false }, "runner": { "type": "constant", "times": 10, "concurrency": 2 }, "context": {} } ] } Task syntax is correct :) Running Rally version 3.3.0 -------------------------------------------------------------------------------- Task b1e559d6-eec0-453d-8a82-41f6d8a1b763: started -------------------------------------------------------------------------------- ..... ..... -------------------------------------------------------------------------------- Task b1e559d6-eec0-453d-8a82-41f6d8a1b763 has 0 error(s) -------------------------------------------------------------------------------- +-----------------------------------------------------------------------------------------------------------------------+ | Response Times (sec) | +--------------------+-----------+--------------+--------------+--------------+-----------+-----------+---------+-------+ | Action | Min (sec) | Median (sec) | 90%ile (sec) | 95%ile (sec) | Max (sec) | Avg (sec) | Success | Count | +--------------------+-----------+--------------+--------------+--------------+-----------+-----------+---------+-------+ | nova.boot_server | 3.878 | 4.08 | 4.436 | 4.446 | 4.455 | 4.127 | 100.0% | 10 | | nova.delete_server | 2.15 | 2.16 | 2.254 | 2.278 | 2.301 | 2.187 | 100.0% | 10 | | total | 6.033 | 6.234 | 6.708 | 6.722 | 6.736 | 6.315 | 100.0% | 10 | | -> duration | 5.033 | 5.234 | 5.708 | 5.722 | 5.736 | 5.315 | 100.0% | 10 | | -> idle_duration | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 | 100.0% | 10 | +--------------------+-----------+--------------+--------------+--------------+-----------+-----------+---------+-------+ Load duration: 30.8972 Full duration: 41.4086 HINTS: * To plot HTML graphics with this data, run: rally task report b1e559d6-eec0-453d-8a82-41f6d8a1b763 --out output.html * To generate a JUnit report, run: rally task export b1e559d6-eec0-453d-8a82-41f6d8a1b763 --type junit-xml --to output.xml * To get raw JSON output of task results, run: rally task report b1e559d6-eec0-453d-8a82-41f6d8a1b763 --json --out output.json |
[6] | To run the commands that were shown when task had completed, it's possible to generate HTML file with Graph like follows. |
Sponsored Link |