(57)【要約】【目的】  ホスト装置に対する接続ポートが複数あるようなディスクアレイ装置において、Ｉ／Ｏを複数ポートに分割して要求されてもスループットの向上を図ることができ、キャッシュの使用効率を向上させることができるディスクアレイ装置の実現を目的とする。【構成】  Ｉ／Ｏ処理部１１３は、アクセスするデータが自系キャッシュメモリ１１２に保管されているかどうかを検索する自系キャシュサーチ機能と、他系キャッシュメモリ１１４に保管されているかどうかをデータパス１２４を介して検索する他系キャシュサーチ機能と、検索したデータを読み出すデータ読出し機能とを備えることを特徴とする。【選択図】  図１
2008027316.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する複数の磁気ディスクからなる磁気ディスク群と、
データを一時的に記憶するキャシュメモリと、ホスト装置からの入出力要求に応じて、このキャシュメモリ又は外部の前記磁気ディスク群から必要なデータを読み出して出力する入出力処理部とをそれぞれが有する複数のコントローラと、
このコントローラを相互に接続するデータパスとを備えたディスクアレイ装置において、
前記入出力処理部は、前記磁気ディスク群よりも前記キャッシュメモリを優先的に読み出すキャシュメモリ優先機能と、
アクセスするデータが自コントローラが所有するキャッシュメモリに保管されているかどうかを検索する自系キャシュサーチ機能と、
アクセスするデータが他のコントローラが所有するキャッシュメモリに保管されているかどうかを前記データパスを介して検索する他系キャシュサーチ機能と、
検索したデータを読み出すデータ読出し機能とを備えることを特徴とするディスクアレイ装置。
【請求項２】
前記請求項１に記載のディスクアレイ装置において、
前記コントローラは、前記ホスト装置からの入出力要求の受信やホストに対する入出力データの送受信を行うための複数のホスト側ポートと、
このホスト側ポート及び前記入出力処理部からの入出力データの転送を制御するホスト側転送制御部と、
前記磁気ディスク群からの入出力データの送受信を行うための複数のディスク側ポートと、
このディスク側ポート及び前記入出力処理部からの入出力データの転送を制御するディスク側転送制御部と
を具備することを特徴とするディスクアレイ装置。
【請求項３】
前記請求項１または２に記載のディスクアレイ装置において、
前記入出力処理部のキャシュメモリ優先機能は、まず前記自系キャッシュメモリを優先的に読み出し、次に、前記磁気ディスク群よりも前に、前記他系キャッシュメモリを優先的に読み出すようにしたことを特徴とするディスクアレイ装置。
【請求項４】
前記請求項１ないし３のいずれか１項に記載のディスクアレイ装置において、
前記入出力処理部の他系キャシュサーチ機能は、前記データパスを介して他の前記コントローラが所有するキャッシュメモリを直接検索するようにしたことを特徴とするディスクアレイ装置。
【請求項５】
前記請求項１ないし３のいずれか１項に記載のディスクアレイ装置において、
前記入出力処理部の他系キャシュサーチ機能は、自コントローラの前記入出力処理部が、前記データパスを介して他の前記コントローラが所有する前記入出力処理部に対してキャシュサーチを指示するとともに、他の前記コントローラが所有する入出力処理部からのキャシュサーチの結果の報告を受け得るようにしたことを特徴とするディスクアレイ装置。
【請求項６】
前記請求項１ないし５のいずれか１項に記載のディスクアレイ装置において、
前記入出力処理部が前記他系キャシュサーチ機能を実行するかしないかを切替える手動スイッチ手段を前記各コントローラに設けたことを特徴とするディスクアレイ装置。
【請求項７】
前記請求項１ないし５のいずれか１項に記載のディスクアレイ装置において、
前記入出力処理部は、前記ホスト装置からの入出力要求を一定期間記憶して、その連続性からその入出力要求がニアシーケンシャル入出力であるかどうかを判定するニアシーケンシャル判定機能を有し、ニアシーケンシャル入出力であると判定した場合には自動的に前記他系キャシュサーチ機能を実行することを特徴とするディスクアレイ装置。
【請求項８】
ホスト装置に対して磁気ディスク群からのデータの読み出しを仲介する、相互にデータパスを介して接続された複数のコントローラにおけるデータ読み出し方法であって、
前記ホスト装置からのデータ読み出し要求を受信する読み出し要求受信工程と、
前記読み出し要求を分析して自コントローラが所有するキャッシュメモリから要求データを検索する自系キャッシュ検索工程と、
前記自系キャッシュ検索工程で検索した結果、全ての要求データが揃わなかった場合には他の前記コントローラが所有するキャッシュメモリから残りの要求データを検索する他系キャッシュ検索工程と、
前記自系キャッシュ検索工程と前記他系キャッシュ検索工程の検索結果をあわした結果、全ての要求データが揃わなかった場合に、前記磁気ディスク群より残りの要求データを検索する磁気ディスク群検索工程と、
以上の各検索工程で得られた要求データをホスト装置に送信する要求データ送信工程とを備えていることを特徴とするデータ読み出し方法。
【請求項９】
ホスト装置に対して磁気ディスク群からのデータの読み出しを仲介する、相互にデータパスを介して接続された複数のコントローラに設けられたコンピュータに実行させるデータ読み出しプログラムであって、
ホスト装置からのデータ読み出し要求を受信する読み出し要求受信機能と、
前記読み出し要求を分析して自コントローラが所有するキャッシュメモリから要求データを検索する自系キャッシュ検索機能と、
前記自系キャッシュ検索機能で検索した結果、全ての要求データが揃わなかった場合には他の前記コントローラが所有するキャッシュメモリから残りの要求データを検索する他系キャッシュ検索機能と、
前記自系キャッシュ検索機能と前記他系キャッシュ検索機能での検索結果をあわした結果、全ての要求データが揃わなかった場合に、磁気ディスク群より残りの要求データを検索する磁気ディスク群検索機能と、
以上の各検索機能で得られた要求データをホスト装置に送信する要求データ送信機能とをコンピュータに実行させることを特徴とするデータ読み出しプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置、ディスクアレイ装置におけるデータ読み出し方法およびそのプログラムに関し、特にスループットの向上を図ったディスクアレイ装置、ディスクアレイ装置におけるデータ読み出し方法およびそのプログラムに関する。
【背景技術】
【０００２】
ディスク装置を複数備え、複数のコントローラで共有することによって、コントローラの不具合に対して信頼性を向上させるとともに、並列動作や後述するような先読みによってデータの記録再生処理を高速化するディスクアレイ装置が知られている。
【０００３】
従来のディスクアレイ装置の一例のブロック図を図５に示す。
図５のディスクアレイ装置は、コントローラ（０）２２５とコントローラ（１）２２６と、ディスク群（Ａ）２２２とディスク群（Ｂ）２２３とから構成される。
コントローラ（０）２２５とコントローラ（１）２２６とは、ホスト装置２００、２０５からの入出力要求を受信あるいは送信するためのポート（Ａ）／（Ｂ）２０３、２０４、２０８、２０９と、ポート（Ａ）／（Ｂ）２０３、２０４、２０８、２０９あるいは入出力（以後入出力をＩ／Ｏで表す）処理部２１３、２１５からのＩ／Ｏデータを制御する転送制御部２１０、２１１と、Ｉ／Ｏデータをキャッシュメモリ２１２、２１４に一時的に保管するための処理をおこなうＩ／Ｏ処理部２１３、２１５と、一時的にメモリ上にホスト装置の入出力データを保管するキャッシュメモリ２１２、２１４とを備えている。
さらに、磁気ディスク群２２２、２２３からの入出力データを受信あるいは送信するためのポート（Ｃ）／（Ｄ）２１８、２１９、２２０、２２１と、ポート（Ｃ）／（Ｄ）２１８、２１９、２２０、２２１あるいはＩ／Ｏ処理部２１３、２１５からの入出力データを制御する転送制御部２１６、２１７とを備えて構成される。
また、コントローラ（０）２２５、コントローラ（１）２２６間には、相互にキャッシュメモリ２１２、２１４へのアクセスを可能にするデータパス２２４が設けられている。
【０００４】
ここで、磁気ディスクの連続したメモリ空間に、順次アクセスするＩ／ＯパターンをシーケンシャルＩ／Ｏと呼ぶ。また、これに対し磁気ディスクの不連続なメモリ空間に、無作為にアクセスするＩ／ＯパターンをランダムＩ／Ｏと呼ぶ。
【０００５】
図５のような従来のディスクアレイ装置において、コントローラ（０）２２５又はコントローラ（１）２２６が、ホスト装置２００、２０５から要求される複数のＩ／Ｏ命令がシーケンシャルＩ／Ｏであると判断した場合、指定された範囲よりも、先のデータまで磁気ディスク群２２２、２２３からキャッシュメモリ２１２、２１４に先読みする方法がある。
この先読みにより、ホスト装置２００、２０５から以降のＩ／Ｏ要求があった場合に、磁気ディスク群２２２、２２３へのアクセス頻度を少なくすることができ、これによりシーケンシャルＩ／Ｏがあったときに、その都度、磁気ディスクにアクセスする場合に比べ、スループットを多少改善することができた。
ここで、シーケンシャルＩ／Ｏの判定は次のように行われる。すなわち、前回のＩ／Ｏにおける終了アドレスを記憶しておき、その次のアドレスを開始番地とするＩ／Ｏを受け取った場合にシーケンシャルＩ／Ｏと判定する。
【０００６】
また、図５のような系において、ホスト装置２００がランダムＩ／Ｏ要求を行うとき、ディスクアレイ装置に対する接続ポートがポート（０）２０１とポート（１）２０２と複数パスあることから、Ｉ／Ｏをこの２つのポートに分割して要求するときがある。これにより、ランダムＩ／Ｏ要求をコントローラ（０）２２５とコントローラ（１）２２６の独立した処理部で同時に処理されるため、ポート（０）２０１あるいはポート（１）２０２にのみＩ／Ｏ要求を行った場合に比べてデータ転送を幾分かは改善することができる。
【０００７】
しかしながら、図５のような系において、ホスト装置２００がシーケンシャルＩ／Ｏ要求を行うとき、ディスクアレイ装置に対する接続ポートがポート（０）２０１とポート（１）２０２の複数パスあることから、Ｉ／Ｏをこの２つのポートに分割して要求するときがある。このときのＩ／Ｏリクエストパターンの例を図６に示す。
図６で、（ａ）はホスト装置２００のリード要求、（ｂ）は磁気ディスクのリードデータパターン、（ｃ）はコントローラ（０）２２５のポート（Ａ）２０３に現れるリード要求、（ｄ）はコントローラ（１）２２６のポート（Ａ）２０８に現れるリード要求、（ｅ）は磁気ディスク内のメモリ空間のリードデータパターン、（ｆ）はコントローラ（０）２２５のキャッシュメモリ２１２上のデータ、（ｇ）コントローラ０（２２６）のキャッシュメモリ２１４上のデータを示す。
【０００８】
ホスト装置２００からのシーケンシャルＩ／ＯリクエストＲ０、Ｒ１、Ｒ２、Ｒ３、Ｒ４、Ｒ５は、それぞれ磁気ディスク群の連続したメモリ空間Ｄ０、Ｄ１、Ｄ２、Ｄ３、Ｄ４、Ｄ５に対応するリクエストである。
図６では、ホスト装置２００から順にポート（０）２０１にＲ０、ポート（１）２０２にＲ１、ポート（０）２０１にＲ２、ポート（１）２０２にＲ３、ポート（０）２０１にＲ４、ポート（１）２０２にＲ５とＩ／Ｏリクエストを要求している。
【０００９】
このとき、ホスト装置のポート０に接続されているディスクアレイ装置のコントローラ（０）２２５のポート（Ａ）２０３は、Ｒ０のＩ／Ｏリクエストを受信し、Ｉ／Ｏ処理部２１３は自系のキャッシュメモリ２１２にデータＤ０が保管されているかどうかのキャッシュメモリの検索（以下、キャッシュメモリーの検索をキャッシュサーチと呼ぶ）を実行し、データＤ０が保管されていなければ、Ｒ０の終了メモリアドレスを記憶し、磁気ディスク群２２２、２２３に対しデータＤ０のリード要求をおこなう。
次に、要求されたＩ／ＯリクエストＲ２に対して、Ｉ／Ｏ処理部２１３は、自系のキャッシュメモリ２１２にキャッシュサーチを実行し、データＤ２が保管されていなければ、磁気ディスク群２２２、２２３に対しリード要求をおこなう。このときＲ２の開始メモリアドレスと、前回のＩ／ＯリクエストであるＲ０の最終メモリアドレスを比較し、不一致であるため、シーケンシャルＩ／Ｏとは判定されず、従って先読み処理は行われず、Ｄ２のみのリードが実行される。
【００１０】
同様に、ホスト装置２００のポート（１）２０２に接続されているディスクアレイ装置のコントローラ（１）２２６のポート（Ａ）２０８は、Ｒ１のＩ／Ｏリクエストを受信すると、Ｉ／Ｏ処理部２１５は自系のキャッシュメモリ２１４にキャッシュサーチを実行し、データＤ１が保管されていなければ、Ｒ１の終了メモリアドレスを記憶する。次に要求されたＩ／ＯリクエストＲ３に対して、Ｉ／Ｏ処理部２１５は自系のキャッシュメモリ２１４にキャッシュサーチを実行し、データＤ３が保管されていなければ、磁気ディスク群２２２、２２３に対しリード要求をおこなう。このときＲ３の開始メモリアドレスと、Ｒ１の終了メモリアドレスを比較し、不一致であるため、シーケンシャルＩ／Ｏとは判定されず、従って先読み処理は行われず、Ｄ３のみのリードを実行する。
【００１１】
以上に述べたように、この後コントローラ（０）２２５のポート（Ａ）２０３（あるいはコントローラ１のポート（Ａ）２０８）がＲ４（あるいはＲ５）のＩ／Ｏリクエストを受信しても、Ｉ／Ｏ処理部２１３（２１５）はキャッシュサーチを実行した結果、キャッシュメモリにリードデータＤ４（あるいはＤ５）が保管されていないため、磁気ディスク群２２２、２２３からリードデータＤ４（あるいはＤ５）の読み出しをおこなう。
更に、Ｉ／ＯリクエストＲ４（あるいはＲ５）の開始メモリアドレスと、前回のＩ／ＯリクエストＲ２（あるいはＲ３）の最終メモリアドレスを比較し、不一致であるため、シーケンシャルＩ／Ｏ判定されずに先読み処理はおこなわれない。
従って、コントローラ（０）２２５とコントローラ（１）２２６の独立した同時動作によって、多少のスループットを改善できるものの、ホスト装置からのシーケンシャルＩ／Ｏを検出することができないため先読み処理は実行されず、それ以上のスループットの向上を図ることはできない。
【００１２】
これに対し、特許文献１では、ニアシーケンシャルＩ／Ｏ検出をおこなうことにより、先読み処理をおこなうことを提案している。特許文献１では、シーケンシャルＩ／Ｏの途中が少し欠けるアクセスパターンをニアシーケンシャルＩ／Ｏと呼ぶことにしている。この方法により、ホスト装置からのシーケンシャルＩ／Ｏの複数パスへの分割転送に対し、ニアシーケンシャルＩ／Ｏ判定されるため、磁気ディスクからキャッシュメモリへ先読みを行うことができ、多少のスループット向上が見込める。
【００１３】
また、特許文献２では、２つのコントローラに共通の１つのキャシュメモリを用い、２つのコントローラから共通にアクセスできるようにして、ホスト装置からの指令が複数のコントローラに別々に送られても、データの連続性が確認でき、磁気ディスクからキャッシュメモリへの先読みを行うことができ、多少のスループット向上が見込める。
【００１４】
【特許文献１】特開２０００−７６０１７号公報
【特許文献２】特開２００１−１２５７５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１５】
しかしながら、特許文献１の方法では、磁気ディスク群からキャッシュメモリへの先読みによって、図５のコントローラ０とコントローラ１のキャッシュメモリ内で同一のデータが保管されていることになるため、コントローラ０、コントローラ１のキャッシュデータが二重に消費される部分ができ、キャッシュの使用効率が悪化してしまうという問題がある。
また、特許文献２の方法では、２つのコントローラの共通のキャシュメモリへのアクセスが衝突する危険をさけるため、アクセス方法に工夫が必要になり、その分、アクセス方法が複雑になって処理時間がかかるという問題がある。
【００１６】
このように、ディスクアレイ装置に対する接続ポートが複数パスあるようなホスト装置において、Ｉ／Ｏを２つのポートに分割して要求する場合に、特許文献１の方法では、キャッシュメモリのキャッシュヒット率が下がるという問題があった。また、キャッシュの使用効率が悪化してしまうという問題もあった。ここでキャッシュヒット率とは、キャッシュメモリにキャッシュサーチを実行し、要求されたデータが保管されている場合の割合を指す。
また、特許文献２の方法では、キャッシュヒット率は向上するが、キャッシュメモリへのアクセス方法が複雑になって、その分アクセスに時間がかかり、必ずしもスループットの向上につながらないという問題があった。
【００１７】
本発明の目的は、かかる従来例の有する不都合を改善し、ディスクアレイ装置に対する接続ポートが複数パスあるようなホスト装置において、Ｉ／Ｏを複数ポートに分割して要求されてもスループットの向上を図ることができ、キャッシュメモリの使用効率を向上させることができるディスクアレイ装置およびこの装置でのデータ読み出し方法およびそのプログラムを提供することにある。
【課題を解決するための手段】
【００１８】
上記課題を解決するため、本発明にかかるディスクアレイ装置は、データを記憶する複数の磁気ディスクからなる磁気ディスク群と、データを一時的に記憶するキャシュメモリと、ホスト装置からの入出力要求に応じて、このキャシュメモリ又は外部の前記磁気ディスク群から必要なデータを読み出して出力する入出力処理部とをそれぞれが有する複数のコントローラと、このコントローラを相互に接続するデータパスとを備えたディスクアレイ装置において、前記入出力処理部は、前記磁気ディスク群よりも前記キャッシュメモリを優先的に読み出すキャシュメモリ優先機能と、アクセスするデータが自コントローラが所有するキャッシュメモリに保管されているかどうかを検索する自系キャシュサーチ機能と、アクセスするデータが他のコントローラが所有するキャッシュメモリに保管されているかどうかを前記データパスを介して検索する他系キャシュサーチ機能と、検索したデータを読み出すデータ読出し機能とを備えることを特徴とする（請求項１乃至７）。
これにより、自系のキャッシュメモリとともに、他系のキャシュメモリをも同様に検索することができるので、シーケンシャルＩ／Ｏを処理して、両キャッシュメモリにまたがってデータを先読みすることが可能になり、これによってスループットの向上を図ることが可能なディスクアレイ装置を実現することができる。
【００１９】
また、前記コントローラは、前記ホスト装置からの入出力要求の受信やホストに対する入出力データの送受信を行うための複数のホスト側ポートと、このホスト側ポート及び前記入出力処理部からの入出力データの転送を制御するホスト側転送制御部と、前記磁気ディスク群からの入出力データの送受信を行うための複数のディスク側ポートと、このディスク側ポート及び前記入出力処理部からの入出力データの転送を制御するディスク側転送制御部とを具備することを特徴とする（請求項２）。
これにより、ランダムＩ／Ｏを２つのコントローラで同時に処理することが可能になり、ランダムＩ／Ｏに対しても、スループットの向上を図ることが可能なディスクアレイ装置が得られる。
【００２０】
ここで、前記入出力処理部のキャシュメモリ優先機能では、前記入出力処理部のキャシュメモリ優先機能は、まず前記自系キャッシュメモリを優先的に読み出し、次に、前記磁気ディスク群よりも前に、前記他系キャッシュメモリを優先的に読み出すようにしたことを特徴とする（請求項３）。
また、前記入出力処理部の他系キャシュサーチ機能は、前記データパスを介して他の前記コントローラが所有するキャッシュメモリを直接検索するようにしたことを特徴とする（請求項４）。
また、前記入出力処理部の他系キャシュサーチ機能は、自コントローラの前記入出力処理部が、前記データパスを介して他の前記コントローラが所有する前記入出力処理部に対してキャシュサーチを指示するとともに、他の前記コントローラが所有する入出力処理部からのキャシュサーチの結果の報告を受け得るようにしたことを特徴とする（請求項５）。
これらにより、自系キャッシュメモリと他系キャッシュメモリとを、滞りなく容易に検索することが可能なディスクアレイ装置が実現できる。
【００２１】
ここで、前記入出力処理部が前記他系キャシュサーチ機能を実行するかしないかを切替える手動スイッチ手段を前記各コントローラに設けたことを特徴とする（請求項６）。
これにより、入出力要求の内容に応じて他系キャシュサーチ機能を実行するかしないかを選択することが可能なディスクアレイ装置を実現することができる。
【００２２】
また、前記入出力処理部は、前記ホスト装置からの入出力要求を一定期間記憶して、その連続性からその入出力要求がニアシーケンシャル入出力であるかどうかを判定するニアシーケンシャル判定機能を有し、ニアシーケンシャル入出力であると判定した場合には自動的に前記他系キャシュサーチ機能を実行することを特徴とする（請求項７）。
これにより、ニアシーケンシャル入出力を判定して自動的に他系キャシュサーチを行い、データを先読みすることが可能になり、スループットの向上が図れるディスクアレイ装置を実現することができる。
【００２３】
上記課題を解決するため、本発明にかかるディスクアレイ装置でのデータ読み出し方法は、ホスト装置に対して磁気ディスク群からのデータの読み出しを仲介する、相互にデータパスを介して接続された複数のコントローラにおけるデータ読み出し方法であって、前記ホスト装置からのデータ読み出し要求を受信する読み出し要求受信工程と、前記読み出し要求を分析して自コントローラが所有するキャッシュメモリから要求データを検索する自系キャッシュ検索工程と、前記自系キャッシュ検索工程で検索した結果、全ての要求データが揃わなかった場合には他の前記コントローラが所有するキャッシュメモリから残りの要求データを検索する他系キャッシュ検索工程と、前記自系キャッシュ検索工程と前記他系キャッシュ検索工程の検索結果をあわした結果、全ての要求データが揃わなかった場合に、前記磁気ディスク群より残りの要求データを検索する磁気ディスク群検索工程と、以上の各検索工程で得られた要求データをホスト装置に送信する要求データ送信工程とを備えていることを特徴とする（請求項８）。
これにより、自系のキャッシュメモリと他系のキャシュメモリとを同様に検索して、ニアシーケンシャルＩ／Ｏに対応して、両キャッシュメモリにまたがってデータを先読みすることが可能で、スループットの向上を図れるディスクアレイ装置のデータ読み出し方法を実現することができる。
【００２４】
上記課題を解決するため、本発明にかかるディスクアレイ装置でのデータ読み出し用のプログラムは、ホスト装置に対して磁気ディスク群からのデータの読み出しを仲介する、相互にデータパスを介して接続された複数のコントローラに設けられたコンピュータに実行させるデータ読み出しプログラムであって、ホスト装置からのデータ読み出し要求を受信する読み出し要求受信機能と、前記読み出し要求を分析して自コントローラが所有するキャッシュメモリから要求データを検索する自系キャッシュ検索機能と、前記自系キャッシュ検索機能で検索した結果、全ての要求データが揃わなかった場合には他の前記コントローラが所有するキャッシュメモリから残りの要求データを検索する他系キャッシュ検索機能と、前記自系キャッシュ検索機能と前記他系キャッシュ検索機能での検索結果をあわした結果、全ての要求データが揃わなかった場合に、磁気ディスク群より残りの要求データを検索する磁気ディスク群検索機能と、以上の各検索機能で得られた要求データをホスト装置に送信する要求データ送信機能とをコンピュータに実行させることを特徴とする（請求項９）。
これにより、自系のキャッシュメモリと他系のキャシュメモリとを同様に検索して、ニアシーケンシャルＩ／Ｏに対応して両キャッシュメモリにまたがってデータを先読みすることが可能で、スループットの向上を図れるディスクアレイ装置のデータ読み出し用のプログラムを実現することができる。
【発明の効果】
【００２５】
本発明は以上のように構成され機能するので、ホスト装置によるＩ／Ｏ要求が冗長化されて、複数の独立したコントローラに要求され、複数のコントローラ内のキャッシュメモリにデータが分散されて保管されていた場合でも、スループットの向上を図ることができ、キャッシュメモリの使用効率を向上させることができる。
【発明を実施するための最良の形態】
【００２６】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。
【００２７】
図１に本発明のディスクアレイ装置の一実施の形態のブロック図を示す。
本実施の形態の構成は、基本的に先に図５で示した従来例のそれと同じである。
本実施の形態のディスクアレイ装置は、１対のコントローラ（０）１２５とコントローラ（１）１２６と複数の磁気ディスクからなるディスク群（Ａ）１２２及びディスク群（Ｂ）１２３を備えて構成される。
【００２８】
各々のコントローラは、ホスト装置１００、１０５からの入出力要求を、受信あるいは送信するためのポート（Ａ）／（Ｂ）（ホスト側ポート）１０３、１０４、１０８、１０９と、ポート（Ａ）／（Ｂ）１０３、１０４、１０８、１０９あるいはＩ／Ｏ処理部１１３、１１５からの入出力データを制御する転送制御部（Ａ）（ホスト側転送制御部）１１０、１１１と、入出力データをキャッシュメモリに一時的に保管するための処理をおこなうＩ／Ｏ処理部１１３、１１５と、一時的にメモリ上にホスト装置１００、１０５への入出力データを保管するキャッシュメモリ１１２、１１４とを備えている。
さらに、磁気ディスクからの入出力データを受信、あるいは送信するためのポート（Ｃ）／（Ｄ）（ディスク側ポート）１１８、１１９、１２０、１２１と、ポート（Ｃ）／（Ｄ）１１８、１１９、１２０、１２１あるいはＩ／Ｏ処理部１１３、１１５からの入出力データを制御する転送制御部（Ｂ）（ディスク側転送制御部）１１６、１１７とを備えて構成されている。
【００２９】
Ｉ／Ｏ処理部１１３、１１５は、キャッシュメモリ１１２、１１４をディスク群１２２、１２３よりも先に優先してサーチするキャッシュメモリ優先機能、自系のキャッシュメモリのサーチを実行する自系キャシュサーチ機能、他系のキャッシュメモリのサーチを実行する他系キャシュサーチ機能、及び読み出したデータを一旦自系のキャッシュメモリに記憶した後、読み出してホスト装置１００、１０５に返却するデータ読み出し機能を有している。
また、コントローラ（０）１２５、コントローラ（１）１２６間は相互に相手のキャッシュメモリ１１２、１１４へのアクセス可能なパス（データパス）１２４を有する。
【００３０】
次に、図１のブロック図と図２のフローチャートを参照して、本実施の形態のデータ読み出し動作について詳細に説明する。
まず、ホスト装置（Ａ）１００のポート（０）１０１からコントローラ０のポート（Ａ）１０３に対し、リードリクエストが要求される（ステップＳ１０１）。
コントローラ（０）１２５は転送制御部（Ａ）１１０を介し、Ｉ／Ｏ処理部１１３でコマンド受信処理をおこなう（ステップＳ１０２：読み出し要求受信工程）。
コマンド受信処理後、Ｉ／Ｏ処理部１１３はリードリクエストに対応するデータが保管されているかどうかをまずキャッシュメモリをディスク群よりも優先して検索する。そのため、まず、自身のキャッシュメモリ１１２に対し、リードリクエストに対応するデータがこのキャッシュメモリ１１２内に保管されているかどうか、自系キャッシュサーチを実行する（ステップＳ１０３：自系キャッシュ検索工程・自系キャッシュサーチ機能）。
【００３１】
この自系キャッシュサーチの結果、自系キャッシュメモリ１１２に要求されたリードデータ全てが存在しているかどうかを判断し（ステップＳ１０４）、全てが存在しないときには、他系キャッシュサーチ実行すべきかどうかの判定をおこなう（ステップＳ１０５）。
この判定は、例えば、手動のスイッチ（手動スイッチ手段）の切替えにより判定しても良い。あるいは自動判定としても良い。自動判定の場合は、リードリクエストデータが、ニアシーケンシャルＩ／Ｏの場合に、他系キャッシュサーチを実行する（ステップＳ１０６：他系キャッシュ検索工程・他系キャッシュサーチ機能）。
【００３２】
他系キャッシュサーチに際しては、自系Ｉ／Ｏ処理部１１３がデータパス１２４を介して直接、他系キャッシュメモリ１１４を検索してもよいし、自系Ｉ／Ｏ処理部１１３がデータパス１２４を介して他系Ｉ／Ｏ処理部１１５に他系キャッシュメモリ１１４の検索を依頼し、他系Ｉ／Ｏ処理部１１５の自系キャシュサーチ機能によるキャッシュメモリ１１４の検索結果を、他系Ｉ／Ｏ処理部１１５から報告を受けるようにしてもよい。
なお、ステップＳ１０４で、自系キャッシュメモリ１１２に要求されたリードデータ全てが存在するときには、他系キャッシュサーチは実行せずにステップＳ１１０に移行する。
【００３３】
他系キャッシュサーチは、コントローラ（０）１２５とコントローラ（１）１２６を結ぶパス１２４を介しておこなわれる。他系キャッシュサーチ後に、自系および他系のキャッシュサーチ結果を統合し（ステップＳ１０７）、要求されたリードデータ全てが揃ったかどうかを判断する（ステップＳ１０８）。
全てが存在しないときには、Ｉ／Ｏ処理部１１３から転送制御部（Ｂ）１１６を介し、ポート（C）１１８あるいはポート（Ｄ）１１９を通して磁気ディスク群（Ａ）１２２あるいは磁気ディスク群（Ｂ）１２３に対し、自系キャッシュメモリ１１２へのリード転送要求をおこなう（ステップＳ１０９：磁気ディスク群検索工程）。
【００３４】
ステップＳ１０８で、自系および他系のキャッシュサーチ結果を統合すると、リードデータ全てが存在するときにはステップＳ１１０に移行する。キャッシュメモリ１１２にリードデータ全てが格納されると、Ｉ／Ｏ処理部１１３はキャッシュメモリ１１２からホスト装置（Ａ）１００に対してリードデータを送信し（ステップＳ１１０：要求データ送信工程・データ読み出し機能）、受信処理を終了する（ステップＳ１１１）。
【００３５】
ここで更に本実施の形態の動作の細部を説明する。
まず、図２のフローチャートのステップＳ１０５の他系キャッシュサーチを実行するかどうかの判定を、手動設定によって選択可能にした場合を説明する。
ここで他系のキャッシュサーチを実行しないようにする設定を行うと、ホスト装置からのシーケンシャルＩ／Ｏ要求を２つのコントローラに分割して転送されるときに、先読みを行わないことになり、その分のスループットの低下がある。
ここで、ニアシーケンシャルＩ／Ｏ判定によって先読みをおこなっても、メモリの使用効率の低下が発生する。しかしながら、ホスト装置からのシーケンシャルＩ／Ｏ要求を２つのコントローラに分割して転送しない場合には、シーケンシャルＩ／Ｏ要求が片方のコントローラで処理されることにより、先読み処理が有効に働き、自系のキャッシュヒットによりスループットの向上が図れる。
【００３６】
次に、他系のキャッシュサーチを実行するように設定した場合を説明する。
図１に示す本実施の形態のディスクアレイ装置に対して、図３に示すようなリード要求をホスト装置（Ａ）１００から受けた場合を考える。
なお、図３において、（ａ）はホスト装置１００からのリード要求、（ｂ）は磁気ディスクのリードデータパターン、（ｃ）はコントローラ（０）１２５のポート（Ａ）１０３に現れるリード要求、（ｄ）はコントローラ（１）１２６のポート（Ａ）１０８に現れるリード要求、（ｅ）は磁気ディスク内のメモリ空間のリードデータパターン、（ｆ）はコントローラ（０）１２５のキャッシュメモリ１１２上のデータ、（ｇ）コントローラ０（１２６）のキャッシュメモリ１１４上のデータを示す。
ここで、リード要求Ｒ０、Ｒ１は、それぞれ磁気ディスク群１２２、１２３内のリードデータＤ０、Ｄ１に対応し、ホスト装置（Ａ）１００は、ホスト装置（Ａ）１００のポート（０）１０１とポート（１）１０２にリード要求を分割している。
【００３７】
このとき、本実施の形態のディスクアレイ装置では、コントローラ（０）１２５のポート（Ａ）１０３は、Ｒ０のＩ／Ｏ要求を受信し、コントローラ（１）１２６のポート（Ａ）１０８では、次のＲ１のＩ／Ｏ要求を受信する。
受信したコントローラ（０）１２５では、Ｉ／Ｏ処理部１１３で、自系及び他系のキャッシュサーチを実行し、リードデータがキャッシュメモリ１１２および１１４に保管されていないため、磁気ディスク群１２２、１２３からリードデータＤ０を読み出して、キャッシュメモリ１１２に保管し、ホスト装置（Ａ）１００に対してリプライデータＤ０を送信する。
同様に、コントローラ（１）１２６でも磁気ディスク群１２２、１２３からリードデータＤ１を読み出して、キャッシュメモリ１１４に保管し、ホスト装置（Ａ）１００に対してリプライデータＤ１を送信する。
【００３８】
その後に、再度ホスト装置（Ａ）１００からリード要求Ｒ１に対し、コントローラ（０）１２５のポート（Ａ）１０３はＲ１のＩ／Ｏ要求を受信し、Ｉ／Ｏ処理部１１３で自系キャッシュサーチと他系キャッシュサーチの結果、コントローラ１のキャッシュメモリ１１４にリプライデータＤ１が保管されているため、磁気ディスク群１２２、１２３からリードすることなく、コントローラ１のキャッシュメモリ１１４からコントローラ０のポート（Ａ）１０３を介してホスト装置（Ａ）１００にリプライデータを送信する。
【００３９】
次に、図２のステップＳ１０５での他系キャッシュサーチ実行判定を、ホスト装置１００、１０５からのＩ／Ｏ要求がニアシーケンシャルＩ／Ｏ判定であったときに、他系のキャッシュサーチを自動でおこなう場合について、図４を用いて説明する。
【００４０】
図４において、（ａ）はホスト装置１００からのリード要求、（ｂ）は磁気ディスクのリードデータパターン、（ｃ）はコントローラ（０）１２５のポート（Ａ）１０３に現れるリード要求、（ｄ）はコントローラ（１）１２６のポート（Ａ）１０８に現れるリード要求、（ｅ）は磁気ディスク内のメモリ空間のリードデータパターン、（ｆ）はコントローラ（０）１２５のキャッシュメモリ１１２上のデータ、（ｇ）コントローラ（１）１２６のキャッシュメモリ１１４上のデータを示す。
【００４１】
コントローラ（０）１２５のポート（Ａ）１０３で、順にホスト装置（Ａ）１００からのＲ０、Ｒ２のリード要求を受信するとする。Ｉ／Ｏ処理部１１３では自系のキャッシュサーチを実行し、リードデータが保管されていないため、Ｒ０を、まず磁気ディスク群１２２、１２３から読み出して、キャッシュメモリ１１２にこのリードデータＤ０を保管し、ホスト装置（Ａ）１００に対してリプライデータＤ０を送信する。
このとき、Ｉ／Ｏ要求Ｒ０はニアシーケンシャルＩ／Ｏと判定されないため、他系へのキャッシュサーチは実行しない。
【００４２】
次に、Ｒ２のリード要求を処理するときに、アドレスの比較から、ニアシーケンシャルＩ／Ｏ判定となるため、自系及び他系両方のキャッシュサーチを実行する。
このとき、キャッシュヒットとはならないが、一定範囲の先読みが動作し、磁気ディスク群からリードデータＤ２、Ｄ３、Ｄ４をキャッシュメモリに保管し、ホスト装置に対してリプライデータＤ２を送信する。
そのため、Ｒ４のリード要求の際には、磁気ディスク群１２２、１２３へのアクセスをおこなわずに、ホスト装置（Ａ）１００にリードデータＤ４を送信する。
【００４３】
一方で、コントローラ（１）１２６のポート（Ａ）１０８では、順にＲ１、Ｒ３、Ｒ５のリード要求を受信する。このとき、Ｉ／Ｏ処理部１１５ではＲ１を磁気ディスク群１２２、１２３から読みだし、キャッシュメモリ１１４に、このリードデータＤ１を保管し、Ｒ３のリード要求の際には、他系のキャッシュサーチでコントローラ（０）１２５のキャッシュメモリ１１２にＤ３が保管されていることを検出し、コントローラ（０）１２５のキャッシュメモリ１１２からホスト装置（Ａ）１００に対し、リプライデータを送信させる。
これにより、本実施の形態のデータ読み出し方法ではＤ３、Ｄ４のデータがコントローラ０、１に二重に保管することはなく、スループットとキャッシュメモリの使用効率が向上される。
【００４４】
以上の説明では、本発明のディスクアレイ装置及びそこで用いられるデータ読み出し方法について述べたが、以上のデータ読み出し方法の各工程での実行内容をプログラム化してコンピュータに実行させるように構成しても良い。このようにしても、上述した方法で行った場合と同等なスループットの向上と、キャッシュメモリの使用効率の向上が得られる。
【産業上の利用可能性】
【００４５】
本発明は、以上のように構成され、機能するので、２つの入出力コントローラで冗長化されたディスクアレイ装置において、コントローラが自系のキャッシュサーチだけでなく、他系のキャッシュサーチをおこなうことで、処理の高速化が図られ、スループットを大幅に改善することができる。従って、ディスクアレイを用いる情報処理などの産業分野で広範な利用の可能性が見込める。
【図面の簡単な説明】
【００４６】
【図１】本発明のディスクアレイ装置の一実施の形態のブロック図である。
【図２】図１に示す実施形態のデータ読み出し方法を示すフローチャートである。
【図３】図１に示す実施形態へのリード要求の一例とそれに対する読み出し手順を示す説明図である。
【図４】図１に示す実施形態へのリード要求の他の例とそれに対する読み出し手順を示す説明図である。
【図５】従来のディスクアレイ装置の一例のブロック図である。
【図６】図５に示す従来例へのリード要求の例とそれに対する読み出し手順を示す説明図である。
【符号の説明】
【００４７】
１０３、１０４、１０８、１０９    ポートＡ／Ｂ（ホスト側ポート）
１１０、１１１    転送制御部（ホスト側転送制御部）
１１３、１１５    Ｉ／Ｏ処理部（入出力処理部）
１１６、１１７    転送制御部（ディスク側転送制御部）
１１８、１１９、１２０、１２１    ポートＣ／Ｄ（ディスク側ポート）
１２２、１２３    ディスク群（磁気ディスク群）
１２５、１２６    コントローラ
【図１】
2008027316.tif 000003
【図２】
2008027316.tif 000004
【図３】
2008027316.tif 000005
【図４】
2008027316.tif 000006
【図５】
2008027316.tif 000007
【図６】
2008027316.tif 000008