Linux カーネル Scalable Test Platform |
 |
 |
 |
OSDL の Scalable Test Platform は、Linux カーネルビルドをテストするためのフレームワークを提供します。ユーザは Patch Lifecycle Manager を使用してパッチの作成とビルドができ、STP フレームワークを使用して選択したパフォーマンステストおよびスケーラビリティテストを実行できます。
STP はカーネルパッチをロードし、指定したハードウェアプラットホーム上で選択したテストを実行します。 カーネルパッチは kernel.org から取得した既存のカーネルにビルドされます。
STP フレームワークの目的は、オープンソースコミュニティに対し、カーネルの特定要素に対するインクリメンタルな変更をテストできる各種 SMP プラットフォームを提供することです。 そのシステム構成は変動しないため、以前のテストランとの有意な比較が可能です。
STP の仕組み
あるパッチが先行するパッチと依存関係にある場合、それらは組み合せて追加できます。その際、依存関係の最上位のパッチが STP ランタイム環境のコアとして使用される起点となります。テストが選択されると、STP フレームワークのリクエストブローカは、 OSDL のテストラボ内でテストランに使用可能なシステムを探します。テストリクエストは、リクエストブローカが定める優先順位に従ってキューに入ります。キューの先頭に来たテストに対し、リクエストブローカはそのハードウェア構成要件を満たす次に使用可能なシステムを探します。STP エンジンは、カーネルパッチをロードする前に、まずシステムからすべてのコードを消去します。つまり STP では、すべてのテストランごとにシステムの新規インストールが行われるようになっています。コードをすべて消去したシステムに対して、STP エンジンはスクラッチからディストリビューションをロードし、カーネルパッチを適用し、選択されたテストをシステム上に展開して実行します。テスト結果は回収され、テスタには電子メールで通知が送付されます。実行の流れを次の図に示します。

1 システムで 1 時点に実行されるテストは 1 つだけです。これによって、次のテストの実行前にテストシステムをクリーンな状態へ戻すことを保証し、次のテストランに影響を残さないようにすることができます。 テストが完了すると、結果が取得されテストランの完了を通知する電子メールが送信されます。
テストケースの実行は、ランスクリプト(wrap.sh)によって制御されます。 STP のウェブインターフェースを介してテストを選択すると、テストは選択したシステムタイプで実行されるべくキューに入ります。 システムが利用可能になると、テストはテストシステム上にロードされ、wrap.sh ファイルが呼び出されます。 wrap.sh はテストの実行を制御し、本質的には、テストするカーネル機能を実行するためのあらゆるシステムオペレーションを行うことができます。wrap.sh スクリプトから他のスクリプトや実行プログラムを呼び出すと有用なことがしばしばあります。履歴データを含む既存のグラフに新しいデータをプロットするレポートスクリプトなどがそれに当たります。wrap.sh 自体は、シェル、Perl、Python など、どんなスクリプト言語でも記述できます。 テストの実行結果は、通常、見やすい形式で出力される必要があります。そのためには、wrap.sh ファイル自体にスクリプトコードを含めるか、results.sh ファイルなどの結果データのフォーマット処理をするその他のスクリプトや実行プログラムを呼び出します。results/ ディレクトリに index.html がある場合、STP はデフォルトでそのページを表示します。 これは、実行されたテストに最適なフォーマットで各種結果データを表示するのに役立ちます。
STP を使用する利点
Linux カーネルの重要性が増すにつれ、メインラインに受け入れられる良いパッチを用意することは難しくなってきています。厳密なテストによる品質証明は、カーネルパッチが受け入れられることと、Linux の今後の成功、成長に不可欠です。OSDL の Scalable Test Platform は、この試みにおける鍵となるツールです。
科学的に厳密なテストの実行には、管理されたテスト環境、各種ハードウェア、そしてさまざまなシステム構成が必要なので、非常に多くの課題が伴います。広範な構成にわたって自分のパッチとその他のパッチとの有意な比較を行うこともきわめて重要です。しかし、そのようなリソースに恵まれた開発者はごくわずかです。
さらに、より重要な点として、時間は限られています。大規模なテスト環境のセットアップや管理を行い、最新の各種パッチやテストなどを追っていると、その他の問題にあてる時間などなくなってしまうでしょう。
OSDL の Scalable Test Platform と Patch Lifecycle Manager は、さまざまな SMP およびシングルプロセッサシステム上でパッチを実行するパフォーマンステストを選択するための直観的なインターフェースを提供することで、これらの重要なニーズに応えます。STP がオペレーティングシステムのインストールとテストの実行を完全に自動化し、ハードウェアは OSDL のスタッフによって提供、保守されるため、 システムの構成やテストの実行などの面倒な詳細事項を意識する必要がなくなります。 さらに、STP フレームワークでは新しいテストをシステムに追加できるので、カーネルの成長に伴った応用性と実用性の向上をユーザが直接図ることができます。
Patch Lifecycle Manager を併用することで、ほとんどすべてのカスタムカーネルのコンパイルとテストが可能です。そして、STP フレームワークはどんなテスト設備にも依存しないため、オープンソースコミュニティのニーズの変化に合わせて柔軟に対応でき、Linux カーネルの品質を高めるのに役立ちます。
|