この章では、一般的なテスト環境で使用される SunVTS の機能について説明します。
SunVTS 診断テストを実行するにあたっては、まず、システムがオフラインまたはオンラインのどちらの状態のときにテストを行うか判断します。
オフライン - 動作中のアプリケーションがなく、SunVTS テストセッションですべてのシステムリソースを利用できる状態です。負荷モードなどのテストオプションを有効にすることによって、最大範囲のテストを行うことができます。次のコマンドは、システムがオフライン状態であるものとして SunVTS を起動します。
Sunvts vtsk vtsui vtsui.ol vtstty
オンライン - 他のアプリケーションが動作中で、テストセッションがそれらアプリケーションに影響を及ぼさないようにする必要がある状態です。リソースの競合が起きないよう、機能テストモードのオプションは制限を受けます。次のコマンドは、オンラインテスト用に SunVTS を起動します。
vtsui.online |
オンラインテストを行うには、SUNWodu パッケージがインストールされている必要があります。
vtsui.online コマンドは、Sun Enterprise SyMON エージェント (SUNWsycfd パッケージに含まれる) がサポートするシステムでだけ機能します。
SunVTS には、Connection (接続) と Functional (機能) の 2 つのテストモードが用意されています。これらのモードは、テストされるシステムの状態と、その目的がそれぞれ異なります。1 つのテストセッションでは、いずれか一方のテストモードだけ選択することができます。
vtsui.online コマンドを使用して、SunVTS をオンライン状態のシステムで実行した場合機能テストモードは限定的に動作します。
接続テストモードでは、テスト対象のシステムにデバイスが接続されているかどうか、またアクセス可能かどうかが検査されます。
接続テストモードでは、デバイスの機能は検査されませんが、システムがオフラインまたはオンラインのどちらの状態でも、問題なくテストを実行することができます。
このモードでのテストは限定的であるため、システム構成の妥当性に対する定期的な検査に使用することができます。
機能テストモードは、システムがオフラインまたはオンラインのどちらの状態のときに SunVTS が起動されたかによって異なる動作をします (「オフラインテストとオンラインテスト」)。
オフラインの機能テストモードでは、選択されているデバイスとそのデバイスドライバがあらゆる面からテストされます。このモードでは、1 つのテストを実行して 1 つのデバイスの機能を検査することも、あらゆるシステムデバイスに対して複数のテストを実行して、システム全体の妥当性を検査することもできます。
徹底的なテストを行うため、オフラインの機能テストモードでは、システム資源のかなりの部分が使用されます。このため、機能テストモードでテストを行うときは、システムで重要なアプリケーションを実行したり、システムを一般業務などに使用したりしないでください
機能テストモードでは、デバイスに関係するあらゆるシステム資源がテストに利用できることを前提としています。デバイスにアクセスできない場合は、障害として記録されます。テストの実行時には、システム資源を制限せずデバイスを徹底的に使用して、完全なテストを行うすることを目的としています。
SunVTS は、機能テストモードでテストするシステムが安全なオフライン状態になっているかどうかを確認しません。このため、ユーザー自身が、アプリケーションと SunVTS 診断テストの間でシステム資源の競合が起きないようにする必要があります。実行時の注意事項については、「SunVTS の実行時の注意事項」を参照してください。
オンラインの機能テストモードでは、他のアプリケーションおよびユーザーに対する影響を最小限に抑えながら、障害を検出し、特定するという限定的な動作テストが行われます。このモードでは、テストパラメータ、テスト実行オプション、システムレベルのオプションの一部が固定され、値を変更できなくなります。これは、危険な処理を引き起こす可能性があるオプションあるいはオプションの組み合わせが選択されることによって、システムが危険な状態にならないようにするためです。
Functional テストモードでは、オプション値の一部が固定されるばかりでなく (下記の表を参照)、以下の制限を受けます。
スケーラブルテストを選択した場合は、そのテストのインスタンスを 1 つだけ実行できる
選択されたテストは、そのすべてが終了するまで順次実行される
選択されたすべてのテストはそれぞれ 1 回のパスだけ実行される
1 つでもエラーが見つかると、テストが停止する
オンライン環境で危険とみなされるテストオプションを有効にすることはできない
表 5-1 は、上記のそれぞれのモードでのテスト実行オプションのデフォルト値をまとめています。
表 5-1 テスト実行オプション
オプション |
Connection テストモード |
Functional テストモード (オフライン) | Functional テストモード (オンライン) |
---|---|---|---|
Stress |
Disabled (固定) |
Disabled |
Disabled (固定) |
Verbose |
Disabled (固定) |
Disabled |
Disabled (固定) |
Core File |
Disabled (固定) |
Disabled |
Disabled (固定) |
Run On Error |
Disabled (固定) |
Disabled |
Disabled (固定) |
Max Passes |
1 (固定) |
0 |
1 (固定) |
Max Time |
0 (固定) |
0 |
0 (固定) |
Number of Instances |
1 (固定) |
プロセッサ数に依存 |
1 (固定) |
オンラインの Functional テストモードは、Sun Enterprise SyMON エージェントがサポートするシステムでだけ機能します。このエージェントは、SUNWsycfd パッケージをインストールするとインストールされます。「SunVTS のインストール」を参照してください。
システムマッピングにより、必要に応じた方法でシステム構成を表示することができます。System map には、テストが行われるデバイスだけが表示されます。テストを行うことができないデバイスや、現在 SunVTS テスト項目のないデバイスは表示されません。
System map は、以下の 2 とおりの方法で表示することができます。
Physical (物理) 表示 - システム上の物理的な位置に基づいてデバイスを一覧表示します。FRU (現場交換可能ユニット) を特定できるように、デバイスの正確な位置が示されます。たとえば、SCSI デバイスは SCSI コントローラの下に示され、SCSI コントローラは、そのコントローラが接続されている入出力バスの下に示されます。可能な場合は、デバイスのボード番号とコントローラの種類も表示されます。システムによっては、この表示を行えないことがあります。下記の注を参照してください。
Logical (論理) 表示 - デバイスを機能別のグループに分けて一覧表示します。たとえば、ネットワークデバイスは Network カテゴリの下、SCSI デバイスは SCSI devices カテゴリの下に表示されます。論理マップによって、論理的なデバイスグループに分けてシステムを見ることができます。システム上の特定の 1 つのグループを表示したり、すべてのグループを表示したりすることができます。
物理表示と論理表示の切り替えには、SunVTS ユーザーインタフェースの Physical または Logical ボタンを使用します。
物理表示は、configd プログラムがインストールされているシステムでのみ行うことができます。パッケージのインストールと管理についての詳細は、『Solaris のシステム管理』および 第 2 章「SunVTS のインストールと削除」を参照してください。
SunVTS には、サンのシステムの大部分のハードウェアデバイスに対するテストが用意されています。
SunVTS を起動すると、 SunVTS カーネルはテストシステムデバイスを調べます。この調査の結果は、テストするデバイスを選択するためのデバイス一覧からなる SunVTS インタフェースに表示されます。システムの構成に関係のないテストが表示されることはありません。
テストは、特定のテストグループ全体または個別テスト単位で選択することができます。使用するテストモードと実行するテストは、テストの目的によって異なります。
たとえば、SunVTS を使用して、断続的に発生する SCSI バスエラーの追跡を行う場合は、Functional テストモードで SCSI グループ全体をテストすることによって、SCSI サブシステムを完全に検査します。次に、そのテストの後で特定の SCSI デバイスを選択して、どのデバイスでエラーが再現するか調べます。
もう 1 つの例として、新たに設置したシステムを本格的に運用する前に検査するという目的も考えられます。この場合は、指定した時間の間、Functional モードですべてのデバイスをテストします。
オプションボード、周辺装置、通信デバイスなどの特定のデバイスの接続に問題がないかどうかを調べる場合は、Connection テストモードでテストします。
特定の 1 つのテストやテストグループを選択する方法は、使用する SunVTS ユーザーインタフェースによって異なります。詳細は、以下に示す節を参照してください。
CDE ユーザーインタフェース - 「テストするデバイスを選択する」
OPEN LOOK ユーザーインタフェース - 「OPEN LOOK Test Selection パネル」
TTY ユーザーインタフェース - 「個別テストとテストグループの選択」
テストを選択する前に、ユーザーの介入を必要とするテストがいくつかあります。このようなテストでは、記憶媒体を挿入するか、ループバックコネクタを取り付ける必要があります。この作業を行っていない場合は、テストを選択する前に intervention モードを有効にして、必要な作業を行います。
Functional テストモードでこのようなデバイスをテストする場合は、あらかじめドライブに記憶媒体を挿入しておいてください。
テープドライブ - テストするテープドライブにスクラッチテープを挿入してください。テープテストは読み取り専用モードで行われますが、誤ってデータが上書きされることのないようスクラッチテープを使用してください。
CD-ROM ドライブ - CD-ROM ドライブに CD を挿入してください。音楽用 CD またはデータ CD のどちらでもかまいません。
フロッピーディスクドライブ - フロッピーディスクドライブにスクラッチディスクを挿入してください。フロッピーディスクテストは読み取り専用モードで行われますが、誤ってデータが上書きされることのないようスクラッチディスクを使用してください。
通信ポート - ほとんどの通信ポートテストでは、ポートにループバックコネクタが接続されている必要があります。テストするポートに必要なループバックコネクタを接続してください。ループバックコネクタについての詳細は、『SunVTS 3.2 テストリファレンスマニュアル』を参照してください。
SunVTS カーネルがデバイスを正しく特定できるように、SunVTS を起動したとき、または再調査 (Reprobe) 機能を実行したときに行われるデバイスの調査の前に、記憶媒体やコネクタを取り付けてください。
Intervention モードは、テストを実行する際に何らかのユーザーの介入が必要であることを知らせるためのものです。Intervention モードを有効にすることによって、適切な記憶媒体やループバックコネクタが取り付けられているかどうかが確認されるわけではありません。
Intervention モードボタンの位置は、使用する SunVTS インタフェースによって異なります。詳細は、以下に示す節を参照してください。
CDE インタフェース - 「CDE Select devices (デバイス選択) 領域」
OPEN LOOK インタフェース - 「OPEN LOOK Test Selection パネル」
TTY インタフェース - 「TTY オプションの設定」
SunVTS では、Test Execution (テスト実行) オプションの変数を設定することで環境をカスタマイズすることができます。
表 5-2 Test Execution オプション
システムオプション |
説明 |
---|---|
Stress |
負荷テストを行います。 |
Core File |
コアファイルを作成することができます (SunVTS の bin ディレクトリが書き込み可能な場合)。コアファイル名は core.<テスト名>.xxxxxx であり、<テスト名> はコアダンプしたテスト名、xxxxxx は、一意のファイル名にするためにシステムによって生成される文字列です。Core File が無効な場合は、エラーの原因となったシグナルを示すメッセージが表示、記録されます (「Log Files ボタン」と第 4 章「SunVTS のユーザーインタフェース」を参照)。 |
Max Errors |
1 つのテストに対する許容エラー回数を指定します。ここで指定した回数エラーが発生すると、テストが停止します。0 を指定すると、エラーが発生してもテストが停止することはありません。 |
Max Passes |
1 つのテストに対する最大実行回数 (パス数) を指定します。 |
Max Time |
1 つのテストに対する最大実行時間を指定します (単位: 分)。 0 を指定すると、制限時間なしになります。 |
Number of Instances |
スケーラブルテストに対するインスタンス数を指定します。 |
Processor Affinity |
このオプションにより、指定するプロセッサ上でテストを行うことができます。 |
Run On Error |
許容エラー回数を指定します。このオプションで指定された回数エラーが発生すると、テストが停止します。 |
Verbose |
SunVTS コンソールウィンドウに詳細メッセージを表示します。 |
vtsui.online コマンドから SunVTS を起動した場合は、値がすでに割り当てられているために変更できないオプションがあります。このことにより、オンライン上のシステムに影響するような、オプションの値の変更や設定を行うことを防いでいます。
Test Execution のオプションは、次の 3 つのレベルで適用することができます。
最上位レベル - すべてのテストに適用されます。
グループレベル - 特定のグループ内のテストにだけ適用されます。
個別テストレベル - 特定のテストにだけ適用されます。
最上位レベルでオプションに値を適用すると、その下のすべてのグループとテストにその値が適用されます。同様に、グループレベルでオプションを設定すると、その値がその下のすべてのサブグループとテストに適用されます。これは、SunVTS のテスト環境をカスタマイズする機能です。 たとえば、Verbose オプションをシステムレベルで無効にし、特定のグループ (特定のテスト) に対してだけ有効にすることができます。これによって、そのグループからの詳細メッセージだけが表示されます。
ロックと上書き機能を使用して、Test Execution オプションの働きを制御することができます。これらの機能は、ユーザーインタフェースの Advanced メニューから使用します。
Group Lock (グループロック) を有効 (enabled) にすると、上位のレベルで設定されたオプションが特定のグループやテスト、およびそのグループに属するサブグループやテストに適用されなくなります。同様に Test Lock (テストロック) を設定して、特定のテストのオプション設定を保護することができます。
Override (上書き) 機能を使用して、ロックによる保護を無効にすることができます。たとえば、System Override (システム上書き) を有効 (enabled) にした場合は、すべてのロックが無効になり、Group Override (グループ上書き) を有効にした場合は、そのグループ下のすべてのロックが無効になります。
オプションを設定する手順は、使用する SunVTS ユーザーインタフェースによって異なります。具体的な手順については、以下に示す節を参照してください。
CDE ユーザーインタフェース
最上位レベルのオプションの設定 - 「Options メニュー」
グループレベルおよびテストレベルのオプションの設定 - 「デバイス別オプションメニューを使用する」
OPEN LOOK ユーザーインタフェース
最上位レベルのオプションの設定 - 「Set Options ボタン」
グループレベルおよびテストレベルのオプションの設定 - 「OPEN LOOK Test Selection パネル」
TTY ユーザーインタフェース - 「TTY オプションの設定」
個別テストオプションは、個々のテストに用意されている、そのテストにだけ関係するオプションのセットです。たとえば、ディスクテストでテストする媒体の量、メモリーテストでテストするメモリー量、ネットテストでの遠隔ホストのアドレスなどが個別テストオプションに該当します。これらのオプションはデバイスごとに異なります。詳細は、『SunVTS 3.2 テストリファレンスマニュアル』を参照してください。
個別テストオプションは、SunVTS ユーザーインタフェースの Test Parameter Option メニューを使用して設定します。以下では、このメニューの共通する部分だけを説明します。
メニュー項目 | 説明 |
---|---|
Configuration |
選択可能なデバイスのデバイスタイプ、容量、バージョン、シリアル番号などの情報を表示します。この情報は変更できません。 |
Options | 選択可能なデバイス、グループ、または全デバイスのテストをカスタマイズに使うテストオプションの一覧です。表示されるオプションはテストによって異なります。詳細は、このマニュアルの各テストに対応する章を参照してください。 |
Apply | 選択可能なデバイスに現在のオプション値を割り当て、Test Parameter Option メニューを閉じます。オプション値を割り当てられるのは現在のデバイスだけです。 |
Apply to Group |
デバイスグループ内のすべてのデバイス (同一コントローラ上の、同じデバイスタイプのデバイス) に現在のオプション値を割り当て、Test Parameter Option メニューを閉じます。オプション値を割り当てられるのはテストの 1 つのインスタンスだけで、複数のテストインスタンスに同じ値を同時に設定することはできません。 |
Apply to All |
すべてのデバイス (すべてのコントローラ上の、同じデバイスタイプのデバイス) に現在のオプション値を割り当て、Test Parameter Option メニューを閉じます。オプション値を割り当てられるのはテストの 1 つのインスタンスだけで、複数のテストインスタンスに同じ値を同時に設定することはできません。 |
Reset |
すべてのオプション値をデフォルトの設定に戻し、Test Parameter Option メニューを閉じます。 |
Cancel |
オプション値の変更内容をすべて無視して、Test Parameter Option メニューを閉じます。 |
Test Parameter Option メニューの説明は、TTY インタフェースの Test Parameter オプションメニューにも当てはまります。
Test Parameter Option メニューの説明は、SunVTS の OPEN LOOK ユーザーインタフェースにも当てはまります。ただし、OPEN LOOK インタフェースでは、Apply to Group および Apply to All ボタンは使用できません。
スケーラビリティー機能によって、単一プロセッサーと多重プロセッサーに負荷を与えるテストインスタンスや、プロセス数を調整することができます。スケーラブルテストのオプションを変更し、各テストのインスタンスが別のオプションと同時に実行されるように設定すことができます。Processor Affinity 機能と組み合わせると、柔軟なテスト環境を構築することができます。以下に説明するオプションを使用して選択したテストインスタンスの数で、負荷の量を調節することができます。
Group Concurrency - 同じテストグループ内で同時に実行できるテストの最大数を設定します。このオプションは、最上位レベルとグループレベルの Schedule オプションメニューで使用することができます。
System Concurrency - システム全体で同時に実行できるテストの最大数を設定します。Group Concurrency オプションを上書きします。このオプションは、最上位レベルの Schedule オプションメニューで使用することができます。
Instances - 同じデバイスに対して同時に実行できるテストの数です。たとえば、1 つのテストにインスタンスが 8 個ある場合は、同じ 1 つのテストのコピーを同時に 8 個実行することができます。このとき、各コピーは、テストシステムの 1 つのプロセッサで実行することも、すべてのプロセッサを使用して実行することもできます (下記の Processor Affinity を参照)。インスタンス数は、Number of Instances オプション (このオプションはスケーラブルテストにだけ適用されます) を使用して設定します。このオプションは、いくつかのテストレベルの Test Parameter オプションメニューで使用することができます。
Processor Affinity - テストの実行に使用するプロセッサを指定することができます。マルチプロセッサシステムでだけ使用することができます。テストの各インスタンスが、異なる Processor Affinity を持つことができます。1台のプロセッサだけをテストのインスタンスに設定することができます。 Processor Affinity が指定されないときは、migrating がデフォルトになります。このオプションは、いくつかのテストレベルの Test Parameter オプションメニューで使用することができます。
Option Files メニューを使用して、現在選択されているテスト、SunVTS の詳細情報や個別テストオプション情報をファイルに保存し、後で利用することができます。この機能は、同じテストパラメタを繰り返し利用する場合に有用です。
SunVTS のメインウィンドウでテストとオプションの設定を行います。
Option File メニューを表示します。表示方法は、使用しているユーザーインタフェースによって異なります。
CDE インタフェース - メニューバーから Options をクリックし、Option Files を選択します。
OPEN LOOK インタフェース - Option Files ボタンをクリックします。
TTY インタフェース - 制御パネルから Option_files を選択し、Return キーを押します。
以下の図に示すように Option File フィールドに一意のファイル名を入力します。
Store ボタンをクリックして、オプションファイルの現在に設定を保存します。
詳細テストオプションと個別テストオプションの現在の設定が、指定したファイル名で /var/opt/SUNWvts/options ディレクトリに保存されます。
オプションファイルはユーザー自身で編集することも可能ですが、書式は厳密に従う必要があります。オプションファイル中に、不必要な文字や誤った文字があると、SunVTS カーネルやユーザーインタフェースが正しく動作しないことがあります。
読み込まれたファイルの内容がすべてのテストとテストオプションに反映され、SunVTS カーネルがすぐに使用できる状態になります。パラメタの設定に時間を費やす必要はありません。
(以下の例では、「オプションファイルを作成する」の手順に従って test.set2 というファイルが作成されているものと仮定します。)
sunvts コマンドで -o オプションを使用します (下記の例を参照)。
# ./sunvts -o Test.set2
読み込まれたファイルの内容がすべてのテストとテストオプションに反映され、SunVTS カーネルがすぐに使用できる状態になります。パラメタの設定に時間を費やす必要はありません。
グラフィックステストが行われているフレームバッファーに対して SunVTS を実行すると、誤ったエラーが発生することがあります。OPEN LOOK や CDE を使用している場合は、このエラーは障害ではありません。
グラフィックステストを起動した後に、同じウィンドウで、他のグラフィックスアプリケーションを実行することはできません。
CDE または OPEN LOOK ユーザーインタフェースを使用している場合は、グラフィックテストの Option メニューの Frame Buffer Locking オプションで Enable を選択します。
コマンド行からフレームバッファーテストを実行する場合は、以下のように引数を指定することによって、フレームバッファーのロックを有効にします。
(コマンド行引数についての詳細は、『SunVTS 3.2 テストリファレンスマニュアル』を参照)。
# ./fbtest -o dev=cgthree0,lock=Enable
コンソールモニターの TTY モードで、フレームバッファーテストを行わないでください。フレームバッファーのテストが実行されないことがあります。
vtsui が動作しているフレームバッファーのウィンドウロックを、無効 (ロック解除) にした状態でテストを行っている間に、少しでもマウスを動かすと、誤ったエラーメッセージが表示されることがあります。
複数のフレームバッファー (ディスプレイ) を同時にテストする場合は、以下のような制限があります。
1 つのシステムで複数のフレームバッファーを同時にテストすることはできますが、ウィンドウ環境を実行できるのはコンソールモニターだけです。コンソールモニターは、/dev/fb によって示されるフレームバッファーに接続されているモニターです。
テストが誤ってエラーになることのないように、ウィンドウ環境が動作するフレームバッファーのウィンドウロックは有効にし、他のフレームバッファーのウィンドウロックは無効にする必要があります。
デフォルトでは、SunVTS によってコンソールバッファー (/dev/fb) のウィンドウロックが有効になります。システムに複数のフレームバッファーがある場合は、ウィンドウ環境が動作しているもの以外の、フレームバッファーのロックを無効にしてください。コマンド行からフレームバッファーテストを実行する場合は、コマンド行引数を使用し、ウィンドウロックを有効または無効にすることができます (詳細は、『SunVTS 3.2 テストリファレンスマニュアル』のコマンド行の説明を参照)。たとえば、フレームバッファーテスト (fbtest) を実行する場合は、以下のように lock=Disable/Enable オプションを使用してフレームバッファーのロックを無効にします。
# ./fbtest -o dev=cgthree0,lock=Enable
SunVTS をコンソールモニター以外の画面から起動した場合は、フレームバッファーロック機能を使用することはできません。コンソールモニター用のフレームバッファーロックをオフにする必要があります。 SunVTS ユーザーインタフェースは、フレームバッファーロックが無効になっているモニターには表示されません。
SunVTS によるシステムのテスト中は、パネル、ウィンドウ、ログファイルを参照することによって、テストの進行状況を監視することができます。
テストの進行状況を監視するためのパネルは、システム状態パネル、System map (システムマップ)、パフォーマンスメーター、コンソールウィンドウの 4 つがあります。
システム状態パネルには、システムの現在の状況、すなわち、SunVTS カーネルの処理状況が表示されます。処理状況は、たとえば、テストが行われていないときは idle、行われているときは testing、最大エラー発生回数に達するか、テストが停止しているときは stopped になります。
システム状態パネルには、正常に実行されたシステムパスの合計数 (すべてのテストが 1 回実行されると、システムパス 1 回となります) 、すべてのテストで発生したエラー発生回数の合計、総テスト経過時間も示されます。
System map パネルは、選択されているすべてのテストの状態を示します。テストの状態は以下のように表示されます。
Passes はテストの実行終了回数です。
Errors はテストがエラー終了した回数です。実行中のテストの前にはアスタリスク (*) が付きます。
トレースモードが実行中の場合は、テスト名に "T" という文字が表示されます。これにより、他のテストに比べてどのテストに時間がかかっているのかを、識別することができます。
System map パネルは、テスト中のデバイスの現在の状態を示します。
黒はデバイスがテストされていないことを示します。
緑はデバイスに対して少なくとも 1 回テストが行われ、そのテストでエラーが検出されなかったことを示します。
赤は少なくとも 1 つのエラーが検出されたことを示します。
コンソールウィンドウには、テストや SunVTS カーネルから送られるメッセージが表示されます。テストに対して、詳細メッセージやシステムコールメッセージを有効にしている場合は、それらのメッセージも表示されます。スクロールバーを使用して隠れているメッセージを表示することができます。
パフォーマンスメーターは、テストの対象となるシステムの性能に関する統計情報が表示されます。詳細は、「Meter ボタン」と 「OPEN LOOK のパフォーマンスメーター」を参照してください。
テストセッション中にすべてのテストを中断、または一時停止する必要がある場合があります。たとえば、スクロールして見えなくなった Console パネルのメッセージを表示したり、ログファイルを参照して印刷するときなどです。
テストセッションを中断、再開する方法は、使用している SunVTS のユーザーインタフェースとは多少異なります。以下のセクションを参照してください。
CDE-「Commands メニュー」
OPEN LOOK-「OPEN LOOK のコントロールパネル」
TTY-「TTY オプションの設定」
システムを十分にテストしたあと、テストセッションを停止して、結果を検討することができます。
SunVTS は、様々な理由から自動的にテストの実行を終了します。たとえば、Option メニューの Single Pass オプションが有効な場合は、有効なすべてのテストを 1 回実行してから、テストを停止します (ただし、経過時間は増加し続けます)。
エラーが発生した場合に、エラー時の実行 (run on error) が設定されていない場合 (デフォルトでは、最初のエラー発生時にセッションが停止するように設定されています) や、エラー時の実行が設定されていてもエラーカウントがエラーの最大数に達した場合は、テストは停止します。
Stop ボタンをクリックして、テストセッションを停止します。システム状態パネルに、一時的に "stopping" と表示されてテストは終了します。停止までの時間は実行しているテストによって異なります。たとえば、tapetest では、テープを巻き戻したり、マウントされたパーティションや一時ファイルを削除する時間が必要になります。テストが完了すると、ポップアップメニューに "testing completed: xxx pass(es), x error(s)" というメッセージが表示されます。
テストセッションを停止した後は、System map によって、発生したパスとエラーの数をテストごとに調べたり、ログファイルを表示または印刷することができます。
テストの処理が滞った場合は、SunVTS は Stop モードの状態になり、テストの終了を待ちます (この状態はハードウェア障害に起因する可能性があります)。テストを選択解除すると、SunVTS は停止しているテストを無視し、idle モードに戻ります。
テストセッションを繰り返す必要がある場合は、SunVTS を終了せずに、Reset ボタンをクリックします。
この節では、 ログファイルを表示、印刷、削除する方法と、ログファイルのエラーメッセージ形式について説明します。
テストの状態は、次の 3 つのログファイルに格納されます。
SunVTS のエラー状態ログ: /var/opt/SUNWvts/logs/sunvts.err
SunVTS の情報ログ: /var/opt/SUNWvts/logs/sunvts.info
Solaris のシステムメッセージログ: /var/adm/messages
sunvts.err ファイルには、SunVTS テストのエラーメッセージとその時刻表示が含まれています。情報ログファイルの sunvts.info には、SunVTS を起動、停止したときに生成される情報メッセージが含まれています。messages ファイルは、一般的な UNIX メッセージのログです。
ログファイルは、Log Files ボタンをクリックすると表示される、Log Files ウィンドウからアクセスすることができます。
ログファイル名を選択し、Display ボタンをクリックすることによってログファイルの内容を表示することができます。メニューから Print (印刷) ボタンや Remove (削除) ボタンを選択することによって、ファイルを印刷、削除することもできます。
これらのログファイルは非常に大きくなることがあります。印刷するときは、ファイルのすべての内容が必要かどうかを確認してください。
SunVTS カーネルのメッセージの形式は以下のようになります。
SUNWvts.テスト名[.サブテスト]. メッセージ番号 日付 時刻 テスト名 デバイス名 [FRU_パス名]ERROR|FATAL|INFO|WARNING|VERBOSE メッセージ
SunVTS テストメッセージの引数と簡単な説明を以下に示します。
表 5-4 SunVTS テストメッセージの構文
引数 |
説明 |
---|---|
SUNWvts |
SunVTS パッケージ名 |
テスト名 |
SunVTS テスト名 |
サブテスト名 |
サブテストのモジュール名 (存在する場合) |
メッセージ番号 |
メッセージ識別子でテストに固有の番号。通常は以下の範囲です。 VERBOSE: 1 - 1999 INFO: 2000 - 3999 WARNING: 4000 - 5999 ERROR/FATAL: 6000 - 7999 FATAL: 8000 - 9998 (9999 は前バージョンの SunVTS のメッセージ用に確保されています) |
日付 時刻 |
エラーの発生日時を示します。 |
テスト名 |
エラーを返したテスト名です。 |
デバイス名 |
エラーが発生したデバイスです。 |
FRU_パス名 |
障害が発生した FRU のフルデバイスパス名。引数はエラーが発生した時の実行中のテストの種類に依存します。詳細は、「障害の発生した FRU 情報の意味」を参照してください。 |
メッセージ |
考えられる原因と推奨対処方法を含むテキストメッセージです。 |
テストが失敗すると、SunVTS は、障害の発生した FRU についての情報をエラーメッセージに記録します。エラーメッセージには、システム上の障害の発生した FRU の位置が示されます。この位置は、FRU が接続されているボード番号で始まるパスの形式で示されます。
たとえば、ボード番号 0 の cpu-unit0 の FRU パスは、以下のようになります。
cpu-unit0(board0)
ボード 0 上の esp0 で制御されるディスク c0t0d0 の FRU パスは、以下のようになります。
c0t0d0(board0/sbi0/esp0)
ボード 1 上の soc に接続されたディスク c1t0d0 の FRU パスは、以下のようになります。
c1t0d0(board1/sbi1/soc1/pln1)
この機能を使用できるのは、物理マッピングをサポートしているシステムだけです。
以下のオプションは,システムのデバッグをする際に使用することができます。
Verbose - テストデバイス上で行われている処理を示す詳細メッセージを表示 します。
Core File - いくつかのシグナルを受信したとき、現在の作業用ディレクトリにテストプロセスのコアイメージを作成します。このオプションが無効な場合は、 コアイメージが作成されないよう、信号は捕捉、処理されます。
Run On Error Option - 最大エラー数に到達するまでテストを継続します。
Processor Affinity - 指定のプロセッサにプロセス一覧を接続します。このオプションは、システムを熟知している上級ユーザーが指定のプロセッサの障害を取り除くために使用します。
これらのオプションの設定方法については、以下に示す節を参照してください。
CDE インタフェース - 「Options メニュー」
OPEN LOOKインタフェース - 「Set Options ボタン」
TTY インタフェース - 「TTY オプションの設定」
Start with Record と Replay オプションは、テストセッション中での重要なイベントのシーケンスを記録し、後にこの情報を再生、または参照するための機能です。テストセッションが記録されていれば、この情報を使用して記録されたイベントのシーケンスを SunVTS カーネルに再現させることができます。記録および再生機能は、テスト条件の再現方法やデバッグの手助けとなる処理を提供しています。
Record および Replay オプションは、イベントの順番を厳密に再現することができますが、イベントの時間の長さを再現することはできません。これは、それぞれの実行時間が異なるためです。このオプションを使用してスケジュール再生した場合は、考慮されるのは、本来の実行でのイベント同士の順番と、相対的なスケジュール時間の差だけです。
テストセッションの再生方法は限られています。これは、Replay オプションが、コマンドの完了時ではなく、コマンドの開始時にのみ制御可能なためです。
Record with Replay オプションは、次のテストイベントを記録します。
テストの開始
テストの停止
Intervention モードの有効と無効
テストの選択と選択解除
イベントは、指定ログディレクトリ中に保存される vts_replay_file ファイルに記録されます。ログディレクトリが指定されていない場合は、デフォルトで /var/opt/SUNWvts/logs ディレクトリが使用されます。
vts_replay_file の最初の部分は、記録が開始された時点での SunVTS カーネルとテストオプションの設定情報から構成されます。再生では、この情報を使用して元のオプション設定が復元されます。
イベントは、オプション設定保存後に記録されます。各イベントについては、以下の形式で情報が記録されます。
イベントの種類 経過時間 対象オブジェクト [インスタンス番号] [イベント固有情報]
次の表は、各イベント文字列をまとめたものです。
表 5-5 vts_replay_file のイベント文字列
イベント列 |
説明 |
---|---|
イベントの種類 |
START、 STOP、 SELECT、 DESELECT、INTERVENTION のいずれかです。 |
経過時間 |
先行のイベントからの経過時間 (単位: 秒) |
対象オブジェクト |
このイベントに関係するオブジェクト。例: fpu (fputest)。INTERVENTION イベントのように値がハイフンの場合は、このフィールドは無視されます。 |
インスタンス番号 |
テストのインスタンス番号。START と STOP イベントには、有効な番号が必要です。INTERVENTION、 SELECT、DESELECT イベントの場合は、このフィールドの値は -1 になります。 |
イベント固有情報 |
イベントの再生に必要なイベント固有の追加情報。START イベントの場合は、このフィールドには、テストコマンド行の引数が含まれます。また、INTERVENTION イベントの場合は、使用可能かどうかを示す値です。STOP、 SELECT、DESELECT イベントの場合は、このフィールドは空です。 |
Trace Test オプションを使用して、テストの実行中に生成されたすべてのシステムコールのログを作成することができます。この機能では、標準の UNIX コマンドの truss を使用してシステムコールのログをとります。 トレース機能によってログに記録されるトレースメッセージは、エラーの原因を特定する際のデバッグツールになります。
SunVTS の実行中は、どのテストに対しても、TTY コマンド行から UNIX の truss(1) コマンドを使用することができます(詳細は、truss(1) のマニュアルページを参照してください)。
システム構成を物理表示にしている場合は、1 つの階層 (システムボード上の 1 つのコントローラなど) しか表示されず、数階層下のデバイスをトレースすることはできません。その場合は、システム構成を論理表示にしてデバイスのトレースを実行してください。
メニューバー (CED) から Commands をクリックし、Trace test を選択します。
以下に示すような Trace Test ウィンドウが表示されます。
一覧からトレースするテストを選択して、Apply をクリックするか、テスト名をダブルクリックしてトレースを有効にし、ウィンドウを閉じます。
テストの選択を終えると、ただちにシステムコールのトレースが有効になります。実行中のテストを選択した場合も、ただちにトレースが開始され、SunVTS コンソールウィンドウにトレースメッセージが表示されます。
SunVTS CDE ユーザーインタフェースを使用している場合は、選択できるテストは 1 つだけです。SunVTS OPEN LOOK ユーザーインタフェースを使用している場合は、複数のテストを選択することができます
トレースメッセージをファイルに保存する場合は、File を選択して、Apply をクリックします。
SunVTS インタフェース (vtsui、vtsui.ol、vtstty) を使用してテストを制御するには、SunVTS インタフェースを SunVTS カーネル (vtsk) に接続する必要があります。SunVTS カーネルは、SunVTS のインストールディレクトリ /bin/.sunvts_seckernel ファイルのエントリに基づいて、SunVTS インタフェースから "connect to" 要求を選択的に受け付けます。接続アクセス権は、.sunvts_seckernel ファイルの 3 つのカテゴリによって以下のように制御されます。
HOSTS - 要求ユーザーが HOSTS カテゴリに属するホストのユーザーの場合、その要求は認証なしで許可されます。
GROUPS - 要求ユーザーが GROUPS カテゴリのメンバーのグループのメンバーの場合は、パスワードの入力が求められます。SunVTS カーネルは、テスト実行中のシステム (SUT) 上のパスワードデータベースと入力されたパスワードを比較します。パスワードが一致しないか、ユーザーが登録されていない場合、接続は拒否されます。
USERS - 要求ユーザーが USER カテゴリのメンバーの場合も、パスワードの入力が求められます。SunVTS カーネルは、SUT (テスト実行中システム) 上のパスワードデータベースと入力されたパスワードを比較します。パスワードが一致しないか、ユーザーが登録されていない場合、接続は拒否されます。
これらのカテゴリ内の正符号 (+) のエントリは、すべてのホスト、すべてのグループ、すべてのユーザーがトラストされていることを意味します。
認証に必要とされるパスワードは、SUT (テスト実行中システム) へのログインに使用されるのと同じパスワードです。
接続アクセス権に対する検査は、HOSTS、GROUP、USERS カテゴリの順に行われます。接続要求とエントリが一致すると、ただちに接続が許可されます。
セキュリティーファイルのエントリが不正か、ファイルにエントリがない場合、スーパーユーザープロンプト以外のあらゆるアクセスは、ローカルマシン上で拒否されます。ただし、このファイルのエントリは、SunVTS カーネルの動作中でも修正することができます。
SunVTS カーネルの起動中に -e オプションが指定された場合は、.sunvts_sec ファイル内のエントリに関係なく、すべてのホストからの "connect to" 要求が受け付けられます。
最大限のセキュリティーが確保されるよう、SunVTS 3.2 以降、.sunvts_sec ファイルには、デフォルトで SUT (テスト実行中システム) のスーパーユーザーが設定されます。このため、スーパーユーザー以外からの "connect to" 要求はすべて拒否されます。
デフォルトの .sunvts_sec ファイルの内容は、次のとおりです。
Security File (.sunvts_sec):
#This file should be <SunVTS 3.2 install directory>/bin/.sunvts_sec # #Any line beginning with a # is a comment line # # Trusted Hosts entry # One hostname per line. # A "+" entry on a line indicates that ALL hosts are Trusted Hosts. # No password authentication is done. # The line with the label HOSTS: is required to have the list of hosts # HOSTS: #+ #host1 #host2 # # Trusted Groups entry # One groupname per line. # A "+" entry on a line indicates that ALL groups are Trusted Groups. # User password authentication is done. # The line with the label GROUPS: is required to have the list of groups # GROUPS: #group1 # # Trusted Users entry # One username per line. # A "+" entry on a line indicates that ALL users are Trusted Users. # User password authentication is done. # The line with the label USERS: is required to have the list of users. USERS: root #user1 #user2
SunVTS 環境に独自のカスタムテストを追加することができます。このマニュアルでは、SunVTS 環境にカスタムテストを組み込むために必要な作業についてのみ説明します。テスト環境についての説明は行いません。
カスタムテストのバイナリファイルを SunVTS バイナリのディレクトリにコピーします。
SunVTS バイナリのデフォルトのディレクトリは /opt/SUNWvts/bin です。
後ほど示すファイル形式に従って .customtest というテキストファイルを編集します。
.customtest ファイルに設定したオプションは、各テストのデフォルトの設定になります。デフォルトのオプションは、SunVTS ウィンドウインタフェースのオプションメニューを使用して変更することができます。Reset ボタンを使用すると、すべてのオプションが、元の .customtest ファイルで指定したデフォルトの設定に戻ります。
SunVTS を再起動するか、システムを再調査します。
SunVTS を起動すると、そのユーザーインタフェースにカスタムテストが表示されます。
.customtest ファイルは、2 箇所に置かれています。
32 ビット用: /opt/SUNWvts/bin/.customtest
64 ビット用: /opt/SUNWvts/bin/sparcv9/.customtest
使用している Solaris 環境に従って (32 ビットまたは 64 ビットのいずれか) 適切なファイルを編集してください。
.customtest ファイルの各行は、セミコロン (;) で区切られた複数のフィールドから構成されます。
先頭フィールド: ラベル名またはデバイス名 (必須)。
第 2 フィールド: テスト名 (必須)。
第 3 フィールド: 任意の行 (省略可)。使用する場合は、必ず指定の書式で記述してください。
第 4 フィールド: SCA と入力 (スケーラブルテストの場合のみ使用)。
以下の例に示すように、ユーザーテストの定義には、セミコロン (;) で区切った少なくとも 2 つのフィールドが必要です。
% ラベル名;テスト名
複数のオプションを指定する場合は、各オプションをコンマ (,) で区切ります。
% ラベル名;テスト名;Numeric<NUMERIC|0,100|50|numeric>, Exc_Choice<EXC_CHOICE|Top,Middle,Bottom|Middle|exc_choice>, Inc_Choice<INC_CHOICE|Left,Center,Right|Left+Center+Right|inc_choice>,Toggle<TOGGLE|This,That|This|toggle>, Text <TEXT|20|Type_Here|text>, Slidebar<SLIDEBAR|0,10|5|slidebar>, Errors<CYCLE|Yes,No|No|errors>, Cycle<CYCLE|First,Second,Third|First|cycle>;SCA
% ./テスト名 -s[vq..] [-i n] -o dev=ユーザー名[0,1..],コマンド行オプション=値...
customtest 機能では、テストの状態調査を行うことはできません。バイナリが、SunVTS が実行されている Solaris カーネルのバージョンと互換性があるかどうかを確認する必要があります。
.customtest ファイルの名前を .customtest- <グループ> に変更した場合、ファイルに含まれるすべてのユーザーテストが、指定した <グループ> の下に表示されます。