disktest テストは、3 つのサブテスト (媒体、ファイルシステム、非同期入出力) を使用して、ハードディスクドライブとフロッピーディスクドライブの機能を検査します(表 11-1 参照)。このテストでは、SCSI ディスクや、独自または SCSI のフロッピーディスク、IPI など、大部分のディスクドライブをテストすることができます。テストパラメタオプションダイアログボックスの上部にテスト中のドライブの種別が表示されます。
disktest のテストパラメタオプションダイアログボックスには、テストで使用できるすべてのパーティションが示されます。ファイルシステムサブテストは、選択されたパーティションがマウントされている場合にのみ実行することができます (後の説明を参照)。媒体サブテストの読み取り・書き込みテストは、選択されたパーティションがマウントされていない場合にのみ実行することができます。
デフォルトでは、disktest はパーティションをマウントしません。マウント可能なすべてのパーティションを SunVTS にあらかじめマウントさせるには、SunVTS を起動する前に、環境変数 BYPASS_FS_PROBE をゼロ (0) に設定しておきます。このマウント設定を無効にするには、BYPASS_FS_PROBE の設定を解除するか、またはゼロ以外の値に設定します。
disktest が使用するマウント先は、disktest にそのパーティション名を付けた名前になります。たとえば、ディスクパーティション名が /dev/dsk/c0t3d0s0 の場合、disktest は、スーパーユーザーとしてそのパーティションを /disktest_c0t3d0s0 という名前でマウントします。
読み取り・書き込みモードで媒体サブテストを実行しているときに停電が発生すると、ディスク上のデータが破壊されることがあります。
他のプログラムによって使用されているディスクパーティションに対して読み取り・書き込みモードで媒体サブテストを実行すると、データが破壊されることがあります。読み取り・書き込みモードは、システムがオフラインのとき (他のユーザーあるいはプログラムによってシステムが使用されていないとき) にのみ使用してください。
disktest のフロッピーディスクドライブのテストは、ボリューム管理ソフトウェアが動作しているかどうかにかかわらず行われます。使用されるマウント先を以下に示します。
ボリューム管理ソフトウェアが動作している場合は、/etc/mnttab ファイルにあるマウント先でディスクドライブをテストします。
ボリューム管理ソフトウェアが動作していない場合は、dev=/dev/diskette というデバイス名でディスクをテストします。/etc/vold.conf ファイルのフロッピーディスクドライブの記述は変更しないでください。SunVTS ソフトウェアは、デフォルトの論理名とし、/etc/vold.conf ファイルのパス名を使用するようにハードコードされています。
環境変数 BYPASS_FS_PROBE がゼロ (0) 以外の値に設定変更されると、BYPASS_FS_PROBE = 0 のときに作成したオプションファイルは読み込めなくなることがあります (オプションファイルについては『SunVTS 4.1 ユーザーマニュアル』を参照してください) 。この場合、テストは失敗して以下のエラーメッセージが表示されます。
SUNWvts.disktest.8088 07/24/98 15:47:22 disktest c0t0d0 FATAL: "Couldn't get file system information on /disktest_s0t0d0s0, statvfs() system call failure error: No such file or directory. |
このようなエラーは、SunVTS は BYPASS_FS_PROBE = 0 のときに作成された定義済みのマウントポイント名を使用しようとするにもかかわらず、BYPASS_FS_PROBE がゼロ以外の値に設定されている間は、それらのマウントポイントが存在しないために発生します。
disktest でオプションファイルを使用する場合は、環境変数 BYPASS_FS_PROBE の値が異なる 2 種類の設定に対して、それぞれ独立したオプションファイルを作成してください。
disktest は、表 11-1 に示すサブテストから構成されています。
表 11-1 disktest のサブテスト
サブテスト |
説明 |
---|---|
Media subtest (媒体サブテスト) |
媒体サブテストは、ディスクに対して書き込み・読み取りを行うことによってディスクの媒体を検査します。このときディスクは、連続するデータの大きな塊として扱われます。 媒体サブテストはスケーラブルテストです。このため、読み取り・書き込みモードでは、同じディスクパーティションに対していくつも媒体サブテストを実行することができます。データが破壊されることのないように、disktest で同時に実行されているインスタンスは、すべて共有メモリーサービスを介して通信します。これにより、媒体サブテストの複数のインスタンスが同じディスクブロックに同時に重ならないようになっています。 |
File System subtest (ファイルシステムサブ テスト) |
ファイルシステムサブテストは、ディスクシステムの完全性を検査します。パーティションをテストする際に、マウントされているかどうかを調べ、パーティションがマウントまたはプリマウントされていない場合は、テストを中止します。ファイルシステムサブテストは、File System File Size に指定されたサイズの一時ファイルを 2 つ開いて、読み取り・書き込みテストを行います。 |
Asynchronous I/O subtest (非同期入出力サブテスト) |
非同期入出力サブテストは Solaris デバイスドライバの非同期読み取り・書き込み機能を使用して、ディスクをテストします。読み取りモードでは、最高 4 つの非同期読み取りパケットを送信し、この入出力処理がすべて終了するのを待って、次の組のパケットを送信します。(選択されたパーティションに対して、各パケットのサイズとオフセットはランダムに割り当てられます。) このプロセスは、指定されたディスク全体に対するテストを終えるまで繰り返されます。読み取り・書き込みモードでは、書き込みのスポットチェックとして、読み取りパケット 4 つにつき書き込みパケットが 1 つ発行されます。データを書き込む前にその場所のデータがバックアップされ、書き込み検査されて、元の状態に戻されます。 |
ダイアログボックスを表示するには、システムマップにあるテスト名を右クリックし、Test Parameter Options を選択します。システムマップにこのテスト名が表示されない場合は、グループツリーを展開すると表示される場合があります。展開しても表示されない場合は、このテストに合ったデバイスがシステムに含まれていない可能性があります。詳細は、『SunVTS 4.1 ユーザーマニュアル』を参照してください。
disktest のオプションメニューは、テストモードによって異なります (表 11-2 を参照)。
表 11-2 disktest のテストオプション
テストモード |
サポート |
説明 |
---|---|---|
接続テスト |
○ |
接続テストモードでは、1 つのディスク装置に対して、disktest のインスタンスを 1 つだけ実行することができます。disktest は UNIX のエラーメッセージを監視し、表示して、エラーの発生を報告します。ハードディスクをオープンして、ディスクの構成を調べ、数ブロックを読み取った後にハードディスクをクローズします。ファイルシステムサブテストは行われません。このモードで書き込みオプションを使用することはできません。 |
機能テスト (オフライン) |
○ |
このテストモードでは、UNIX のエラーメッセージを監視できません。1 つのディスク装置に対しては、複数の disktest インスタンスを実行できます。このモードでは、ファイルシステムのサブテストと媒体のサブテスト、そしてフロッピーディスクドライブのテストを実行できます。 |
機能テスト (オンライン) |
○ |
このテストモードでは、disktest はハードディスクをオープンしてディスクの構成を調べ、媒体サブテストを実行します。その後でランダムシーク検査を行います。ファイルシステムのサブテストは実行されません。テストを終了すると、ディスク装置はクローズされます。このモードでは、書き込みオプションは使用できません。 |
/opt/SUNWvts/bin/disktest 標準引数 -o p=n,-i=n, -w=n,dev=デバイス名,partition=0-7,rawsub=E|D,rawrw=Readonly|Writeread, rawcover=n,rawiosize=2|16|32|64|128|256|512,fssub=E|D, fssize=n,fsiosize=n,fspattern=データパターン
表 11-4 disktest のコマンド行構文
64 ビットのテストは、sparcv9 サブディレクトリに格納されています (/opt/SUNWvts/bin/sparcv9/テスト名) 。このディレクトリにテストが存在しない場合は、そのテストは、32 ビットのテストとしてだけ実行することができます。詳細は、「32 ビットテストと 64 ビットテスト」を参照してください。