(57)【要約】    【課題】  デュアルポートディスク装置のテストを短時間で行えるディスク装置用デバイスドライバを、提供する。    【解決手段】  ディスク装置用デバイスドライバ２０を、コンピュータが備える２つのインタフェース回路を制御可能なプログラムであると共に、それら２つのインタフェース回路を利用してデュアルポートディスク装置６０に対して行うべき処理の内容の指定を受け付けることと、指定されている内容の処理を実行することと、その処理結果を出力する処理を実行することが出来るプログラムとして構成（作成）しておく。    【選択図】  図１０
2005063286.tif 000002
【特許請求の範囲】
【請求項１】
デュアルポートディスク装置との間で通信を行うための少なくとも２つのインタフェース回路を備えたコンピュータにインストールされる，前記デュアルポートディスク装置を利用するための制御を前記２つのインタフェース回路に対して行うディスク装置用ドライバプログラムであって、
前記コンピュータに対して、
前記２つのインタフェース回路のいずれかを利用して実行すべき，前記デュアルポートディスク装置に対する一連の処理の内容、及び、それらの中の幾つかの処理の実行タイミングを指定する処理内容指定情報の記憶を要求する指示を受け付け、受け付けた指示が記憶することを要求している処理内容指定情報を記憶する受付・記憶処理と、
前記受付・記憶処理が記憶している前記処理内容指定情報にてその内容及び実行タイミングが指定されている各処理を前記２つのインタフェース回路を制御することにより指定通りに実行する実行処理と、
前記実行処理が実行した各処理の結果に関する情報を出力する出力処理
とを、実行させることを特徴とするディスク装置用ドライバプログラム。
【請求項２】
前記受付・記憶処理が、前記デュアルポートディスク装置に対して一部の値を異常な値としたコマンドを送信する処理の実行を指定する情報を含む前記処理内容指定情報を受け付け可能な処理であり、
前記実行処理が、前記デュアルポートディスク装置に対して一部の値を異常な値としたコマンドを送信する処理を実行可能な処理である
ことを特徴とする請求項１記載のディスク装置用ドライバプログラム。
【請求項３】
前記デュアルポートディスク装置、及び、前記コンピュータの各インタフェース回路が、いずれも、ＳＣＳＩプロトコルをカプセル化したプロトコルにより通信を行うものである
ことを特徴とする請求項１又は請求項２に記載のディスク装置用ドライバプログラム。
【請求項４】
前記デュアルポートディスク装置、及び、前記コンピュータの各インタフェース回路が、ファイバーチャネルにより接続されるものである
ことを特徴とする請求項１乃至請求項３のいずれかに記載のディスク装置用ドライバプログラム。
【請求項５】
請求項１乃至請求項４のいずれかに記載されたディスク装置用デバイスドライバがインストールされているコンピュータに、
操作者によって入力された，前記２つのインタフェース回路のいずれかを利用して実行すべき，前記デュアルポートディスク装置に対する一連の処理の内容と、それらの中の幾つかの処理の実行タイミングとを指定する情報に基づき、その情報を前記処理内容指定情報として記憶させるための指示を生成して前記受付・記憶処理に受け付けさせる指示生成手段と、
操作者からの指示に基づき前記実行処理を開始させる開始指示手段と、
前記出力処理が出力した情報を操作者に提示する情報提示手段
とを、備える装置として動作させることを特徴とするディスク装置テスト用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デュアルポートディスク装置をテストするためのディスク装置用ドライバプログラムとディスク装置テスト用プログラムとに、関する。
【背景技術】
【０００２】
周知のように、近年、販売されているディスク装置（磁気ディスク装置、光ディスク装置等）の中には、複数台のディスク装置を組み合わせることにより、高速性，大容量性及び高信頼性を実現したディスク装置（いわゆるディスクアレイ装置）や、２台のホストから同時に利用できるようにしたディスク装置（いわゆるデュアルポートディスク装置；例えば、特許文献１参照。）といったように、性能の異なる様々なものが、存在している。
【０００３】
そして、上記のようなディスク装置の開発（或いは修理）時には、ディスク装置の性能をテストすることが行われているが、従来のテスト法は、ディスク装置の性能テストが短時間で完了しないといった問題を有するものとなっていた。
【０００４】
具体的には、従来は、ディスク装置の性能をテストするために、ディスク装置に各種の処理を順次行わせることが出来るアプリケーションプログラム（以下、テスト用プログラムと表記する）を用いてディスク装置を動作させるといった方法が、用いられている。
【０００５】
このテスト用プログラムを用いる方法によれば、テスト用プログラムを用いない場合（一般的なアプリケーションプログラムからディスク装置を利用することによりテストする場合）よりも短時間でテストが完了することにはなる。しかしながら、この方法では、ディスク装置に対して実際にコマンドが送信されるタイミングが、オペレーティングシステム（ＯＳ：operating system）及びデバイスドライバまかせになってしまうことになるので、コマンド間の送信時間（各コマンドの送信タイミング）の指定を必要とするテストを行いたい場合、従来は、所望のタイミングでコマンドが送信されるまで、何度もテストを繰り返さなければならなかった。
【０００６】
特に、従来の方法によるデュアルポートディスク装置のテストは、デュアルポートディスク装置が、２つのポートに同期的にコマンドを受信させたときの動作内容の確認が必要とされる装置であるが故に、極めて長い時間がかかるものとなっていた。
【特許文献１】特開平４−３６４５１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記のような現状を鑑みなされたものであり、本発明の課題は、デュアルポートディスク装置の性能のテストを短時間で行うことが出来るディスク装置用デバイスドライバとディスク装置テスト用プログラムとを、提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明では、デュアルポートディスク装置用のディスク装置用ドライバプログラムを、デュアルポートディスク装置との間で通信を行うための少なくとも２つのインタフェース回路を備えたコンピュータにインストールされる，デュアルポートディスク装置を利用するための制御を２つのインタフェース回路に対して行うドライバプログラムであって、コンピュータに、２つのインタフェース回路のいずれかを利用して実行すべきデュアルポート装置に対する一連の処理の内容と、それらの中の幾つかの処理の実行タイミングとを指定する処理内容指定情報の記憶を要求する指示を受け付け、受け付けた指示が記憶することを要求している処理内容指定情報を記憶する受付・記憶処理と、受付・記憶処理が記憶している処理内容指定情報にてその内容及び実行タイミングが指定されている各処理を２つのインタフェース回路を利用して指定通りに実行する実行処理と、実行処理が実行した各処理の結果に関する情報を出力する出力処理とを実行させることが出来るドライバプログラムとしておく。
【０００９】
このディスク装置用ドライバプログラムがインストールされたコンピュータによるデュアルポートディスク装置の実際のテスト（実行処理の実行）時には、アプリケーションプログラムとＯＳ（デバイスドライバ）との間で指示の授受が行われないことになる。このため、本発明のディスク装置用ドライバプログラムを用いれば、コマンド間の送信時間（各コマンドの送信タイミング）の指定を必要とするテストが、従来のように何度もテストを繰り返さなくても、行えることになる。そして、その結果として、短時間でデュアルポートディスク装置のテストを行えることになる。
【００１０】
本発明のディスク装置用ドライバプログラムを用いてデュアルポートディスク装置のテストを行う際には、ＯＳに付属の機能を利用してディスク装置用ドライバプログラムを動作させても良い。ただし、「コンピュータを、操作者によって入力された，２つのインタフェース回路のいずれかを利用して実行すべきデュアルポートディスク装置に対する一連の処理の内容と、それらの中の幾つかの処理の実行タイミングとを指定する情報に基づき、その情報を処理内容指定情報として記憶させるための指示を生成して受付・記憶処理に受け付けさせる指示生成手段と、操作者からの指示に基づき実行処理を開始させる開始指示手段と、出力処理が出力した情報を操作者に提示する情報提示手段とを備える装置として動作させるディスク装置テスト用プログラム」を用意しておくことが望ましい。何故ならば、そのようなディスク装置テスト用プログラムを用意しておけば、ＯＳに付属の機能を利用する場合よりも、簡単に（操作者が行わなければならない作業量が少ない形で）、デュアルポートディスク装置のテストが行えることになるからである。
【００１１】
また、本発明のディスク装置用ドライバプログラムを実現する際には、受付・記憶処理が、デュアルポートディスク装置に対して一部の値を異常な値としたコマンドを送信する処理の実行を指定する情報を含む処理内容指定情報を受け付け可能な処理となり、実行処理が、デュアルポートディスク装置に対して一部の値を異常な値としたコマンドを送信する処理を実行可能な処理となるようにしておくことが出来る。そして、このような形でディスク装置用ドライバプログラムを実現した場合には、コンピュータからデュアルポートディスク装置へ送信されたコマンドにノイズが乗ってしまった場合等におけるデュアルポートディスク装置の動作内容を確認できるディスク装置用ドライバプログラムが得られることになる。
【００１２】
また、本発明のディスク装置用ドライバプログラムは、どのようなプロトコルにより制御されるデュアルポートディスク装置用のものとして作成しておいても良く、例えば、ファイバーチャネルによりコンピュータと接続されるデュアルポートディスク装置、Ethernet（米国Xerox Corp.の商標）ケーブルによりコンピュータと接続されるデュアルポートディスク装置のように、ＳＣＳＩ（small computer system interface）をカプセル化したプロトコルにより制御されるデュアルポートディスク装置や、ＳＣＳＩケーブルによりコンピュータと接続されるデュアルポートディスク装置用のものとして作成しておくことが、出来る。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００１４】
図１に模式的に示したように、本発明の一実施形態に係るディスク装置テスト用プログラム１０（図では、テスト用プログラム）及びディスク装置用ドライバプログラム２０（図では、デバイスドライバ）は、ファイバーチャネル（ＦＣ）により他機器と接続されるタイプのデュアルポートディスク装置６０をテストするために、２個のホストバスアダプタ５２（ＦＣを介して他機器と通信を行うためのインタフェース回路／ボード）を備えたコンピュータ５０にインストールされるプログラムである。
【００１５】
このディスク装置テスト用プログラム１０（以下、テスト用プログラム１０とも表記する）及びディスク装置用ドライバプログラム２０（以下、デバイスドライバ２０とも表記する）は、デュアルポートディスク装置６０が有している２つのポート（以下、ポートＡ、ポートＢと表記する。）のそれぞれに対するコマンド発行を比較的に短時間の間に行った場合におけるデュアルポートディスク装置６０の動作内容のテスト（以下、同期発行テストと表記する）、アボートコマンド（デュアルポートディスク装置６０内にキューイングされているコマンドの破棄を指示するコマンド）に対するデュアルポートディスク装置６０の動作内容のテスト（以下、アボートテストと表記する）を、簡単に行えるようにするために作成したプログラムである。また、テスト用プログラム１０及びデバイスドライバ２０は、正常ではない内容のフレーム（その一部のデータを破壊したフレーム）受信時におけるデュアルポートディスク装置６０の動作内容のテストも簡単に行えるように作成されたプログラムとなっている。
【００１６】
そして、テスト用プログラム１０及びデバイスドライバ２０は、ＵＮＩＸ用のもの（ＯＳとしてＵＮＩＸが用いられたコンピュータ５０にインストールされるもの）として作成されたプログラムとなっている。なお、ＵＮＩＸは、The Open Groupの商標である。
【００１７】
以上のことを前提に、以下、本実施形態に係るテスト用プログラム１０及びデバイスドライバ２０の内容を、詳細に説明する。
【００１８】
本実施形態に係るテスト用プログラム１０は、デュアルポートディスク装置６０に対して行うテストの内容に関する指定を受け付ける処理、指定された内容のテストをデバイスドライバ２０を利用して行う処理（指定された内容のテストをデバイスドライバ２０に開始させる処理）、テスト結果を表示する処理等をコンピュータ５０に行わせるプログラムである。そして、デバイスドライバ２０は、コンピュータ５０のＯＳを、各種の処理を実行可能なＯＳとして機能させるドライバプログラム（コンピュータ５０を各種のシステムコールを利用可能な装置として動作させるプログラム）であると共に、コンピュータ５０に備えられた２つのホストバスアダプタ５２を制御可能なプログラムとなっている。
【００１９】
まず、図２乃至図７を用いて、デュアルポートディスク装置６０に対して行うテストの内容に関する操作者の指示を受け付けるために、テスト用プログラム１０が行う処理の内容を説明する。
【００２０】
図２に模式的に示したように、テスト用プログラム１０は、メインウィンドウ(Main Window)１１，スキャンウィンドウ(Scan Window)１２，シンクウィンドウ(Sync Window)１３，コマンドウィンドウ(Command Window)１４，エディットウィンドウ(Edit Window)１５，ログウィンドウ(Log Window)１６等を、コンピュータ５０に表示させることが可能なプログラムとなっている。
【００２１】
これらのウィンドウのうち、メインウィンドウ１１は、起動されたテスト用プログラム１０が最初に表示する，図３に示した構成のウィンドウである。
【００２２】
このメインウィンドウ１１上の"Config"ボタン，"Scan"ボタン，"Buffer"ボタン，"Log"ボタン，"Trace"ボタン，"Statistic"ボタンは、同名或いはほぼ同名のウィンドウ（図２参照）を表示させるためのボタン（その押下時にテスト用プログラム１０が対応するウィンドウを表示することになるボタン）である。"Stop"ボタン，"Break"ボタン，"All Break"ボタン，"All Stop"ボタンは、テスト用プログラム１０（デバイスドライバ２０）が実行中の，１つ或いは複数（全て）のタスク（詳細は後述）を、終了，中断させるためのボタンである。"ReStart"ボタン，"All Restart"ボタンは、中断中の，１つ或いは全てのタスクをデバイスドライバ２０に続行させるためのボタンである。
【００２３】
タスク情報表示領域１１１は、既に終了しているタスクや実行中／中断中のタスクに関する情報が示される領域である。このタスク情報表示領域１１１は、中断或いは続行させるタスクを選択するための領域ともなっている。なお、図３に示したメインウィンドウ１１は、タスク情報表示領域１１１に各種の情報が示されているものであるが、テスト用プログラム１０の起動直後に表示されるメインウィンドウ１１は、タスク情報表示領域１１１に何も表示されていないものである。
【００２４】
スキャンウィンドウ１２は、図４に示したように、"Single"ボタン１２１，"Dual"ボタン１２２，"Port A"ボタン１２３，"Port B"ボタン１２４，ディスク情報表示領域１２５等を備えたウィンドウである。このスキャンウィンドウ１２のディスク情報表示領域１２５は、コンピュータ５０と接続されている各デュアルポートディスク装置６０に関する情報（シリアルナンバ、ベンダー名等）が示される領域である。このディスク情報表示領域１２５は、テストを行うデュアルポートディスク装置６０を指定するための領域ともなっている。
【００２５】
"Single"ボタン１２１は、デュアルポートディスク装置６０の一方のポートのみを使用するテストを行うことをテスト用プログラム１０に対して通知するためのボタンである。そして、"Port A"ボタン１２３、"Port B"ボタン１２４は、当該一方のポートを、ポートＡ、ポートＢのいずれにするかを指定するためのボタンであり、"Port A"ボタン１２３が押下された場合、テスト用プログラム１０は、ポートＡに対するテスト内容を設定するためのコマンドウィンドウ１４（図５；詳細は後述）と、コマンドウィンドウ１４内に示されるコマンドリストの内容を編集するためのエディットウィンドウ１５（図６；詳細は後述）とを、表示する。また、"Port B"ボタン１２４が押下された場合、テスト用プログラム１０は、ポートＢに対するテスト内容を設定するためのコマンドウィンドウ１４と、そのコマンドウィンドウ１４内に示されるコマンドリストの内容を編集するためのエディットウィンドウ１５とを、表示する。
【００２６】
"Dual"ボタン１２２は、同期発行テストを行うことをテスト用プログラム１０に対して通知するためのボタンである。この"Dual"ボタン１２２が選択されると、テスト用プログラム１０は、表示中のスキャンウィンドウ１２を、"Port A"ボタン１２３及び"Port B"ボタン１２４の代わりに"PortA＆B,timing"ボタンが示されているものに変更する。そして、その"PortA＆B,timing"ボタンが押下された場合、テスト用プログラム１０は、ポートＡに対するテスト内容を設定するためのコマンドウィンドウ１４と、ポートＢに対するテスト内容を設定するためのコマンドウィンドウ１４と、エディットウィンドウ１５と、シンクウィンドウ１３（図７；詳細は後述）とを、表示する。
【００２７】
"Port A"ボタン１２３等の押下により表示されるコマンドウィンドウ１４は、図５に示したように、タスク規定情報入力欄１４１，"Exec"ボタン１４２、コマンドリスト表示領域１４３等を備えたウィンドウである。
【００２８】
このコマンドウィンドウ１４上のコマンドリスト表示領域１４３は、設定されているコマンドリストの内容が示される領域である。ここで、コマンドリストとは、コマンド（ＣＤＢ[Command Descriptor Block ]情報自体や，Task Management，Primitive Sequence，Primitive Signalに関する処理の実行を指示するためのコマンド）と、そのコマンドについて設定されているオプション情報と、そのコマンドのＷ／Ｒ種別及び転送データサイズに関する情報であるタイプ情報と、コマンド番号(本実施形態では、000〜127の数値)とからなる情報のリストのことである。なお、オプション情報とは、「対応するコマンドの送信後にアボートコマンドを送信させる」、「対応するコマンド（フレーム）の送信時にその内容の一部を破壊する」等、対応するコマンドの処理時に追加的に行われるべき処理の内容を規定する情報のことである。また、図５におけるコマンド番号領域１４２ａ，オプション情報領域１４２ｂ，ＣＤＢ領域１４２ｃ，タイプ情報領域１４２ｄに示されている情報が、それぞれ、コマンド番号，オプション情報，コマンド，タイプ情報となっている。
【００２９】
タスク規定情報入力欄１４１は、テスト用プログラム１０（及びデバイスドライバ２０）に実行させるタスクの内容を規定する情報を操作者が入力すべき欄であり、"Exec"ボタン１４２は、タスク規定情報入力欄１４１内に入力されている情報により規定されている内容のタスクをテスト用プログラム１０（及びデバイスドライバ２０）に開始させるためのボタンである。そして、本実施形態に係るテスト用プログラム１０は、このタスク規定情報入力欄１４１に、コマンドリスト内の幾つかのコマンド番号を含む所定形式の情報を入力することにより、タスクの内容を指定できるプログラムとなっている。具体的には、テスト用プログラム１０は、"ex 0"、"ex 0,2,3"といった情報をタスク規定情報入力欄１４１に入力することにより、それぞれ、コマンド番号"000"のコマンドのみの実行、コマンド番号"000"、"002"、"003"の３コマンドの実行を指定でき、"exm 0,2,3"といった情報をタスク規定情報入力欄１４１に入力することにより、コマンド番号"000"、"002"、"003"の３コマンドを終了待ちをせずに実行することを指定できるプログラムとなっている。
【００３０】
要するに、本テスト用プログラム１０は、操作者が、実行させるタスクの内容を指定する作業を行う前に、コマンドリストを設定しておくことが必要とされるプログラムとなっている。そして、テスト用プログラム１０が表示するエディットウィンドウ１５は、このコマンドリストを作成・編集するためのウィンドウとなっている。
【００３１】
より具体的には、このエディットウィンドウ１５としては、コマンドの種類別に、設定できる情報の種類及び数が異なる６種のタイプのもの（図２参照）が、用意されている。
【００３２】
例えば、ＣＤＢ(Command Descriptor Block)情報を設定するためのエディットウィンドウ１５は、図６に示した構成のウィンドウとなっている。
【００３３】
このエディットウィンドウ１５上のＣＤＢ情報設定欄１５１は、コマンドリストに含めるＣＤＢ情報（デュアルポートディスク装置６０にリード動作、ライト動作等を行わせるための情報）を設定するための欄である。"ABTS"ボタン１５２は、ＣＤＢ情報設定欄１５１に設定されたコマンドのオプション情報を、「対応するコマンドの送信後にアボートコマンドを送信させる」ことを指示する情報とするためのボタンである。"Frame op"ボタン１５３は、ＣＤＢ情報設定欄１５１に設定されたコマンドのオプション情報を、「対応するコマンド（フレーム）の送信時にその内容の一部を破壊する」ことを指示する情報とするためのボタンである。
【００３４】
そして、エディットウィンドウ１５上の"Set & Down"ボタン，"Set & Up"ボタン，"Set"ボタンは、ＣＤＢ情報設定欄１５１等に設定されている情報を、実際にコマンドリストの内容に反映させるためのボタンとなっている。なお、コマンドリストの内容更新をさせるためのボタンとして、３つのボタンが設けられているのは、コマンドリストの内容更新後に表示させるエディットウィンドウ１５の内容を指定できるようにするためである。
【００３５】
要するに、デュアルポートディスク装置６０の一方のポートのみを使用するテストを行う場合、操作者は、スキャンウィンドウ１２（図４）を表示させてテストを行うデュアルポートディスク装置６０を指定する作業、ＣＤＢ情報用のエディットウィンドウ１５（図６）に代表される各種のエディットウィンドウ１５とコマンドウィンドウ１６（図５）とを利用してコマンドリストを作成する作業、タスク規定情報入力欄１４１に"ex 0,1,2,3"といった情報を入力する作業等を行うことによって、テスト内容を指定する。なお、コマンドウィンドウ１６（図５）は、"File"メニューを操作すると、コマンドリスト表示領域１４３内に表示されている情報（コマンドリスト）をセーブさせる指示や、セーブしておいたコマンドリストを読み込む指示を、操作者が出せるウィンドウとなっている。すなわち、上記した作業のうち、エディットウィンドウ１５を利用したコマンドリストの作成作業は、省略されることがある。
【００３６】
一方、同期発行テストを行う場合（コマンドウィンドウ１４上の"Dual"ボタン１２２を選択した場合）には、シンクウィンドウ１３も利用してテスト内容の設定を行う。
【００３７】
このシンクウィンドウ１３は、図７に示したように、ポートＡ用処理内容規定情報入力欄１３１、ポートＢ用処理内容規定情報入力欄１３２、"Exec"ボタン１３３、"Primary Port A"ボタン１３４、"Primary Port B"ボタン１３５、遅延時間設定欄１３６等を備えたウィンドウである。
【００３８】
このシンクウィンドウ１３上のポートＡ用処理内容規定情報入力欄１３１は、ポートＡ用のコマンドリスト（図５参照）内の幾つかのコマンド番号からなる情報（"0"，"0,1,2,3"等）が、ポートＡに関して行うべき処理の内容を規定する情報として、操作者によって入力される欄である。ポートＢ用処理内容規定情報入力欄１３２は、ポートＢ用のコマンドリスト内の幾つかのコマンド番号からなる情報が、ポートＢに関して行うべき処理の内容を規定する情報として、操作者によって入力される欄である。
【００３９】
"Primary Port A"ボタン１３４、"Primary Port B"ボタン１３５は、ポートＡに対するコマンド送信、ポートＢに対するコマンド送信のどちらを基準として同期発行テストを行うかを指定するためのボタンである。遅延時間設定欄１３４は、"Primary Port A"ボタン１３４／"Primary Port B"ボタン１３５により基準とすることが指定されているポートに対するコマンド送信後、何秒後（通常、１msec以下）に、他方のポートに対するコマンド送信を行わせるかを指定するための欄である。なお、遅延時間設定欄１３４が、"Start"値入力欄と、"End"値入力欄、"Step"値入力欄とで構成されていることから推定されるように、本テスト用プログラム１０は、コマンドの同期発行を遅延時間を順次変えた形で繰り返し行わせることが出来るプログラムとなっている。
【００４０】
すなわち、同期発行テストは、どのようなタイミングでポートＡとポートＢとにどのようなコマンドを送信するかを指定することが必要なテストであるので、同期発行テストを行う場合には、このシンクウィンドウ１３も利用して、それらの設定が行われる。なお、詳細説明は省略するが、本テスト用プログラム１０は、同期発行テスト以外のテストについても、コマンドの発行間隔を指定できるプログラムとなっている。
【００４１】
次に、上記のような各種ウィンドウを利用してデュアルポートディスク装置６０に対して行うテストの内容が指定された後、そのテストの開始が実際に指示された場合におけるコンピュータ５０（テスト用プログラム１０及びデバイスドライバ２０）の動作を説明することにする。
【００４２】
まず、操作者が、デュアルポートディスク装置６０のポートＡに関するアボートテストを行うために、コマンドウィンドウ１４（図５）のタスク規定情報入力欄１４１に、オプション情報が特に設定されていない幾つかのコマンドに関するコマンド番号と、「対応するコマンドの送信後にアボートコマンドを送信させる」ことを意味するオプション情報が設定されているコマンドに関するコマンド番号とを並べた情報を入力した後、"Exec"ボタン１４２を押下した場合におけるコンピュータ５０の動作を、説明する。
【００４３】
この場合、コンピュータ５０では、図８に示した手順の処理が行われる。なお、この図８に示した手順の処理が行われるのは、実際には、テスト対象となっているデュアルポートディスク装置６０がいずれであるか（スキャンウィンドウ１２の設定内容）、各ホストバスアダプタ５２とポートとの関係（Configuration Window（図２参照）の設定内容）等を、デバイスドライバ２０に通知するための処理、所定の処理（後述する抑止状態解除指示／同期処理開始指示を受け取った際に実行する処理）の完了をシグナル（ＵＮＩＸ系のＯＳにて割込のために他のプロセスに送られる情報)によりテスト用プログラム１０に通知することを指示する処理等が、行われた後である。また、以下では、説明の便宜上、テスト用プログラム１０により実行される処理の内容を、「テスト用プログラム１０がデバイスドライバ２０に対して〜させるための指示を出す」等と表記するが、実際にテスト用プログラム１０により実行される処理は、デバイスドライバ２０のインストールにより利用が可能となった各種のシステムコール（ioctl()）を発行する処理である。
【００４４】
すなわち、テスト用プログラム１０は、まず、所定のシステムコールを行うことにより、デバイスドライバ２０に対してコマンド発行抑止指示を出す。ここで、コマンド発行抑止指示とは、デバイスドライバ２０に、その後にテスト用プログラム１０から渡される指示（コマンド）を即座に実行しない（送信が指示されたコマンドの発行準備のみを行う）抑止状態での動作（Ｓ１）を開始させるための指示のことである。
【００４５】
次いで、テスト用プログラム１０は、タスク規定情報入力欄１４１に入力されている各コマンド番号で識別されるコマンド及びオプション情報をコマンドリストから順次読み出し、オプション情報が特に設定されていない各コマンドについては、当該コマンドをデュアルポートディスク装置６０へ送信させるためのコマンド発行指示をデバイスドライバ２０に対して出す処理を開始する。
【００４６】
この処理により出されたコマンド発行指示を受け取ったデバイスドライバ２０は、そのコマンド発行指示に対して付けた識別情報であるtagidをテスト用プログラム１０に通知する処理と、そのコマンド発行指示により発行が指示されているコマンドをデュアルポートディスク装置６０（この場合、ポートＡ）に対して即座に送信できる状態とするためのコマンド発行準備処理（Ｓ２，Ｓ３，Ｓ４）とを行う。
【００４７】
また、テスト用プログラム１０は、上記処理の処理対象となったコマンドが、オプション情報が設定されているものであった場合には、そのオプション情報に応じた処理を行う。具体的には、テスト用プログラム１０は、「対応するコマンドの送信後にアボートコマンドを送信させる」ことを意味するオプション情報が設定されているコマンドについては、デバイスドライバ２０に対して、そのアボート対象コマンドをデュアルポートディスク装置６０に送信させるためのコマンド発行指示と、当該アボート対象コマンドを破棄させるためのアボートコマンドの発行を指示するアボートコマンド発行指示とを出す。なお、テスト用プログラム１０は、「対応するコマンドの送信時にその内容の一部を破壊する」ことを意味するオプション情報が設定されているコマンドについては、デバイスドライバ２０に対して、送信すべきコマンドとそのコマンドの送信時に行うべき処理内容を指定する情報とからなる指示を出す。
【００４８】
そして、アボートコマンド発行指示を出したテスト用プログラム１０は、デバイスドライバ２０に対して、抑止状態の解除を指示するために、抑止状態解除指示を出す。
【００４９】
この抑止状態解除指示を受け取ったデバイスドライバ２０は、発行準備済みのコマンド（通常の幾つかのコマンドとアボート）を順次デュアルポートディスク装置６０に対して発行し、各コマンドに対してデュアルポートディスク装置６０が返送してくるレスポンスを記憶する処理（Ｓ５）を開始する。そして、デバイスドライバ２０は、当該処理が完了したときには、そのことをシグナルにてテスト用プログラム１０に通知する。
【００５０】
このシグナルを受け取ったテスト用プログラム１０は、デュアルポートディスク装置６０の利用を終了させるための終了指示と、デュアルポートディスク装置６０から受け取ったレスポンス群を出力させるための処理結果要求指示とを、デバイスドライバ２０に対して出す。その後、テスト用プログラム１０は、処理結果要求指示に対する応答としてデバイスドライバ２０から受け取ったレスポンス群を、デバイスドライバ２０に実行させた各処理との対応関係が分かる形で記憶する。
【００５１】
そして、テスト用プログラム１０は、メインウィンドウ１１（図３）上の"Log"ボタンが押下された場合には、デバイスドライバ２０から受け取っているレスポンス群等に基づき、図９に示したような構成の"Log"ウィンドウ１６を表示することにより、操作者に対してテスト結果(アボートコマンドが正確に処理されたか否か等)を提示する。なお、図９に示してある"Log"ウィンドウ１６は、より複雑な内容のテストを行った後に表示されるものである。
【００５２】
次に、ポートＡに対してコマンドを送信し、その後、所定時間後に、ポートＢに対してコマンドを送信することを指示した場合を例に、同期発行テスト時におけるコンピュータ５０の動作を、説明する。
【００５３】
この場合、コンピュータ５０では、テスト用プログラム１０とデバイスドライバ２０とにより、図１０に示した手順の処理が行われる。なお、この図１０にその手順を示した処理も、図８にその手順を示した処理と同様に、テスト対象となっているデュアルポートディスク装置６０がいずれであるか、各ホストバスアダプタ５２とポートとの関係等を、デバイスドライバ２０に通知するための処理、所定の処理の完了をシグナルによりテスト用プログラム１０に通知することを指示する処理等が、行われた後に実行される処理となっている。
【００５４】
すなわち、この場合、テスト用プログラム１０は、まず、デバイスドライバ２０に対してポートＡ用同期処理登録指示を発行する。ここで、ポートＡ用同期処理登録指示とは、ポートＡに対して発行すべきコマンドと、そのコマンドが同期発行テストを行うためのコマンドであることを示す情報とを含む指示のことである。
【００５５】
そして、このポートＡ用同期処理登録指示を受け取ったデバイスドライバ２０は、その指示に対して付けたtagidをテスト用プログラム１０に通知する処理と、その指示により発行が指示されているコマンドをデュアルポートディスク装置６０のポートＡに対して即座に送信できるようにするためのコマンド発行準備処理（Ｓ１１）とを行う。
【００５６】
ポートＡ用同期処理登録指示に対するこのtagidを受け取ったテスト用プログラム１０は、デバイスドライバ２０に対してポートＢ用同期処理登録指示を出す。このポートＢ用同期処理登録指示も、ポートＡ用同期処理登録指示と同様に、ポートＡに対して発行すべきコマンドと、そのコマンドが同期発行テストを行うためのコマンドであることを示す情報とを含む指示となっている。そして、このポートＢ用同期処理登録指示を受け取ったデバイスドライバ２０は、その指示に対して付けたtagidをテスト用プログラム１０に通知する処理と、その指示により発行が指示されているコマンドをデュアルポートディスク装置６０のポートＢに対して即座に送信できるようにするためのコマンド発行準備処理（Ｓ１２）とを行う。
【００５７】
一方、ポートＢ用同期処理登録指示に対するtagidを受け取ったテスト用プログラム１０は、デバイスドライバ２０に対して、遅延時間を指定する情報といずれのポートに対するコマンド送信を基準とするかを示す情報とを含む同期処理開始指示（シンクウィンドウ１３の設定内容に応じた内容の指示）を出す。
【００５８】
この同期処理開始指示を受け取ったデバイスドライバ２０は、基準とすることが指定されているポートに対するコマンド発行（Ｓ１３）を行った後、指定されている遅延時間の経過を待ってから、ポートＢに対するコマンド発行（Ｓ１４）を行う処理を、行う。
【００５９】
そして、当該処理が完了したときに、デバイスドライバ２０は、アボートテスト時（図８参照）と同様に、そのことをシグナルにてテスト用プログラム１０に通知する。
【００６０】
このシグナルを受け取ったテスト用プログラム１０は、アボートテスト時と同様に、デュアルポートディスク装置６０の利用を終了させるための終了指示と、デュアルポートディスク装置６０から受け取ったレスポンス群を出力させるための処理結果要求指示とを、デバイスドライバ２０に対して出す。その後、テスト用プログラム１０は、処理結果要求指示に対する応答としてデバイスドライバ２０から受け取ったレスポンス群を、デバイスドライバ２０に実行させた各処理とのに対応関係が分かる形で記憶し、メインウィンドウ１１（図３）上の"Log"ボタンが押下された場合には、それらのレスポンス群等に基づき、図９に示したような構成の"Log"ウィンドウ１６を表示することにより、操作者に対してテスト結果を提示する。
【００６１】
より複雑な内容のテスト時の動作も、本質的には、上記したものと同じものである（場合によっては、上記した２処理を組み合わせたものとなる）ので、詳細説明は省略することにする。
【００６２】
以上、説明したように、本実施形態に係るディスク装置用ドライバプログラム２０（デバイスドライバ２０）は、自プログラムがインストールされた、２つのホストバスアダプタ５２（インタフェース回路に相当）を備えたコンピュータ５０を、アプリケーションプログラム（ディスク装置テスト用プログラム１０）とＯＳ（デバイスドライバ２０）との間で指示の授受が行われない形で、デュアルポートディスク装置６０の２つのポートに関するテストを行ってしまう装置として動作させることが出来るプログラムとなっている。従って、このディスク装置用ドライバプログラム２０を用いれば、デュアルポートディスク装置６０に対する、コマンド間の送信時間（各コマンドの送信タイミング）の指定を必要とする各種のテストが、従来のように何度もテストを繰り返さなくても（従来よりも短時間で）、行えることになる。また、デュアルポートディスク装置に対して一部の値を異常な値としたフレーム（コマンド）を送信させることが出来るものともなっているので、本実施形態に係るディスク装置用ドライバプログラム２０を用いれば、デュアルポートディスク装置６０へ送信されたコマンドにノイズがのってしまった場合におけるデュアルポートディスク装置６０の動作をテストできることにもなる。
【００６３】
＜変形形態＞
上記したディスク装置用ドライバプログラム２０及びディスク装置テスト用プログラム１０は、各種の変形が可能である。例えば、ディスク装置用ドライバプログラム２０は、ファイバーチャネルにより他機器と接続されるデュアルポートディスク装置６０用のプログラムであったが、ディスク装置用ドライバプログラム２０を、ＳＣＳＩケーブルにより他機器と接続されるタイプのデュアルポートディスク装置や、Ethernetケーブルにより他機器と接続されるタイプのデュアルポートディスク装置用のものに変形しても良い。
【００６４】
また、ディスク装置テスト用プログラム１０を、上記したものとは構成の異なるウィンドウを表示するものに変形しても良い。また、ディスク装置用ドライバプログラム２０及びディスク装置テスト用プログラム１０を、ＵＮＩＸ以外のＯＳ用のものに変形しても良いことや、ディスク装置用ドライバプログラム２０及びディスク装置テスト用プログラム１０を、上記した全ての機能な有するものとしておかなくても良いことなどは、当然のことである。
【００６５】
（付記１）  デュアルポートディスク装置との間で通信を行うための少なくとも２つのインタフェース回路を備えたコンピュータにインストールされる，前記デュアルポートディスク装置を利用するための制御を前記２つのインタフェース回路に対して行うディスク装置用デバイスドライバであって、
前記コンピュータに対して、
前記２つのインタフェース回路のいずれかを利用して実行すべき前記ディスク装置に対する一連の処理の内容と各処理の実行タイミングとを指定する処理内容指定情報の記憶を要求する指示を受け付け、受け付けた指示が記憶することを要求している処理内容指定情報を記憶する受付・記憶処理，
前記受付・記憶処理が記憶している前記処理内容指定情報にてその内容及び実行タイミングが指定されている各処理を前記２つのインタフェース回路を利用して指定通りに実行する実行処理と、
前記実行処理が実行した各処理の結果に関する情報を出力する出力処理
とを実行させることを特徴とするディスク装置用ドライバプログラム。
【００６６】
（付記２）  前記受付・記憶処理が、前記ディスク装置に対して一部の値を異常な値としたコマンドを送信する処理の実行を指定する情報を含む前記処理内容指定情報を受け付け可能な処理であり、
前記実行処理が、前記ディスク装置に対して一部の値を異常な値としたコマンドを送信する処理を実行可能な処理である
ことを特徴とする付記１記載のディスク装置用ドライバプログラム。
【００６７】
（付記３）  前記デュアルポートディスク装置、及び、前記コンピュータの各インタフェース回路が、いずれも、ＳＣＳＩプロトコルをカプセル化したプロトコルにより通信を行うものである
ことを特徴とする付記１又は付記２に記載のディスク装置用ドライバプログラム。
【００６８】
（付記４）  前記デュアルポートディスク装置、及び、前記コンピュータの各インタフェース回路が、ファイバーチャネルにより接続されるものである
ことを特徴とする付記１乃至付記３のいずれかに記載のディスク装置用ドライバプログラム。
【００６９】
（付記５）  付記１乃至付記４のいずれかに記載されたディスク装置用デバイスドライバがインストールされているコンピュータに、
操作者によって入力された，前記ディスク装置に対して前記インタフェース回路を利用して実行すべき一連の処理の内容と各処理の実行タイミングとを指定する情報に基づき、その情報を前記処理内容指定情報として記憶させるための指示を生成して前記受付・記憶処理に受け付けさせる指示生成手段と、
操作者からの指示に基づき前記実行処理を開始させる開始指示手段と、
前記出力処理が出力した情報を操作者に提示する情報提示手段
とを備える装置として動作させることを特徴とするディスク装置テスト用プログラム。
【００７０】
（付記６）  デュアルポートディスク装置との間で通信を行うための少なくとも２つのインタフェース回路を備えたコンピュータを用いて前記デュアルポートディスク装置をテストするためのディスク装置テスト方法であって、
前記コンピュータに、
前記コンピュータに対して、
前記２つのインタフェース回路のいずれかを利用して実行すべき前記ディスク装置に対する一連の処理の内容と各処理の実行タイミングとを指定する処理内容指定情報の記憶を要求する指示を受け付け、受け付けた指示が記憶することを要求している処理内容指定情報を記憶する受付・記憶処理，
前記受付・記憶処理が記憶している前記処理内容指定情報にてその内容及び実行タイミングが指定されている各処理を前記２つのインタフェース回路を利用して指定通りに実行する実行処理，及び，
前記実行処理が実行した各処理の結果に関する情報を出力する出力処理
を実行させるデバイスドライバを、インストールしておくと共に、
前記コンピュータ上で、
前記コンピュータを、
操作者によって入力された，前記ディスク装置に対して前記インタフェース回路を利用して実行すべき一連の処理の内容と各処理の実行タイミングとを指定する情報に基づき、その情報を前記処理内容指定情報として記憶させるための指示を生成して前記受付・記憶処理に受け付けさせる指示生成手段，
操作者からの指示に基づき前記実行処理を開始させる開始指示手段，及び，
前記出力処理が出力した情報を操作者に提示する情報提示手段
を備える装置として動作させるディスク装置テスト用プログラムを、実行させることにより、前記デュアルポートディスク装置をテストすることを特徴とするディスク装置テスト方法。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態に係るディスク装置テスト用プログラム及びディスク装置用デバイスドライバの使用形態の説明図である。
【図２】ディスク装置テスト用プログラムが表示する各種ウィンドウの関係を示した図である。
【図３】ディスク装置テスト用プログラムが表示するメインウィンドウの説明図である。
【図４】ディスク装置テスト用プログラムが表示するスキャンウィンドウの説明図である。
【図５】ディスク装置テスト用プログラムが表示するコマンドウィンドウの説明図である。
【図６】ディスク装置テスト用プログラムが表示するエディットウィンドウの説明図である。
【図７】ディスク装置テスト用プログラムが表示するシンクウィンドウの説明図である。
【図８】ディスク装置テスト用プログラム及びデバイスドライバにより行われる処理の内容を説明するためのシーケンス図である。
【図９】ディスク装置テスト用プログラムが表示するログウィンドウの説明図である。
【図１０】ディスク装置テスト用プログラム及びデバイスドライバにより行われる処理の内容を説明するためのシーケンス図である。
【符号の説明】
【００７２】
１０  ディスク装置テスト用プログラム
１１  メインウィンドウ
１２  スキャンウィンドウ
１３  シンクウィンドウ
１４  コマンドウィンドウ
１５  エディットウィンドウ
１６  ログウィンドウ
２０  ディスク装置用デバイスドライバ
５０  コンピュータ
５２  ホストバスアダプタ
６０  デュアルポートディスク装置
【図１】
2005063286.tif 000003
【図２】
2005063286.tif 000004
【図３】
2005063286.tif 000005
【図４】
2005063286.tif 000006
【図５】
2005063286.tif 000007
【図６】
2005063286.tif 000008
【図７】
2005063286.tif 000009
【図８】
2005063286.tif 000010
【図９】
2005063286.tif 000011
【図１０】
2005063286.tif 000012