(57)【要約】【課題】容易且つ適切にリトライ回数を変更でき、パスの交代を適切に行うことができるようにする。【解決手段】所定の論理ユニットに対するデータのアクセスを制御する計算機１０において、プロセッサ１１は、論理ユニット２１に対する一のパスによるデータのアクセスが完了しない場合に、論理ユニット２１に対するパスを切り替える制御を行い、ＳＣＳＩドライバ１０６を実行することにより、論理ユニット２１との間でＳＣＳＩに従って通信制御を行うようになっており、論理ユニット２１に対するパスを切り替える基準となる時間であるパス交代時間を受け付け、パス交代時間に基づいて、一のパスによるデータのアクセスにおける上限のリトライ回数を決定し、ＳＣＳＩドライバ１０６による一のパスによる上限のリトライ回数が決定されたリトライ回数となるように制御するように構成する。【選択図】図１
2020067899.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ部を備え、所定の論理ユニットに対するデータのアクセスを制御するデータ処理装置であって、
前記プロセッサ部は、
前記論理ユニットに対する一のパスによるデータのアクセスが完了しない場合に、前記論理ユニットに対するパスを切り替える制御を行い、
ＳＣＳＩドライバを実行することにより、前記論理ユニットとの間でＳＣＳＩに従って通信制御を行うようになっており、
前記論理ユニットに対するパスを切り替える基準となる時間であるパス交代時間を受け付け、
前記パス交代時間に基づいて、前記一のパスによるデータのアクセスにおける上限のリトライ回数を決定し、
前記ＳＣＳＩドライバによる前記一のパスによる上限のリトライ回数が決定された前記リトライ回数となるように制御する
データ処理装置。
【請求項２】
前記ＳＣＳＩドライバは、設定されたアクセスに利用しているパスにおけるリトライ回数の上限値であるリトライ上限値と、実行したリトライ回数であるリトライ実行済み回数とにより、通信制御を行うように構成されており、
前記プロセッサは、
前記決定したリトライ回数となるように、前記リトライ実行済み回数を調整する
請求項１に記載のデータ処理装置。
【請求項３】
前記ＳＣＳＩドライバは、アクセスの要求を受けてからコマンドを送信できるようになるまでの時間に対応するコマンド割当時間と、規定回数のＳＣＳＩコマンドのタイムアウト時間との合計時間に基づいて、利用しているパスにおけるリトライを判定するように構成されており、
前記プロセッサ部は、
前記合計時間が、前記決定したリトライ回数に対応する時間となるように、前記コマンド割当時間を調整する
請求項１または請求項２に記載のデータ処理装置。
【請求項４】
前記プロセッサ部は、
前記論理ユニットに対するリードにおけるパス交代時間であるリード用パス交代時間と、前記論理ユニットに対するライトにおけるパス交代時間であるライト用パス交代時間とを受け付け、
前記リード用パス交代時間に基づいて、リードにおける上限のリトライ回数であるリード時リトライ回数を決定し、前記ライト用パス交代時間に基づいて、ライトにおける上限のライト回数であるライト時リトライ回数を決定し、
前記ＳＣＳＩドライバによる上限のリトライ回数が、リード時には、前記リード時リトライ回数となるように制御し、ライト時には、前記ライト時リトライ回数となるように制御する
請求項１から請求項３のいずれか一項に記載のデータ処理装置。
【請求項５】
前記プロセッサ部は、
前記ＳＣＳＩドライバによる一回のアクセスにおけるタイムアウト時間を受け付け、
前記タイムアウト時間を用いて前記リトライ回数を決定する
請求項１から請求項４のいずれか一項に記載のデータ処理装置。
【請求項６】
前記プロセッサ部は、
前記論理ユニットごとに、前記パス交代時間を受け付け、
前記論理ユニットごとに、前記リトライ回数を決定する
請求項１から請求項５のいずれか一項に記載のデータ処理装置。
【請求項７】
前記プロセッサ部は、
一回のアクセスをリセットするために要するリセットタイムアウト時間と、前記パス交代時間とを用いて、前記リトライ回数を決定する
請求項１から請求項６のいずれか一項に記載のデータ処理装置。
【請求項８】
前記ＳＣＳＩドライバは、ＳＣＳＩデバイスハンドラーを前記プロセッサ部に実行させるように構成され、
前記ＳＣＳＩデバイスハンドラーは、前記プロセッサ部に、前記パス交代時間に基づいて、前記一のパスによるアクセスにおける上限のリトライ回数を決定させ、前記ＳＣＳＩドライバにおける前記一のパスによる上限のリトライ回数が決定された前記リトライ回数となるように制御させる
請求項１から請求項７のいずれか一項に記載のデータ処理装置。
【請求項９】
所定の論理ユニットに対するデータのアクセスを制御するデータ処理装置によるデータ処理方法であって、
前記論理ユニットに対する一のパスによるデータのアクセスが完了しない場合に、前記論理ユニットに対するパスを切り替える制御を行い、
ＳＣＳＩドライバを実行することにより、前記論理ユニットとの間でＳＣＳＩに従って通信制御を行うようになっており、
前記論理ユニットに対するパスを切り替える基準となる時間であるパス交代時間を受け付け、
前記パス交代時間に基づいて、前記一のパスによるデータのアクセスにおける上限のリトライ回数を決定し、
前記ＳＣＳＩドライバにおける前記一のパスによる上限のリトライ回数が決定された前記リトライ回数となるように制御する
データ処理方法。
【請求項１０】
所定の論理ユニットに対するデータのアクセスを制御するデータ処理装置を構成するコンピュータに実行させるデータ処理プログラムであって、
前記コンピュータは、前記論理ユニットに対する一のパスによるデータのアクセスが完了しない場合に、前記論理ユニットに対するパスを切り替える制御を行い、ＳＣＳＩドライバを実行することにより、前記論理ユニットとの間でＳＣＳＩに従って通信制御を行うように構成され、
前記コンピュータに、
前記論理ユニットに対するパスを切り替える基準となる時間であるパス交代時間を受け付けさせ、
前記パス交代時間に基づいて、前記一のパスによるデータのアクセスにおける上限のリトライ回数を決定させ、
前記ＳＣＳＩドライバにおける前記一のパスによる上限のリトライ回数が前記リトライ回数となるように制御させる
データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、論理ユニットに対するデータのアクセスを制御するデータ処理装置等に関する。
【背景技術】
【０００２】
従来、計算機にＳＡＮ（Storage Area Network）を介してストレージ装置を接続し、計算機からストレージ装置の論理ユニット（ボリューム）にアクセスすることのできる計算機システムが知られている。
【０００３】
このような計算機システムでは、計算機と、ストレージ装置との間のインターフェースが、例えば、ＳＣＳＩ（Small Computer System Interface）である場合には、計算機は、ＯＳ（Operating system）に標準的に備えられているＳＣＳＩドライバ（ＯＳ標準ＳＣＳＩドライバ）を使用して、ストレージ装置にアクセスするように構成されることがある。例えば、ＯＳ標準ＳＣＳＩドライバは、論理ユニットにアクセスできない場合には、予め固定的に定められたリトライ回数（例えば、５回）内で、アクセスをリトライするように実装されている。
【０００４】
また、このような計算機システムでは、計算機と、ストレージ装置の論理ユニットとの間を複数パスで接続可能にし、或るパスでアクセスできない場合に、アクセスするパスを他のパスに交代することで、論理ユニットへのアクセスを可能にすることが行われている。
【０００５】
例えば、ハードディスク装置内における自身のハードディスクに対するアクセスに関する技術として、ホストコンピュータが指示した許容時間内で効率よく処理できるように、リトライ処理順序、及び回数を変更する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−６５７７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、計算機とストレージ装置の論理ユニットとの間を複数のパスで接続可能にした構成において、計算機が、ストレージ装置との間の通信にＯＳ標準ＳＣＳＩドライバを使用している場合には、予め固定的に定められたリトライ回数を行ってもアクセスできない場合に、初めて他のパスに交代されることとなる。このため、パスの交代が行われるまでには、長時間を要してしまう虞がある。例えば、パス自体に障害がある場合には、リトライを行っても、アクセスができない状態は解消されないので、多くのリトライを繰り返すよりもパスを交代したほうが、早期にアクセスすることが可能になる場合もある。
【０００８】
例えば、ユーザーがリトライ回数を変えるようにすることも考えられるが、ＯＳ標準ＳＣＳＩドライバのように、予めリトライ回数を変更できないものについては、容易に対応することができない。そもそも、リトライ回数を何回にすればいいのかを決定すること自体も多くのユーザーにとって困難である。
【０００９】
本発明は、上記事情に鑑みなされたものであり、その目的は、容易且つ適切にリトライ回数を変更でき、パスの交代を適切に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため、一観点に係るデータ処理装置は、プロセッサ部を備え、所定の論理ユニットに対するデータのアクセスを制御するデータ処理装置であって、プロセッサ部は、論理ユニットに対する一のパスによるデータのアクセスが完了しない場合に、論理ユニットに対するパスを切り替える制御を行い、ＳＣＳＩドライバを実行することにより、論理ユニットとの間でＳＣＳＩに従って通信制御を行うようになっており、論理ユニットに対するパスを切り替える基準となる時間であるパス交代時間を受け付け、パス交代時間に基づいて、一のパスによるデータのアクセスにおける上限のリトライ回数を決定し、ＳＣＳＩドライバによる一のパスによる上限のリトライ回数が決定されたリトライ回数となるように制御する。
【発明の効果】
【００１１】
本発明によれば、容易且つ適切にリトライ回数を変更でき、パスの交代を適切に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、一実施形態に係る計算機システムの全体構成図である。
【図２】図２は、一実施形態に係るユーザー設定管理テーブルの構成図である。
【図３】図３は、一実施形態に係るＳＣＳＩリトライ回数管理テーブルの構成図である。
【図４】図４は、一実施形態に係るリセットタイムアウト時間管理テーブルの構成図である。
【図５】図５は、一実施形態に係る設定画面の構成図である。
【図６】図６は、一実施形態に係る設定処理を説明する図である。
【図７】図７は、一実施形態に係るリトライ回数算出設定処理のフローチャートである。
【図８】図８は、一実施形態に係るマルチパスの構成例を説明する図である。
【図９】図９は、一実施形態に係るＩＯ処理の概要を説明する図である。
【図１０】図１０は、一実施形態に係るＩＯ処理の概要のフローチャートである。
【図１１】図１１は、一実施形態に係るＩＯ処理のシーケンス図である。
【発明を実施するための形態】
【００１３】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１４】
以下の説明では、「ＡＡＡテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ＡＡＡテーブル」を「ＡＡＡ情報」と呼ぶことができる。
【００１５】
また、以下の説明では、「プロセッサ部」は、１以上のプロセッサを含む。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）のようなマイクロプロセッサである。１以上のプロセッサの各々は、シングルコアでもよいしマルチコアでもよい。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【００１６】
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ部によって実行されることで、定められた処理を、適宜に記憶部及びインターフェース部のうちの少なくとも１つを用いながら行うため、処理の主体が、プロセッサ部（或いは、プロセッサ部を有する計算機又は計算機システム）とされてもよい。プログラムは、プログラムソースから計算機にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ又は計算機が読み取り可能な記憶メディアであってもよい。また、以下の説明において、２以上のプログラムが１つのプログラムとして実現されてもよいし、１つのプログラムが２以上のプログラムとして実現されてもよい。また、プログラムが実行されることによって実現される処理のうちの少なくとも一部が、ハードウェア回路（例えばＡＳＩＣ（Application Specific Integrated Circuit）又はＦＰＧＡ（Field-Programmable Gate Array））によって実現されてもよい。
【００１７】
図１は、一実施形態に係る計算機システムの全体構成図である。
【００１８】
計算機システム１は、データ処理装置の一例としての計算機１０と、ストレージ装置２０とを備えている。計算機１０と、ストレージ装置２０とは、ＳＡＮ３０を介して接続されている。ストレージ装置２０は、計算機１０のアプリケーション（Application）１０３によって使用されるデータが格納される１以上の論理ユニット（ＬＵ）２１を格納している。
【００１９】
計算機１０は、ＰＣ（Personal Computer）によって構成されている。計算機１０は、プロセッサ１１と、メモリ１２と、入力デバイス１３と、表示デバイス１４と、記憶デバイス１５と、１以上のＨＢＡ（Host Bus Adapter）１６とを含む。
【００２０】
入力デバイス１３は、例えば、マウス、キーボード等であり、ユーザーからの入力を受け付ける。表示デバイス１４は、例えば、液晶ディスプレイ等のディスプレイ装置であり、各種情報を表示出力する。
【００２１】
記憶デバイス１５は、例えば、ハードディスクドライブやフラッシュメモリドライブなどであり、プロセッサ１１で実行されるプログラムや、プロセッサ１１に利用されるデータを記憶する。
【００２２】
ＨＢＡ１６は、ストレージ装置２０との間の通信を行うためのインターフェースであり、ＳＡＮ３０を介してストレージ装置２０と通信する。
【００２３】
プロセッサ１１は、メモリ１２及び／又は記憶デバイス１５に格納されているプログラムに従って各種処理を実行する。
【００２４】
メモリ１２は、例えば、ＲＡＭ（Random Access Memory）であり、プロセッサ１１で実行されるプログラムや、必要な情報を記憶する。
【００２５】
メモリ１２は、プログラムとして、ＯＳ（Operating system）１０１と、ＧＵＩ設定ツール１０２と、アプリケーション（Application）１０３と、ロガー１０４と、マルチパスソフト１０５と、ＳＣＳＩドライバ（SCSI Driver）１０６と、ＳＣＳＩデバイスハンドラー（SCSI DH）１０７と、ＦＣドライバ（FC Driver）１０８とを含む。
【００２６】
ＯＳ１０１は、例えば、ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（登録商標）等であり、計算機１０の全体を管理するためのプログラムである。ＧＵＩ設定ツール１０２は、後述する設定画面２００（図５参照）を表示デバイス１４に表示させて、ユーザーから各種設定情報を受け付けて、登録するプログラムである。アプリケーション１０３は、各種処理を実行するためのプログラムであり、ストレージ装置２０の論理ユニット２１に格納されているデータを読み出して利用したり、処理結果を論理ユニット２１に書き込んだりする。
【００２７】
ロガー１０４は、ＳＣＳＩ  ＤＨ１０７に対する設定内容を表示デバイス１４に表示させるためのプログラムである。マルチパスソフト１０５は、ストレージ装置２０の論理ユニット２１へのパスを管理するためのプログラムである。マルチパスソフト１０５は、ユーザー設定管理テーブル１１０を含む。
【００２８】
ＳＣＳＩドライバ１０６は、ＳＣＳＩに従ってストレージ装置２０との間の通信を制御するためのプログラムである。ＳＣＳＩ  ＤＨ１０７は、ＳＣＳＩドライバ１０６により呼び出されて実行されるプログラムである。本実施形態では、ＳＣＳＩ  ＤＨ１０７は、ＳＣＳＩドライバ１０６がコマンドの実行に使用するコマンド構造体におけるパラメータを変更することにより、アクセス（ＩＯ）のリトライ回数を変更する。ＳＣＳＩ  ＤＨ１０７は、ＳＣＳＩリトライ回数管理テーブル１２０と、リセットタイムアウト時間管理テーブル１３０とを含む。ＦＣドライバ１０８は、ＦＣ（ファイバチャネル）プロトコルに従って通信を制御するためのプログラムである。
【００２９】
次に、ユーザー設定管理テーブル１１０について説明する。
【００３０】
図２は、一実施形態に係るユーザー設定管理テーブルの構成図である。
【００３１】
ユーザー設定管理テーブル１１０は、各ＬＵに対するアクセス（ＩＯ）に関するユーザーによる設定を管理するテーブルであり、各ＬＵに対応するエントリを格納する。
【００３２】
ユーザー設定管理テーブル１１０のエントリは、パス交代時間（Ｒｅａｄ）１１０ａと、パス交代時間（Ｗｒｉｔｅ）１１０ｂと、ＨＢＡ情報１１０ｃと、Ｒｅａｄ  ＳＣＳＩタイムアウト時間１１０ｄと、Ｗｒｉｔｅ  ＳＣＳＩタイムアウト時間１１０ｅと、適用ＬＵ１１０ｆとのフィールドを含む。
【００３３】
パス交代時間（Ｒｅａｄ）１１０ａには、エントリに対応するＬＵに対するリード（Ｒｅａｄ）時におけるパス交代時間（リード用パス交代時間）が格納される。ここで、パス交代時間は、パスを交代する上限の時間を示している。パス交代時間（Ｗｒｉｔｅ）１１０ｂには、エントリに対応するＬＵに対するライト（Ｗｒｉｔｅ）時におけるパス交代時間（ライト用パス交代時間）が格納される。ＨＢＡ情報１１０ｃには、エントリに対応するＬＵに対するアクセスで使用するＨＢＡ１６を識別する情報（製品名等：ＨＢＡ情報）が格納される。Ｒｅａｄ  ＳＣＳＩタイムアウト時間１１０ｄには、エントリに対応するＬＵに対するリード時におけるタイムアウト時間（ＲｅａｄのＳＣＳＩ  Ｔ．Ｏ値）が格納される。Ｗｒｉｔｅ  ＳＣＳＩタイムアウト時間１１０ｅには、エントリに対応するＬＵに対するライト時におけるタイムアウト時間（ＷｒｉｔｅのＳＣＳＩ  Ｔ．Ｏ値）が格納される。適用ＬＵ１１０ｆには、エントリに対応するＬＵの識別情報（ＬＵ番号）が格納される。
【００３４】
次に、ＳＣＳＩリトライ回数管理テーブル１２０について説明する。
【００３５】
図３は、一実施形態に係るＳＣＳＩリトライ回数管理テーブルの構成図である。
【００３６】
ＳＣＳＩリトライ回数管理テーブル１２０は、各ＬＵに対するリトライ回数を管理するテーブルであり、各ＬＵに対応するエントリを格納する。
【００３７】
ＳＣＳＩリトライ回数管理テーブル１２０のエントリは、適用ＬＵ１２０ａと、Ｒｅａｄ  ＳＣＳＩタイムアウト時間１２０ｂと、Ｗｒｉｔｅ  ＳＣＳＩタイムアウト時間１２０ｃと、Ｒｅａｄ  ＳＣＳＩリトライ回数１２０ｄと、Ｗｒｉｔｅ  ＳＣＳＩリトライ回数１２０ｅとのフィールドを含む。
【００３８】
適用ＬＵ１２０ａには、エントリに対応するＬＵの識別情報が格納される。Ｒｅａｄ  ＳＣＳＩタイムアウト時間１２０ｂには、エントリに対応するＬＵに対するリード時におけるタイムアウト時間（ＲｅａｄのＳＣＳＩ  Ｔ．Ｏ値）が格納される。Ｗｒｉｔｅ  ＳＣＳＩタイムアウト時間１２０ｃには、エントリに対応するＬＵに対するライト時におけるタイムアウト時間（ＷｒｉｔｅのＳＣＳＩ  Ｔ．Ｏ値）が格納される。Ｒｅａｄ  ＳＣＳＩリトライ回数１２０ｄには、エントリに対応するＬＵに対するリード時における上限のリトライ回数（リード時リトライ回数）が格納される。Ｗｒｉｔｅ  ＳＣＳＩリトライ回数１２０ｅには、エントリに対応するＬＵに対するライト時における上限のリトライ回数（ライト時リトライ回数）が格納される。
【００３９】
次に、リセットタイムアウト時間管理テーブル１３０について説明する。
【００４０】
図４は、一実施形態に係るリセットタイムアウト時間管理テーブルの構成図である。
【００４１】
リセットタイムアウト時間管理テーブル１３０は、各ＨＢＡのリセット時におけるタイムアウト時間を管理するテーブルであり、各ＨＢＡに対応するエントリを格納する。
【００４２】
リセットタイムアウト時間管理テーブル１３０のエントリは、ＨＢＡ情報１３０ａと、リセットタイムアウト時間１３０ｂとのフィールドを含む。ＨＢＡ情報１３０ａには、エントリに対応するＨＢＡ１６の識別情報（製品名等、ＨＢＡ情報）が格納される。リセットタイムアウト時間１３０ｂには、エントリに対応するＨＢＡ１６におけるリセット時のタイムアウト時間の最悪値（最長値）が格納される。
【００４３】
次に、ＧＵＩ設定ツール１０２により表示デバイス１４に表示される設定画面２００について説明する。
【００４４】
図５は、一実施形態に係る設定画面の構成図である。
【００４５】
設定画面２００は、パス交代時間（ＲＥＡＤ）入力領域２０１と、パス交代時間（ＷＲＩＴＥ）入力領域２０２と、ＨＡＢ情報選択領域２０３と、ＳＣＳＩタイムアウト値（ＲＥＡＤ）入力領域２０４と、ＳＣＳＩタイムアウト値（ＷＲＩＴＥ）入力領域２０５と、適用ＬＵ選択領域２０６と、適用ボタン２０７と、取消ボタン２０８とを有する。
【００４６】
パス交代時間（ＲＥＡＤ）入力領域２０１は、適用ＬＵ選択領域２０６で選択されているＬＵ（図５の説明において、適用ＬＵという）に対するリード時における、パス交代時間の入力（リード用パス交代時間）を受け付ける領域である。パス交代時間（ＷＲＩＴＥ）入力領域２０２は、適用ＬＵに対するライト時における、パス交代時間（ライト用パス交代時間）の入力を受け付ける領域である。ＨＡＢ情報選択領域２０３は、適用ＬＵとのアクセスで利用するＨＢＡ１６の情報（製品名）の選択を受け付ける領域である。ＳＣＳＩタイムアウト値（ＲＥＡＤ）入力領域２０４は、適用ＬＵに対するリード時におけるタイムアウト値（ＲｅａｄのＳＣＳＩ  Ｔ．Ｏ値）の入力を受け付ける領域である。ＳＣＳＩタイムアウト値（ＷＲＩＴＥ）入力領域２０５は、適用ＬＵに対するライト時におけるタイムアウト値（ＷｒｉｔｅのＳＣＳＩ  Ｔ．Ｏ値）の入力を受け付ける領域である。適用ＬＵ選択領域２０６は、適用するＬＵの選択を受け付ける領域である。適用ボタン２０７は、設定画面２００に入力された設定を適用させる指示を受け付けるボタンである。適用ボタン２０７が押下されると、ＧＵＩ設定ツール１０２は、設定画面２００に設定された各種情報を、マルチパスソフト１０５に通知する。取消ボタン２０８は、設定画面２００に入力された設定を取り消す指示を受け付けるボタンである。
【００４７】
次に、設定処理について説明する。
【００４８】
図６は、一実施形態に係る設定処理を説明する図である。
【００４９】
ユーザーから設定の指示を受け付けると、ＧＵＩ設定ツール１０２は、設定画面２００を表示デバイス１４に表示させて、ユーザーからの設定入力を受け付ける。設定画面２００において、適用ボタン２０７が押下されると、ＧＵＩ設定ツール１０２は、設定画面２００に対する設定情報（リード用パス交代時間、ライト用パス交代時間、ＨＢＡ情報、ＲｅａｄのＳＣＳＩ  Ｔ．Ｏ値、ＷｒｉｔｅのＳＣＳＩ  Ｔ．Ｏ値、適用ＬＵ）をマルチパスソフト１０５に通知する。
【００５０】
マルチパスソフト１０５は、通知された設定情報をユーザー設定管理テーブル１１０に登録する。具体的には、マルチパスソフト１０５は、ユーザー設定管理テーブル１１０に設定画面２００に入力された適用ＬＵに対応するエントリがあれば、そのエントリのそれぞれのフィールドに対して設定画面２００に入力された対応する設定情報を格納し、設定画面２００に入力された適用ＬＵに対応するエントリがなければ、新たなエントリを追加して、そのエントリのそれぞれのフィールドに対して設定画面２００に入力された対応する設定情報を格納する（Ｓｔｅｐ１）。
【００５１】
次いで、マルチパスソフト１０５は、ＳＣＳＩ  ＤＨ１０７に、リード用パス交代時間、ライト用パス交代時間、ＨＢＡ情報、ＲｅａｄのＳＣＳＩ  Ｔ．Ｏ値、ＷｒｉｔｅのＳＣＳＩ  Ｔ．Ｏ値、及び適用ＬＵを通知する（Ｓｔｅｐ２）。
【００５２】
ＳＣＳＩ  ＤＨ１０７は、マルチパスソフト１０５から通知された各種情報に基づいて、
リトライ回数算出設定処理を実行し、結果をロガー１０４に通知する（Ｓｔｅｐ３）。具体的には、ＳＣＳＩ  ＤＨ１０７は、リセットタイムアウト時間管理テーブル１３０からＨＢＡ情報が示すＨＢＡ１６に対応するリセットタイムアウト時間を取得する。次いで、ＳＣＳＩ  ＨＤ１０７は、リード用パス交代時間、ライト用パス交代時間、ＲｅａｄのＳＣＳＩ  Ｔ．Ｏ値、ＷｒｉｔｅのＳＣＳＩ  Ｔ．Ｏ値、及びリセットタイムアウト時間に基づいて、ＲｅａｄのＳＣＳＩリトライ回数と、ＷｒｉｔｅのＳＣＳＩリトライ回数とを算出し、算出したＲｅａｄのＳＣＳＩリトライ回数と、ＷｒｉｔｅのＳＣＳＩリトライ回数とを適用ＬＵのエントリに設定することにより、ＳＣＳＩリトライ回数管理テーブル１２０を更新し、結果をロガー１０４に通知する。
【００５３】
ロガー１０４は、ＳＣＳＩ  ＤＨ１０７から結果の通知を受けると、その結果を含む画像を、表示デバイス１４に表示させることにより、結果をユーザーに通知する（Ｓｔｅｐ４）。これにより、ユーザーは、リードとライト時のそれぞれにおける、パス交代時間や、リトライ回数を把握することができる。
【００５４】
次に、リトライ回数算出設定処理について説明する。
【００５５】
図７は、一実施形態に係るリトライ回数算出設定処理のフローチャートである。
【００５６】
まず、ＳＣＳＩ  ＤＨ１０７は、マルチパスソフト１０５から、リード用とライト用のパス交代時間（Ｐ）と、ＨＢＡ情報と、Ｒ／Ｗ（リードとライト）のＳＣＳＩ  Ｔ．Ｏ値とを受け付ける（Ｓ１１）。
【００５７】
次いで、ＳＣＳＩ  ＤＨ１０７は、リード（Ｒ）のパス交代時間（Ｐ）を変数Ｐｒに格納し、ライト（Ｗ）のパス交代時間（Ｐ）を変数Ｐｗに格納し、リード（Ｒ）のＳＣＳＩ  Ｔ．Ｏ値を変数Ｓｒに格納し、ライト（Ｗ）のＳＣＳＩ  Ｔ．Ｏ値を変数Ｓｗに格納する（Ｓ１２）。なお、ＳＣＳＩドライバ１０６は、アクセス時においては、変数Ｓｒ、Ｓｗに設定された、リード（Ｒ）のＳＣＳＩ  Ｔ．Ｏ値と、ライト（Ｗ）のＳＣＳＩ  Ｔ．Ｏ値とに基づいて、タイムアウト処理を実行することとなる。
【００５８】
次いで、ＳＣＳＩ  ＤＨ１０７は、リセットタイムアウト時間テーブル１３０からＨＢＡ情報に対応するＨＢＡ１６のリセットタイムアウト時間（Ｒ）を取得する（Ｓ１３）。
【００５９】
次いで、ＳＣＳＩ  ＤＨ１０７は、Ｓｒ＋ＲによりＩｒを算出し、Ｓｗ＋ＲによりＩｗを算出する（Ｓ１４）。ここで、Ｉｒは、リード時における障害発生時の１ＩＯあたりの応答時間であり、Ｉｗは、ライト時における障害発生時の１ＩＯあたりの応答時間である。
【００６０】
ここで、パス交代時間Ｐｔ（ｔは、ｒ又はｗ）は、以下の式（１）で表せる。
Ｐｔ＝Ｉｔ＊（Ｎｔ＋１）＋Δ      ・・・（１）
なお、Ｎｔ（ｔは、ｒ又はｗ）は、ＳＣＳＩリトライ回数を示し、Δは、ＩＯ処理における誤差時間（例えば、０．５［秒］）を示す。
式（１）によると、ＳＣＳＩリトライ回数Ｎｔは、以下の式（２）で表せる。
Ｎｔ＝（Ｐｔ−Δ）／Ｉｔ−１      ・・・（２）
なお、式（２）では、Ｎｔは、右辺の小数点以下を切り捨てた整数部分に対応する。
【００６１】
ＳＣＳＩ  ＤＨ１０７は、式（２）に基づいて、（Ｐｒ−Δ）／Ｉｒ−１により、Ｎｒを算出し、（Ｐｗ−Δ）／Ｉｗ−１により、Ｎｗを算出する（Ｓ１５）。
【００６２】
次いで、ＳＣＳＩ  ＤＨ１０７は、Ｎｒ、すなわち、ライト時のＳＣＳＩリトライ回数が０であるか、０より大きいかを判定する（Ｓ１６）。なお、本実施形態では、リトライ回数は、リード時とライト時のそれぞれにおいて最低１回必要であるとしている。
【００６３】
この結果、Ｎｒが０である場合（Ｎｒ＝０）には、ＳＣＳＩ  ＤＨ１０７は、エラーとして処理を終了する（Ｓ１７）。一方、Ｎｒが０より大きい場合（Ｎｒ＞０）には、ＳＣＳＩ  ＤＨ１０７は、Ｎｗが０であるか、０より大きいかを判定する（Ｓ１８）。
【００６４】
この結果、Ｎｗが０である場合（Ｎｗ＝０）には、ＳＣＳＩ  ＤＨ１０７は、エラーとして処理を終了する（Ｓ１９）。一方、Ｎｗが０より大きい場合（Ｎｗ＞０）には、ＳＣＳＩ  ＤＨ１０７は、算出したＮｒ、Ｎｗを、ＳＣＳＩリトライ回数管理テーブル１２０の対応するエントリのＲｅａｄ  ＳＣＳＩリトライ回数１２０ｄと、Ｗｒｉｔｅ  ＳＣＳＩリトライ回数１２０ｅに格納し（Ｓ２０）、処理を終了する。
【００６５】
上記したリトライ回数算出設定処理によると、リード時とライト時のそれぞれについて、それぞれのパス交代時間に対応するＳＣＳＩリトライ回数を容易且つ適切に算出し、設定することができる。また、一般的には、リードよりもライトの方がコマンド完了するまでに時間がかかるが、それぞれの場合のＳＣＳＩ  Ｔ．Ｏ値を設定するようにすることにより、共通のＳＣＳＩ  Ｔ．Ｏ値を用いる場合に比して、リード時におけるパス交代時間を短くすることができるようになる。
【００６６】
次に、マルチパスの構成例及びＩＯ処理の概要について説明する。
【００６７】
図８は、一実施形態に係るマルチパスの構成例を説明する図である。図９は、一実施形態に係るＩＯ処理の概要を説明する図である。
【００６８】
例えば、ＬＵ＃１に対してマルチパスを構成する場合には、マルチパスソフト１０５は、図８に示すように、各パスを構成するＳＣＳＩドライバ１０６と、ＦＤドライバ１０８と、ＨＢＡ１６とを決定し、各パスの構成の接続関係に関する設定を行う。また、マルチパスソフト１０５は、ＳＣＳＩドライバ１０６に対しては、ＳＣＳＩ  ＤＨ１０７を接続する。
【００６９】
図８に示す構成例においては、上位（アプリケーション１０３）からＩＯ発行要求を受領した場合には、図９に示すように処理が行われる。
【００７０】
すなわち、マルチパスソフト１０５は、上位からＩＯ発行要求を受領すると（図中（１））、アクセス対象のＬＵ（この例では、ＬＵ＃１）にアクセス可能な複数のパスからアクセスに使用するパスを決定する（図中（２））。ここでは、「／ｄｅｖ／ｓｄａ」で識別されるＳＣＳＩドライバ１０６側のパスが決定されたものとして、以下の説明を行う。
【００７１】
次いで、マルチパスソフト１０５は、決定したパスのＳＣＳＩドライバ１０６に対して、ＳＣＳＩコマンドを発行する。
【００７２】
ＳＣＳＩドライバ１０６は、ＳＣＳＩ  ＤＨ１０７を実行させ、コマンドに関わるパラメータ変更処理（リトライ実行済み回数と、ＳＣＳＩコマンド割当時間との変更）を行って、ＳＣＳＩドライバ１０６によるリトライ回数の上限がＳＣＳＩリトライ回数管理テーブル１２０に設定されているリトライ回数となるようにする（図中（３））。パラメータ変更処理については、後述する。
【００７３】
この後、ＳＣＳＩドライバ１０６は、パラメータに従って、ＦＣドライバ１０８側へのＩＯを実行する。すなわち、ＳＣＳＩドライバ１０６は、アクセスが正常に行われない場合には、決められたリトライ回数を上限としてリトライが行われ、上限のリトライ回数となった場合には、エラーをマルチパスソフト１０５に通知する。この場合、マルチパスソフト１０５は、別のパスを用いてアクセスを行うようにする。
【００７４】
次に、ＩＯ処理の動作について説明する。
【００７５】
図１０は、一実施形態に係るＩＯ処理の概要のフローチャートである。
【００７６】
マルチパスソフト１０５は、上位からＩＯ発行要求を受領すると、アクセス対象のＬＵにアクセス可能な複数のパスからアクセスに使用するパスを決定し、決定したパスのＳＣＳＩドライバ１０６に対して、ＳＣＳＩコマンドを発行する（Ｓ３１）。
【００７７】
次いで、ＳＣＳＩドライバ１０６は、ＳＣＳＩコマンドを実行してアクセスを行うためのパラメータを格納するＳＣＳＩコマンド構造体を構築し（Ｓ３２）、接続されているＳＣＳＩ  ＤＨ１０７があるか否かを判定する（Ｓ３３）。
【００７８】
接続されているＳＣＳＩ  ＤＨ１０７がある場合（ＳＣＳＩ  ＤＨあり）には、ＳＣＳＩドライバ１０６は、ＳＣＳＩ  ＤＨ１０７に処理を実行させる。これにより、ＳＣＳＩ  ＤＨ１０７は、ＳＣＳＩドライバ１０６のコマンドの実行に必要なコマンド構造体のパラメータを変更するパラメータ変更処理を行う（Ｓ３４）。
【００７９】
ここで、コマンド構造体のパラメータと、パラメータ変更処理とについて説明する。
【００８０】
本実施形態では、パラメータ変更処理として、リトライ実行済み回数変更処理と、ＳＣＳＩコマンド割当時間変更処理とを実行する。
【００８１】
まず、リトライ実行済み回数変更処理について説明する。
【００８２】
コマンド構造体のパラメータのうちのリトライ回数に影響を与えるパラメータとしては、Ａｌｌｏｗｅｄと、Ｒｅｔｒｉｅｓとがある。
【００８３】
Ａｌｌｏｗｅｄは、リトライ上限値を示している。汎用的なＳＣＳＩドライバ１０６においては、ＳＣＳＩ  ＤＨ１０７の実行後に、固定的な値（例えば、５）が設定される。このため、ＳＣＳＩ  ＤＨ１０７でＡｌｌｏｗｅｄの値を変更したとしても、その変更した値がリトライ上限値とはならない。
【００８４】
Ｒｅｔｒｉｅｓは、リトライ実行済み回数を示している。ＳＣＳＩドライバ１０６は、基本的には、Ｒｅｔｒｉｅｓの値がＡｌｌｏｗｅｄとなるまでリトライが繰り返されることとなる。
【００８５】
本実施形態では、ＳＣＳＩ  ＤＨ１０７は、このＲｅｔｒｉｅｓの値を変更する処理（リトライ実行済み回数変更処理）により、実際に実行される上限のリトライ回数がＳＣＳＩリトライ回数管理テーブル１２０のリトライ回数となるようにする。
【００８６】
具体的には、ＳＣＳＩ  ＤＨ１０７は、リトライ実行済み回数変更処理においては、以下の式（３）の処理を実行する。
【００８７】
Ｒｅｔｒｉｅｓ＝ｍａｘ（５−ｎ，０）        ・・・（３）
ここで、ｍａｘ（ａ，ｂ）は、ａ，ｂのうちの最大の値を出力する関数である。また、ｎは、ＳＣＳＩリトライ回数管理テーブル１２０のリトライ回数（Ｒｅａｄ  ＳＣＳＩリトライ回数又はＷｒｉｔｅ  ＳＣＳＩリトライ回数）である。
【００８８】
式（３）の処理によると、ｎが５以下の場合には、Ｒｅｔｒｉｅｓには、５−ｎが設定されることとなり、Ａｌｌｏｗｅｄの値（ここでは、５）と一致するまで、すなわち、ｎ回のリトライが実行されることとなる。なお、本実施形態では、リトライ回数は、最大５回を想定しており、ｎが６以上の場合には異常とみなして、Ｒｅｔｒｉｅｓを０として、リトライ回数が５回となるようにしている。
【００８９】
次に、ＳＣＳＩコマンド割当時間変更処理について説明する。
【００９０】
ＳＣＳＩドライバ１０６は、以下の式（４）を満たさない場合に、リトライを実行する場合がある。
【００９１】
Ｊｉｆｆｉｅｓ＿ａｔ＿ａｌｌｏｃ＋ｔｉｍｅｏｕｔ＊５＜ｊｉｆｆｉｅｓ・・・（４）
ここで、Ｊｉｆｆｉｅｓ＿ａｔ＿ａｌｌｏｃ（ＳＣＳＩコマンド割当時間）は、ＩＯ要求を受領してからＳＣＳＩコマンドを組み立てるのに割り当てられる時間を示し、ｔｉｍｅｏｕｔは、タイムアウトを監視する時間を示し、ｊｉｆｆｉｅｓは、ＩＯ要求を受領してからの稼働時間を示す。
【００９２】
したがって、Ａｌｌｏｗｅｄと、Ｒｅｔｒｉｅｓとの関係では、リトライが行われない場合であっても、式（４）の条件を満たさない場合には、リトライされてしまい、ＳＣＳＩリトライ回数管理テーブル１２０のリトライ回数とならない場合が起こり得る。
【００９３】
そこで、ＳＣＳＩ  ＤＨ１０７は、以下の式（５）の処理（ＳＣＳＩコマンド割当時間変更処理）を実行することにより、リトライ回数がＳＣＳＩリトライ回数管理テーブル１２０のリトライ回数となるようにする。
Ｊｉｆｆｉｅｓ＿ａｔ＿ａｌｌｏｃ＝
Ｊｉｆｆｉｅｓ＿ａｔ＿ａｌｌｏｃ−（ｔｉｍｅｏｕｔ＊５）＋ｔｉｍｅｏｕｔ＊ｎ
・・・（５）
【００９４】
式（５）の処理を行うと、式（４）は、以下の式（６）に相当する。
Ｊｉｆｆｉｅｓ＿ａｔ＿ａｌｌｏｃ＋ｔｉｍｅｏｕｔ＊ｎ＜ｊｉｆｆｉｅｓ・・・（６）
【００９５】
式（６）の左辺は、ｎ回のリトライが行われた場合の経過時間の期待値となる。このため、ｎ回のリトライが行われた場合には、それ以上のリトライが実行されないこととなり、リトライ実行済み回数変更処理により実行するように設定されたｎ回をリトライの上限とすることができる。
【００９６】
なお、ＳＣＳＩドライバ１０６におけるリトライの実行条件として、式（４）の条件が存在しない場合には、ＳＣＳＩコマンド割当時間変更処理を実行しなくてもよい。
【００９７】
ステップＳ３３で、接続されているＳＣＳＩ  ＤＨ１０７がないと判定した場合（ＳＣＳＩ  ＤＨなし）、又は、ステップＳ３４の処理を終了した場合には、ＳＣＳＩドライバ１０７は、コマンド構造体のパラメータ等に従って、ＬＵにアクセスするための処理（下位処理）を実行する（Ｓ３５）。
【００９８】
次に、ＩＯ処理の一例を詳細に説明する。
【００９９】
図１１は、一実施形態に係るＩＯ処理のシーケンス図である。
【０１００】
まず、アプリケーション１０３から或るＬＵ２１をアクセス先とするＩＯ要求がマルチパスソフト１０５に通知されると（Ｓ４１）、マルチパスソフト１０５は、アクセス先のＬＵ２１（アクセス先ＬＵ）にアクセスするパスを決定し、決定したパスを構成するＳＣＳＩドライバ１０６に初回のＩＯ要求を送信する（Ｓ４２）。
【０１０１】
ＳＣＳＩドライバ１０６は、ＳＣＳＩ  ＤＨ１０７の実行を開始させる（Ｓ４３）。ＳＣＳＩ  ＤＨ１０７は、パラメータ変更処理を実行する（Ｓ４４）。これにより、ＳＣＳＩドライバ１０６のコマンド構造体における、Ｒｅｔｒｉｅｓ及びＪｉｆｆｉｅｓ＿ａｔ＿ａｌｌｏｃの値は、ＳＣＳＩリトライ回数管理テーブル１２０のアクセス先ＬＵに対応するＳＣＳＩリトライ回数を上限とするリトライを実行させるようにするための値に変更される。
【０１０２】
次いで、ＳＣＳＩ  ＤＨ１０７は、処理が終了したことをＳＣＳＩドライバ１０６に通知する（Ｓ４５）。
【０１０３】
ＳＣＳＩドライバ１０６は、ＦＣドライバ１０８にアクセス先ＬＵに対する初回のアクセスの要求を送信する（Ｓ４６）。ＦＣドライバ１０８は、ＨＢＡ１６にアクセス先ＬＵに対する初回のアクセスの要求を送信する（Ｓ４７）。次いで、ＨＢＡ１６は、アクセス先ＬＵに対するアクセス要求をストレージ装置２０に送信する（Ｓ４８）。
【０１０４】
ＨＢＡ１６は、アクセス先ＬＵに対するアクセスができず、タイムアウト時間に到達した場合には、ＳＣＳＩタイムアウトとなったことをＦＣドライバ１０８に通知する（Ｓ４９）。
ＦＣドライバ１０８は、ＳＣＳＩタイムアウトとなったことを、ＳＣＳＩドライバ１０６に通知する（Ｓ５０）。
【０１０５】
ＳＣＳＩドライバ１０６は、リセットするためのリセットコマンドをＦＣドライバ１０８に通知し（Ｓ５１）、ＦＣドライバ１０８は、リセットコマンドをＨＢＡ１６に通知する（Ｓ５２）。ＨＢＡ１６は、リセット処理を実行し、リセットが終了した場合に、リセットコマンド応答をＦＣドライバ１０８に送信し（Ｓ５３）、ＦＣドライバ１０８は、ＳＣＳＩドライバ１０６にリセットコマンド応答を送信する（Ｓ５４）。ここで、ステップＳ４２からステップＳ５３までの時間が、１回のＩＯ応答時間に相当する。
【０１０６】
ＳＣＳＩドライバ１０６は、アクセス先ＬＵへのアクセスができない場合には、実際に実行したリトライ回数がＳＣＳＩ  ＤＨ１０７により指定されているリトライ回数となるまでリトライを繰り返し実行する（Ｓ５５〜Ｓ６２）。
【０１０７】
ＳＣＳＩドライバ１０６は、実際に実行したリトライ回数がＳＣＳＩ  ＤＨ１０７により指定されているリトライ回数を行っても、アクセス先ＬＵへのアクセスができなかった場合には、エラー応答をマルチパスソフト１０５に送信する（Ｓ６３）。
【０１０８】
マルチパスソフト１０５は、エラー応答を受信すると、アクセス先ＬＵへアクセスするパスを他のパスに交代する（Ｓ６４）。ここで、ステップＳ４２からステップＳ６４が完了するまでの時間が、パス交代時間に相当する。
【０１０９】
次いで、マルチパスソフト１０５は、新たなパスのＳＣＳＩドライバ１０６に対して、このパスに対する初回のＩＯ要求を送信する（Ｓ６５）。次いで、ステップＳ４３〜Ｓ４８と同様なステップＳ６６〜Ｓ７１が実行される。
【０１１０】
ステップＳ７１の結果、ストレージ装置２０からの正常応答を受信すると（Ｓ７２）、ＨＢＡ１６は、アクセス結果をＦＣドライバ１０８に通知し（Ｓ７３）、ＦＣドライバ１０８は、アクセス結果をＳＣＳＩドライバ１０６に通知し（Ｓ７４）、ＳＣＳＩドライバ１０６は、アクセス結果をマルチパスソフト１０５に通知する（Ｓ７５）。マルチパスソフト１０５は、アプリケーション１０３にアクセス結果を通知する（Ｓ７６）。
【０１１１】
上記したように、本実施形態に係るＩＯ処理によると、或るパスによるアクセスができない場合に、ユーザーが指定したパス交代時間に従って、次のパスへ適切に交代することができる。
【０１１２】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【０１１３】
例えば、上記実施形態では、リードとライトとのそれぞれのパス交代時間を設定するようにしていたが、本発明はこれに限られず、リードとライトとで共通のパス交代時間を設定するようにしてもよい。また、上記実施形態では、ＳＣＳＩタイムアウト時間をユーザーが設定するようにしていたが、本発明はこれに限られず、ユーザーが設定せずに、予め設定されているデフォルトの値を使用するようにしてもよい。
【符号の説明】
【０１１４】
１…計算機システム、１０…計算機、１１…プロセッサ、１６…ＨＢＡ、２１…論理ユニット、１０５…マルチパスソフト、１０６…ＳＣＳＩドライバ、１０７…ＳＣＳＩデバイスハンドラー
【図１】
2020067899.tif 000003
【図２】
2020067899.tif 000004
【図３】
2020067899.tif 000005
【図４】
2020067899.tif 000006
【図５】
2020067899.tif 000007
【図６】
2020067899.tif 000008
【図７】
2020067899.tif 000009
【図８】
2020067899.tif 000010
【図９】
2020067899.tif 000011
【図１０】
2020067899.tif 000012
【図１１】
2020067899.tif 000013