OpenStack Ocata : OpenStack Rally2017/03/26 |
OpenStack ベンチマークツール Rally をインストールします。
当例では以下のような環境を例に Control ノードに Rally をインストールして利用できるよう設定します。
------------+--------------------------------+--------------------------------+------------ | | | eth0|10.0.0.30 eth0|10.0.0.50 eth0|10.0.0.51 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [ Control Node ] | | [ Storage Node ] | | [ Compute Node ] | | | | | | | | MariaDB RabbitMQ | | Open vSwitch | | Libvirt | | Memcached httpd | | L2,L3,Metadata Agent | | Nova Compute | | Keystone Glance | | Cinder-Volume | | Open vSwitch | | Nova-API | | | | L2 Agent | | Neutron Server | | | | | | Cinder-API Rally | | | | | +-----------------------+ +-----------------------+ +-----------------------+ |
[1] | Rally 用のユーザーとデータベースを MariaDB に登録しておきます。 |
[root@dlp ~(keystone)]# mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 43 Server version: 10.1.20-MariaDB MariaDB Server Copyright (c) 2000, 2016, 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)]>
MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) exit Bye |
[2] | Rally をインストールします。 |
[root@dlp ~(keystone)]# yum --enablerepo=centos-openstack-ocata,epel -y install openstack-rally
|
[3] | Rally の基本設定です。 |
[root@dlp ~(keystone)]#
vi /etc/rally/rally.conf # 38行目:コメント解除して変更 log_file = rally.log
# 43行目:コメント解除して変更 log_dir = /var/log/rally
# 597行目:MariaDB 接続情報を追記
connection = mysql+pymysql://rally:password@10.0.0.30/rally
rally-manage db create |
[4] | Rally の利用方法です。 なお、下例で定義しているベンチマークシナリオのその他サンプルは下記サイトを参照ください。 ⇒ https://github.com/openstack/rally/blob/master/samples/tasks/scenarios/ |
# 現在の Openstack 環境を登録 [root@dlp ~(keystone)]# rally deployment create --fromenv --name=my_openstack_cloud +--------------------------------------+---------------------+--------------------+------------------+--------+ | uuid | created_at | name | status | active | +--------------------------------------+---------------------+--------------------+------------------+--------+ | c6037840-94e3-4543-9dfc-f4ba71dd5c58 | 2017-03-28 03:57:05 | my_openstack_cloud | deploy->finished | | +--------------------------------------+---------------------+--------------------+------------------+--------+ Using deployment: c6037840-94e3-4543-9dfc-f4ba71dd5c58 ~/.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)]# rally deployment check keystone endpoints are valid and following services are available: +-------------+-------------+-----------+ | services | type | status | +-------------+-------------+-----------+ | __unknown__ | key-manager | Available | | __unknown__ | placement | Available | | __unknown__ | volumev2 | Available | | cinder | volume | Available | | glance | image | Available | | keystone | identity | Available | | neutron | network | Available | | nova | compute | Available | +-------------+-------------+-----------+
NOTE: '__unknown__' service name means that Keystone service catalog doesn't return name for this service and
Rally can not identify service by its type. BUT you still can use such services with api_versions context, specifying type of service (execute `rally plugin show api_versions` for more details). # ベンチマークのシナリオを定義する # 例として インスタンスの作成/起動~削除までを行うシンプルなシナリオを定義 # [flavor] は登録済みの flavor 名を指定 # [image] は登録済みの image 名を指定
[root@dlp ~(keystone)]#
vi boot-and-delete.json { "NovaServers.boot_and_delete_server": [ { "args": { "flavor": { "name": "m1.small" }, "image": { "name": "CentOS7" }, "force_delete": false }, "runner": { "type": "constant", "times": 10, "concurrency": 2 }, "context": { "users": { "tenants": 3, "users_per_tenant": 2 } } } ] } # ベンチマークタスクを開始 [root@dlp ~(keystone)]# rally task start boot-and-delete.json Running Rally version 0.8.1 -------------------------------------------------------------------------------- Preparing input task -------------------------------------------------------------------------------- Input task is: { "NovaServers.boot_and_delete_server": [ { "args": { "flavor": { "name": "m1.small" }, "image": { "name": "CentOS7" }, "force_delete": false }, "runner": { "type": "constant", "times": 10, "concurrency": 2 }, "context": { "users": { "tenants": 3, "users_per_tenant": 2 } } } ] } Task syntax is correct :) Task config is valid :) -------------------------------------------------------------------------------- Task 89266900-a11c-4557-b484-595630b4da84: started -------------------------------------------------------------------------------- Benchmarking... This can take a while... To track task status use: rally task status or rally task detailed Using task: 89266900-a11c-4557-b484-595630b4da84 -------------------------------------------------------------------------------- Task 89266900-a11c-4557-b484-595630b4da84: finished -------------------------------------------------------------------------------- test scenario NovaServers.boot_and_delete_server args position 0 args values: { "runner": { "type": "constant", "concurrency": 2, "times": 10 }, "hooks": [], "args": { "force_delete": false, "flavor": { "name": "m1.small" }, "image": { "name": "CentOS7" } }, "sla": {}, "context": { "users": { "users_per_tenant": 2, "tenants": 3 } } } -------------------------------------------------------------------------------- Task 89266900-a11c-4557-b484-595630b4da84 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.962 | 5.087 | 6.024 | 6.1 | 6.177 | 5.064 | 100.0% | 10 | | nova.delete_server | 2.504 | 2.573 | 2.654 | 2.687 | 2.721 | 2.592 | 100.0% | 10 | | total | 5.466 | 6.686 | 7.597 | 7.693 | 7.789 | 6.656 | 100.0% | 10 | +--------------------+-----------+--------------+--------------+--------------+-----------+-----------+---------+-------+ Load duration: 38.3381 Full duration: 53.2868 HINTS: * To plot HTML graphics with this data, run: rally task report 89266900-a11c-4557-b484-595630b4da84 --out output.html * To generate a JUnit report, run: rally task report 89266900-a11c-4557-b484-595630b4da84 --junit --out output.xml * To get raw JSON output of task results, run: rally task results 89266900-a11c-4557-b484-595630b4da84 |
[5] | タスク完了時に表示された HTML 出力コマンドを実行すると HTML ファイルが生成され、以下のようにベンチマーク結果がグラフで確認可能です。 |
Sponsored Link |