2016年5月12日

ブロードバンドタワーで Scality RING を担当しているポールです。
今回から2回に分けて、弊社で用意している RING 検証環境にて実施した、REST 接続の性能検証について書こうと思います。その1では cosbench というツールに関して書きます。

cosbench は Intel 社のメンバーを中心にオープンソースでの開発を続けている、オブジェクトストレージ用の負荷ツールです。cosbench の cos は Cloud Object Storage の略で、各種クラウドサービスもしくはソフトウェア製品としてのオブジェクトストレージに使用できるワークロードのサンプルが含まれています。その中に RING (sproxyd) に関するワークロードのサンプルも存在しますので、RING に接続可能な Linux サーバがあれば、簡単に REST で負荷をかけることができます。

さて、今回私にとって cosbench は初体験だったので、まず最初にインターネット検索をして、先人の経験から学ぶことを考えました。しかし残念なことに、このブログを記述している 2016年の5月時点においても、cosbench に関して日本語で書かれた Webページはそれほど多くヒットしません。日本ではまだあまり認知されていないツールなのかもしれませんが、私個人の感想としては、利用の初歩の初歩でつまづくことさえなければ、非常に有用なツールだと考えています。

というのも実はこのツール、初歩の初歩でつまづきかねない、落とし穴が潜んでいます。まず cosbench で検索して見つかる、こちらのページにアクセスしてみてください。

https://github.com/intel-cloud/cosbench

ページの右側にある「Download ZIP」をクリックしてパッケージをダウンロードすればよいだろう、と考えるかたが多いのではと思います。実はここが落とし穴です。このページでダウンロードできるのは、cosbench 開発者向けのパッケージで、利用者向けのパッケージではありません。パッケージの中にセットアップ方法が書かれた PDF ファイル(COSBenchUserGuide.pdf)が入っているのですが、そこに書かれたセットアップ方法では、どーやっても構築できないフォルダ構造になっています。

私は数日間悩んだのですが、ユーザーの利用には不適切な開発用のパッケージをダウンロードしていた、と結論づけました。かなり回り道をしているので結論から先に書きますが、負荷ツールの(開発者ではない)ユーザーがダウンロードすべきパッケージは、こちらからダウンロードできます。2016年5月時点で利用可能な最新バージョンは v0.4.2.c3 になります。

https://github.com/intel-cloud/cosbench/releases

インターネット検索でヒットする側のページに、上記の releases へ飛ぶリンクもしくは記述があればよかったのですが、残念ながら私には見つけられませんでした。github なので開発者向けのサイトなのは自明ではあるのですが、同じような落とし穴にはまった人はいないのだろうか?と思い念のため探してみたところ、やはり見つかりました。インターネット検索でヒットする側のページにも Resources の部分に記述がありますが、以下が cosbench 関連メーリングリストの Web Site です。

http://cosbench.1094679.n5.nabble.com/

私も最初は、(簡単に使えると勘違いしていた)開発者向けパッケージを用いて、なんとかして cosbench を起動しようとしていました。しかしまともに起動するわけがなく、試行錯誤の途中で得られたログファイルには、次のようなエラーメッセージが出ていました。

# cat log/driver-boot.log
エラー: メイン・クラスorg.eclipse.equinox.launcher.Mainが見つからなかったかロードできませんでした
#

ずばり、まともに動いているわけがない、というメッセージですね。そして、上記のクラス名で MLの文書を検索すると、こちらの文書にたどり着きます。開発の中心メンバーのかたが回答していますが、開発用パッケージからユーザー用パッケージを生成することができる、ということと、最終的に、生成済みのユーザー用パッケージは別のページ(releases)からダウンロードできる、ということがわかります。

最終的に目的地には辿りつけたのでよいのですが、ここまで書いて改めて、ユーザー用パッケージをダウンロードできる URL に関する記述が開発者向けパッケージの中に入っていないのかを確認してみました。。。残念ながらみつかりました。COSBenchUserGuide.pdf のP17に次の記述があります。

2.2 Installing COSBench

2.2.1 Preparation

In the current release, the COSBench controller and driver are combined; they do not each have a separate package.
Obtain the installation package .zip (e.g., 2.1.0.GA.zip) from https://github.com/intel-cloud/cosbench/releases and place it at COSBench package under the home directory on the controller node.

なぜこのPDFを読んでいたにも関わらず、この記述に気がつかなかったのか、ということを自分なりに振り返ります。最初にダウンロードできた(開発用の)ZIPファイルに自分が必要とするものが全て入っているだろうから、事前準備(=Preparation)は終わっている、という先入観があって読み飛ばしたのでしょうね。

このブログに辿りついた、これから cosbench を試すかたが、同じような失敗をせずに cosbench の利用をスムーズに開始できることを祈りつつ、今回のブログもそこそこの文量になってしまいました。次回更新では cosbench の CentOS 6.7 での実際のセットアップと RING での使用感について書く予定です。ご期待ください。

本ブログの情報につきましては、自社の検証に基づいた結果からの情報提供であり、
品質保証を目的としたものではございません。

投稿者: ポール

ブロードバンドタワーで Scality RING を担当。ストレージ業界の知り合いからはポールと呼ばれているが、本人も由来はよくわからない。得意領域はデータベースとストレージ。