(57)【要約】【課題】  ディスクアレイ装置で、ホスト等からのクリティカルＩ/Ｏに対しても、そのアクセス先の記憶装置の状態によらずに、応答遅延を発生させずシステムダウン等を起こさずに応答でき、Ｉ/Ｏ性能とシステム信頼性の双方を向上する。【解決手段】  ディスクアレイ装置１は、ＨＤＤ３０に対するデータの記憶を制御するＤＫＣ１０にＣＭ１３０を有し、ホスト２からのＩ/Ｏ要求に応じてＨＤＤ３０に対するデータＩ/Ｏ処理を行う。ＨＤＤ３０では延命処理による応答不能状態が発生し得る。ＤＫＣ１０は、ＤＢ６０の情報に従って、受領したＩ/Ｏにおける特定Ｉ/Ｏパターンの判定と、特定Ｉ/Ｏパターンに関連するクリティカルＩ/Ｏの対象データ３２を対象とした、ＣＭ１３０を用いた事前のキャッシュ制御とを実行する。クリティカルＩ/Ｏ要求時には、ＣＭ１３０上のキャッシュ常駐化データ３３を用いて応答する。【選択図】  図４
2006221451.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、前記記憶装置に対するデータの記憶を制御する記憶制御装置とを備え、前記記憶制御装置にキャッシュメモリを有し、Ｉ/Ｏ要求に応じて前記記憶装置に対してデータをＩ/Ｏする処理を行うディスクアレイ装置であって、
前記記憶装置では、前記記憶制御装置からのデータ読み込みまたは書き込みを含むアクセス要求に対する応答不能状態が発生し得る構成であり、
前記記憶制御装置は、定義情報に従って、Ｉ/Ｏにおける特定のＩ/Ｏパターンの判定と、前記特定のＩ/Ｏパターンに関連するクリティカルＩ/Ｏの対象データを対象とした、前記キャッシュメモリを用いた事前のキャッシュ制御とを実行し、前記クリティカルＩ/Ｏの発生時に、前記キャッシュメモリ上の前記キャッシュ制御されている前記対象データを用いて応答することを特徴とするディスクアレイ装置。
【請求項２】
請求項１記載のディスクアレイ装置において、
前記定義情報が登録されたデータベースを保持し、
前記定義情報は、確定Ｉ/Ｏパターンを表わすＩ/Ｏパターン情報と、これに対応付けられた、前記対象データと前記キャッシュ制御の内容とが指示されるキャッシュ制御情報とを含み、
前記記憶制御装置は、
前記Ｉ/Ｏパターンの判定では、受領したＩ/Ｏシーケンスにおける実Ｉ/Ｏパターンと前記確定Ｉ/Ｏパターンとを比較して、一致する場合は、前記特定のＩ/Ｏパターンとして抽出し、
前記抽出したＩ/Ｏパターンに対応付けられた前記キャッシュ制御情報に従って、前記対象データに対して前記キャッシュ制御の内容を実行することを特徴とするディスクアレイ装置。
【請求項３】
請求項１記載のディスクアレイ装置において、
前記記憶制御装置は、前記キャッシュ制御として、前記抽出したＩ/Ｏパターンに関連付けられた前記対象データを、前記記憶装置の領域から読み出して前記キャッシュメモリ上の領域にキャッシュ常駐化データとして格納する処理を行うことを特徴とするディスクアレイ装置。
【請求項４】
請求項１記載のディスクアレイ装置において、
前記記憶装置は、前記記憶制御装置からのアクセス要求が無い状態において、ディスクに対してシーク動作する延命処理を実行するものであり、
前記応答不能状態は、前記延命処理の実行中の状態であることを特徴とするディスクアレイ装置。
【請求項５】
請求項１記載のディスクアレイ装置において、
前記キャッシュ制御の対象となるデータは、前記特定のＩ/Ｏパターンの後に続けて受信する前記クリティカルＩ/Ｏの対象データであることを特徴とするディスクアレイ装置。
【請求項６】
請求項１記載のディスクアレイ装置において、
前記記憶制御装置に対して接続される管理装置を有し、
前記管理装置は、
前記記憶制御装置に対してＩ/Ｏトレースの採取の指示を行う処理と、
ディスクアレイ装置内から前記指示に従って採取されたＩ/Ｏトレースの情報を含む情報を収集する処理と、
前記収集した情報を、通信接続される外部装置へ送信して回収させる処理とを行い、
前記記憶制御装置は、前記指示に従って前記Ｉ/Ｏトレースを採取する処理を行うことを特徴とするディスクアレイ装置。
【請求項７】
請求項１記載のディスクアレイ装置において、
前記定義情報が登録された確定データベースを保持し、
前記定義情報は、確定Ｉ/Ｏパターンを表わすＩ/Ｏパターン情報と、これに対応付けられた、前記対象データと前記キャッシュ制御の内容とが指示されるキャッシュ制御情報と、Ｉ/Ｏパターンにおける類似性判定用情報とを含み、
前記記憶制御装置は、
前記Ｉ/Ｏパターンの判定では、受領したＩ/Ｏシーケンスにおける実Ｉ/Ｏパターンと前記確定Ｉ/Ｏパターンとを比較して、前記類似性判定用情報に従って許容範囲内での類似性がみられる場合は、前記確定Ｉ/Ｏパターンとの類似性有りのＩ/Ｏパターンとして抽出し、
前記類似性有りのＩ/Ｏパターンについて、前記確定Ｉ/Ｏパターンに対応付けられた前記キャッシュ制御情報を適用して、前記対象データに対して前記キャッシュ制御の内容を実行し、前記類似性有りのＩ/Ｏパターンと前記確定Ｉ/Ｏパターンとの対応付けを含む定義情報を追加データベースに登録することを特徴とするディスクアレイ装置。
【請求項８】
請求項１記載のディスクアレイ装置において、
前記記憶制御装置に対して接続される管理装置を有し、
前記管理装置は、
前記定義情報が登録されたデータベースを管理し、
前記管理装置から外部装置へと通信手段を介して送信して回収した情報の検証に基づき新規作成または更新された定義情報を、前記外部装置から通信手段を介して受信し、前記データベースに反映して更新する処理を行うことを特徴とするディスクアレイ装置。
【請求項９】
請求項１記載のディスクアレイ装置において、
前記記憶制御装置に対して接続される管理装置を有し、
前記管理装置は、
前記定義情報が登録されたデータベースを管理し、
前記管理装置に通信接続される外部装置で新規作成または更新された、複数のディスクアレイ装置に対して配布される定義情報を、前記外部装置から通信手段を介して受信し、前記データベースに反映して更新する処理を行うことを特徴とするディスクアレイ装置。
【請求項１０】
記憶装置と、前記記憶装置に対するデータの記憶を制御する記憶制御装置とを備え、Ｉ/Ｏ要求に応じて前記記憶装置に対してデータをＩ/Ｏする処理を行うディスクアレイ装置であって、
前記記憶制御装置は、
前記Ｉ/Ｏを制御するプロセッサと、他装置に対するインタフェースを有し通信処理を行うチャネル制御部と、キャッシュメモリと、前記記憶装置に対するインタフェースを有し通信処理を行うディスク制御部と、これらを相互接続する接続部とを有する構成であり、
前記記憶装置は、前記記憶制御装置のディスク制御部に対して接続網で接続され、
前記記憶装置として、前記記憶制御装置からのアクセス要求が無い状態においてディスクに対してシーク動作する延命処理を実行するものを有し、
前記延命処理の実行中は、前記記憶制御装置からのデータ読み込みまたは書き込みを含むアクセス要求に対する応答不能状態となり、
前記記憶制御装置は、定義情報に従って、Ｉ/Ｏにおける特定のＩ/Ｏパターンの判定と、前記特定のＩ/Ｏパターンに関連するクリティカルＩ/Ｏの対象データを対象とした前記キャッシュメモリを用いた事前のキャッシュ制御とを実行し、前記クリティカルＩ/Ｏの発生時に、前記キャッシュメモリ上の前記キャッシュ制御されている前記対象データを用いて応答することを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブ（ＨＤＤ）等の記憶装置と、前記記憶装置に対するデータの記憶を制御する記憶制御装置（以下、ＤＫＣとも称する）とを有しＲＡＩＤ制御が可能なディスクアレイ装置（ストレージ装置ともいう）に関し、特に、キャッシュメモリ（以下、ＣＭと略称する）を利用してデータ入出力（Ｉ/Ｏ）の性能を向上する技術、及び、システム信頼性を向上させる技術に関する。
【背景技術】
【０００２】
（１）  外部記憶装置としてのディスクアレイ装置は、通信手段を介して通信接続されるホストコンピュータ（以下、ホストとも称する）等の他装置からのＩ/Ｏの要求や命令に応じてディスクアレイ上の記憶ボリュームに対してデータを記憶する応答処理を行う機能を提供する。
【０００３】
従来、ディスクアレイ装置のＤＫＣにＣＭを備えた構成において、記憶装置のディスクに対するＩ/ＯデータをＣＭ上にキャッシュしておくことでホストからディスクへのデータＩ/Ｏの効率を向上させるキャッシュ制御が行われている。
【０００４】
また前記キャッシュ制御に関しては、特に、ホスト等からの指示に従って、ＣＭ上に指定データを常駐化しておく状態にすること（以下、キャッシュ常駐化オンと称する）及び逆にその常駐化しておく状態を解除すること（以下、キャッシュ常駐化オフと称する）が可能であった。当該ＣＭ上に常駐化されたキャッシュデータに対するホストからのＩ/Ｏでは、ディスクアクセスを必要とせずに応答処理可能なためにＩ/Ｏ効率が良い。
【０００５】
特許文献１には、外部記憶装置におけるキャッシュ制御の技術例が記載されている。
【０００６】
（２）  また、ディスクアレイ装置においては、ＨＤＤに対するインタフェース（以下、ドライブＩ/Ｆ等と称する）として、ＳＣＳＩやＦｉｂｒｅＣｈａｎｎｅｌ（以下、ＦＣと称する）などの、単一種類のドライブＩ/Ｆによる複数台のＨＤＤを使用した装置があった。あるいは、インタフェース変換機構を用いて、異なるドライブＩ/Ｆによる複数種類のＨＤＤを混在して使用した装置などがあった。ドライブＩ/Ｆによってドライブ単体の信頼性が異なる。例えば、ＦＣインタフェースのＨＤＤ（以下、ＦＣドライブと称する）などのような信頼性の高いＨＤＤや、ＦＣよりもやや信頼性の低いシリアルＡＴＡ（以下、ＳＡＴＡと称する）インタフェースのＨＤＤ（以下、ＳＡＴＡドライブと称する）などがある。データ重要性やアクセス頻度などに応じてその保存先ドライブを変える制御も知られている。ＦＣドライブ使用の場合は信頼性などの面で利点があり、ＳＡＴＡドライブ使用の場合はコストなどの面で利点がある。
【特許文献１】特開２００１−２７９６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
（１）  前記ＳＡＴＡドライブ等のやや信頼性の低い記憶装置を使用したディスクアレイ装置であっても、ドライブ単体の寿命を延ばして信頼性を高める手段が考えられている。
【０００８】
（２）  ただし、前記ドライブ単体の信頼性を高める手段を用いた場合、当該ＨＤＤは、例えば数秒間といった必要時間の間、ＤＫＣ側からの通常のデータ読み書きのアクセス要求に対して対応することができない状態（以下、応答不能状態と称する）が発生し得る。このようにＨＤＤで応答不能状態が発生し得る環境において、ホストからのデータＩ/Ｏ要求時にＣＭ上に対象データが存在しない場合は、対象データを格納している該当ＨＤＤへのアクセスが発生するが、該当ＨＤＤが応答不能状態であった時は、応答遅延などが発生することになる。
【０００９】
（３）  一方、ホスト等からのディスクアレイ装置に対するＩ/Ｏの中には、そのＩ/Ｏ要求に対して数秒の応答遅延も許されないようなクリティカルＩ/Ｏも存在する。このような応答性の要求が厳しいＩ/Ｏを発行するホストシステムでは、ディスクアレイ装置側が、制限時間（以下、要求応答時間と称する）内にホストシステムに対して正常な応答を返すことができない場合、エラーやシステムダウン等の結果を引き起こし得る。すなわち、ホストからのクリティカルＩ/Ｏ要求をＤＫＣで受信した時、そのアクセス先となるＨＤＤで前記応答不能状態であったとすると、応答遅延などにより前記要求応答時間内に応答できなければ、前記エラー等の結果を引き起こしてしまう。前記ホストからのＩ/Ｏにおける要求応答時間がアクセス先ＨＤＤにおける応答不能状態の持続時間よりも大きい条件の場合は、応答不能状態の終了後に応答することで正常応答可能となる場合もあるが、逆の条件の場合は、応答遅延の発生などによって前記エラー等の結果を引き起こすことになる。
【００１０】
本発明は以上のような問題に鑑みてなされたものであり、その目的は、ディスクアレイ装置で、ホスト等からの応答性の要求が厳しいクリティカルＩ/Ｏに対しても、そのアクセス先となるＳＡＴＡドライブ等の記憶装置での応答不能状態などの状態によらずに、前記応答遅延を発生させず前記エラーやシステムダウン等の結果を引き起こさずに応答でき、Ｉ/Ｏ性能とシステム信頼性の双方の向上を実現できる技術を提供することにある。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１２】
（１）前記目的を達成するために、本発明のディスクアレイ装置は、１つ以上のＨＤＤ等の記憶装置と、記憶装置に対するデータの記憶を制御する記憶制御装置（ＤＫＣ）とを有しＲＡＩＤ制御が可能で、ＤＫＣはＣＭを有し、ネットワーク等の通信手段を介して通信接続されるホスト等の他装置からのＩ/Ｏ要求に従って記憶装置の領域に対してデータをＩ/Ｏする処理を行うディスクアレイ装置であって、以下に示すように、定義情報に従って、Ｉ/Ｏパターンの判定に応じてホストからのクリティカルＩ/Ｏに対応するための事前のキャッシュ制御を実行する手段を備えることを特徴とする。
【００１３】
前記記憶装置では、Ｉ/Ｏ要求に対応した記憶装置の領域へのデータ読み書きのための、ＤＫＣからのアクセス要求に対する応答不能状態が、必要時間発生し得る構成である。前記クリティカルＩ/Ｏとは、特に、ホスト等からのＩ/Ｏにおいて、その要求応答時間がアクセス先の記憶装置における応答不能状態の持続時間よりも短く、応答遅延の発生が問題を引き起こし得るものを指す。
【００１４】
また、前記Ｉ/Ｏ要求を発行するホスト及びそのホスト上で稼動するプログラム等を含んで構成されるホストシステムがあり、ホストシステムからディスクアレイ装置に対して通常のＩ/Ｏの他に前記クリティカルＩ/Ｏ要求が発行され得る。本ディスクアレイ装置は、このようなホストシステムを含む他装置からのＩ/Ｏを処理する。
【００１５】
前記記憶制御装置におけるクリティカルＩ/Ｏの識別や推定は、前記定義情報における特定のＩ/ＯパターンとクリティカルＩ/Ｏとの関連付けに従って行われる。この関連付けは、ホストシステムからのＩ/Ｏに関する、ディスクアレイ装置または外部装置における、事前または事後の評価・解析などにより行われる。本ディスクアレイ装置は、ホストシステムから特定のＩ/Ｏパターンを受領した場合、前記定義情報における関連付けに従って、それら受領した特定のＩ/Ｏを、あるいはその後に続けて受信することになるＩ/Ｏを、クリティカルＩ/Ｏであるものと識別や推定する。Ｉ/Ｏにおける要求応答時間がディスクアレイ装置にとって未知であっても、前記関連付けによってクリティカルＩ/Ｏ対応可能となる。
【００１６】
前記記憶制御装置は、前記定義情報に従って、Ｉ/Ｏにおける特定のＩ/Ｏパターンの判定と、前記特定のＩ/Ｏパターンに関連するクリティカルＩ/Ｏの対象データを対象とした、前記キャッシュメモリを用いた事前のキャッシュ制御とを実行する。そして、前記クリティカルＩ/Ｏが実際に発生した時には、前記キャッシュメモリ上の前記キャッシュ制御されている前記対象データを用いて応答する。
【００１７】
本ディスクアレイ装置は、実際にホストを含む他装置から受領した１つ以上のＩ/ＯからなるＩ/ＯシーケンスにおけるＩ/Ｏパターン（実Ｉ/Ｏパターンとする）について、ディスクアレイ装置内などに保持するデータベース（以下、ＤＢ）に登録されている定義情報をもとにした判定により、特定のＩ/Ｏパターンを抽出する。
【００１８】
前記Ｉ/Ｏパターンの判定及び抽出は、例えば、Ｉ/Ｏシーケンスにおける実Ｉ/Ｏパターンと、前記ＤＢに確定的な情報として格納されている、ホストシステムに対応付けられた参照項となるＩ/Ｏパターン（確定Ｉ/Ｏパターンとする）の情報とを比較して、一致するか否かを判定することによる。
【００１９】
前記ＤＢは、確定Ｉ/Ｏパターンの情報とそれに対応付けられたキャッシュ制御情報とを含む。また更に前記確定Ｉ/Ｏパターンの情報に対して、ホストシステム及びクリティカルＩ/Ｏを表わすホスト情報が対応付けられていてもよい。前記キャッシュ制御情報は、特定のデータについてどのようなキャッシュ制御を実行するかを対応付けて指示する情報であり、例えば、制御対象データを示すアドレス情報と、キャッシュ制御の内容を示す情報とを含む。前記キャッシュ制御の内容は、キャッシュ常駐化制御、すなわち制御対象データをＣＭ上にキャッシュ常駐化オンの状態にする制御などである。
【００２０】
（２）  また、本発明の他のディスクアレイ装置は、更に、前記Ｉ/Ｏパターン判定のために、ホストを含む他装置からのＩ/ＯについてのＩ/Ｏトレースの採取を行う手段を有する。例えば、ディスクアレイ装置に接続される、ディスクアレイ装置の保守・管理処理を担当するプロセッサを持つ管理装置（以下、ＳＶＰとする）から、オペレータ操作などを通じて、ＤＫＣに対して、前記Ｉ/Ｏトレースの採取の開始と終了の指示などを発行する。前記指示に応じてＤＫＣで採取対象時間内のホストからのＩ/Ｏトレースを採取し、採取した情報を、ディスクアレイ装置内または前記ＳＶＰに、ホスト情報などを付加して保持する。採取した情報は、前記Ｉ/Ｏパターンの判定やあるいは外部装置への回収などに用いる。
【００２１】
（３）  また、本発明の他のディスクアレイ装置は、更に、Ｉ/Ｏシーケンスにおける実Ｉ/Ｏパターンと前記確定Ｉ/Ｏパターンとの比較において、類似性の判定を行い、類似性に応じたキャッシュ制御を適用する手段を備える。ＤＫＣは、実Ｉ/Ｏパターンに確定Ｉ/Ｏパターンとの比較で許容範囲内の類似性が見られる場合は、その類似性有りのＩ/Ｏパターンについて、該当確定Ｉ/Ｏパターンに対応するキャッシュ制御情報を適用してキャッシュ制御を実行する。ディスクアレイ装置内に、類似性判定用情報と、Ｉ/Ｏパターンの類似性有無による登録内容の異なるＤＢを保持する。例えば前記確定Ｉ/Ｏパターン等の情報を確定ＤＢとして保持し、類似性有りのＩ/Ｏパターンを含む情報を追加ＤＢとして保持する。
【００２２】
（４）  また、本発明の他のディスクアレイ装置は、更に、ディスクアレイ装置で採取したＩ/Ｏトレースまたは抽出したＩ/Ｏパターンまたは前記ＤＢまたは定義情報などの、本クリティカルＩ/Ｏに関する制御に係わる関連情報を、外部の保守センタ等における装置へと、ネットワーク等の通信手段及びＳＶＰ等を介して回収する手段を有する。例えば、前記ＳＶＰの処理を介して、ディスクアレイ装置で取得・保持している前記Ｉ/Ｏトレースなどの関連情報を、ＳＶＰへと回収し、更に、ＳＶＰから通信手段を介して前記保守センタの装置へと送信して回収する。保守センタの装置または保守センタに接続される検証センタの装置などの外部装置に、１つ以上のディスクアレイ装置からの前記関連情報を回収する。そして、前記外部装置で、回収した情報を利用して検証・解析などを行うことにより、ホストからのＩ/Ｏパターンの情報及びそのＩ/Ｏパターンに対して有効なキャッシュ制御情報などを作成または更新する。
【００２３】
（５）  また、本発明の他のディスクアレイ装置は、更に、前記外部装置で回収した情報をもとに作成した前記ＤＢの最新の定義情報を、ディスクアレイ装置または前記ＳＶＰへと送信してディスクアレイ装置内に保持するＤＢへと反映して更新する手段を有する。本手段により、前記ディスクアレイ装置で保持する確定ＤＢが更新される。
【００２４】
（６）  また、本発明の他のディスクアレイ装置は、更に、前記外部装置に通信手段及び前記ＳＶＰ等を介して接続される、本クリティカルＩ/Ｏに関する制御を行う手段を備える複数のディスクアレイ装置を有する構成のもとで、前記外部装置から複数のすべてまたはその一部のディスクアレイ装置に対して、前記更新されたＤＢの情報を、通信手段及びＳＶＰなどを通じて送信し配布する。そして、前記更新されたＤＢの情報を配布されたディスクアレイ装置は、それを、ディスクアレイ装置で保持しているＤＢの情報に反映して更新する。新たな定義情報が、複数のディスクアレイ装置に対してまとめて適用される。
【００２５】
（７）  前記記憶装置の状態として、通常のＩ/Ｏのアクセス要求を受け付けて処理可能な応答可能状態以外に、前記通常のＩ/Ｏを受け付けず処理不可能な応答不能状態がある。記憶装置での応答不能状態の例として、ＳＡＴＡドライブで備える延命処理機能により、自動的な延命処理を実行中の状態がある。記憶装置は、前記延命処理では、必要時間でディスクに対するシーク動作を行う。
【００２６】
（８）  前記クリティカルＩ/Ｏを発行するホストシステムは、例えば、通信接続される複数のホストを有し、ディスクアレイ装置の機能を利用してクライアントコンピュータに対するサービスを提供するクラスタシステムである。あるいは、特定のＯＳやアプリケーションやミドルウェアなどのプログラムが稼動するホストである。前記クラスタシステムのホストからのクリティカルＩ/Ｏとして、複数のホストからの、ディスクアレイ装置内に設けられている共有ディスクに対する、優先制御のためのＩ/Ｏがある。
【発明の効果】
【００２７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、ディスクアレイ装置で、ホスト等からの応答性の要求が厳しいクリティカルＩ/Ｏに対しても、そのアクセス先となる記憶装置での応答不能状態などの状態によらずに、前記応答遅延を発生させず前記エラーやシステムダウン等の結果を引き起こさずに応答でき、Ｉ/Ｏ性能とシステム信頼性の双方の向上を実現できる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。図１〜１０は、本発明の各実施の形態におけるディスクアレイ装置１を説明するための図である。
【００２９】
以下、実施の形態１のディスクアレイ装置１で備える、ホスト２側からのＩ/Ｏパターンの判定に応じてクリティカルＩ/Ｏに関するキャッシュ制御を行う手段を、第１の手段と称する。また、ホストシステムとは、ホスト２を含んで構成される何らかのコンピュータシステムを指している。また、クリティカルＩ/Ｏとして、ホスト２からＩ/Ｏ要求が発行されてＤＫＣ１０で受信され、これに対応するＩ/Ｏ応答処理が行われるものを対象として説明する。また、ディスクアレイ装置１において、延命処理機能を備えるＳＡＴＡドライブを有する構成で、ＳＡＴＡドライブ以外のＦＣドライブ等の記憶装置が混在して接続される構成が可能であるが、簡単のため、この場合であってもＳＡＴＡドライブに注目して考える。また、通常、複数のＨＤＤ３０からなるディスクアレイに対するＲＡＩＤ制御が行われるが、簡単のため、この場合であってもＩ/Ｏアクセス先となる１つのＳＡＴＡドライブに注目して考える。
【００３０】
（実施の形態１）
図１〜１０を参照して、本発明の実施の形態１におけるディスクアレイ装置１を説明する。実施の形態１では、ハードウェア及びソフトウェアにより構成される第１の手段により、ＤＫＣ１０は、ホスト２からの実Ｉ/Ｏパターンについて確定Ｉ/Ｏパターンと比較する判定を行って特定Ｉ/Ｏパターンを抽出し、特定Ｉ/Ｏパターンに対応付けられたキャッシュ制御情報に従って事前のキャッシュ制御を実行し、その後のホストシステムからのクリティカルＩ/Ｏに対して前記キャッシュ制御されたデータを用いて応答する。
【００３１】
＜ディスクアレイ装置ハードウェア（１）＞
図１（ａ），（ｂ）は、ディスクアレイ装置１の全体のハードウェア外観構成を示す図である。本構成は本発明の各実施の形態で共通である。ディスクアレイ装置１は、例えば１つの基本筐体と複数の増設筐体とから構成することができる。図１（ａ）は、装置後面及び各筐体間の接続構成を示す。基本筐体１１と２つの増設筐体１２とを示す。各筐体に対し、電源ケーブル１３でＡＣ電源が入力される。制御ボード１１１はインタフェースケーブル１５で外部装置と接続される。図１（ｂ）は、装置前面を示す。基本筐体１１では、複数のＨＤＤ３０がＨＤＵ（ＨＤＤユニット）の形で接続され、またバッテリーユニット１１４が接続される。増設筐体１２では、複数のＨＤＤ３０がＨＤＵの形で接続される。
【００３２】
基本筐体１１は、ディスクアレイ装置１の最小構成単位であり、ＤＫＣ１０などが担う記憶制御機能を備える。増設筐体１２は、ディスクアレイ装置１のオプション単位であり、記憶機能を備える。記憶制御機能は、記憶機能を制御する。各筐体には、ディスクアレイ装置１の各種機能を提供するボード（基板）やユニットが装着される。各ボードやユニットは、必要に応じて着脱が可能である。
【００３３】
各筐体は、筐体内に設けられたバックプレーンボードで、筐体内の各ボードやユニットを相互接続する。各筐体は、複数のＨＤＵを装着するための内部構造を有する。各ＨＤＵの装着位置において、ＨＤＵの挿抜のためのガイドレール等の構造が設けられている。各ＨＤＵの装着位置において、保守員等により、ＨＤＵの挿抜が自由に可能となっている。ＨＤＵのＨＤＤ３０のコネクタ部分とバックプレーンボードに設けられているコネクタ部分とを接続することで装着状態となる。
【００３４】
基本筐体には、ＤＫＣ１０を構成する制御ボード１１１、ファンユニット１１２、ＡＣ／ＤＣ電源ユニット１１３、バッテリーユニット１１４等が装着される。ＡＣ／ＤＣ電源ユニット１１３は、入力ＡＣ電源に接続され、筐体内各部に対してＤＣ電源を供給する。バッテリーユニット１１４は、データ入出力の性能向上を図るために使用されるキャッシュメモリに電力を供給する。ファンユニット１１２は、筐体内への送風により空冷する。電源供給に関するセキュリティを確保するために、ＡＣ／ＤＣ電源ユニット１１３等を２系統化した構成としている。
【００３５】
制御ボード１１１は、後述するＣＨＡ１１０やＣＭ１３０等の各機能が実装されている。各機能を制御ボード１１１とは別のボードまたは制御パッケージとして基本筐体に対し装着可能としたディスクアレイ装置形態も可能である。
【００３６】
増設筐体１２は、複数のＨＤＵを並べて挿抜可能に接続・収容する。前記ＨＤＵは、ＨＤＤ３０を含んで、キャニスタ等の、装着のための機械的構造を備えて一体的にモジュール化されたものである。ＨＤＤ３０における記憶領域単位を、ＬＢＡ（ロジカルブロックアドレス）に対応したブロック単位とする。
【００３７】
増設筐体１２には、増設筐体１２内にある電源や筐体を管理する筐体管理部３０１があり、筐体間ケーブル１４を通じて、基本筐体１１の制御ボード１１１に接続される。筐体管理部３０１は、増設筐体１２内の電源状態監視や、ＨＤＤ３０の状態監視などを行う回路が実装されている。
【００３８】
＜情報処理システム＞
図２は、ディスクアレイ装置１を含んで構成される情報処理システムの全体の構成を示すブロック図である。本情報処理システムは、ディスクアレイ装置１，１Ｂ、複数のホストコンピュータ（ホスト）２、クライアントコンピュータ８、ネットワーク４１、クラスタサービス用ネットワーク４２、クラスタ間ハートビート用ネットワーク４３、保守センタ５１、検証センタ５２を有する。
【００３９】
ネットワーク４１を介して、ホスト２とディスクアレイ装置１，１Ｂが通信接続される。ホスト２は、ネットワーク４を介してディスクアレイ装置１に対してアクセスし、ディスクアレイ装置１の記憶ボリュームに対してデータを入出力する。ネットワーク４１において、ディスクアレイ装置１以外には他のディスクアレイ装置が接続されなくともよいし、複数の同様のディスクアレイ装置が接続されてもよい。ディスクアレイ装置１Ｂは、ディスクアレイ装置１と同様に第１の手段を備えるが、それ以外については異なる機能を備えてもよい。
【００４０】
ネットワーク４１は、例えばＦＣプロトコルに準拠した１つ以上のスイッチ等の通信機器により構築されたＳＡＮ（Storage Area Network）であり、ネットワーク４１を介して行われる通信は、例えばＦＣプロトコルに従って行われる。その場合、ホスト２の備えるＨＢＡ（ホストバスアダプタ）とＣＨＡ１１０は、ＦＣプロトコルに従った通信処理機能を備える。ネットワーク４１でＦＣプロトコルに従って通信が行われる場合には、送受信されるデータは、所定のデータ長ごとに１つ以上のデータブロックに分割され、データブロックを単位として制御される。この場合、ホスト２からディスクアレイ装置１に対して、ＦＣプロトコルに従ってブロック単位のデータＩ/Ｏ要求（ブロックアクセス要求）が送信される。
【００４１】
また、ＤＫＣ１０は、ネットワーク４１を介して他のディスクアレイ装置１ＢのＤＫＣ１０とも通信接続可能である。この場合も同様に、例えばＦＣで通信処理される。また、ホスト２とＤＫＣ１０を接続するネットワーク４１は、ＤＫＣ１０間を接続するネットワークと、通信可能に接続された同一ネットワークとしてもよいし、別ネットワークとしてもよい。また、ネットワーク４１及びＦＣ以外の通信手段を用いて通信接続されてもよい。例えば、ホスト２とＤＫＣ１０の間の通信は、ＦＩＣＯＮ（Fibre Connection）（登録商標）やＥＳＣＯＮ（Enterprise System Connection）（登録商標）等のメインフレーム系のプロトコルを用いてもよいし、ＴＣＰ／ＩＰなどのプロトコルを用いてもよい。また、複数種類の通信手段を用いてそれぞれ独立して通信接続されてもよい。
【００４２】
また、ネットワーク４１または他の通信手段を介して、各ディスクアレイ装置１，１ＢのＳＶＰ１６０と保守センタ５１とが通信接続される。保守センタ５１と検証センタ５２も通信接続される。保守センタ５１、検証センタ５２内には、通信機能を有するコンピュータを有する。
【００４３】
また、複数のホスト２とクライアントコンピュータ８とが、クラスタサービス用ネットワーク４２で通信接続される。また、ホスト２間が、クラスタ間ハートビート用ネットワーク４３で通信接続される。複数のホスト２でクラスタシステムが構成されており、ホスト２はクライアントコンピュータ８に対してクラスタサービスを提供する。
【００４４】
ディスクアレイ装置１は、ＤＫＣ１０と、ＨＤＤ３０群を含んだＤＫＵ（ディスクユニット）と、ＳＶＰ１６０とを有する構成である。ディスクアレイ装置１内の少なくともいずれか１つの場所には、第１の手段による制御に用いるＤＢ６０を保持している。ＳＶＰ１６０は、各ＤＫＵ１０に対して内部ＬＡＮを通じて通信接続され、また外部の保守センタ５１に通信接続される。
【００４５】
ＤＫＣ１０は二重化構成（論理的クラスタ構成）であり、同機能のＤＫＣ（Ａ）とＤＫＣ（Ｂ）を有する。ＤＫＣ１０間で通信可能に接続されている。一方のＤＫＣが障害等によりダウンした際でも他方のＤＫＣの稼動継続によりサービス提供が維持できる。
【００４６】
各ＤＫＣ１０は、接続網１９０を介してＤＫＵ内の各ＨＤＤ３０と接続され、ＨＤＤ３０上の記憶ボリュームのデータに対して、ＲＡＩＤ制御を含むアクセスが可能である。
【００４７】
ＤＫＣ１０は、ＣＰＵ１０１、ホストＩ/ＦであるＣＨＡ（チャネル制御部）１１０、キャッシュ制御に用いられるＣＭ１３０、ドライブＩ/ＦであるＤＫＡ（ディスク制御部）１４０を含んで構成されている。
【００４８】
図１中のａ１は、ホスト２からディスクアレイ装置１の記憶ボリュームのデータ３２を対象としたＩ/Ｏを示す。データ３２はクリティカルＩ/Ｏ対象と共にキャッシュ制御対象ともなる。ａ２は、Ｉ/Ｏ（ａ１）における、ホスト２からディスクアレイ装置１に対するＩ/Ｏ要求を示す。ａ３は、Ｉ/Ｏ（ａ１）における、ディスクアレイ装置１からホスト２に対するＩ/Ｏ応答を示す。Ｉ/Ｏ（ａ１）は、ＤＫＣ１０のＣＨＡ１１０、ＣＭ１３０、ＤＫＡ１４０を介した、ＳＡＴＡドライブ上のデータ３２の読み書きである。ＤＫＣ１０は、ＣＨＡ１１０を介したホスト２からのＩ/Ｏ要求（ａ２）の受信に応じて、そのＩ/Ｏ対象のデータ３２を、ＣＭ１３０及びＤＫＡ１４０を介してＳＡＴＡドライブに対して読み書き処理し、Ｉ/Ｏ応答（ａ３）をホスト２へ返す。例えば、ＤＫＣ１０は、Ｉ/Ｏ要求（ａ２）であるＲｅａｄコマンドに応じて、ＣＭ１３０上またはアクセス先のＳＡＴＡドライブからデータ３２を読み出し、Ｉ/Ｏ応答（ａ３）として返す。またＤＫＣ１０は、Ｉ/Ｏ要求（ａ２）であるＷｒｉｔｅコマンド及び書き込みデータに応じて、ＣＭ１３０上またはアクセス先のＳＡＴＡドライブに対して書き込みデータを書き込み、書き込みした旨をＩ/Ｏ応答（ａ３）として返す。
【００４９】
ホスト２は、ＣＰＵ、メモリ、通信インタフェース部などを備える、ディスクアレイ装置１に対するＩ/Ｏを行う上位装置であり、例えばＰＣ、ワークステーション、サーバ、メインフレームコンピュータといった形態の情報処理装置である。ホスト２は、前記ＣＰＵにより各種プログラムが実行されることにより、ホストとしての様々な機能が実現される。ホスト２は、ディスクアレイ装置１に対するデータＩ/Ｏのアクセスを行うためのソフトウェア（管理プログラムと称する）と、ディスクアレイ装置１に対するアクセスを利用して情報処理サービスを行うためのアプリケーションプログラム等とを備える。ホストシステムは、ホスト２上に何らかのＯＳやアプリケーションやミドルウェア等がインストールされたものであり、本実施の形態ではクラスタソフトウェアをインストールした複数のホスト２からなるクラスタシステムである。
【００５０】
ホスト２では、前記ＣＰＵが全体の制御を行い、前記メモリに記憶されるプログラムを実行して各種機能を実現する。前記ＣＰＵがアプリケーションプログラムを実行することにより情報処理サービスの提供が行われる。また前記ＣＰＵが管理プログラムを実行することにより、ディスクアレイ装置１で扱う記憶ボリュームについての管理が行われる。例えば、ＨＤＤ筐体３００側に備える記憶ボリュームやそのＬＵＮを設定して対応付けるためのコマンドを、ＤＫＣ１０に対して送信可能である。
【００５１】
クライアントコンピュータ８は、ＣＰＵ、メモリ、通信インタフェース部などを備える、ホスト２に対するクラスタサービスアクセスを行う、例えばＰＣ等の情報処理装置である。
【００５２】
ＳＶＰ１６０は、ディスクアレイ装置１を保守・管理処理するためのプロセッサを持つコンピュータであり、ディスクアレイ装置１に内蔵または外部接続される形態である。本例では、ディスクアレイ装置１の構成の一部として、ＤＫＣ１０に対してＬＡＮコントローラ１０５を通じてＳＶＰ１６０が接続される形態である。オペレータによるＳＶＰ１６０の操作により、例えばＤＫＵの物理ディスク構成やＬＵの設定、ＣＨＡ１１０等において実行されるプログラムのインストール等の処理が可能である。また、ＳＶＰ１６０は、ディスクアレイ装置１の保守・管理を専用に行うコンピュータの形態や、汎用コンピュータに保守・管理機能を持たせた形態などが可能である。本実施の形態では、ＳＶＰ１６０と通信接続される保守センタ５１との間で、ＤＫＣ１０で採取した情報やＤＢ６０の情報などが授受される。
【００５３】
ＳＶＰ１６０は、ＣＰＵ、メモリ、ポート、記録媒体読み取り装置、入力装置、出力装置、記憶装置などを備える。前記ＣＰＵが全体の制御を行い、前記メモリに記憶される制御プログラム１６１を実行して保守・管理機能を含む本発明に係わる制御を実現する。前記メモリや記憶装置に、前記本発明に係わる制御で使用する各種情報が記憶される。前記ポートはディスクアレイ装置１の内部ＬＡＮや外部ネットワークなどに対し接続され、これによりＤＫＣ１０内の処理部や外部装置と通信可能である。前記入力装置、出力装置、記録媒体読み取り装置などを利用してオペレータが操作を行う。
【００５４】
＜ディスクアレイ装置ハードウェア（２）＞
次に、図３は、ディスクアレイ装置１のより詳細なハードウェア構成例を示すブロック図である。１つのホスト２と一方のＤＫＣ（Ａ）１０との接続のみを示す。また、外部には、ＳＶＰ１６０を介して、保守センタ５１等が保持する確定ＤＢ６０Ａがある。ディスクアレイ装置１内で保持するＤＢ６０の情報は、この外部の確定ＤＢ６０Ａをもとに構成された情報である。
【００５５】
ＤＫＣ１０に対して、ＤＫＡ１４０及び接続網１９０を介して、ＨＤＤ筐体３００内の各ＨＤＤ３０が通信接続される。また図示しない内部ＬＡＮで、ＤＫＣ１０内のＣＨＡ１１０やＤＫＡ１４０等の各部とＳＶＰ１６０とが接続されている。ＨＤＤ筐体３００が接続網１９０を介して１つ以上接続される構成であり、これが前記ＤＫＵに対応する。
【００５６】
＜ＤＫＣ＞
ＤＫＣ１０は、ＣＰＵ１０１、システムメモリ１０２、フラッシュメモリ１０３、ＣＰＵ／ＰＣＩブリッジ１０４、ＬＡＮコントローラ１０５、ＣＨＡ１１０、ＣＭ１３０、ＤＫＡ１４０、ＤＣ（データコントローラ）１５０を有する。また、ＤＫＣ１０内のいずれかのメモリ上に確定ＤＢ６０Ａと追加ＤＢ６０Ｂを保持している。
【００５７】
ＤＫＣ１０内各部は互いにバスを介して接続されている。バスは、例えば、ＰＣＩバスである。バスで伝送されるデータの単位はワードと呼ばれる。当該バスは、勿論ＰＣＩバス以外のバスであってもよい。また１ワードは３２ビットに限らず、８／１６／６４／１２８ビットなどの単位とすることができる。
【００５８】
ＣＰＵ１０１は、ディスクアレイ装置１の全体を制御するもので、システムメモリ１０２やフラッシュメモリ１０３に格納されたプログラムを実行することにより、ＨＤＤ３０の管理やブロックアクセス要求の解釈などの様々な機能を実現する。システムメモリ１０２は、ＣＰＵ１０１により使用され、主に制御プログラムや制御情報や処理データなどが格納される。フラッシュメモリ１０３は不揮発性メモリであり、ＣＰＵ１０１が実行するプログラムや設定情報などを格納する。ＣＰＵ／ＰＣＩブリッジ１０４は、ＣＰＵ／ＰＣＩのバスブリッジであり、ＣＰＵ１０１、システムメモリ１０２、フラッシュメモリ１０３、ＬＡＮコントローラ１０５、ＤＣ１５０を接続する。ＬＡＮコントローラ１０５は、ＣＰＵ／ＰＣＩブリッジ１０４に接続され、内部ＬＡＮを通じてＤＫＣ１０内各部とＳＶＰ１６０側との通信接続を行う。
【００５９】
ＣＨＡ１１０は、ホスト２や他のディスクアレイ装置１Ｂ等の他装置との間での通信処理を行うインタフェースを備え、他装置とＤＫＣ１０内の処理部との間でデータを授受する。ＣＨＡ１１０は、ホストＩ/Ｆ部とも呼ばれる。ＣＨＡ１１０として、例えばホストＩ/Ｆに応じた種類のものを１つ以上用意して使用可能である。本例では、ＣＨＡ１１０は、ＦＣプロトコルに従ってブロックアクセス要求を受け付ける機能を備える。ＣＨＡ１１０は、ＳＡＮ（ネットワーク４１）の通信形態によって、例えば、ｉＳＣＳＩなどのプロトコルによるブロックアクセス要求を受け付けるようにすることもできる。
【００６０】
ＣＨＡ１１０は、例えばインタフェース部、プロセッサ、メモリ等を備える構成である。前記インタフェース部は、ネットワーク４１を介したホスト２等との通信処理や、ＤＣ１５０を介したＤＫＣ１０内各部との通信処理を行う。前記プロセッサは、ＣＨＡ１１０の制御を行うと共に、各部との通信を行う。前記プロセッサにより前記メモリに格納されたプログラムが実行されることにより、ＣＨＡ１１０としての機能が実現される。
【００６１】
ＤＫＡ１４０は、ＨＤＤ筐体３００側のＨＤＤ３０との間でデータの授受を行うインタフェースを備え、ＨＤＤ３０とＤＫＣ１０内の処理部との間でデータを授受する。ＤＫＡ１４０は、ドライブＩ/Ｆ部またはディスクＩ/Ｆ部とも呼ばれる。ＤＫＡ１４０は、ＨＤＤ３０を制御するコマンドなどを規定するプロトコルに従ってＨＤＤ３０に対するデータＩ/Ｏ要求を送信する機能を備える。ＤＫＡ１４０は、例えば、ドライブＩ/Ｆに応じたＳＣＳＩやＦＣやＳＡＴＡなどのプロトコルに従って、ＨＤＤ３０に対してデータの書き込みや読み出しのコマンドを送信することができる。ＤＫＡ１４０として、例えばドライブＩ/Ｆに応じた種類のものを１つ以上用意して使用可能である。
【００６２】
ＤＫＡ１４０は、インタフェース部、プロセッサ、メモリ備える構成である。前記インタフェース部は、接続網１９０を介したＨＤＤ３０側との通信処理や、ＤＣ１５０を介したＤＫＣ１０内各部との通信処理を行う。本例では、ＤＫＡ１４０とＳＡＴＡドライブ（３０）との間で、ＳＡＴＡプロトコルに従った処理が行われる。前記プロセッサは、ＤＫＡ１４０の制御を行うと共に、各部との通信を行う。前記プロセッサにより前記メモリに格納されたプログラムが実行されることにより、ＤＫＡ１４０としての機能が実現される。
【００６３】
ＣＭ１３０は、ＣＨＡ１１０とＤＫＡ１４０の間で授受されるデータ（ホスト２からのＩ/Ｏデータを含む）を記憶するための、ＤＫＣ１０内で共用されるメモリであり、特にキャッシュ制御にも用いられる。ＣＭ１３０上に確保される領域には、キャッシュ制御されるデータがキャッシュデータとして記憶される。ＣＭ１３０は、例えば、メモリ基板及びメモリ制御回路を備えた制御パッケージとして構成される。
【００６４】
ＤＣ１５０は、ＣＰＵ１０１の制御により、ＣＨＡ１１０、ＣＭ１３０、ＤＫＡ１４０、ＣＰＵ／ＰＣＩブリッジ１０４等を相互接続してデータ転送する接続部を構成する回路である。ＤＣ１５０は、例えば、特定用途向けＩＣにロジックを形成した回路とすることができる。ＣＰＵ１０１、ＣＨＡ１１０、ＣＭ１３０、ＤＫＡ１４０などの間でのデータやコマンドの授受は、ＤＣ１５０を介して行われる。
【００６５】
ＤＫＡ１４０は、システムディスク９０、及びＤＢ６０としての確定ＤＢ６０Ａと追加ＤＢ６０Ｂに対して、アクセス可能である。なおシステムディスク９０及びＤＢ６０がＤＫＣ１０内にあるように図示しているが、ＨＤＤ３０上の記憶ボリュームとして保持して、ＤＫＡ１４０がＤＫＣ１０のいずれかのメモリ上に読み出して使用する形態が可能である。ＣＰＵ１０１、ＣＨＡ１１０等も、ＤＫＡ１４０を介してシステムディスク９０やＤＢ６０にアクセス可能である。またＤＫＵではなくＳＶＰ１６０内にＤＢ６０を保持する形態も可能である。
【００６６】
システムディスク９０は、ＤＫＣ１０で実行する制御プログラム９１を含んでいる。ＤＢ６０は例えばシステムディスク９０内に管理される。ＣＰＵ１０１は、制御プログラム９１を実行することで、第１の手段による制御を実現する。ＳＶＰ１６０も、自身が有するプロセッサにより制御プログラム１６１を実行することで、第１の手段による制御に関連する制御を実行する。
【００６７】
なお、ＣＨＡ１１０とＤＫＡ１４０の間でのデータＩ/Ｏの処理の指示を、ＣＰＵ１０１を介在させて行う構成の他に、ＣＨＡ１１０とＤＫＡ１４０の間で直接的に行う構成とすることもできる。また、ＣＨＡ１１０とＤＫＡ１４０の機能を両方持たせた処理部構成とすることも可能であり、ＣＨＡ１１０がＨＤＤ３０側に対するデータ読み書きを行うようにすることもできる。また、ＣＭ１３０がＣＨＡ１１０とＤＫＡ１４０に対して独立に設けられた構成に限らず、ＣＨＡ１１０等の各々に分散されて設けられた構成も可能である。
【００６８】
＜ＤＫＵ＞
ＨＤＤ筐体３００内には、ＨＤＤ３０として、ＳＡＴＡドライブ、ＦＣドライブ等の混在が可能であるが、本実施の形態では簡単のため、ＳＡＴＡドライブのみが接続されている。接続網１９０は、ＳＡＴＡドライブに対するアクセスに対応したものである。
【００６９】
記憶ボリュームは、ＨＤＤ３０により提供される物理的な記憶領域である物理ボリュームと、物理ボリューム上に論理的に設定される記憶領域である論理ボリュームとを含む、データを記憶するための記憶資源をいう。論理ボリュームを特にＬＵ（論理ユニット）とも称する。複数のＨＤＤ３０からディスクアレイが構成され、ホスト２に対する記憶領域を、ＲＡＩＤ制御により管理されたＲＡＩＤグループとして提供可能である。各記憶ボリュームには、ＬＵＮ（論理ユニット番号）等の固有の識別子が付与されて管理され、ＬＵＮ指定による記憶領域を提供可能である。ホスト２からディスクアレイ装置１に対するＩ/Ｏ要求には、Ｉ/Ｏ対象を指定するためのＬＵＮやＬＢＡが記述される。
【００７０】
ＨＤＤ筐体３００内に、筐体管理部３０１、ＤＰＡ（Dual Port Apparatus）３０２、ＨＤＤ（ＳＡＴＡドライブ）３０が、接続網１９０のラインを通じて接続されている。
【００７１】
筐体管理部３０１は、ＨＤＤ筐体３００内の動作状況を収集して保持しておき、ＤＫＣ１０からのＨＤＤ筐体動作状況報告要求を処理するインタフェースを持つ。前記ＨＤＤ筐体３００内の動作状況とは、ＨＤＤ３０、電源ユニット、ファン等の各要素の状況である。
【００７２】
なお、ドライブＩ/Ｆが混在した構成とする場合は、ＤＫＣ１０やＤＫＵ内などに必要なインタフェース変換機構を設けることで、ＤＫＣ１０のＤＫＡ１４０とＨＤＤ３０とのインタフェースが異なる場合も変換処理により対応できる。例えば、接続網１９０上にＦＣとＳＡＴＡとのインタフェース変換機構を設けることで、ＦＣインタフェース対応のＤＫＡ１４０からＦＣプロトコルに従ったアクセスが行われても、ＳＡＴＡインタフェースへの変換によってＳＡＴＡドライブで応答が可能である。また例えばＤＫＣ１０内にＦＣプロトコルに従った処理を行うＦＣチップなどを設けた形態も可能である。
【００７３】
ＤＰＡ３０２は、シングルポートのＳＡＴＡドライブに繋がるパスの変換を行い、デュアルポート化する回路である。一般に、ＳＡＴＡドライブは、ドライブＩ/Ｆポートを１つ（シングルポート）しか有さない。しかし、ディスクアレイ装置では、多くの場合、ＤＫＣ１０またはドライブＩ/Ｆを二重化した構成である。そのため、ＨＤＤ３０へのアクセスパスは接続網１９０において２経路存在する。このため、ＤＫＣ１０側からのパスをＳＡＴＡドライブに接続する際に、ＤＰＡ３０２でパスの変換、すなわち２ポートから１ポートへの変換を行う。ＳＡＴＡドライブは、ＦＣドライブ使用の場合と同様に、接続網１９０のいずれのパスからのアクセスも受け入れ可能となる。
【００７４】
ＦＣドライブの場合、ドライブＩ/Ｆポートを２つ（デュアルポート）有するものがあり、それらをディスクアレイ装置１で使用する場合、ＤＰＡ３０２は不要となる。デュアルポート化されているＦＣドライブは、ＤＫＣ１０側からＦＣドライブに対して２つのパスからの読み書きが可能である。また、ＦＣドライブでは、ＳＣＳＩ３（Small Computer System Interface 3）規格に規定されるＳＥＳ（ＳＣＳＩ Enclosure Service）やＥＳＩ(Enclosure Service I/F)の機能を備える。ＳＥＳとは、電源、冷却デバイス、インジケータ、個々のＨＤＤ、スイッチなどＨＤＤ筐体３００内に搭載された種々の要素の作動状況を監視することや、ステータスの読み取りに使用されるソフトウェア仕様である。ＥＳＩは、ＳＥＳコマンドおよびその結果を授受するためのハードウェアインタフェースである。ＳＥＳおよびＥＳＩを使用することにより、例えば、各ＨＤＤ３０の作動状況を確認することが可能となる。
【００７５】
本実施の形態では、ＳＡＴＡドライブであるＨＤＤ３０はシングルポートであり、ＦＣの場合のようなＳＥＳやＥＳＩの機能を有していない。ただし、これらの機能を有するＳＡＴＡドライブの適用を排除するものではない。
【００７６】
上記のようにＦＣドライブはＳＥＳ機能を備えているのに対し、ＳＡＴＡドライブはこの機能を備えていない。ＳＡＴＡドライブを収容するＨＤＤ筐体３００は、この差違を補うために、筐体管理部３０１が設けられている。
【００７７】
筐体管理部３０１は、内部にＣＰＵ、メモリ、キャッシュメモリなどを備えたマイクロコンピュータであり、ＨＤＤ筐体３００内部の各ＨＤＤ３０から、ディスク種別、アドレス、動作状態、その他の管理情報を収集する。筐体管理部３０１は、収集した情報を、ＤＫＣ１０からのＳＥＳコマンドに応じて、ＤＫＣ１０に提供する。
【００７８】
ＦＣドライブ使用の場合は、ＦＣドライブは、ＰＢＣ（Port Bypass Circuit）を介して２つのＦＣ−ＡＬ（Arbitrated Loop）である接続網１９０にそれぞれ接続される。
【００７９】
＜通常のデータＩ/Ｏ処理＞
ディスクアレイ装置１における通常のデータＩ/Ｏ処理の手順は従来通りであり、ホスト２からのＷｒｉｔｅ／Ｒｅａｄコマンドに応じたディスクアレイ装置１での記憶ボリューム（ＨＤＤ３０）に対するデータのＷｒｉｔｅ（書き込み）処理／Ｒｅａｄ（読み込み）処理は、例えば以下である。ＣＰＵ１０１、ＣＨＡ１１０、ＣＭ１３０、及びＤＫＡ１４０の間で、ＤＣ１５０を介してＣＭ１３０にキャッシュを行いながらデータ転送処理される。
【００８０】
まず、Ｗｒｉｔｅ処理は以下である。ホスト２が、ＨＤＤ３０に対する書き込みを要求するアクセス要求（書き込み要求と称する）をディスクアレイ装置１に送信する。ディスクアレイ装置１では、ＣＨＡ１１０が書き込み要求を受け付け、ＤＣ１５０が書き込み要求に付随する書き込みデータをＣＭ１３０に転送する。書き込みデータがＣＭ１３０に転送されると、ＤＣ１５０がＣＭ１３０からＤＫＡ１４０に書き込みデータを読み出し、ＤＫＡ１４０が書き込み先のＨＤＤ３０に対する書き込みを指示するコマンドを送信する。ＤＫＡ１４０からコマンドを受け取ったＨＤＤ３０は、書き込みデータをディスク領域に書き込む。
【００８１】
次に、Ｒｅａｄ処理は以下である。ホスト２がＨＤＤ３０に対する読み込みを要求するアクセス要求（読み込み要求と称する）をディスクアレイ装置１に送信する。ディスクアレイ装置１では、ＣＨＡ１１０が読み込み要求を受け付け、ＤＣ１５０が読み込み要求に付随する読み込みデータアドレスをＤＫＡ１４０に送信する。ＤＫＡ１４０が読み込み先のＨＤＤ３０に対する読み込みを指示するコマンドを送信する。コマンドに従ってＨＤＤ３０から読み込まれた読み込みデータは、ＤＫＡ１４０を経由してＤＣ１５０がＣＭ１３０に転送する。読み込みデータがＣＭ１３０に転送されると、ＤＣ１５０がＣＭ１３０からＣＨＡ１１０に読み込みデータを送信する。ＣＨＡ１１０は読み込みデータをホスト２に送信する。
【００８２】
＜クリティカルＩ/Ｏ制御＞
図４は、ディスクアレイ装置１における第１の手段による制御に係わる処理のための構成を示す図である。
【００８３】
ホスト２からのＩ/ＯがクリティカルＩ/Ｏの場合でも、仮に、そのＩ/Ｏ対象データがＤＫＣ１０のＣＭ１３０上に格納されているならば、ＨＤＤ３０での応答不能状態による応答遅延を発生させずに、すぐに当該ＣＭ１３０上のデータを用いて応答が可能となる。そのために、本ディスクアレイ装置１では、ＤＫＣ１０において、ホスト２等から受信したＩ/Ｏ要求に対して応答するＩ/Ｏ処理に関して、当該Ｉ/Ｏのアクセス先となるＨＤＤ３０における応答不能状態などの状態によって応答性能が制限されないように、ホスト２からのクリティカルＩ/Ｏ要求の発生の事前に、そのクリティカルＩ/Ｏの対象データ３２またはそれに関連したデータ等を対象として、ＣＭ１３０上の領域にキャッシュまたはステージング処理しておく等のキャッシュ制御を行っておく。そうすれば、そのＣＭ１３０上にキャッシュ制御済みのデータについては、クリティカルＩ/Ｏ発生時にも応答遅延無しで応答処理が可能となり、エラー等の結果を引き起こす心配が無い。
【００８４】
なお、前記ステージング処理は、キャッシュまたはキャッシュ常駐化のために、制御対象となるデータをＨＤＤ３０側の領域からＣＭ１３０上の領域へと読み出して格納しておく処理である。逆に、デステージング処理は、ＣＭ１３０上のキャッシュデータを本来のＨＤＤ３０側の領域へと書き込んで反映更新する処理である。
【００８５】
本ディスクアレイ装置１は、ＤＫＣ１０において、Ｉ/Ｏ要求に対して応答するＩ/Ｏ処理に関して、ディスクアレイ装置１内などで保持する定義情報に従って、特定のＩ/Ｏパターンに対応付けられたキャッシュ制御を実行する。そのために、ＤＫＣ１０は、他装置からのＩ/Ｏの受領をもとに、ホスト２からのクリティカルＩ/Ｏに関連する、特定のＩ/Ｏパターンを、定義情報との比較に基づき判定して抽出し、判定された特定Ｉ/Ｏパターンに対応付けられるキャッシュ制御情報７３に従って、実際のクリティカルＩ/Ｏ発生に備えた事前のキャッシュ制御を実行する。言い換えれば、特定Ｉ/Ｏパターンから、当該Ｉ/Ｏ発行側のホストシステム及びそのクリティカルＩ/Ｏについて推定される。例えば特定Ｉ/Ｏパターンの後に続けて受領されるＩ/Ｏが特定のクリティカルＩ/Ｏであると推定される。
【００８６】
ディスクアレイ装置１では、ホスト２からの１つ以上のＩ/Ｏ（ａ１）の受領をもとに、Ｉ/Ｏシーケンスにおける実Ｉ/Ｏパターンを、確定ＤＢ６０Ａに登録されている確定Ｉ/Ｏパターン情報７２と比較して特定Ｉ/Ｏパターンを判定する。そして、ホスト２からの実Ｉ/Ｏパターンが、確定Ｉ/Ｏパターンと一致する場合は、そのＩ/Ｏパターンに対応したキャッシュ制御情報７３に従って、キャッシュ制御を実行する。
【００８７】
キャッシュ制御として、特に、クリティカルＩ/Ｏの対象データ３２を、ＣＭ１３０上の領域にキャッシュ常駐化オン状態にする制御を行う。例えば、Ｉ/Ｏパターン及びクリティカルＩ/Ｏの判定後、制御対象となるＨＤＤ３０上の該当データ３２を、ＬＢＡのブロック単位あるいは複数のブロックのデータセット単位、ＬＵ３１単位などで、ＣＭ１３０上に確保される領域に読み出して記憶しておくステージング処理を行う。
【００８８】
ＤＫＣ１０は、特定Ｉ/Ｏパターン受領及びキャッシュ制御実行後にクリティカルＩ/Ｏ要求をホスト２側から受信した場合は、ＣＭ１３０上に対象Ｉ/Ｏデータ３２がキャッシュ常駐化データ３３としてキャッシュされているので、Ｉ/Ｏ要求に同期したディスクアクセスは実行されず、キャッシュ常駐化データ３３を用いて応答処理できる。従って、ＨＤＤ３０の状態がたとえ延命処理実行中の応答不能状態などであっても、応答遅延を発生することなく当該クリティカルＩ/Ｏにおける要求応答時間内に応答できる。
【００８９】
上記のような制御を実行することで、特に、ホストシステムからのクリティカルＩ/Ｏに対してＨＤＤ３０の状態によらないＩ/Ｏ性能優先の制御が実現され、エラーやシステムダウン等を引き起こさずにクリティカルＩ/Ｏが正常に応答処理されるので、システム信頼性が向上される。
【００９０】
実施の形態１では、ＤＫＣ１０において、特定Ｉ/Ｏパターンに適したキャッシュ制御情報７３があらかじめＤＢ６０として組み込まれた構成である。例えば、本ディスクアレイ装置製品の開発段階で、ホスト２を含むシステム構成ごとにシステム評価・解析を行い、ホスト２からのＩ/Ｏパターンの規則性を導出し、そのＩ/Ｏパターンに応じて有効なキャッシュ制御情報７３を作成しておく。Ｉ/Ｏパターン情報７２とキャッシュ制御情報７３との対応付け情報、更にはホスト情報７１を含んだ情報をＤＢ化して、それを確定ＤＢ６０Ａとし、ディスクアレイ装置１内に組み込んでおく。
【００９１】
図４で、ＣＰＵ１０１は、制御プログラム９１の実行により、Ｉ/Ｏトレース採取、Ｉ/Ｏパターン−クリティカルＩ/Ｏ判定、キャッシュ制御、延命処理制御の各処理を行う。ＣＰＵ１０１以外のＣＨＡ１１０やＤＫＡ１４０等が各処理を行ってもよい。ＳＶＰ１６０は、制御プログラム１６１の実行により、トレース採取指示、情報収集・回収、ＤＢ更新の各処理を行う（実施の形態２以下で行う）。保守センタ５１及び検証センタ５２に有する装置は、情報回収、情報検証、ＤＢ更新、ＤＢ配布の各処理を行う（実施の形態２以下で行う）。
【００９２】
ＤＫＣ１０において、前記Ｉ/Ｏトレース採取は、他装置からのＩ/Ｏに関するＩ/Ｏトレースを採取する処理であり、採取した情報はＩ/Ｏパターン判定などに用いられる。前記Ｉ/Ｏパターン−クリティカルＩ/Ｏ判定は、ＤＢ６０を用いたＩ/Ｏパターン判定を含む処理であり、判定された特定Ｉ/Ｏパターンと、ホストシステム及びホスト２からのクリティカルＩ/Ｏとを対応付けるものである。前記キャッシュ制御は、Ｉ/Ｏパターン−クリティカルＩ/Ｏ判定の結果に基づきキャッシュ制御を実行する処理である。前記延命処理制御は、ＨＤＤ（ＳＡＴＡドライブ）３０での延命処理に関してＤＫＣ１０側からＨＤＤ３０に対するアクセス制御を行って延命処理を効果的にするための処理であるが、必須ではない。延命処理制御として、定期的にディスクアクセスを一時停止させる等の制御が可能である。
【００９３】
ＳＶＰ１６０において、前記トレース採取指示は、ＤＫＣ１０に対してＩ/Ｏトレースの採取を指示する処理である。前記情報収集・回収は、前記Ｉ/Ｏトレースや追加ＤＢ６０Ｂ等の情報をディスクアレイ装置１内からＳＶＰ１６０に収集し、更には外部の保守センタ５１側の装置へ送信して回収させる処理である。前記ＤＢ更新は、ディスクアレイ装置１内のＤＢ６０を、保守センタ５１側からの配布情報に基づき更新する処理である。
【００９４】
保守センタ５１及び検証センタ５２において、前記情報回収は、各ディスクアレイ装置１のＳＶＰ１６０から前記Ｉ/Ｏトレース等の情報を回収する処理である。前記情報検証は、前記回収した情報を検証してホストシステム評価・解析によってＤＢ６０のための定義情報を作成する処理である。前記ＤＢ更新は、前記情報検証により新たに作成した定義情報などにより確定ＤＢ６０Ａを更新し、更には再配布可能な形式の配布情報を作成する処理である。前記ＤＢ配布は、前記更新された確定ＤＢ６０Ａの配布情報などを管理下のディスクアレイ装置１のＳＶＰ１６０に対して配布する処理である。
【００９５】
ＤＫＣ１０内のＤＢ６０は、ホスト情報７１、Ｉ/Ｏパターン情報７２、キャッシュ制御情報７３の各テーブルを含んでいる。ＣＭ１３０上には、通常Ｉ/Ｏのキャッシュデータの他に、キャッシュ常駐化データ３３を格納するための領域が必要に応じて確保される。
【００９６】
ＳＡＴＡドライブであるＨＤＤ３０は、延命処理機能を備える。このＳＡＴＡドライブは、ＤＫＣ１０側からの通常のデータ読み書きのためのアクセス要求を受けていない状態において、自動的に延命処理を実行する。ＨＤＤ３０上には、ＬＵ３１が設定され、ＬＵ３１内のデータ３２に対してＩ/Ｏが行われる。データ３２は、特にクリティカルＩ/Ｏの対象となるデータとする。
【００９７】
ホスト２からＣＨＡ１１０に対して前記Ｉ/Ｏ要求（ａ２）が送信される。Ｉ/Ｏ要求（ａ２）に応じて、ＣＭ１３０上に該当キャッシュデータがない場合は、ＤＫＡ１４０から、該当ＨＤＤ３０のＬＵ３１のデータ３２に対して、ａ４で示すＩ/Ｏ（ディスクアクセスとも称する）が行われる。前記Ｉ/Ｏ要求（ａ２）に応じて、ＣＭ１３０上に該当キャッシュデータがある場合は、ａ６で示すキャッシュデータを用いた応答（キャッシュ応答と称する）が行われる。また、ａ５で示すキャッシュ制御に係わるアクセス（キャッシュ制御アクセスと称する）として、通常Ｉ/Ｏに関するキャッシュ制御または第１の手段におけるキャッシュ制御の実行に応じて、ＨＤＤ３０側のデータ３２をＣＭ１３０上の領域にキャッシュまたはステージング処理する場合に、ＤＫＡ１４０の処理を介して、対象データ３２がＣＭ１３０上に確保される領域に読み出されて記憶される。第１の手段におけるキャッシュ制御として特にキャッシュ常駐化制御を実行する場合は、クリティカルＩ/Ｏに関連するＬＵ３１のデータ３２が、キャッシュ常駐化データ３３としてＣＭ１３０上に常駐化される。
【００９８】
ＣＰＵ１０１は、ホスト２からのＩ/Ｏ要求（ａ２）に対応したＩ/Ｏ（ａ１）を制御すると共に、Ｉ/Ｏパターン判定やキャッシュ制御の実行などを行う。システムメモリ１０２には、システムディスク９０の情報やＤＢ６０の情報が読み出されて格納される。ディスクアレイ装置１の起動時などに、ＣＰＵ１０１からの命令により、システムディスク９０及びＤＢ６０の情報が、システムメモリ１０２上に読み込まれる。
【００９９】
ＣＰＵ１０１は、ＣＨＡ１１０経由で接続されたホスト２からのＩ/Ｏ要求（コマンド）を監視する。ホスト２からのコマンドを受信した場合は、受信コマンドを、システムメモリ１０２上のＤＢ６０のＩ/Ｏパターン情報７２と比較することでＩ/Ｏパターン判定を行う。ＣＰＵ１０１は、確定Ｉ/Ｏパターンと一致するシーケンスが発行されていると認識した場合は、そのＩ/Ｏパターンに対応したキャッシュ制御情報７３に従って、ＤＫＡ１４０の先のＨＤＤ３０から、クリティカルＩ/Ｏ対象データ３２またはその関連データを、ＣＭ１３０上にＬＢＡのブロック単位で常駐化させる（ａ５）。そして、その後のホスト２からの当該データ３２へのＩ/Ｏ要求（ａ２）については、ＣＭ１３０上のキャッシュ常駐化データ３３を利用して応答処理する（ａ６）。
【０１００】
＜ＨＤＤにおける延命処理＞
ＤＫＣ１０のＤＫＡ１４０に接続された、ＤＫＵ内のＳＡＴＡドライブ（３０）において、延命処理（長寿命化処理ともいう）機能を備える。接続状態のＳＡＴＡドライブ（３０）において、通常のデータＩ/Ｏのためのディスクアクセスが無い状態の時に、１回の延命処理が自動的に開始され、例えば５秒間といった必要時間で延命処理を終了する。この延命処理の実行中は、通常のＩ/Ｏ及びクリティカルＩ/Ｏのためのアクセス要求に対応できない応答不能状態である。
【０１０１】
一例として、ＤＫＣ１０は、延命処理制御として、延命処理機能を有するＳＡＴＡドライブ（３０）に対するディスクアクセスを、一時的に停止してやる制御を行う。これにより発生した休みの間にＳＡＴＡドライブ（３０）で自動的に延命処理が実施されることとなり、延命処理機能を効果的なものにできる。例えば、最低で１時間ごとに１回といった定期的な間隔で一時的に停止してやる制御を行う。
【０１０２】
延命処理の目的および機能の概要は以下である。ＳＡＴＡドライブ（３０）は、微少な塵が特定トラック上に堆積しないようにするために、定期的にヘッドを移動させて微小な塵を吹き飛ばすアイドルシーク（idle seek）すなわち遊休状態・空運転でのシーク動作を行う機能を備えている。ＨＤＤ内で円盤磁性面には潤滑剤が塗られており、その潤滑剤を均一化することを目的に、ヘッドのシーク動作を行っている。
【０１０３】
ＳＡＴＡドライブ（３０）における延命処理の動作スケジュールは、例えば以下である。ＨＤＤ３０は、通常、前回のアイドルシークの終了時から一定時間以上の時間が経過すると、アイドルシークの開始を試み、その時当該ＨＤＤに対するデータアクセスが行われていなければ、アイドルシークを開始する。しかし、その時丁度データアクセスが行われていれば、そのデータアクセスが終わった後に、再度アイドルシークの開始が試みられる。そしてアイドルシークが開始されると、必要時間で１回のアイドルシークが終了する。
【０１０４】
このように、ＨＤＤ３０で行う延命処理などにより、ＨＤＤ３０でＤＫＣ１０からのアクセス要求に対して応答不能状態である場合が発生する。
【０１０５】
なお、ＨＤＤ３０自体で自動的に延命処理を実行する機能を備える構成以外にも、ＤＫＣ１０からＨＤＤ３０に対してアクセス制御することで延命処理を行わせる構成も可能である。例えば、ＤＫＣ１０からＳＡＴＡドライブ（３０）に対して、定期的に、通常のＩ/Ｏとは別に、前記シーク動作の実行を指示して行わせる。この指示によって、短い時間で長寿命化効果を得ることができる。
【０１０６】
ＦＣドライブよりもやや信頼性の低いＳＡＴＡドライブ（３０）などを使用したディスクアレイ装置１の場合でも、上記のようなＳＡＴＡドライブ（３０）の備える延命処理機能を実行させてドライブ単体の寿命を延ばして信頼性を高めることができる。そのため、例えばＦＣドライブとＳＡＴＡドライブの組み合わせのように信頼性の異なるＨＤＤ３０が混在した構成でも、ディスクアレイ装置１として一定の信頼性を得ることが可能である。
【０１０７】
＜ＤＢ＞
図５は、ＤＢ６０に管理されている各テーブル情報の関係を示す。図６は、ＤＢ６０の各テーブル情報の詳細な構成例を示す。ＤＢ６０では、登録された定義情報の形で、特定Ｉ/Ｏパターンと、ホストシステムまたはクリティカルＩ/Ｏと、制御対象データと、キャッシュ制御内容とが対応付けられている。ＤＫＣ１０は、いずれかのメモリ上に、確定ＤＢ６０Ａ、追加ＤＢ６０Ｂの情報を読み出して保持する。確定ＤＢ６０Ａには、ホスト情報７１Ａ、確定Ｉ/Ｏパターン情報７２Ａ、キャッシュ制御情報７３Ａを含む情報テーブルが格納されている。追加ＤＢ６０Ｂには、ホスト情報７１Ｂ、実Ｉ/Ｏパターン情報７２Ｂ、キャッシュ制御情報７３Ｂを含む情報テーブルが格納されている。
【０１０８】
例えばホスト２からのＩ/ＯシーケンスがＨＤＤ３０における特定のＬＢＡに対するアクセスであることから特定のホストシステムが推定されるので、確定ＤＢ６０Ａでは、それを対応付けた定義情報が登録されている。例えば、システム評価・解析の結果、あるホストシステムでは、あるソフトウェアによって特定のＬＢＡに対して所定のＩ/Ｏパターンでのアクセスが行われ、その後のアクセスがクリティカルＩ/Ｏになることがわかっている。よって、このような特定Ｉ/Ｏパターンに対応して、当該Ｉ/Ｏアクセス先のデータをキャッシュ常駐化オンの対象とするようにキャッシュ制御情報７３を作成しておくことで、上記クリティカルＩ/Ｏに対応可能となる。
【０１０９】
図５において、確定ＤＢ６０Ａの情報は、ＤＫＣ１０に参照されると共にＳＶＰ１６０により管理される。追加ＤＢ６０Ｂの情報は、ＤＫＣ１０により作成・制御される。また、Ｉ/Ｏパターン情報７２に関連して、類似性判定用情報７４がある。なお、ＤＢ６０は、ホスト情報７１を介さずにＩ/Ｏパターン情報７２とキャッシュ制御情報７３とを直接に対応付けしておく形式でもよい。
【０１１０】
確定ＤＢ６０Ａは、あらかじめ作成されている確定的な情報であり、例えばＳＶＰ１６０を介して管理される。追加ＤＢ６０Ｂは、ディスクアレイ装置１での実際の稼動に応じて新たに作成した追加的または一時的な情報である。追加ＤＢ６０Ｂとして作成された情報で有効なものを、確定ＤＢ６０Ａに反映させるために利用することもできる。
【０１１１】
ホスト情報７１Ａ，７１Ｂは、ホストシステムの特徴を表わす情報であり、ＳＶＰ１６０等を介してオペレータが参照可能な形式である。Ｉ/Ｏパターン情報７２は、Ｉ/Ｏパターン判定に使用されるデータであり、また更には実施の形態３における類似性判定のためにも使用されるデータである。実Ｉ/Ｏパターン情報７２Ａは、ＤＫＣ１０で実際に受領し抽出したＩ/Ｏパターンについての情報である。実Ｉ/Ｏパターン情報７２Ｂは、Ｉ/Ｏトレース情報にも対応する。確定Ｉ/Ｏパターン情報７２Ｂは、特定Ｉ/Ｏパターンを判定するための参照項となるＩ/Ｏパターンについての情報である。キャッシュ制御情報７３Ａ，７３Ｂは、キャッシュ常駐化制御などのキャッシュ制御を指示する情報である。
【０１１２】
類似性判定用情報７４は、実施の形態３で用いるもので、実Ｉ/Ｏパターンと、Ｉ/Ｏシーケンスで示される確定Ｉ/Ｏパターンとが完全一致しない場合でも、類似性判定基準と許容値などに基づき、ある程度の許容範囲内での類似性がみられる場合は、該当確定Ｉ/Ｏパターンと一致するものとみなして同様のキャッシュ制御を適用するために用いられる。
【０１１３】
図６において、確定ＤＢ６０Ａにおけるホスト情報７１Ａは、番号などのＩＤ（識別情報）、Ｉ/Ｏパターン情報インデクス、キャッシュ制御情報インデクス、その他に、ホスト２で稼動するＯＳ名やバージョン、あるいはクラスタソフトウェア名やバージョンや、ミドルウェア名やバージョンなど、クリティカルＩ/Ｏ判定のための参考的な情報などが記述されており、ＤＢ６０を管理する者が参照可能な形式となっている。Ｉ/Ｏパターン情報インデクスは、確定Ｉ/Ｏパターン情報７２Ａへのインデクス（あるいはリンクやアドレス）である。キャッシュ制御情報インデクスは、キャッシュ制御情報７３Ａへのインデクスである。
【０１１４】
追加ＤＢ６０Ｂにおけるホスト情報７１Ｂは、追加されたホスト情報などが記述されており、番号などのＩＤ、確定ＤＢ−ホスト情報インデクス、実Ｉ/Ｏパターン情報インデクス、その他に、確定ＤＢ６０Ａと同様に、ホスト２で稼動するＯＳやクラスタソフトウェアやミドルウェアなどの情報が記述されている。確定ＤＢ−ホスト情報インデクスは、確定ＤＢのホスト情報７１Ａへのインデクスである。実Ｉ/Ｏパターン情報インデクスは、実Ｉ/Ｏパターン情報７２Ｂへのインデクスである。
【０１１５】
実Ｉ/Ｏパターン情報７２Ｂは、ホスト２からの受領Ｉ/Ｏに応じた実際のＩ/Ｏシーケンスが記録されている。Ｉ/Ｏシーケンスは、Ｉ/Ｏコマンドのシーケンスである。１つのＩ/Ｏコマンドは、Ｉ/Ｏの種別、ＬＢＡ、間隔などの情報を有する。Ｉ/Ｏの種別は、Ｒｅａｄ、Ｗｒｉｔｅ等である。ＬＢＡは、アクセス先となるＨＤＤ３０のアドレスである。Ｉ/Ｏの間隔は、１つ前の受信Ｉ/Ｏコマンドとの時間間隔である。なお本実施の形態では、簡単のため、ホスト２以外からの受領Ｉ/Ｏを無視して考える。本例では、Ｉ/Ｏシーケンスの最初に、Ｒｅａｄコマンドを受信しており、そのアクセス先ＬＢＡが「１１０００」であることを示す。次にＷｒｉｔｅコマンドを受信しており、そのアクセス先ＬＢＡが「１２０００」であり、１つ前のＲｅａｄコマンドと「０．１秒」の間隔で受信していることを示す。以後、Ｒｅａｄ、Ｗｒｉｔｅ、Ｒｅａｄの順で同様にコマンドを受信していることを示す。
【０１１６】
図６に示す確定Ｉ/Ｏパターン情報７２Ａは、類似性判定用情報７４をその中に含めた形式を示している。確定Ｉ/Ｏパターン情報７２Ａは、特定Ｉ/Ｏパターンごとのテーブルを持つ。特定Ｉ/Ｏパターンは、Ｉ/Ｏシーケンスで示されている。Ｉ/Ｏシーケンスは、時系列に沿った複数のＩ/Ｏ情報の項から構成されている。Ｉ/Ｏシーケンスの最初のＩ/Ｏの項（＃１）が、Ｉ/ＯパターンにおけるトリガＩ/Ｏとなる。また、ここでの類似性判定用情報７４は、類似性判定基準とそれに対応する許容値の情報から構成されている。
【０１１７】
図６に示す確定Ｉ/Ｏパターン情報７２Ａにおける確定Ｉ/Ｏパターン例では、３つのＩ/Ｏ（＃１〜＃３）のシーケンスで１つのＩ/Ｏパターンを表わしている。Ｉ/ＯシーケンスにおいてＩ/Ｏごとに、ＩＤ、種別、ＬＢＡ、間隔、割り込みの項を持つ。ＩＤは、Ｉ/Ｏの識別番号などである。種別は、Ｒｅａｄ、Ｗｒｉｔｅ等のコマンド種別である。ＬＢＡは、Ｉ/Ｏ先のアドレスである。間隔は、前のＩ/Ｏと当該Ｉ/Ｏとの受領の時間間隔である。割り込みは、前のＩ/Ｏと当該Ｉ/Ｏの間で別Ｉ/Ｏの割り込みが発生し得るか否か（許容するか否か）を示す。当該Ｉ/Ｏパターンにおいて割り込みを許容しない場合では、＃１〜＃３で示す各Ｉ/Ｏが別Ｉ/Ｏの受領なしに順に受領されることを示す。割り込みを許容する場合では、＃１〜＃３で示す各Ｉ/Ｏがその順で受領されれば、その間に別Ｉ/Ｏが受領されても構わないことを示す。
【０１１８】
本例のＩ/Ｏパターンにおいて、第１のＩ/Ｏ（＃１）すなわちトリガＩ/Ｏは、ＬＢＡ「２２」へのＲｅａｄコマンドである。これはトリガＩ/Ｏなので間隔と割り込みの情報は持たない。第１のＩ/Ｏ（＃１）の後、第２のＩ/Ｏ（＃２）として、第１のＩ/Ｏ（＃１）の８〜１０秒後の間隔で、再び同じＬＢＡ「２２」へのＲｅａｄコマンドが続く。次に、第３のＩ/Ｏ（＃３）として、第２のＩ/Ｏ（＃２）から不定の時間間隔で、ＬＢＡ「２１」へのＷｒｉｔｅコマンドが必ず来る。また第１、第２、第３のＩ/Ｏの間に別Ｉ/Ｏの割り込みを許容しないので、Ｉ/Ｏ（＃１〜＃３）が続けて受領される。
【０１１９】
キャッシュ制御情報７３Ａでは、制御種別、キャッシュ常駐タイプ、常駐化先頭位置情報（先頭ＬＢＡ）、常駐化末尾位置情報（末尾ＬＢＡ）、プリロード属性などの情報を有する。キャッシュ制御情報７３Ｂも同様の構成である。制御種別は、キャッシュ制御の種別やＩＤを示す。キャッシュ常駐タイプは、キャッシュ常駐化制御のタイプや状態などを示す。例えば、「１」でキャッシュ常駐化オンを、「０」でオフを表わす。常駐化先頭位置情報（先頭ＬＢＡ）、常駐化末尾位置情報（末尾ＬＢＡ）は、キャッシュ制御対象となるデータのアドレスや範囲などを示す情報として、例えばＣＭ１３０上に常駐すべきＨＤＤ３０側のデータ３２の位置を示す。キャッシュ常駐化制御実行の際は、ＤＫＣ１０により、先頭ＬＢＡと末尾ＬＢＡで示されるＨＤＤ３０上のデータ３２が、ＣＭ１３０上にキャッシュ常駐化データ３３としてキャッシュまたはステージング処理される。プリロード属性は、キャッシュ制御対象データ３２のキャッシュ常駐化オンが決定した際にあらかじめすぐにＣＭ１３０上へと当該データ３２をロード（ステージング処理）するか否かを示す。例えば「１」でプリロードのオンを表わす。
【０１２０】
＜Ｉ/Ｏパターン判定＞
図７は、Ｉ/Ｏパターン判定に係わる処理を示すフロー図である。ＤＫＣ１０は、ＣＰＵ１０１の制御により、本フローに従って、ホスト２から受領したＩ/Ｏシーケンスについて、特定Ｉ/Ｏパターンの判定を行う。この判定において、受領Ｉ/Ｏシーケンス中の実Ｉ/Ｏパターン情報７２Ｂと確定Ｉ/Ｏパターン情報７２Ａとの一致が見出された場合は、その確定Ｉ/Ｏパターン情報７２Ａに対応したキャッシュ制御情報７３を読み出して、このキャッシュ制御情報７３に従ったキャッシュ常駐化制御を実行する。
【０１２１】
まず、ステップＳ１で、ＣＰＵ１０１は、確定ＤＢ６０Ａの確定Ｉ/Ｏパターン情報７２Ａから、全Ｉ/ＯパターンにおけるトリガＩ/Ｏをシステムメモリ１０２に読み込む。例えば図６の例なら、ある確定Ｉ/ＯパターンにおけるトリガＩ/Ｏとして、Ｉ/Ｏ＃１のＲｅａｄコマンドが相当する。ＣＰＵ１０１は、確定Ｉ/Ｏパターン情報７２ＡのＩ/Ｏシーケンスにおける、該当Ｉ/Ｏの情報、すなわちＩＤ、種別、ＬＢＡ、間隔、割り込み等の情報を読み込んでおく。
【０１２２】
ステップＳ２で、ＣＰＵ１０１は、ホスト２側からのＩ/Ｏ要求（第１のＩ/Ｏ）の受信を待つ。ホスト２側からのＩ/Ｏ要求を受信すると、ステップＳ３で、ＣＰＵ１０１は、ホスト２側から受信したＩ/Ｏ要求が、読み込んでおいたトリガＩ/Ｏと一致するかどうかを判断する。受信したＩ/Ｏ要求に含まれている、コマンドの種別やＬＢＡ等の情報を参照して判断する。どのトリガＩ/Ｏとも一致しない場合は（Ｎｏ）、次のＩ/Ｏ要求を待つ（Ｓ２）。
【０１２３】
なお、例えばＣＨＡ１１０でのＩ/Ｏ要求の受信時にすぐにＩ/Ｏパターン判定に係わる処理を行うようにしてもよいし、Ｉ/Ｏ応答処理後に同処理を行うようにしてもよい。
【０１２４】
受信Ｉ/Ｏ要求が、トリガＩ/Ｏと一致する場合は（Ｙｅｓ）、次にステップＳ４で、ＣＰＵ１０１は、該当の確定Ｉ/ＯパターンにおけるトリガＩ/Ｏ（第１のＩ/Ｏ）の次に来るＩ/Ｏ情報（第２のＩ/Ｏ）を読み込む。例えば上記例なら、第２のＩ/Ｏとして、Ｉ/Ｏ＃２のＲｅａｄコマンドが相当する。そして、ステップＳ５で、ＣＰＵ１０１は、ホスト２側からの次のＩ/Ｏ要求（第２のＩ/Ｏ）の受信を待つ。
【０１２５】
次のＩ/Ｏ要求を受信すると、ステップＳ６で、ＣＰＵ１０１は、これまでに受信したＩ/Ｏ要求のシーケンスからなる実Ｉ/Ｏパターンと、該当確定Ｉ/Ｏパターンとを比較して、Ｉ/Ｏにおける、種別、ＬＢＡ、その他の要素が一致するかどうかを判断する。実施の形態１ではＩ/Ｏパターンが完全に一致するかどうかを判定する。例えば上記例なら、第１、第２のＩ/Ｏとして、Ｉ/Ｏ＃１，＃２のシーケンスが相当するので、これと受領Ｉ/Ｏのシーケンスが一致するかどうかを判断する。
【０１２６】
上記比較判定で、実Ｉ/Ｏパターンと該当確定Ｉ/Ｏパターンとが一致しない場合は（Ｎｏ）、ステップＳ７で、ＣＰＵ１０１は、実Ｉ/ＯパターンにおけるＩ/Ｏ間に別Ｉ/Ｏの割り込みを許容するかどうかを確定Ｉ/Ｏパターン情報７２Ａから判断する。該当確定Ｉ/Ｏパターンにおいて別Ｉ/Ｏの割り込みが許容される場合は（Ｙｅｓ）、以後の受領Ｉ/ＯによってＩ/Ｏパターンが一致する可能性があるので、ステップＳ５に戻り、ホスト２側からの次のＩ/Ｏ要求（第２のＩ/Ｏ）の受信を待つ。この場合、許容される別Ｉ/Ｏを挟んで、該当確定Ｉ/Ｏパターンにおける第２のＩ/Ｏと一致するＩ/Ｏが以後に受領されるならば、該当確定Ｉ/Ｏパターンに関する判定が継続される。
【０１２７】
ステップＳ７で、別Ｉ/Ｏの割り込みが許容されない場合は（Ｎｏ）、該当確定Ｉ/Ｏパターンにおける一致は無いこととして、ステップＳ２に戻り、ＣＰＵ１０１は、再び、別のＩ/Ｏの受信を待って、以後、別Ｉ/Ｏパターンに関しての処理を開始する。同様に、Ｉ/Ｏ受信ごとにＩ/Ｏパターンの判定が繰り返される。
【０１２８】
なお、ステップＳ７，Ｓ８でＮｏの場合、実施の形態３では、ステップＳ１０で類似性判定処理を行うが、実施の形態１では行わずに次の処理に移る。
【０１２９】
前記ステップＳ６で、実Ｉ/Ｏパターンと該当確定Ｉ/Ｏパターンとが一致する場合（Ｙｅｓ）、次に、ステップＳ８で、ＣＰＵ１０１は、受信Ｉ/Ｏと、前の受信Ｉ/Ｏとの間隔が、該当確定Ｉ/Ｏパターンのものと一致するかどうかを判断する。例えば、上記例なら、該当確定Ｉ/Ｏパターンにおいて、第２のＩ/Ｏと第１のＩ/Ｏとの間隔が、８〜１０秒と規定されているので、実際の受領の時間差がその範囲内に収まるかどうかを確認する。
【０１３０】
受領Ｉ/Ｏと前のＩ/Ｏとの間隔が一致しない場合は（Ｎｏ）、該当Ｉ/Ｏパターンにおいて一致は無いこととして、ステップＳ２に戻り、再び別のＩ/Ｏパターンに関する処理を行う。間隔が一致する場合は（Ｙｅｓ）、ステップＳ９で、ＣＰＵ１０１は、実Ｉ/Ｏパターンとして、該当確定Ｉ/Ｏパターンにおける最後のＩ/Ｏまでを受領したかどうかを判断する。最後まで受信していない場合は（Ｎｏ）、ステップＳ４に戻り、該当確定Ｉ/Ｏパターンにおける次のＩ/Ｏ情報を読み込んで、最後のＩ/Ｏ（＃ｎ）まで受領するか、Ｉ/Ｏパターン不一致となるまで、同様に処理を繰り返す。該当確定Ｉ/Ｏパターンの最後のＩ/Ｏまで受領した場合（Ｙｅｓ）、Ｉ/Ｏパターン判定処理が終了する。例えば、上記例なら、Ｉ/Ｏ＃１〜＃３で１つのＩ/Ｏパターンが規定されており、ステップＳ９で、Ｉ/Ｏ＃２まで受領し最後のＩ/Ｏ＃３まで受領していない状態の時、ステップＳ４に戻って、次のＩ/Ｏ＃３についての処理が行われる。そして再びステップＳ９で最後のＩ/Ｏ＃３までの受領が確認された場合、実Ｉ/Ｏパターンと該当確定Ｉ/Ｏパターンとの一致がみられたことになる。
【０１３１】
Ｉ/Ｏパターン判定処理の後には、見出された特定Ｉ/Ｏパターンに対応したホストシステム及びクリティカルＩ/Ｏが推定されたことになり、この特定Ｉ/Ｏパターンに関してのキャッシュ制御の処理などが続けて実行される。
【０１３２】
＜キャッシュ制御＞
第１の手段による制御におけるキャッシュ制御の例について説明する。通常のキャッシュ制御では、ＣＭ１３０を備えた構成において、ＬＲＵアルゴリズムなどに従ってＣＭ１３０上にデータがキャッシュされる。これに加えて、第１の手段におけるキャッシュ制御では、キャッシュ常駐化制御を行う。
【０１３３】
従来のキャッシュ常駐化制御では、ホスト２またはホスト２を使用するユーザが、ディスクアレイ装置１に対して常駐化オン／オフの指示を行うことが可能であった。またＨＤＤ３０におけるブロック単位のデータをまとめてＣＭ１３０上に常駐化オン／オフ可能であった。これにより当該データについてのキャッシュヒット率が向上でき、情報処理システム全体の性能向上を図ることができる。
【０１３４】
第１の手段では、キャッシュ制御情報７３で、ＨＤＤ３０上のＬＵ３１のデータ３２を対象として、ＣＭ１３０上への対象データのキャッシュ常駐化または常駐化解除の設定（常駐化オン／オフ）が行われる。ＤＫＣ１０は、Ｉ/Ｏパターン判定後に、キャッシュ制御情報７３に従ったキャッシュ常駐化制御を実行する。キャッシュ制御情報７３に従ったキャッシュ制御の際、ＬＢＡ指定のブロック単位でＣＭ１３０上の領域にデータが記憶される。またＬＢＡ範囲の指定によりデータセット単位で記憶される。
【０１３５】
キャッシュ制御情報７３に従って、特定Ｉ/Ｏパターン及びクリティカルＩ/Ｏに対応してキャッシュ常駐化オンが設定されたデータ３２は、ステージング処理（ａ５）において、ＨＤＤ３０側の領域からＣＭ１３０上の領域へ読み出され、キャッシュ常駐化データ３３として記憶される。
【０１３６】
また例えばＤＫＣ１０はＣＭ１３０上にキャッシュ常駐化用の領域を優先的に確保しておく。また例えばキャッシュ常駐化オフが指定されたデータ３２については、デステージング処理（ａ５と逆方向の処理）において、ＣＭ１３０上の領域からＨＤＤ３０側の領域へ書き出され記憶される。
【０１３７】
ホスト２からのＩ/Ｏにおいて、キャッシュ常駐化オンが指定されたデータ３２に対するＩ/Ｏでは、ＣＭ１３０上のキャッシュ常駐化データ３３に対して読み書き処理されてホスト２へ応答（ａ６）が行われる。ＣＭ１３０上のデータについては、通常のキャッシュ制御と同様に、適宜タイミング、例えばＤＫＣ１０でＩ/Ｏ要求（ａ２）の受信が無い時に、ＨＤＤ３０側の本来のデータ３２に対して更新反映のための書き込み処理がなされる。
【０１３８】
なお、上記ではクリティカルＩ/Ｏに対応するためのキャッシュ常駐化オンの場合について説明したが、一旦キャッシュ常駐化オンの状態としたデータ３２について、所定の契機で常駐化オフとするように制御してもよい。例えば、該当キャッシュ常駐化データ３３に対して所定時間アクセスが無い場合に常駐化オフとするようにしてもよい。
【０１３９】
なお、クリティカルＩ/Ｏに関する１つの対策として、従来のキャッシュ制御を用いて、ＨＤＤ３０での延命処理中には、ＣＭ１３０からＨＤＤ３０上の記憶領域へのデステージング処理を抑止することは可能である。その場合、ホスト２からの延命処理中ＨＤＤ３０の領域に対するデータ書き込み要求時には、該当ＨＤＤ３０ではなくＣＭ１３０上にのみ書き込みデータを書き込んでおき、その後、該当ＨＤＤ３０での延命処理の終了後に前記ＣＭ１３０上の書き込みデータを該当ＨＤＤ３０の記憶領域へとデステージング処理することで、前記クリティカルＩ/Ｏにおける応答遅延発生の問題に関して対応可能である。しかし一方、ホスト２からの延命処理中ＨＤＤ３０の領域に対するデータ読み込み要求時には、ＣＭ１３０上に目的の読み込みデータが存在しない場合（すなわちキャッシュミスヒット）、延命処理中ＨＤＤ３０への読み込みアクセスが発生してしまうので、前記問題に対応不可能である。
【０１４０】
＜制御タイミング＞
図８は、ディスクアレイ装置１におけるホスト２からのＩ/Ｏシーケンスと第１の手段による制御とのタイミングを時間軸で示す説明図である。
【０１４１】
ホスト２からのＩ/Ｏシーケンスにおいて、時刻ｔ１〜ｔ７で、ＤＫＣ１０は、外部から、順にＩ/Ｏ＃１〜Ｉ/Ｏ＃７を受領・処理している。本例では、それらＩ/Ｏのうち、ある同一ホスト２からの、Ｉ/Ｏ＃２，＃３，＃４，＃６からなる実Ｉ/Ｏパターンが、Ｉ/Ｏ＃ｓ１，＃ｓ２，＃ｓ３，＃ｓ４からなる確定Ｉ/Ｏパターン（ｐ１とする）と対応した例を示している。確定ＤＢ６０Ａで、確定Ｉ/Ｏパターン情報７２Ａであるｐ１とキャッシュ制御情報７３Ａであるｃ１とホスト情報７１ＡであるホストシステムＡとが対応付けられている。
【０１４２】
ＤＫＣ１０での処理により、受領したＩ/Ｏシーケンスからの実Ｉ/Ｏパターン情報７２Ｂと、確定Ｉ/Ｏパターン情報７２Ａとが比較判定される。そして、判定により抽出された特定Ｉ/Ｏパターンから、確定ＤＢ６０Ａでの対応付けによって、当該実Ｉ/Ｏパターンを発行したホストシステム及びそのクリティカルＩ/Ｏが対応付けられる。すなわち当該実Ｉ/Ｏパターンの後に続くＩ/ＯがクリティカルＩ/Ｏであるかが判断される。
【０１４３】
ＤＫＣ１０は、特定Ｉ/Ｏパターンの認識により、ＤＢ６０で該当確定Ｉ/Ｏパターン７２Ａに対応付けられているホスト情報７１Ａ及びキャッシュ制御情報７３Ａを参照して、クリティカルＩ/Ｏまたはホストシステムに対応付けられる対象データ３２についてのキャッシュ制御を実行する（ｔ８）。キャッシュ制御では、上記実Ｉ/Ｏパターン以後に受信すると推定されるクリティカルＩ/Ｏ要求に備えて、対象データ３２を、ＤＫＡ１４０の処理によって、ＨＤＤ３０側から読み出してＣＭ１３０上の領域に格納する。例えば、該当キャッシュ制御情報７３Ａにおけるキャッシュ常駐化オンの指示に従い、ＤＫＣ１０は、キャッシュ制御対象のデータ３２について、キャッシュ常駐化オン状態にしてＣＭ１３０上の領域へ格納するステージング処理を行う。
【０１４４】
その後、時刻ｔ９で、前記推定されたクリティカルＩ/Ｏ（＃ｎ）がホスト２から実際に発行されたとする。ＤＫＣ１０は、当該クリティカルＩ/Ｏ（＃ｎ）について、ＣＭ１３０上に対象データ３２がキャッシュ常駐化データ３３としてキャッシュ常駐化済みであるので、当該キャッシュ常駐化データ３３を利用してすぐに応答できる。またその後（ｔ１０）、同様に関連のクリティカルＩ/Ｏ（＃ｘ）が発行されても、同様にキャッシュ常駐化データ３３を用いて応答できる。
【０１４５】
＜ＨＤＤ状態＞
図９は、ディスクアレイ装置１におけるホスト２からのＩ/ＯとＨＤＤ（ＳＡＴＡドライブ）３０の状態との関係、及び処理例のシーケンスを、時間軸で示す説明図である。
【０１４６】
ホスト２からのＩ/Ｏとして、ここでは、ノーマルＩ/ＯとクリティカルＩ/Ｏとの２種類を有する。ノーマルＩ/Ｏは、Ｒｅａｄ／Ｗｒｉｔｅコマンド等に対応した、前述の通常のＩ/Ｏであり、その要求応答時間が、ＨＤＤ３０における応答不能状態の持続時間よりも長いものである。クリティカルＩ/Ｏは、Ｒｅａｄ／Ｗｒｉｔｅコマンド等に対応したＩ/Ｏで、その要求応答時間が、ＨＤＤ３０における応答不能状態の時間よりも短いものである。ホスト２からのノーマルＩ/Ｏ要求における要求応答時間（Ｔ）を、例えば１５秒とする。また、ホスト２からのクリティカルＩ/Ｏ要求における要求応答時間（Ｔ）を、例えば３秒とする。ＨＤＤ３０における応答不能状態の持続時間を、例えば５秒とする。前記要求応答時間は、ここでは、Ｉ/Ｏ要求（ａ２）を発行してからその正常な応答（ａ３）が返されるまでにホスト２側で許容される待ちの制限時間あるいはタイムアウト値であり、当該時間を超えた場合にエラーやシステムダウン等の結果が引き起こされるような時間である。前記要求応答時間はホストシステムに応じて決まるが、未知のホストシステムの場合には、ディスクアレイ装置１の側ではわからない。
【０１４７】
ＨＤＤ３０の状態として、ここでは、応答可能状態と応答不能状態との２種類を有する。応答可能状態は、ＤＫＣ１０で受信したＩ/Ｏ要求についてのディスクへのアクセス要求に対して、そのアクセス先となるＨＤＤ３０ですぐに応答可能な状態である。応答不能状態は、前記アクセス要求において、そのアクセス先となるＨＤＤ３０で、待ち時間などの発生なしには応答できない状態である。
【０１４８】
本例では、前記応答不能状態は、ＳＡＴＡドライブ（３０）における延命処理中の状態が対応する。ＨＤＤ３０における自動的な延命処理の実行における必要時間が例えば５秒とする。また、あるＨＤＤ３０での延命処理が、定期的に実行されるものとし、その実行間隔が、例えば前回の実行から１時間経過後とする。以下では１つのＨＤＤ３０に注目して考える。
【０１４９】
まず、時刻ｔ１〜ｔ３の時間に、ＨＤＤ３０で延命処理中となりＤＫＣ１０からのアクセス要求に対して応答不能状態となった。一方、ホストＩ/Ｏで、時刻ｔ２に、ノーマルＩ/Ｏが発生した。この時、そのアクセス先のＨＤＤ３０で応答不能状態であるので、応答までに待ちが発生する。延命処理が終了後にＨＤＤ３０は応答可能状態となる。時刻ｔ４で、Ｉ/Ｏ要求が正常に処理される。すなわち、Ｉ/Ｏ要求に対応してＤＫＣ１０から該当ＨＤＤ３０に対してアクセス要求が行われ、対象データへのＩ/Ｏを通じて応答処理される。
【０１５０】
その後、時刻ｔ５で、ホスト２からクリティカルＩ/Ｏ要求が発生した。この時、ＨＤＤ３０が応答可能状態であるので、ディスクへのアクセスが必要であっても、要求応答時間である３秒以内の時刻ｔ６に応答が可能である。ＣＭ１３０へのアクセスの場合も勿論応答可能である。
【０１５１】
その後、時刻ｔ７〜ｔ９で、ＨＤＤ３０における定期的な延命処理が実行され、応答不能状態となった。延命処理中、時刻ｔ８で、ホスト２からクリティカルＩ/Ｏが発行された。この時、時刻ｔ８の前において当該クリティカルＩ/Ｏに関連した実Ｉ/Ｏパターンに対応したＩ/Ｏパターン判定とキャッシュ制御が事前に行われているのであれば、Ｉ/Ｏ対象データ３２がＣＭ１３０上にキャッシュ常駐化されている状態である。従って、ＨＤＤ３０で応答不能状態であっても、ＣＭ１３０上のキャッシュ常駐化データ３３を利用してキャッシュ応答することで、要求応答時間以内に正常に応答できる。
【０１５２】
＜クラスタシステム＞
次に、クリティカルＩ/Ｏを発行するホストシステムの例としてクラスタシステムについて説明する。図１０は、図２中に示すクラスタシステムのより詳細な構成例を示す。このクラスタシステムは、ディスクアレイ装置１と、ディスクアレイ装置１に通信接続される複数のホスト２と、ホスト２に通信接続されるクライアントコンピュータ８とを有する構成である。各ネットワーク４２，４３は、例えばＴＣＰ／ＩＰプロトコルで接続されるＬＡＮである。簡単のため、２つのホスト２からなるクラスタ構成を示している。
【０１５３】
クライアントコンピュータ８は、図示しないＣＰＵ、メモリ、及び、クラスタサービス用ネットワーク４２に対するインタフェース処理を行うＮＩＣ（ネットワークインタフェースカード）８１を有し、ホスト２のクラスタが提供するクラスタサービスにアクセスするための情報をメモリ上に保持している。
【０１５４】
ホスト｛＃１，＃２｝２は、前記ＣＰＵ、メモリ、及び、ＮＩＣ２１、ＨＢＡ（ホストバスアダプタ）２２などを備える。ホスト２は、メモリ上に、クラスタサービスを提供するための情報を保持している。ホスト２上では、特にクラスタソフトウェアのプログラムを実行することによりクラスタシステムを実現している。ホスト２のクラスタサービスは、ディスクアレイ装置１の提供する機能を利用する。
【０１５５】
ホスト２は、ＨＢＡ２２によりネットワーク４１に接続され、ネットワーク４１を介してディスクアレイ装置１のＤＫＣ１０のＣＨＡ１１０と通信可能である。また、ホスト２は、ＮＩＣ２１によりクラスタサービス用ネットワーク４２に接続され、クライアントコンピュータ８から通信接続される。クライアントコンピュータ８からのクラスタサービスアクセスを受け付けて、それに対してクラスタサービスを提供する。また、ホスト２は、他のＮＩＣ２１によりクラスタ間ハートビート用ネットワーク４３に接続され、クラスタ間ハートビート用ネットワーク４３上においてホスト２間でハートビート通信が行われる。
【０１５６】
前記クリティカルＩ/Ｏ要求の例として、クラスタシステムにおける共有ディスクへのアクセスや、パスヘルスチェックを行うミドルウェアにおけるパスヘルスチェックのためのアクセスなどがある。これらクリティカルＩ/Ｏ要求では、システム状態チェック等のために短い要求応答時間内での応答性が要求されている。この要求応答時間内に応答できない場合は、クラスタにおける望ましくないフェイルオーバ（サービス引き継ぎ）や、システムダウンなどの状態となってしまう。
【０１５７】
クラスタシステムでは、性能や耐障害性の向上を目的として、クラスタサービス用ネットワーク４２上の複数のサーバ（ホスト２に相当する）を連携させて１つの大きなシステムとして動作し、ある１つのサーバ（２）で障害が発生しても、他のサーバ（２）が代替してサービスを引き継いで起動させることで業務を継続するなどの機能を持つ。これらのクラスタシステムでは、一般にＬＡＮ等の通信手段（クラスタ間ハートビート用ネットワーク４３に相当する）を用いてハートビート通信を行い、互いの稼動状態を監視している。通信可能な状態において、ある１台のホスト２で提供しているサービスが障害となり停止した場合、残ったホスト２のうちで優先順位の高いコンピュータ上でサービスを起動して、クライアントコンピュータ８にサービスを提供する。
【０１５８】
しかし、前記ＬＡＮ等の通信手段（４３）上で経路障害により通信できなかった場合などには、複数のホスト２で共有されている外部記憶装置への読み書き処理を用いたコンピュータ間の優先制御が行われる。この優先制御の際に使用される、前記共有されている外部記憶装置を、以下、クラスタ共有ディスクと称する。このクラスタ共有ディスクは、ディスクアレイ装置１のＨＤＤ３０の記憶ボリュームに確保され、ネットワーク以外に必要となる、クラスタ間通信のために使用される共有資源である。図１０における共有ディスク＃０（３３０）がクラスタ共有ディスクに対応する。ホスト２は、クラスタ共有ディスク（３３０）に対して、自ホスト２が正常に稼動していることを示す制御用のＩ/Ｏアクセスを行う。例えば、ホスト番号、アクセス数などの情報がクラスタ共有ディスク（３３０）に書き込まれる。ホスト２がクラスタ共有ディスク（３３０）上の書き込み情報を読むことで、他ホスト２が稼動状態かダウン状態かを判断できる。
【０１５９】
前記優先制御において、実際には、クラスタ共有ディスク（３３０）へ最初にアクセスをしたホスト２が優先権を獲得し、サービスを引き継いでサービスを起動させる。このクラスタ共有ディスク（３３０）へのアクセス時に、Ｉ/Ｏエラーやタイムアウトすなわち規定時間内に応答が無いことが発生した場合には、ホスト２はサービスを起動させることができず、クラスタシステムが異常終了してしまい、サービスダウン状態となってしまう。
【０１６０】
例えば、ホスト＃１では、クラスタサービス＃１のサービスを提供しており、共有資源である共有ディスク＃１（３３１）に対して、３秒毎にＩ/Ｏを発行してディスク状態のチェックを行っている。また、クラスタ間ハートビート用ネットワーク４３に障害が発生した場合、クラスタ構成内のホスト＃１とホスト＃２は、クラスタ共有ディスク（３３０）にそれぞれＩ/Ｏを発行し、最初にクラスタ共有ディスク（３３０）にアクセスしたホスト２が、クラスタ構成で定義されている２つのクラスタサービス＃１，＃２を引き継いで実行する。この時、それぞれのホスト＃１，＃２からクラスタ共有ディスク（３３０）に発行されるＩ/Ｏに要求される応答性能は３秒と定義されているクラスタシステムがあり、例えば５秒間ディスクアレイ装置１からの応答が無い場合、ホスト＃１とホスト＃２のどちらも応答が得られない場合、いずれのホスト２でもサービスを引き継ぐことが出来ず、クラスタシステムがサービスダウンとなってしまう。この際に各ホスト２からクラスタ共有ディスク（３３０）に対して発行されるＩ/Ｏは、特定のＬＢＡに対してのＲｅａｄ／Ｗｒｉｔｅであるので、そのことからクリティカルＩ/Ｏが推定できる。
【０１６１】
図１０では、ホスト＃１は、クラスタサービス用ネットワーク４２に接続するＮＩＣ＃１（２１）と、クラスタ間ハートビート用ネットワーク４３に接続するＮＩＣ＃２（２１）と、ディスクアレイ装置１のＣＨＡ＃１〜＃３（１１０）に接続するＨＢＡ＃１〜＃３（２２）とを有する。ホスト＃１は、クラスタサービス＃１の共有資源の情報であるＩＰアドレス＃１と共有ディスク＃１の情報を保持する。ホスト＃２もホスト＃１と同様の構成であり、クラスタサービス＃２の共有資源の情報として、ＩＰアドレス＃２と共有ディスク＃２の情報を保持する。また、クライアントコンピュータ８は、クラスタサービス用ネットワーク４２に接続するＮＩＣ＃５（８１）を有し、クラスタサービスアクセス＃１のためのＩＰアドレス＃１と、クラスタサービスアクセス＃２のためのＩＰアドレス＃２の情報を持つ。
【０１６２】
また、ディスクアレイ装置１側では、ＨＤＤ３０上に、クラスタサービスのための共有ディスクが設定されている。ここでいうディスクはＬＵ等に対応している。本例では、ディスクアレイ装置１で、共有ディスク＃０（３３０），＃１（３３１），＃２（３３３）の３つが確保されている。共有ディスク＃１（３３１），＃２（３３２）は、それぞれホスト＃１，＃２からの通常アクセスａ１１１，ａ１１２に対応したものであり、クラスタサービスにおける通常のデータＩ/Ｏのために使用される。例えば、クライアントコンピュータ８がＩＰアドレス＃１に対してアクセスすることで、ホスト＃１でのクラスタサービス＃１に接続され、これに対応する共有ディスク＃１（３３１）に対して、通常アクセスａ１１１によりデータＩ/Ｏが行われる。同様にＩＰアドレス＃２に対するアクセスでクラスタサービス＃２に接続され、共有ディスク＃２（３３２）に対する通常アクセスａ１１２によりデータＩ/Ｏが行われる。
【０１６３】
一方、共有ディスク＃０（３３０）は、前記クラスタ共有ディスクに対応しており、共有ディスク＃０（３３０）に対して、各ホスト＃１，＃２から、前記優先制御用のアクセスａ１０１，ａ１０２が行われる。各ホスト＃１，＃２は、ディスクアレイ装置１内の共有ディスク＃０（３３０）に対して制御用のアクセスａ１０１，ａ１０２を行う。
【０１６４】
実施の形態１では、第１の手段による制御によって、上記クラスタシステムからのクリティカルＩ/Ｏにも対応して、要求応答時間内に応答可能であるので、クラスタシステムとして望ましくないフェイルオーバや、サービスダウンといったシステム障害を回避できる。
【０１６５】
以上説明したように、実施の形態１によれば、ＦＣドライブよりも信頼性のやや低いＳＡＴＡドライブ等のＨＤＤ３０を用いたディスクアレイ装置１においても、ＨＤＤ３０自体の備える延命処理の機能を実行させることによりＨＤＤ３０単体の信頼性向上を図りつつ、クラスタシステム等からのクリティカルＩ/Ｏ要求に対する応答処理についても、特にキャッシュ常駐化制御によって応答遅延を起こさずに効率的に処理し、エラーやシステムダウン等といった問題の発生も回避してシステム可用性を向上できる。ホストシステムからのクリティカルＩ/Ｏで必要なブロック単位などのデータ３２を事前にＣＭ１３０上へキャッシュ常駐化しておくことで、ＨＤＤ３０での延命処理の有無などの状態によらずに要求応答時間内での応答が可能となる。
【０１６６】
その他、延命処理機能を備えないＨＤＤ３０に対するクリティカルＩ/Ｏの場合でも、キャッシュ常駐化制御の実行によってＩ/Ｏ性能を向上できる。また、前記ＨＤＤ３０での効果的な延命処理実行のためにＤＫＣ１０による延命処理制御で該当ＨＤＤ３０へのアクセス要求を一時的に停止させる制御を行う場合で、その停止時間内に該当ＨＤＤ３０へのクリティカルＩ/Ｏが発生した場合でも、事前のキャッシュ常駐化制御の実行によって応答できる。また、１回目のクリティカルＩ/ＯについてはＨＤＤ３０へのアクセスで応答処理すると共に前記Ｉ/Ｏパターン判定により当該クリティカルＩ/Ｏを認識してキャッシュ制御を実行し、２回目以降のクリティカルＩ/Ｏについて前記キャッシュ制御済みのデータを用いて応答処理することも可能である。またＤＢ６０の情報が、ディスクアレイ装置１の外部に存在し、それを必要に応じて読み出して利用する形態も可能である。また、ホストシステムからのＩ/Ｏにおける要求応答時間が未知の場合であっても対応可能であるが、特定のＩ/Ｏにおける要求応答時間が既知の場合にも、その情報をＤＢ６０に登録しておき判定などで利用してもよい。
【０１６７】
（実施の形態２）
次に、図１〜図１０を参照して、本発明の実施の形態２におけるディスクアレイ装置１を説明する。実施の形態２では、確定ＤＢ６０Ａにおいて未対応・未知のホストシステムに対してもクリティカルＩ/Ｏ対応可能なようにするために、ハードウェア及びソフトウェアにより構成される第２の手段により、ホストシステムからのＩ/ＯをもとにしたＩ/Ｏトレースなどの情報を採取して利用する。
【０１６８】
前記実施の形態１で、ホストシステムの構成が確定ＤＢ６０Ａに登録されている情報と一致する場合は、前述したような制御によりクリティカルＩ/Ｏに対応可能である。例えばホスト２における特定のＯＳやミドルウェアやアプリケーション等に応じたシステム構成があるとき、これに対応したキャッシュ制御情報７３Ａをあらかじめ作成してディスクアレイ装置１内に保持しておくことで対応可能である。
【０１６９】
しかし、未知のホストシステム、例えばホスト２における特定のＯＳ、ミドルウェア、アプリケーション等の各バージョンの組み合わせに対しては、必ずしもそれに対して有効なキャッシュ制御情報７３をディスクアレイ装置１のＤＢ６０で既に保持しているとは限らない。この場合、実Ｉ/Ｏパターンが確定Ｉ/Ｏパターンと完全に一致しない場合にはクリティカルＩ/Ｏ要求に対応できない。
【０１７０】
＜Ｉ/Ｏトレース採取＞
実施の形態２では、ディスクアレイ装置１内に確定ＤＢ６０Ａとして保持する、ホストシステム構成に対応したキャッシュ制御情報７３Ａ及び確定Ｉ/Ｏパターン情報７２Ａ等を交換・更新可能とする。すなわち、確定ＤＢ６０Ａを、ホストシステム構成の変更などに応じてバージョンアップされたものに更新できる。
【０１７１】
ディスクアレイ装置１は、第２の手段として、ホスト２を含む他装置から受領したＩ/Ｏについてのトレースを採取する手段を有する。第２の手段は、例えば、ＤＫＣ１０におけるホスト２からのＩ/Ｏの監視や、ＳＶＰ１６０からの指示に従ってＩ/Ｏトレースの採取を行う制御プログラム９１の処理などで実現される。前記Ｉ/Ｏトレースは、ＤＫＣ１０で受信したＩ/Ｏ要求やコマンド及びそれに対応したＩ/Ｏ応答処理結果などのシーケンスの一部または全部の記録である。例えば、ＤＫＣ１０のＣＰＵ１０１あるいはその他のプロセッサが、ホスト２からの受領Ｉ/ＯについてのＩ/Ｏトレースを採取してディスクアレイ装置１内のいずれかのメモリに保持する。
【０１７２】
実施の形態２では、ＳＶＰ１６０から制御プログラム１６１の処理によって、ＤＫＣ１０に対してＩ/Ｏトレース採取指示を行い、指示に従ってＤＫＣ１０でＩ/Ｏトレース情報を採取させる。ＤＫＣ１０が採取したＩ/Ｏトレース情報をＳＶＰ１６０へ収集し、更に、通信手段などを通じて、保守センタ５１等の他装置へと送信して回収する。
【０１７３】
例えば未知のホストシステムがある場合に、オペレータは、ＳＶＰ１６０を通じてディスクアレイ装置１に対してＩ/Ｏトレース採取の開始と終了あるいは時間などを指示する。指示に従って、ＤＫＣ１０は、例えばある時間内でのホスト２からのＩ/Ｏトレースを採取する。採取されたＩ/Ｏトレース情報を、ＳＶＰ１６０を経由してホスト情報を付加し、ディスクアレイ装置１内のいずれかの場所に保存する。保存したＩ/Ｏトレース情報を、未知のホストシステムに対し有効なＩ/Ｏパターン情報７２及びキャッシュ制御情報７３の作成のために利用できる。
【０１７４】
例えば検証センタ５２で、採取したＩ/Ｏトレース情報の解析が行われ、解析に応じて新たに作成されたホスト情報７１、Ｉ/Ｏパターン情報７２、及びキャッシュ制御情報７３によって、検証センタ５２側で保持する確定ＤＢ６０Ａを更新する。
【０１７５】
なお、ＤＫＣ１０内の各処理部がＳＶＰ１６０に対して処理状態情報を送信することで、ＳＶＰ１６０がＩ/Ｏ状態を把握してＩ/Ｏトレース情報を取得する形態としてもよい。またオペレータ及びＳＶＰ１６０を介さずに、設定などに従ってＤＫＣ１０で自動的にＩ/Ｏトレースを採取して記録しておく形態などとしてもよい。
【０１７６】
実施の形態２では、ＤＢ６０で未対応・未知のホストシステム構成に対しても、オペレータの指示入力に従ってそのホストシステムについてのＩ/Ｏトレースを採取でき、採取したＩ/Ｏトレース情報の解析をもとに、有効な定義情報の作成や更新が可能となる。従って、未知のホストシステムからのクリティカルＩ/Ｏに対しても追加的に対応可能となり、情報処理システムの信頼性が向上できる。
【０１７７】
（実施の形態３）
次に、図１〜図１０を参照して、本発明の実施の形態３におけるディスクアレイ装置１を説明する。実施の形態３では、第３の手段として、ホストシステムにおけるＯＳなどのバージョンアップやパッチレベルでの修正などによる構成の変更などに対しても対応可能とするために、ホスト２からの実Ｉ/Ｏパターンに確定Ｉ/Ｏパターンとの類似性がみられた場合に、類似ホストシステムと同様のキャッシュ制御情報７３を適用してキャッシュ制御を実行することでクリティカルＩ/Ｏ対応可能にする手段を備える。
【０１７８】
＜類似性判定＞
実施の形態３では、前記図７のステップＳ１０で、類似性判定処理を行う。ＤＫＣ１０は、ホスト２側からの実Ｉ/Ｏパターンまたは前記採取したＩ/Ｏトレースの情報と、確定ＤＢ６０Ａの確定Ｉ/Ｏパターン情報７２Ａとを比較して特定Ｉ/Ｏパターンを抽出する判定を行う。この判定に関して、前記図７においてステップＳ６でホスト２からの実Ｉ/Ｏパターンと確定Ｉ/Ｏパターンとが完全一致する場合だけでなく、ステップＳ１０で類似性判定を行って類似性がみられるＩ/Ｏパターンも抽出する。それらＩ/Ｏパターンに許容範囲内の類似性がみられた場合に、ホストシステム構成が、確定ＤＢ６０Ａに登録されているホストシステムと類似のシステム構成であると判断する。そして、この類似性のみられるＩ/Ｏパターン及びクリティカルＩ/Ｏに対応して、類似ホストシステムに対応したキャッシュ制御情報７３Ａを適用してキャッシュ制御を実行する。これにより、未知のホストシステムからのクリティカルＩ/Ｏ要求にも対応可能となる。
【０１７９】
前記ステップＳ７，Ｓ８でＮｏの場合では、実Ｉ/Ｏパターンと確定Ｉ/Ｏパターンとが完全一致しないが、ステップＳ１０で、類似性判定用情報７４を参照して、これらＩ/Ｏパターンにおける類似性を判定する。許容範囲内の類似性がみられた場合は、その実Ｉ/Ｏパターンを発行したホスト２を、該当確定Ｉ/Ｏパターンに対応したホストシステムと類似性有りのホストシステムとみなし、確定ＤＢ６０Ａの同様のキャッシュ制御情報７３Ａを適用してキャッシュ制御を実行する。あるいは、ステップＳ６で完全一致の比較判定を行うのではなく、類似性判定を含む比較判定を行うようにする。
【０１８０】
前記図６の確定Ｉ/Ｏパターン情報７２Ａにおいては、確定Ｉ/Ｏパターンにおける類似性判定基準と許容値の例として、Ｉ/Ｏパターンの一致率を、９９％〜８０％と設定している。同様に、Ｉ/Ｏ時間のずれを１／２〜２倍とし、別Ｉ/Ｏの割り込みを３つのＩ/Ｏまで許容すると設定している。前記一致率については、Ｉ/Ｏの間隔などの要素を考慮して確定Ｉ/Ｏパターンと実Ｉ/Ｏパターンの類似性を評価した際、それが許容値に収まる場合は、Ｉ/Ｏパターンに類似性有り、すなわち類似ホストシステムであると判断する。前記Ｉ/Ｏ時間のずれは、例えばＩ/Ｏシーケンスにおける各Ｉ/Ｏの間隔の差やＩ/Ｏコマンドを受けた時刻の差などである。例えばＩ/Ｏの間隔のずれが１／２〜２倍に収まる場合に許容される。前記別Ｉ/Ｏの割り込みでは、例えば、Ｉ/ＯシーケンスにおけるＩ/Ｏ間に、３つまでの別Ｉ/Ｏの受領が許容される。
【０１８１】
類似性判定処理でＩ/Ｏパターンにおける類似性を見出した場合は、類似ホストシステムのキャッシュ制御情報７３Ａを適用すると共に、ＤＫＣ１０は、追加ＤＢ６０Ｂに、類似性有りのホストシステム構成として、Ｉ/Ｏパターン情報７２Ｂやキャッシュ制御情報７２Ｂを登録する。以後、ディスクアレイ装置１は、追加ＤＢ６０Ｂの登録情報も参照して制御することで、一度類似性判定された類似ホストシステムからのクリティカルＩ/Ｏに対しても対応可能な状態となる。
【０１８２】
（実施の形態４）
次に、図１〜図１０を参照して、本発明の実施の形態４におけるディスクアレイ装置１を説明する。実施の形態４では、第４の手段として、ディスクアレイ装置１に有する関連情報（前記ＤＢ６０、Ｉ/Ｏトレース情報など）を、保守センタ５１及び検証センタ５２等の外部装置へと送信して回収し、回収情報をもとに、ホストシステム評価・解析により、最新のホストシステム構成に対応した定義情報などを作成して、確定ＤＢ６０Ａを更新し、その更新された情報を配布情報として、１つ以上のディスクアレイ装置（１，１Ｂ）に配布して、ディスクアレイ装置（１，１Ｂ）内のＤＢ６０に反映して更新する手段を備える。
【０１８３】
＜情報回収・検証・更新・配布＞
実施の形態４では、あるディスクアレイ装置１で持つＩ/Ｏトレース情報などの関連情報について、ＳＶＰ１６０及び通信手段を経由して、保守センタ５１へと回収する。例えば、まずＤＫＣ１０からＳＶＰ１６０へＩ/Ｏトレース情報を送信・収集する。そして、ＳＶＰ１６０からネットワーク等を経由して保守センタ５１のコンピュータへ、前記Ｉ/Ｏトレース情報を送信して回収する。更に保守センタ５１のコンピュータから検証センタ５２のコンピュータへ、回収情報を送信する。
【０１８４】
検証センタ５２では、回収したＩ/Ｏトレース情報から、ホストシステム評価・解析を行う。検証センタ５２では、検証によりＩ/Ｏパターンの規則性を導出し、ホスト２側のシステム構成を推定する。そして、見出したＩ/Ｏパターンに応じて有効なキャッシュ制御情報７３を作成する。検証センタ５２で新たに作成した、Ｉ/Ｏパターン情報７２Ａとキャッシュ制御情報７３Ａとの対応付けを含む定義情報を、検証センタ５２で保持する確定ＤＢ６０Ａに追加登録または反映更新する。すなわちホストシステム構成に応じて確定ＤＢ６０Ａのバージョンアップが行われる。そして、検証センタ５２のコンピュータは、確定ＤＢ６０Ａの情報を、再配布可能な形式の情報として、保守センタ５１を通じて、稼動中の１つ以上のディスクアレイ装置に対してＳＶＰ１６０を介して配布処理する。例えば、保守センタ５１の管理下にあるすべてのディスクアレイ装置（本例では１と１Ｂ）に対して配布する。または、一部のディスクアレイ装置（例えば１のみ）に対して配布することとしてもよい。この配布処理に従い、各ディスクアレイ装置１で、ＳＶＰ１６０でのＤＢ更新の処理を通じて、ディスクアレイ装置１内で保持している確定ＤＢ６０Ａの更新を行う。ＤＫＣ１０またはＳＶＰ１６０は、配布された情報を、ディスクアレイ装置１内に保持していた確定ＤＢ６０Ａに反映して更新する。
【０１８５】
実施の形態４では、確定ＤＢ６０Ａの情報の配布及び更新により、回収元のディスクアレイ装置１のみならず、他のディスクアレイ装置１Ｂを含む複数のディスクアレイ装置でクリティカルＩ/Ｏ対応可能なホストシステム構成が追加されることで、効率的に最新のホストシステム構成に対応でき、情報処理システムの信頼性向上が実現できる。
【０１８６】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１８７】
本発明は、外部記憶装置及び外部記憶装置を備える情報処理システムなどに利用可能である。
【図面の簡単な説明】
【０１８８】
【図１】（ａ），（ｂ）は、本発明の一実施の形態におけるディスクアレイ装置のハードウェア外観構成を示す図である。
【図２】本発明の一実施の形態におけるディスクアレイ装置を含んで構成される情報処理システムの全体の構成を示すブロック図である。
【図３】本発明の一実施の形態におけるディスクアレイ装置のより詳細なハードウェア構成を示すブロック図である。
【図４】本発明の一実施の形態におけるディスクアレイ装置において、クリティカルＩ/Ｏに関する制御に係わる処理のための構成を示す説明図である。
【図５】本発明の一実施の形態におけるディスクアレイ装置において、ＤＢに管理されている各テーブル情報の関係を示す説明図である。
【図６】本発明の一実施の形態におけるディスクアレイ装置において、ＤＢの各テーブル情報の詳細な構成例を示す説明図である。
【図７】本発明の一実施の形態におけるディスクアレイ装置において、Ｉ/Ｏパターン判定に係わる処理を示すフロー図である。
【図８】本発明の一実施の形態におけるディスクアレイ装置において、ホストコンピュータからのＩ/Ｏシーケンスと本ディスクアレイ装置での制御とのタイミングを時間軸で示す説明図である。
【図９】本発明の一実施の形態におけるディスクアレイ装置において、ホストコンピュータからのＩ/ＯとＨＤＤ（ＳＡＴＡドライブ）の状態との関係、及び処理例のシーケンスを、時間軸で示す説明図である。
【図１０】本発明の一実施の形態におけるディスクアレイ装置において、図２中に示すクラスタシステムのより詳細な構成例を示すブロック図である。
【符号の説明】
【０１８９】
１，１Ｂ…ディスクアレイ装置、２…ホストコンピュータ、８…クライアントコンピュータ、１０…記憶制御装置（ＤＫＣ）、１１…基本筐体、１２…増設筐体、１３…、電源ケーブル、１４…筐体間ケーブル、１５…インタフェースケーブル、２１…ＮＩＣ、２２…ＨＢＡ、３０…ＨＤＤ、３１…論理ユニット（ＬＵ）、３２…データ、３３…キャッシュ常駐化データ、４１…ネットワーク、４２…クラスタサービス用ネットワーク、４３…クラスタ間ハートビート用ネットワーク、５１…保守センタ、５２…検証センタ、６０…ＤＢ、６０Ａ…確定ＤＢ、６０Ｂ…追加ＤＢ、７１，７１Ａ，７１Ｂ…ホスト情報、７２…Ｉ/Ｏパターン情報、７２Ａ…確定Ｉ/Ｏパターン情報、７２Ｂ…実Ｉ/Ｏパターン情報、７３，７３Ａ，７３Ｂ…キャッシュ制御情報、７４…類似性判定用情報、８１…ＮＩＣ、９０…システムディスク、９１…制御プログラム、１０１…ＣＰＵ、１０２…システムメモリ、１０３…フラッシュメモリ、１０４…ＣＰＵ／ＰＣＩブリッジ、１０５…ＬＡＮコントローラ、１１０…チャネル制御部（ＣＨＡ）、１１１…制御ボード、１１２…ファンユニット、１１３…ＡＣ／ＤＣ電源ユニット、１１４…バッテリーユニット、１３０…キャッシュメモリ（ＣＭ）、１４０…ディスク制御部（ＤＫＡ）、１５０…データコントローラ（ＤＣ）、１６０…ＳＶＰ、１６１…制御プログラム、１９０…接続網、３００…ＨＤＤ筐体、３０１…筐体管理部、３０２…ＤＰＡ、３３０…クラスタ共有ディスク、３３１，３３２…共有ディスク。
【図２】
2006221451.tif 000003
【図３】
2006221451.tif 000004
【図４】
2006221451.tif 000005
【図５】
2006221451.tif 000006
【図６】
2006221451.tif 000007
【図７】
2006221451.tif 000008
【図８】
2006221451.tif 000009
【図９】
2006221451.tif 000010
【図１０】
2006221451.tif 000011
【図１】
2006221451.tif 000012