*

コマンドラインからRallyを使いこなす

公開日:  |  By  |  OpenStack ,

RallyはOpenStackのベンチマークツールです。概要については以前書いた記事で紹介しています。

OpenStack Rally入門

この記事では、rallyコマンドのサブコマンドの一つである info コマンドを紹介します。このコマンドを使うことで、コマンドライン上で rally を使いこなす為に必要なさまざまな情報に素早くアクセスできます。

rally info コマンドについて

rally info コマンドは、文字通りRallyで利用可能なさまざまな機能ついての情報を提供します。

rally info コマンドを実行することで指定可能なサブコマンドのリストが表示されます。それぞれのサブコマンドで取得できる情報は以下の表の通りです。

コマンド
説明
BenchmarkScenariosRallyで利用可能なベンチマークシナリオの情報を取得します。
DeploymentEngines Rallyで利用可能なデプロイエンジンの情報を取得します。
SLA Rallyで利用可能なSLAの情報を取得します。
ServerProviders Rallyで利用可能なサーバプロバイダの情報を取得します。
find rally infoで参照できる情報をクエリを使って検索します。
list rally infoで利用可能な情報を一覧表示します。

それぞれのサブコマンドの詳細について、以降で詳しく説明します。

rally info サブコマンド解説

ここからは、rally infoで指定できる4つの主なサブコマンドのそれぞれについて、具体的な利用方法を交えながら解説します。4つのサブコマンドで得られる情報は、それぞれ利用できるシーンが異なります。

  • デプロイメントの設定時
    • DeploymentEngines
    • ServerProviders
  • ベンチマークの実行時
    • BenchmarkScenarios
    • SLA

Rallyでベンチマークを実行する際の時系列に合わせて、この記事では上記の順番で紹介していきます。

RallyによるOpenStack環境のデプロイ手段を知る – DeploymentEngines

ここでは rally info DeploymentEngines コマンドについて解説します。コマンドそのものを解説する前に、Rallyの deployment について説明します。

deploymentについて

Rallyを使ってOpenStack環境のベンチマークを行うには、最初にどのOpenStack環境に対してベンチマークを行うのかを設定する必要があります。このOpenStack環境の事を deployment と呼びます。新規にdeploymentを作成する為には rally deployment コマンドを使います。

この記事ではdeployment作成についての詳細は解説しませんが、その代わりに公式ドキュメントのチュートリアルを紹介します。

Step 1. Setting up the environment and running a benchmark from samples — Rally 0.0.4 documentation

このチュートリアルでは、 deployment の作成から始まり、作成した deployment に対してベンチマークを実施する手順を紹介しています。

以下はチュートリアルから引用した、既に構築済みのOpenStack環境を deployment として指定する例です。

デプロイメントの作成

$ . openrc admin admin
$ rally deployment create --fromenv --name=existing
+--------------------------------------+----------------------------+------------+------------------+--------+
| uuid                                 | created_at                 | name       | status           | active |
+--------------------------------------+----------------------------+------------+------------------+--------+
| 28f90d74-d940-4874-a8ee-04fda59576da | 2015-01-18 00:11:38.059983 | existing   | deploy->finished |        |
+--------------------------------------+----------------------------+------------+------------------+--------+
Using deployment :
...

Rallyは、既存のOpenStack環境を deployment として指定する以外に、Rally によって OpenStack 環境を構築し、それを deployment として扱うこともできます。この時 OpenStack 環境を構築する手段を Deploy engines と呼びます。

Deploy Engine の情報を取得する

Rally は複数の Deploy engine に対応しています。rally info DeploymentEngines コマンドでは、Rallyが利用可能なエンジンを確認できます。

利用可能なDeploy Engineの確認

$ rally info DeploymentEngines
----------------------------
 Rally - Deployment engines
----------------------------

... 省略

 List of Deployment engines:
-------------------------------------------------------------------------------------------
 Name              Description
-------------------------------------------------------------------------------------------
 DevstackEngine    Deploy Devstack cloud.
 ExistingCloud     Just use an existing OpenStack deployment without deploying anything.
 FuelEngine        Deploy with FuelWeb.
 LxcEngine         Deploy with other engines in lxc containers.
 MultihostEngine   Deploy multihost cloud with existing engines.
-------------------------------------------------------------------------------------------

To get information about specific Deployment engines, run:
  $ rally info find

コマンドの実行によって、Deploy engine の名前と説明の一覧表示されます。

ここで、この記事を通してよく出てくるコマンドである rally info find を紹介します。このコマンドは、rally infoで参照できる情報をクエリを使って検索します。

引数に rally info で表示される利用可能なアイテムの名前(rally info DeploymentEngineコマンドで表示されている DevstackEngine や ExistingCloud など)を指定することで、そのアイテムについてのより詳細な情報を得ることができます。

例えば、DevstackEngineについての詳細情報を得る場合は以下のようにコマンドを実行します。

DevstackEngineについての詳細を確認する

$ rally info find DevstackEngine
--------------------------------
 DevstackEngine (deploy engine)
--------------------------------

Deploy Devstack cloud.

Sample configuration:

    {
        "type": "DevstackEngine",
        "devstack_repo": "https://example.com/devstack/",
        "localrc": {
            "ADMIN_PASSWORD": "secret"
        },
        "provider": {
            "type": "ExistingServers",
            "credentials": [{"user": "root", "host": "10.2.0.8"}]
        }
    }

次に上記で出力された情報の活用方法について説明します。

Deploy engineの情報を活用する

deploymentを作成する rally deployment create コマンドには、作成に必要な情報を記述したJSONファイルを渡すことができます。ファイルには以下のような内容を記述します。

  • 使用する Deploy engine の種類
  • Deploy engine に渡すパラメータ
  • 使用する Server Provider の情報

前述の rally info find を実行して表示されたJSONデータは、このファイルのひな形として利用できます。
以下は rally info find DevstackEngine で表示されたJSONデータをファイルに保存し、Devstackを使ってdeploymentを作成する例です。

DevStackでOpenStack環境を構築し、deploymentとして扱う

$ rally deployment create --file=devstack.json --name=devstack
+--------------------------------------+----------------------------+------------+------------------+--------+
| uuid                                 | created_at                 | name       | status           | active |
+--------------------------------------+----------------------------+------------+------------------+--------+
| 28f90d74-d940-4874-a8ee-04fda59576da | 2015-01-18 00:11:38.059983 | devstack   | deploy->finished |        |
+--------------------------------------+----------------------------+------------+------------------+--------+
Using deployment :
...

JSONに記述された情報を元にDevstackが実行され、新しくOpenStack環境が作成されます。また、この環境に対してベンチマークを実行することができるようになりました。
他のDeploy engineを使ってdeploymentを作成したければ、同じように rally info で必要な情報を得ることができます。

また、deployment設定ファイルのサンプルがソースコードに含まれているので、これを参考にするのも良いでしょう。

rally/samples/deployments/for_deploying_openstack_with_rally at master · openstack/rally

Rallyによるデプロイ時のサーバ展開方法について知る – ServerProviders

ここでは rally info ServerProviders について解説します。

Server providerについて

rally deploymentコマンドによるdeploymentの作成時、Deployment engineによってはデプロイ先となるサーバを指定する必要があります。
これは既存のサーバを指定することや、デプロイ時にOpenStack上にインスタンスを作成することも可能です。

上記のように「どのようにデプロイ先のサーバを用意するのか」を決定するのが Server provider と言えます。

Server Provider の情報を取得する

Rally は複数の Server provider に対応しています。rally info ServerProviders コマンドでは、Rallyが利用可能な Server provider を確認できます。

利用可能なServer providerの確認

$ rally info ServerProviders
--------------------------
 Rally - Server providers
--------------------------

...

 List of Server providers:
-------------------------------------------------------------------------
 Name                Description
-------------------------------------------------------------------------
 ExistingServers     Just return endpoints from its own configuration.
 LxcProvider         Provide lxc container(s) on given host.
 OpenStackProvider   Provide VMs using an existing OpenStack cloud.
 VirshProvider       Create VMs from prebuilt templates.
-------------------------------------------------------------------------

To get information about specific Server providers, run:
  $ rally info find

rally info find コマンドに Server provider の名前を指定すると、詳細な情報を得られます。

Server providerの詳細情報を取得する

$ rally info find ExistingServers
-----------------------------------
 ExistingServers (server provider)
-----------------------------------

Just return endpoints from its own configuration.

Sample configuration:

    {
        "type": "ExistingServers",
        "credentials": [{"user": "root", "host": "localhost"}]
    }

ServerProvider の情報を活用する

出力されるJSONデータは deploymentファイルに埋め込むことができる Server provider の設定のひな形です。

これをdeployment設定ファイルの “provider” セクションに記述することができます。以下は rally info find DevstackEngine コマンドで表示されるサンプル設定です。

Sample configuration:

    {
        "type": "DevstackEngine",
        "devstack_repo": "https://example.com/devstack/",
        "localrc": {
            "ADMIN_PASSWORD": "secret"
        },
        "provider": {
            "type": "ExistingServers",
            "credentials": [{"user": "root", "host": "10.2.0.8"}]
        }
    }

DeploymentEnginesで紹介したものと同じですが、rallyのコードには設定ファイルのサンプルがあります。さまざまなDeploy engineとServer providerの組み合わせの例があるので、参考になるはずです。

rally/samples/deployments/for_deploying_openstack_with_rally at master · openstack/rally

Rallyで実行できるベンチマークについて知る – BenchmarkScenarios

Rallyのソースコードにはベンチマークのシナリオが含まれています。rally info BenchmarkScenarios コマンドでは、ソースコード中から得られたベンチマークのシナリオを確認できます。

ここで表示されるのは、複数のシナリオがグループ化されてたシナリオグループです。

シナリオグループの一覧を表示する
$ rally info BenchmarkScenarios
-----------------------------
 Rally - Benchmark scenarios
-----------------------------

...

 List of Benchmark scenario groups:
--------------------------------------------------------------------------------------------
 Name                       Description
--------------------------------------------------------------------------------------------
 Authenticate               Benchmark scenarios for the authentication mechanism.
 CeilometerAlarms           Benchmark scenarios for Ceilometer Alarms API.
 CeilometerEvents           Benchmark scenarios for Ceilometer Events API.

...

 TempestScenario            Benchmark scenarios that launch Tempest tests.
 VMTasks                    Benchmark scenarios that are to be run inside VM instances.
 ZaqarBasic                 Benchmark scenarios for Zaqar.
--------------------------------------------------------------------------------------------

To get information about benchmark scenarios inside each scenario group, run:
  $ rally info find

rally info findコマンドでベンチマーク名を検索すると、マッチしたベンチマークのシナリオグループについての詳細な情報を得られます。

シナリオグループの詳細情報を表示する

$ rally info find Authenticate
-----------------------------------------
 Authenticate (benchmark scenario group)
-----------------------------------------

Benchmark scenarios for the authentication mechanism.

Benchmark scenarios for different types of OpenStack clients like Keystone,
Nova etc.
 Benchmark scenarios:
---------------------------------------------------------------------------------------
 Name                            Description
---------------------------------------------------------------------------------------
 Authenticate.keystone           Check Keystone Client.
 Authenticate.validate_cinder    Check Cinder Client to ensure validation of token.
 Authenticate.validate_glance    Check Glance Client to ensure validation of token.
 Authenticate.validate_heat      Check Heat Client to ensure validation of token.
 Authenticate.validate_neutron   Check Neutron Client to ensure validation of token.
 Authenticate.validate_nova      Check Nova Client to ensure validation of token.
---------------------------------------------------------------------------------------

シナリオグループは複数のシナリオから構成されていることが分かります。さらにfindコマンドでシナリオの名前を検索することで、そのシナリオについての説明を参照できます。

個々のシナリオ情報を表示する

$ rally info find Authenticate.keystone
--------------------------------------------
 Authenticate.keystone (benchmark scenario)
--------------------------------------------

Check Keystone Client.

ベンチマークシナリオの情報を活用する

rally info find コマンドにより、どのようなシナリオグループやシナリオがあるのかを知ることができました。
ベンチマークを実行するには、JSONファイルやYAMLファイルにベンチマーク設定を記述する必要があります。この設定ファイルにベンチマーク名が指定できます。

具体的な記述例は、設定ファイルのサンプルが用意されているため、そちらを参考にして下さい。

rally/samples/tasks/scenarios at master · openstack/rally

作成した設定ファイルを用いたベンチマークの実行については、以下のチュートリアルで紹介されています。

Step 1. Setting up the environment and running a benchmark from samples — Rally 0.0.4 documentation

Rallyのベンチマークに設定できるSLAについて知る – SLA

Rallyは実行するベンチマークに対してSLA(Service-Level Agreement)の基準を設定することができます。rally info SLA コマンドでは、SLAとして設定可能な判断基準の一覧を確認できます。

SLA情報を表示する

$ rally info SLA
-----------------------------------------------
 Rally - SLA checks (Service-Level Agreements)
-----------------------------------------------

...

 List of SLA checks:
--------------------------------------------------------------------------------------------------
 Name                        Description
--------------------------------------------------------------------------------------------------
 failure_rate                Failure rate minimum and maximum in percents.
 max_avg_duration            Maximum average duration of one iteration in seconds.
 max_seconds_per_iteration   Maximum time for one iteration in seconds.
 outliers                    Limit the number of outliers (iterations that take too much time).
--------------------------------------------------------------------------------------------------

rally info findコマンドでSLAのチェック名を検索すると、マッチしたSLAについての詳細な情報を得られます。

SLAの詳細情報を表示する

$ rally info find failure_rate
--------------------
 failure_rate (SLA)
--------------------

Failure rate minimum and maximum in percents.

failure_rateというSLAを使えば、ベンチマークの失敗率をSLAの基準として指定できることが分かります。

SLA情報の活用

SLAの情報を活用するには、ベンチマーク設定ファイルにSLAを記述する方法を理解しましょう。ベンチマーク設定ファイルにSLAを記述する方法を理解するには、以下の公式ドキュメントを参考にして下さい。

Step 4. Adding success criteria (SLA) for benchmarks — Rally 0.0.4 documentation

rally info findコマンドでは、それぞれのSLAを設定するために、ベンチマーク設定ファイルにどのようなJSONデータを記述ればよいのかは分かりませんでした。
それぞれのSLAをベンチマーク設定ファイルに組み込む方法を知るには、rallyのソースコードに含まれるサンプルを参照するとよいでしょう。

rally/samples/tasks/sla at master · openstack/rally

関連記事

howtocontribute

OpenStackコントリビューターへの道(OpenStack Advent Calendar 2014 12/12)

by Ikuo Kumagai (@kumagai19o) この記事はOpenStack Ad

記事を読む

welcome

OpenStack Summit in Paris (Day1)

by Ikuo Kumagai (@kumagai19o)   こんに

記事を読む

no image

Swiftの概要 ~ Swiftによるオブジェクトストレージシステムの構築(1)

(Swift関連の記事の一覧はこちらをご覧ください)はじめまして、山縣と申します。私はビットアイル総

記事を読む

no image

Pythonライブラリによる Swift の操作 ~ Swiftによるオブジェクトストレージシステムの構築(6)

by Yamagata 2013.03.14(Swift関連の記事の一覧はこちらをご覧ください)前回

記事を読む

no image

RDOを使用したOpenStack+MidoNet環境のインストール

ビットアイル総合研究所 田波です。 今回は以前紹介したRDOを使用して、OpenStack+M

記事を読む

no image

Nova Availability Zone と Cinder Availability Zone

OpenStack 担当 石川です。 実際に自分が使うか使わないかは置いておき、気になったオプ

記事を読む

dhcloudbuilding-121017105917-phpapp02.pdf-EF-BC-881_29-E3-83-98-E3-82-9A-E3-83-BC-E3-82-B7-E3-82-99-EF-BC-89

OpenStack Summit in San Diego 3日目

ビットアイル総研の長谷川です。今日は、Summit の3日目です。本日行われたセッションのなかから興

記事を読む

no image

CLIによるSwiftへのアクセス(前編) ~ Swiftによるオブジェクトストレージシステムの構築(3)

by yamagata 2013/1/30(Swift関連の記事の一覧はこちらをご覧ください)(2/

記事を読む

01.all

CentOS7 RDO Juno with Ceph

ご無沙汰しています。 先日のブログではCentOS7/RDOで OpenStack Juno環境を

記事を読む

oss_on_slshowcase

CentOS 6 から7へのアップグレード

この記事は OSS on SoftLayer Showcase  の OpenStack Juno

記事を読む

no image

ビットアイル総合研究所は、クラウド技術に関する調査&研究を通して、社会と会社に寄与していくことを目的に、ビットアイル・エクイニクスの企業内研究所として2011年8月に設立されました。

openstack-figure1-2x
COHO DataStream のCinder連携

OpenStack Cinder のストレージバックエンドとしてはCe

blog-ocata
Jujuで Ocataを含む様々なバージョンのOpenStack をデプロイする方法

祝OpenStack Ocata リリース!! ということで、早速デプ

newton
Juju Manual Cloud で OpenStack 環境構築

本当にご無沙汰しております。 この投稿はOpenStack Adve

top
HACK! THE Juju/MAAS

6/8~6/10まで幕張メッセで開催されたInterop 2016。皆

dpdk
OpenStack OVS VXLAN ネットワークの高速化

少し前の話になりますが、3月2日に開催された 日本仮想化技術株式会社様

→もっと見る

PAGE TOP ↑