(57)【要約】【課題】キャッシュメモリの一部に障害が発生した場合に、Ｉ／Ｏ処理を全て他系のＩ／Ｏ処理コントローラへ引き継ぐことなく、障害が発生したＩ／Ｏ処理コントローラの障害が発生したメモリ領域以外のメモリ領域を活用するとともに、性能劣化の影響を極小化させることが可能なディスクアレイ装置を提供する。【解決手段】２重のキャッシュメモリを備えたディスクアレイ装置において、キャッシュメモリ１２の一部に障害が発生した場合、障害が発生したメモリ領域（Ａｒｅａ１）のみを閉塞させ、これを同じキャッシュメモリ１２の他のメモリ領域（Ａｒｅａ２）に再割り当てしてＩ／Ｏ処理を継続する構成とする。【選択図】図６
2008269142.tif 000002
【特許請求の範囲】
【請求項１】
上位装置との間のＩ／Ｏ処理を制御する複数のＩ／Ｏ処理コントローラと、前記複数のＩ／Ｏ処理コントローラのＩ／Ｏ処理によるデータを格納する記憶装置とを有し、
前記複数のＩ／Ｏ処理コントローラのそれぞれは、前記Ｉ／Ｏ処理を行うプロセッサと、前記プロセッサのＩ／Ｏ処理によるデータを一時的に格納するキャッシュメモリとを有し、
前記キャッシュメモリは、論理的に複数のメモリ領域に分割され、
前記記憶装置は、複数の論理ユニットを有し、論理ユニット毎に前記分割されたメモリ領域が割り当てられ、
前記キャッシュメモリの一部に障害が発生した際に、前記プロセッサは、
前記障害が発生したキャッシュメモリのアドレスを特定し、この特定したアドレスの第１のメモリ領域を閉塞させ、
前記上位装置からのアクセス状態を判断し、この判断の結果に基づいて前記第１のメモリ領域に割り当てられていた論理ユニットを前記障害が発生したキャッシュメモリの第２のメモリ領域へ再割り当てし、
前記再割り当てした第２のメモリ領域を用いて前記上位装置からのＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項２】
請求項１記載のディスクアレイ装置において、
前記上位装置からのアクセス状態として、前記上位装置と前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラとの間の冗長パス構成の有無を判断し、この判断の結果、冗長パスがない場合には、前記障害が発生したキャッシュメモリの各メモリ領域の使用率をチェックし、このチェックの結果、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項３】
請求項２記載のディスクアレイ装置において、
前記判断の結果、冗長パスがある場合には、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラのキャッシュメモリへ切り替えてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項４】
請求項１記載のディスクアレイ装置において、
前記上位装置からのアクセス状態として、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラの負荷状態を判断し、この判断の結果、負荷が高い場合には、前記障害が発生したキャッシュメモリの各メモリ領域の使用率をチェックし、このチェックの結果、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項５】
請求項４記載のディスクアレイ装置において、
前記判断の結果、負荷が高くない場合には、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラのキャッシュメモリへ切り替えてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項６】
請求項１記載のディスクアレイ装置において、
前記上位装置からのアクセス状態として、前記上位装置と前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラとの間の冗長パス構成の有無と、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラの負荷状態とを判断し、これらの判断の結果、冗長パスがなく負荷が高い場合には、前記障害が発生したキャッシュメモリの各メモリ領域の使用率をチェックし、このチェックの結果、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項７】
請求項６記載のディスクアレイ装置において、
前記判断の結果、冗長パスがなく負荷が高くない場合には、前記障害が発生したキャッシュメモリの各メモリ領域の使用率をチェックし、このチェックの結果、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項８】
請求項６記載のディスクアレイ装置において、
前記判断の結果、冗長パスがあり負荷が高い場合には、前記障害が発生したキャッシュメモリの各メモリ領域の使用率をチェックし、このチェックの結果、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項９】
請求項６記載のディスクアレイ装置において、
前記判断の結果、冗長パスがあり負荷が高くない場合には、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラのキャッシュメモリへ切り替えてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【請求項１０】
上位装置との間のＩ／Ｏ処理を制御する複数のＩ／Ｏ処理コントローラと、前記複数のＩ／Ｏ処理コントローラのＩ／Ｏ処理によるデータを格納する記憶装置とを有し、
前記複数のＩ／Ｏ処理コントローラのそれぞれは、前記Ｉ／Ｏ処理を行うプロセッサと、前記プロセッサのＩ／Ｏ処理によるデータを一時的に格納するキャッシュメモリとを有し、
前記キャッシュメモリは、論理的に複数のメモリ領域に分割され、
前記記憶装置は、複数の論理ユニットを有し、論理ユニット毎に前記分割されたメモリ領域が割り当てられ、
前記キャッシュメモリの一部に障害が発生した際に、前記プロセッサは、
前記障害が発生したキャッシュメモリのアドレスを特定し、この特定したアドレスの第１のメモリ領域を閉塞させ、
前記上位装置からのアクセス状態を判断し、この判断の結果に基づいて前記第１のメモリ領域に割り当てられていた論理ユニットを前記障害が発生したキャッシュメモリの第２のメモリ領域へ再割り当てし、
前記再割り当てした第２のメモリ領域を用いて前記上位装置からのＩ／Ｏ処理を継続するものであり、
前記上位装置からのアクセス状態として、前記上位装置と前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラとの間の冗長パス構成の有無と、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラの負荷状態とを判断し、これらの判断の結果、冗長パスがなく負荷が高い場合、冗長パスがなく負荷が高くない場合、または、冗長パスがあり負荷が高い場合には、前記障害が発生したキャッシュメモリの各メモリ領域の使用率をチェックし、このチェックの結果、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続し、前記判断の結果、冗長パスがあり負荷が高くない場合には、前記障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラのキャッシュメモリへ切り替えてＩ／Ｏ処理を継続することを特徴とするディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置の技術に関し、特に、２重のキャッシュメモリを備えたディスクアレイ装置において、キャッシュメモリの一部に障害が発生した場合のＩ／Ｏ処理の継続技術に適用して有効な技術に関する。
【背景技術】
【０００２】
本発明者が検討したところによれば、従来のディスクアレイ装置では、キャッシュメモリに障害が発生する場合を考慮して、キャッシュメモリを有するＩ／Ｏ処理コントローラの部分を上位装置との間で冗長構成にする技術がある。この冗長構成において、もしキャッシュメモリの一部に障害が発生した場合には、この障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラを閉塞させて、他系のＩ／Ｏ処理コントローラへ処理を引き継いでＩ／Ｏ処理を継続させることができる。なお、このような冗長構成のディスクアレイ装置に関しては、たとえば特許文献１、特許文献２に記載される技術などが挙げられる。
【特許文献１】特開２００５−１７４１７８号公報
【特許文献２】特開２００６−９２１２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、前記のようなディスクアレイ装置の技術においては、キャッシュメモリの一部に障害が発生した場合、この障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラを閉塞させて、他系のＩ／Ｏ処理コントローラへ処理を引き継いでいるため、Ｉ／Ｏ処理の負荷が１つのＩ／Ｏ処理コントローラに偏り、性能劣化を引き起こす場合が発生することがある。また、上位装置にパス切り替え機能がない場合には、Ｉ／Ｏ処理が継続できないという課題も発生する。
【０００４】
また、前記特許文献１の技術には、キャッシュメモリの論理的なメモリ領域の分割の概念がなく、さらに、上位装置との接続状態・負荷状況による再割り当ての概念もない。また、前記特許文献２の技術にも、上位装置との接続およびアクセス状態によるキャッシュメモリの再割り当ての概念がない。
【０００５】
そこで、本発明の目的は、前記のような課題を解決し、キャッシュメモリの一部に障害が発生した場合に、Ｉ／Ｏ処理を全て他系のＩ／Ｏ処理コントローラへ引き継ぐことなく、障害が発生したＩ／Ｏ処理コントローラの障害が発生したメモリ領域以外のメモリ領域を活用するとともに、性能劣化の影響を極小化させることが可能なディスクアレイ装置を提供することにある。
【課題を解決するための手段】
【０００６】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。すなわち、本発明は、２重のキャッシュメモリを備えたディスクアレイ装置において、キャッシュメモリの一部に障害が発生した場合、障害が発生したメモリ領域のみを閉塞させ、これを同じキャッシュメモリの他のメモリ領域に再割り当てしてＩ／Ｏ処理を継続する構成とするものである。
【０００７】
この場合に、上位装置からのアクセス状態として、上位装置と障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラとの間の冗長パス構成の有無、障害が発生したキャッシュメモリを有するＩ／Ｏ処理コントローラ以外の他のＩ／Ｏ処理コントローラの負荷状態、あるいはこれらの両方を判断し、これらの判断の結果、冗長パスがない場合、負荷が高い場合、冗長パスがなく負荷が高い場合、冗長パスがなく負荷が高くない場合、または、冗長パスがあり負荷が高い場合には、使用率が低いメモリ領域へ再割り当てしてＩ／Ｏ処理を継続するものである。
【０００８】
これにより、障害が発生したキャッシュメモリ全体を閉塞する必要がないので、障害が発生したメモリ領域以外については上位装置からのアクセスを停止させる必要がなくなる。
【発明の効果】
【０００９】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。すなわち、本発明によれば、キャッシュメモリの一部に障害が発生した場合に、Ｉ／Ｏ処理を全て他系のＩ／Ｏ処理コントローラへ引き継ぐことなく、障害が発生したＩ／Ｏ処理コントローラの障害が発生したメモリ領域以外のメモリ領域を活用するとともに、性能劣化の影響を極小化させることが可能なディスクアレイ装置を提供することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００１１】
＜ディスクアレイ装置の構成＞
図１により、本発明の一実施の形態のディスクアレイ装置の構成の一例を説明する。図１は、ディスクアレイ装置の構成の一例を示す図である。
【００１２】
本実施の形態のディスクアレイ装置は、上位装置との間のＩ／Ｏ処理を制御する複数（図１では２個の例）のＩ／Ｏ処理コントローラＡ（１０），Ｂ（２０）と、これらのＩ／Ｏ処理コントローラ１０，２０のＩ／Ｏ処理によるデータを格納する複数のＨＤＤ（ハードディスク）からなる記憶装置３０などから構成される。このディスクアレイ装置の上位には、上位装置としてのホストＡ（４０），Ｂ（５０）が接続されている。
【００１３】
各Ｉ／Ｏ処理コントローラ１０，２０は、ホスト４０，５０から記憶装置３０内のＨＤＤに対するリード／ライト動作に伴うＩ／Ｏ処理を行うプロセッサＡ（１１），Ｂ（２１）と、プロセッサ１１，２１のリード／ライト動作に伴うＩ／Ｏ処理によるデータを一時的に格納するキャッシュメモリＡ（１２），Ｂ（２２）などから構成される。
【００１４】
各キャッシュメモリ１２，２２は、論理的に複数（図１では５個の例）のメモリ領域に分割されている。一方のキャッシュメモリ１２では、５個のメモリ領域のうち、Ａｒｅａ３ミラー，Ａｒｅａ４ミラー，Ａｒｅａ５ミラーには他方のキャッシュメモリ２２のＡｒｅａ３，Ａｒｅａ４，Ａｒｅａ５のデータを複写したミラーデータが格納されている。他方のキャッシュメモリ２２では、５個のメモリ領域のうち、Ａｒｅａ１ミラー，Ａｒｅａ２ミラーには一方のキャッシュメモリ１２のＡｒｅａ１，Ａｒｅａ２のデータを複写したミラーデータが格納されている。
【００１５】
記憶装置３０は、複数（図１では５個の例）の論理ユニットＬＵ１〜ＬＵ５から構成される。これらの論理ユニットＬＵ１〜ＬＵ５は、複数のＨＤＤからなり、ホスト４０，５０には物理デバイスとして認識される。各論理ユニットＬＵ１〜ＬＵ５には、論理ユニット毎に、各キャッシュメモリ１２，２２の分割されたメモリ領域が割り当てられている。論理ユニットＬＵ１，ＬＵ２には、それぞれ、キャッシュメモリ１２のＡｒｅａ１，Ａｒｅａ２がプライマリパスで割り当てられ、キャッシュメモリ２２のＡｒｅａ１ミラー，Ａｒｅａ２ミラーがセカンダリパスで割り当てられている。論理ユニットＬＵ３，ＬＵ４，ＬＵ５には、それぞれ、キャッシュメモリ２２のＡｒｅａ３，Ａｒｅａ４，Ａｒｅａ５がプライマリパスで割り当てられ、キャッシュメモリ１２のＡｒｅａ３ミラー，Ａｒｅａ４ミラー，Ａｒｅａ５ミラーがセカンダリパスで割り当てられている。
【００１６】
ホスト４０には、ディスクアレイ装置に対するリード／ライト動作に伴うデータ転送を行うアダプタＡ（４１）が備えられている。このアダプタ４１は、Ｉ／Ｏ処理コントローラ１０のポートＡに接続されている。ホスト５０には、ホスト４０と異なり、２個のアダプタＢ（５１），Ｃ（５２）が備えられ、これらのアダプタ５１，５２はパス切り替えソフト５３の実行により切り替えられる。これらのアダプタ５１，５２において、アダプタ５１はＩ／Ｏ処理コントローラ１０のポートＡに接続され、アダプタ５２はＩ／Ｏ処理コントローラ２０のポートＢに接続されている。
【００１７】
＜ディスクアレイ装置の通常動作＞
図２により、図１に示したディスクアレイ装置において、通常動作時の入出力経路の一例を説明する。図２は、通常動作時の入出力経路の一例を示す図である。
【００１８】
ホストＡ（４０）からリード／ライト動作に伴うＩ／Ｏ処理のアクセスがあると、このＩ／Ｏ経路は、ホスト４０のアダプタＡ（４１）からＩ／Ｏ処理コントローラＡ（１０）のポートＡにアクセスされ、このポートＡからプロセッサＡ（１１）、キャッシュメモリＡ（１２）のメモリ領域Ａｒｅａ１、論理ユニットＬＵ１までの経路となる。
【００１９】
ホストＢ（５０）からリード／ライト動作に伴うＩ／Ｏ処理のアクセスがあると、このＩ／Ｏ経路は、ホスト５０のアダプタＢ（５１）からＩ／Ｏ処理コントローラＡ（１０）のポートＡにアクセスされる場合と、アダプタＣ（５２）からＩ／Ｏ処理コントローラＢ（２０）のポートＢにアクセスされる場合がある。Ｉ／Ｏ処理コントローラＡ（１０）のポートＡにアクセスされた場合は、このポートＡからプロセッサＡ（１１）、キャッシュメモリＡ（１２）のメモリ領域Ａｒｅａ２、論理ユニットＬＵ２までの経路となる。Ｉ／Ｏ処理コントローラＢ（２０）のポートＢにアクセスされる場合は、このポートＢからプロセッサＢ（２１）、キャッシュメモリＢ（２２）のメモリ領域Ａｒｅａ３、論理ユニットＬＵ３までの経路となる。
【００２０】
このＩ／Ｏ処理においては、たとえばリード動作の場合には、プロセッサ１１，２１は、読み出し対象となるデータがキャッシュメモリ１２，２２に存在するかどうかを調べる。ここで、読み出し対象となるデータがキャッシュメモリ１２，２２に存在すれば、プロセッサ１１，２１は、このデータをホスト４０，５０へ送信する。一方、読み出し対象となるデータがキャッシュメモリ１２，２２に存在しない場合には、プロセッサ１１，２１は、記憶装置３０の論理ユニットＬＵ１〜ＬＵ５から読み出し対象となるデータを読み出して、このデータをキャッシュメモリ１２，２２に書き込む。そして、プロセッサ１１，２１は、キャッシュメモリ１２，２２に書き込まれたデータを、ホスト４０，５０に送信する。
【００２１】
また、ライト動作の場合には、プロセッサ１１，２１は、ホスト４０，５０から受信した書き込みデータをキャッシュメモリ１２，２２に書き込む。そして、プロセッサ１１，２１は、キャッシュメモリ１２，２２から書き込みデータを読み出して、記憶装置３０の論理ユニットＬＵ１〜ＬＵ５に書き込む。
【００２２】
このように、ホスト４０，５０からのリード／ライト動作に伴うＩ／Ｏ処理では、記憶装置３０の論理ユニットＬＵ１〜ＬＵ５からの読み出しデータ、記憶装置３０の論理ユニットＬＵ１〜ＬＵ５への書き込みデータは、キャッシュメモリ１２，２２を介してデータの授受が行われる。
【００２３】
＜論理的なメモリ領域の分割と論理ユニットの割り当て処理＞
図３〜図５により、論理的なメモリ領域の分割と論理ユニットの割り当て処理の一例を説明する。図３は論理的なメモリ領域の分割と論理ユニットの割り当て処理の手順の一例を示す図、図４は論理メモリ領域管理テーブルの一例を示す図、図５は論理ユニット情報管理テーブルの一例を示す図である。この論理的なメモリ領域の分割と論理ユニットの割り当て処理は、ホストに備えられている設定ツールを用いて行われる。
【００２４】
図３において、まず、設定ツールを用いて、キャッシュメモリ１２，２２のメモリ領域を論理的に分割する（Ｓ１０１）。この場合には、論理的なメモリ領域を作成する。この場合の設定は、論理的なメモリ領域のサイズを指定し、メモリ領域の開始メモリアドレスと終端メモリアドレスを管理しておく。
【００２５】
続いて、設定ツールを用いて、作成した論理的なメモリ領域に論理ユニットを割り当てる（Ｓ１０２）。さらに、論理ユニットをディスクアレイ装置のどのポートからどのホストに接続するかを設定する（Ｓ１０３）。そして、各項目を設定した後に、この設定内容は、プロセッサ１１，２１内の装置情報管理領域へ論理メモリ領域管理テーブル、論理ユニット情報管理テーブルとして保存される（Ｓ１０４）。
【００２６】
論理メモリ領域管理テーブルには、図４に示すように、メモリ領域＃、Ｉ／Ｏ処理コントローラ、開始メモリアドレス、終端メモリアドレス、障害ｂｉｔの各項目があり、この論理メモリ領域管理テーブルに基づいてキャッシュメモリ１２，２２の論理的なメモリ領域が管理される。障害ｂｉｔとして、閉塞状態のメモリ領域には“１”、正常状態のメモリ領域には“０”が設定される。閉塞状態に設定されると、このメモリ領域はホストからのＩ／Ｏ処理で使用不可能となる。
【００２７】
たとえば図１の例では、メモリ領域＃には、Ａｒｅａ１、Ａｒｅａ２、Ａｒｅａ３、Ａｒｅａ４、Ａｒｅａ５、Ａｒｅａ１ミラー、Ａｒｅａ２ミラー、Ａｒｅａ３ミラー、Ａｒｅａ４ミラー、Ａｒｅａ５ミラーが設定される。Ａｒｅａ１は、Ｉ／Ｏ処理コントローラ“Ａ”に存在し、開始メモリアドレス“０ｘ０００００”から終端メモリアドレス“０ｘ２９９９９”までのメモリ領域であり、障害ｂｉｔ“１”で閉塞状態である。このＡｒｅａ１の例は、後述（図６）するＡｒｅａ１に障害が発生して閉塞した場合に対応する。また、Ａｒｅａ２は、Ｉ／Ｏ処理コントローラ“Ａ”に存在し、開始メモリアドレス“０ｘ３００００”から終端メモリアドレス“０ｘ４９９９９”までのメモリ領域であり、障害ｂｉｔ“０”で正常状態である。他は、図４の通りである。
【００２８】
ＬＵ（論理ユニット）情報管理テーブルには、図５に示すように、ＬＵ＃、デフォルト論理メモリ領域、カレント論理メモリ領域、接続ポート１、接続ポート２、接続ホスト、冗長パスの各項目があり、このＬＵ情報管理テーブルに基づいて記憶装置のＬＵが管理される。カレント論理メモリ領域を参照して、設定されているメモリ領域がホストからのＩ／Ｏ処理に使用される。
【００２９】
たとえば図１の例では、ＬＵ＃には、ＬＵ１、ＬＵ２、ＬＵ３、ＬＵ４、ＬＵ５が設定される。ＬＵ１は、デフォルト論理メモリ領域“Ａｒｅａ１”、カレント論理メモリ領域“Ａｒｅａ２”、接続ポート１“ポートＡ”、接続ポート２“−”、接続ホスト“ホストＡ”、冗長パス“無”である。このＬＵ１の例は、後述（図６）するＡｒｅａ１に障害が発生してＡｒｅａ２に再割り当てされた場合に対応する。また、ＬＵ２は、デフォルト論理メモリ領域“Ａｒｅａ２”、カレント論理メモリ領域“Ａｒｅａ１”、接続ポート１“ポートＡ”、接続ポート２“ポートＢ”、接続ホスト“ホストＢ”、冗長パス“有”である。このＬＵ２の例は、後述（図８）するＡｒｅａ２に障害が発生してＡｒｅａ１に再割り当てされた場合に対応する。他は、図５の通りである。
【００３０】
＜メモリ領域Ａｒｅａ１に障害が発生した場合の入出力経路＞
図６，図７により、メモリ領域Ａｒｅａ１に障害が発生した場合の入出力経路の一例を説明する。図６は図１に示したディスクアレイ装置において、メモリ領域Ａｒｅａ１に障害が発生した場合の入出力経路の一例を示す図、図７は従来技術のディスクアレイ装置において、メモリ領域Ａｒｅａ１に障害が発生した場合の入出力経路の一例を示す図である。
【００３１】
従来技術のディスクアレイ装置において、図７に示すように、たとえば、ホスト４０のアダプタ４１からＩ／Ｏ処理コントローラ１０のポートＡ、プロセッサ１１、キャッシュメモリ１２のメモリ領域Ａｒｅａ１、論理ユニットＬＵ１までの経路の場合、メモリ領域Ａｒｅａ１に障害が発生した場合には、この障害が発生したＡｒｅａ１を含むキャッシュメモリ１２を有するＩ／Ｏ処理コントローラ１０を閉塞させる必要があり、Ｉ／Ｏ処理が継続できないという問題が発生する。
【００３２】
また、２個のアダプタ５１，５２を有するホスト５０のように、障害が発生したメモリ領域を含むキャッシュメモリ１２を有するＩ／Ｏ処理コントローラ１０を閉塞させ、他系のＩ／Ｏ処理コントローラ２０へ処理を引き継いだ場合には、Ｉ／Ｏ処理の負荷が１つのＩ／Ｏ処理コントローラ２０に偏り、性能劣化を引き起こす問題が発生する。
【００３３】
そこで、本実施の形態のディスクアレイ装置では、キャッシュメモリ１２，２２を論理的に複数のメモリ領域に分割し、論理ユニット毎に分割されたメモリ領域を割り当てることで、図６に示すように、障害が発生したメモリ領域Ａｒｅａ１を他の正常なメモリ領域Ａｒｅａ２に再割り当てすることで、障害が発生したメモリ領域Ａｒｅａ１のみを閉塞させることができる。これにより、障害が発生したキャッシュメモリ１２全体を閉塞する必要がないので、障害が発生したメモリ領域Ａｒｅａ１以外についてはホスト４０，５０からのアクセスを停止させる必要がなくなる。
【００３４】
すなわち、図６に示すように、ホスト４０のアダプタ４１からＩ／Ｏ処理コントローラ１０のポートＡ、プロセッサ１１、キャッシュメモリ１２のメモリ領域Ａｒｅａ１、論理ユニットＬＵ１までの経路の場合、メモリ領域Ａｒｅａ１に障害が発生した場合には、障害が発生したメモリ領域Ａｒｅａ１を他の正常なメモリ領域Ａｒｅａ２に再割り当てすることで、この再割り当てしたメモリ領域Ａｒｅａ２を用いてＩ／Ｏ処理を継続することができる。このメモリ領域Ａｒｅａ１の障害発生から、正常なメモリ領域Ａｒｅａ２への再割り当てまでの手順は、後述（図１１）する。
【００３５】
なお、ホスト５０のアダプタ５１からＩ／Ｏ処理コントローラ１０のポートＡ、プロセッサ１１、キャッシュメモリ１２のメモリ領域Ａｒｅａ２、論理ユニットＬＵ２までの経路の場合、ホスト５０のアダプタ５２からＩ／Ｏ処理コントローラ２０のポートＢ、プロセッサ２１、キャッシュメモリ２２のメモリ領域Ａｒｅａ３、論理ユニットＬＵ３までの経路の場合にも同様である。
【００３６】
＜メモリ領域Ａｒｅａ２に障害が発生し、Ｉ／Ｏ処理コントローラＢが高負荷の場合の入出力経路＞
図８により、メモリ領域Ａｒｅａ２に障害が発生し、Ｉ／Ｏ処理コントローラＢが高負荷の場合の入出力経路の一例を説明する。図８は、メモリ領域Ａｒｅａ２に障害が発生し、Ｉ／Ｏ処理コントローラＢが高負荷の場合の入出力経路の一例を示す図である。
【００３７】
図８に示すように、たとえば、ホスト５０のアダプタ５１からＩ／Ｏ処理コントローラ１０のポートＡ、プロセッサ１１、キャッシュメモリ１２のメモリ領域Ａｒｅａ２、論理ユニットＬＵ２までの経路の場合、メモリ領域Ａｒｅａ２に障害が発生した場合には、障害が発生したメモリ領域Ａｒｅａ２を含むキャッシュメモリ１２を有するＩ／Ｏ処理コントローラ１０から、他系のＩ／Ｏ処理コントローラ２０へ処理を引き継ぐ方法がある。しかし、Ｉ／Ｏ処理コントローラ２０のＩ／Ｏ処理の負荷が高い場合には、引き継ぐことができない。
【００３８】
そこで、図６と同様に、障害が発生したメモリ領域Ａｒｅａ２を含むキャッシュメモリ１２において、この障害が発生したメモリ領域Ａｒｅａ２を他の正常なメモリ領域Ａｒｅａ１に再割り当てすることで、この再割り当てしたメモリ領域Ａｒｅａ１を用いてＩ／Ｏ処理を継続することができる。このメモリ領域Ａｒｅａ２の障害発生から、他系のＩ／Ｏ処理コントローラ２０の負荷判断、障害発生のＩ／Ｏ処理コントローラ１０内の正常なメモリ領域Ａｒｅａ１への再割り当てまでの手順は、後述（図１１）する。
【００３９】
なお、ホスト５０のアダプタ５２からＩ／Ｏ処理コントローラ２０のポートＢ、プロセッサ２１、キャッシュメモリ２２のメモリ領域Ａｒｅａ３、論理ユニットＬＵ３までの経路の場合、ホスト４０のアダプタ４１からＩ／Ｏ処理コントローラ１０のポートＡ、プロセッサ１１、キャッシュメモリ１２のメモリ領域Ａｒｅａ１、論理ユニットＬＵ１までの経路の場合にも同様である。
【００４０】
＜リード動作＞
図９により、リード動作の処理手順の一例を説明する。図９は、リード動作の処理手順の一例を示す図である。
【００４１】
まず、ホスト４０，５０からリード要求があると（Ｓ２０１）、Ｉ／Ｏ処理コントローラ１０，２０内のプロセッサ１１，２１がＩ／Ｏ要求を受け付ける（Ｓ２０２）。そして、プロセッサ１１，２１は、ＨＤＤ（ハードディスク）からデータをリードする（Ｓ２０３）。ここで、プロセッサ１１，２１は、データのリードができたか否かを判断する（Ｓ２０４）。この判断の結果、データのリードができた場合（Ｙｅｓ）は、ＬＵ情報管理テーブルを参照して、キャッシュメモリ１２，２２の対象のＬＵ（論理ユニット）ＬＵ１〜ＬＵ５のカレント論理メモリ領域へデータを格納し（Ｓ２０５）、一方、データのリードができなかった場合（Ｎｏ）にはホスト４０，５０へエラーチェックを応答する（Ｓ２１０）。
【００４２】
続いて、プロセッサ１１，２１は、データをカレント論理メモリ領域に格納できたか否かを判断する（Ｓ２０６）。この判断の結果、データをカレント論理メモリ領域に格納できた場合（Ｙｅｓ）は、ホスト４０，５０へカレント論理メモリ領域に格納したデータを転送し（Ｓ２０７）、一方、データをカレント論理メモリ領域に格納できなかった場合（Ｎｏ）にはメモリ領域に障害が発生した可能性があるのでＳ２１１へ移行する。Ｓ２１１では、当該メモリ領域を他のメモリ領域に再割り当てした後、当該メモリ領域を閉塞して（Ｓ２１２）、ＨＤＤへリードをリトライする（Ｓ２１３）。このＳ２１１の再割り当て、Ｓ２１２の閉塞の詳細は、後述（図１１）する。
【００４３】
さらに、Ｓ２０７の後、プロセッサ１１，２１は、データ転送が完了したか否かを判断する（Ｓ２０８）。この判断の結果、データ転送が完了した場合（Ｙｅｓ）は、ホスト４０，５０へリード完了を応答し（Ｓ２０９）、一方、データ転送が完了していない場合（Ｎｏ）にはＩ／Ｏ処理コントローラ１０，２０を閉塞する（Ｓ２１４）。
【００４４】
以上のようにして、ホスト４０，５０からのリード要求に対して、ＨＤＤからのデータのリード段階、キャッシュメモリ１２，２２へのデータの格納段階、ホスト４０，５０へのデータの転送段階の各段階で障害が発生したか否かを判断しながら、特にキャッシュメモリ１２，２２のメモリ領域に障害が発生した場合を考慮してリード動作を実行することができる。
【００４５】
＜ライト動作＞
図１０により、ライト動作の処理手順の一例を説明する。図１０は、ライト動作の処理手順の一例を示す図である。
【００４６】
まず、ホスト４０，５０からライト要求があると（Ｓ３０１）、Ｉ／Ｏ処理コントローラ１０，２０内のプロセッサ１１，２１がＩ／Ｏ要求を受け付ける（Ｓ３０２）。そして、プロセッサ１１，２１は、ホスト４０，５０からデータをライトし（Ｓ３０３）、ＬＵ情報管理テーブルを参照して、キャッシュメモリ１２，２２の対象のＬＵ（論理ユニット）ＬＵ１〜ＬＵ５のカレント論理メモリ領域へデータを格納する（Ｓ３０４）。
【００４７】
続いて、プロセッサ１１，２１は、データをカレント論理メモリ領域に格納できたか否かを判断する（Ｓ３０５）。この判断の結果、データをカレント論理メモリ領域に格納できた場合（Ｙｅｓ）は、ホスト４０，５０へライト完了を応答し（Ｓ３０６）、一方、データをカレント論理メモリ領域に格納できなかった場合（Ｎｏ）にはメモリ領域に障害が発生した可能性があるのでＳ３１０へ移行する。Ｓ３１０では、当該メモリ領域を他のメモリ領域に再割り当てした後、当該メモリ領域を閉塞して（Ｓ３１１）、ホスト４０，５０へライトをリトライする（Ｓ３１２）。このＳ３１０の再割り当て、Ｓ３１１の閉塞の詳細は、後述（図１１）する。
【００４８】
さらに、Ｓ３０６の後、プロセッサ１１，２１は、ＨＤＤへデータを転送する（Ｓ３０７）。そして、プロセッサ１１，２１は、ＨＤＤへデータが格納できたか否かを判断する（Ｓ３０８）。この判断の結果、ＨＤＤへデータが格納できた場合（Ｙｅｓ）は、メモリ領域のデータをクリアし（Ｓ３０９）、一方、ＨＤＤへデータが格納できなかった場合（Ｎｏ）にはメモリ領域にデータを保持して（Ｓ３１３）、障害のＨＤＤを閉塞する（Ｓ３１４）。
【００４９】
以上のようにして、ホスト４０，５０からのライト要求に対して、キャッシュメモリ１２，２２へのデータの格納段階、ＨＤＤへのデータの転送段階の各段階で障害が発生したか否かを判断しながら、特にキャッシュメモリ１２，２２のメモリ領域に障害が発生した場合を考慮してライト動作を実行することができる。
【００５０】
＜キャッシュメモリの一部に障害が発生した場合の処理＞
図１１により、キャッシュメモリの一部に障害が発生した場合の処理手順の一例を説明する。図１１は、キャッシュメモリの一部に障害が発生した場合の処理手順の一例を示す図である。
【００５１】
まず、メモリ領域に障害が発生した場合には、プロセッサ１１，２１は、障害が発生したメモリ領域を含むキャッシュメモリ１２，２２を特定できたか否かを判断する（Ｓ４０１）。この判断の結果、キャッシュメモリ１２，２２を特定できた場合（Ｙｅｓ）は、メモリアドレスを特定し（Ｓ４０２）、一方、キャッシュメモリ１２，２２を特定できなかった場合（Ｎｏ）にはＩ／Ｏ処理コントローラ１０，２０を閉塞処理する（Ｓ４１１）。
【００５２】
続いて、Ｓ４０２の後、プロセッサ１１，２１は、障害が発生したキャッシュメモリ１２，２２のメモリアドレスを特定できたか否かを判断する（Ｓ４０３）。この判断の結果、メモリアドレスを特定できた場合（Ｙｅｓ）は、論理メモリ領域管理テーブルをサーチし（Ｓ４０４）、一方、メモリアドレスを特定できなかった場合（Ｎｏ）にはＩ／Ｏ処理コントローラ１０，２０を閉塞処理する（Ｓ４１１）。
【００５３】
さらに、Ｓ４０４の後、プロセッサ１１，２１は、論理メモリ領域管理テーブルを参照して当該メモリ領域があるか否かを判断する（Ｓ４０５）。この判断の結果、当該メモリ領域がある場合（Ｙｅｓ）は、ＬＵ情報管理テーブルを参照して割り当て済みＬＵをチェックし（Ｓ４０６）、一方、当該メモリ領域がない場合（Ｎｏ）にはホスト４０，５０へ障害を報告する（Ｓ４１２）。
【００５４】
続いて、Ｓ４０６の後、プロセッサ１１，２１は、ＬＵ情報管理テーブルの接続ポート２および冗長パスを参照してホスト１１，２１との上位パス・冗長パスがあるか否かを判断する（Ｓ４０７）。この判断の結果、上位パス・冗長パスがある場合（Ｙｅｓ）は、他系（障害が発生していない方）のＩ／Ｏ処理コントローラ２０，１０の負荷が高いか否かを判断し（Ｓ４１３）、一方、上位パス・冗長パスがない場合（Ｎｏ）には同一（障害が発生した方）のＩ／Ｏ処理コントローラ１０，２０内のメモリ領域の使用率をチェックする（Ｓ４０８）。
【００５５】
さらに、Ｓ４０８の後、プロセッサ１１，２１は、ＬＵ情報管理テーブルのカレント論理メモリ領域を参照してＬＵを再割り当てし（Ｓ４０９）、そして、障害が発生したメモリ領域を閉塞する（Ｓ４１０）。このＬＵの再割り当てでは、ＬＵ情報管理テーブルのカレント論理メモリ領域に設定されたメモリ領域が割り当てられる。たとえば図５において、ＬＵ１では、Ａｒｅａ１に代わってＡｒｅａ２が割り当てられる。また、障害が発生したメモリ領域の閉塞では、論理メモリ領域管理テーブルの対応するメモリ領域の障害ｂｉｔに“１”が設定され、このメモリ領域は閉塞状態となってホストからのＩ／Ｏ処理で使用不可能となる。たとえば図４において、Ａｒｅａ１では、障害ｂｉｔに“１”が設定される。
【００５６】
また、Ｓ４１３の判断の結果、他系のＩ／Ｏ処理コントローラ２０，１０の負荷が高い場合（Ｙｅｓ）はＳ４０８へ移行し、一方、負荷が高くない場合（Ｎｏ）には他系のＩ／Ｏ処理コントローラ２０，１０内のミラーのメモリ領域に切り替えて（Ｓ４１４）、Ｓ４１０へ移行する。たとえば図１において、他系のＩ／Ｏ処理コントローラ２０，１０内のミラーのメモリ領域に切り替える場合には、それぞれ、Ｉ／Ｏ処理コントローラ１０のＡｒｅａ１，Ａｒｅａ２からＩ／Ｏ処理コントローラ２０のＡｒｅａ１ミラー，Ａｒｅａ２ミラーへ、Ｉ／Ｏ処理コントローラ２０のＡｒｅａ３，Ａｒｅａ４，Ａｒｅａ５からＩ／Ｏ処理コントローラ１０のＡｒｅａ３ミラー，Ａｒｅａ４ミラー，Ａｒｅａ５ミラーへ切り替えられる。
【００５７】
以上のようにして、キャッシュメモリ１２，２２の一部のメモリ領域に障害が発生した場合に、ホスト４０，５０との上位パス・冗長パス、他系のＩ／Ｏ処理コントローラ２０，１０の負荷を考慮して、ＬＵの再割り当て、障害が発生したメモリ領域の閉塞の処理を実行することができる。
【００５８】
なお、ここでは、ホスト４０，５０との上位パス・冗長パスと、他系のＩ／Ｏ処理コントローラ２０，１０の負荷との両方を考慮したが、ホスト４０，５０との上位パス・冗長パス、あるいは、他系のＩ／Ｏ処理コントローラ２０，１０の負荷の一方のみを考慮して、ＬＵの再割り当て、障害が発生したメモリ領域の閉塞の処理を実行することも可能である。
【００５９】
＜障害回復時にメモリ領域を割り当て戻す場合の処理＞
図１２により、障害回復時にメモリ領域を割り当て戻す場合の処理手順の一例を説明する。図１２は、障害回復時にメモリ領域を割り当て戻す場合の処理手順の一例を示す図である。
【００６０】
まず、保守員は、障害が発生したメモリ領域を含むＩ／Ｏ処理コントローラ１０，２０を閉塞させ、キャッシュメモリ１２，２２を交換して保守を行う（Ｓ５０１）。この場合に、メモリ領域を再割り当てされていたホスト４０，５０も、冗長パスがないものは保守中は停止が必要となる。さらに、正常なメモリ領域を含むＩ／Ｏ処理コントローラをディスクアレイ装置に挿入し、障害を回復させる（Ｓ５０２）。
【００６１】
続いて、テストデータでチェックし、障害が回復したか否かを判断する（Ｓ５０３）。この判断の結果、障害が回復した場合（Ｙｅｓ）は、論理メモリ領域管理テーブルの障害ｂｉｔをクリアし（Ｓ５０４）、一方、障害が回復しなかった場合（Ｎｏ）にはＩ／Ｏ処理コントローラを閉塞する（Ｓ５０６）。そして、Ｓ５０４の後、ＬＵ情報管理テーブルのカレント論理メモリ領域の値をデフォルト論理メモリ領域の値に変更する（Ｓ５０５）。
【００６２】
以上のようにして、障害回復時には、正常なＩ／Ｏ処理コントローラを挿入し、メモリ領域を割り当て戻す処理を実行することができる。
【００６３】
以上説明したように、本実施の形態によれば、２重のキャッシュメモリ１２，２２を備えたディスクアレイ装置において、キャッシュメモリ１２，２２の一部に障害が発生した場合、障害が発生したメモリ領域のみを閉塞させ、これを同じキャッシュメモリ１２，２２の他のメモリ領域に再割り当てしてＩ／Ｏ処理を継続する構成とすることで、障害が発生したキャッシュメモリ１２，２２全体を閉塞する必要がないので、障害が発生したメモリ領域以外についてはホスト４０，５０からのアクセスを停止させる必要がなくなる。この結果、キャッシュメモリ１２，２２の一部に障害が発生した場合に、Ｉ／Ｏ処理を全て他系のＩ／Ｏ処理コントローラ２０，１０へ引き継ぐことなく、障害が発生したＩ／Ｏ処理コントローラ１０，２０の障害が発生したメモリ領域以外のメモリ領域を活用するとともに、性能劣化の影響を極小化させることが可能となる。また、パス切り替えソフトがないホスト４０でも、キャッシュメモリ１２の一部に障害が発生したＩ／Ｏ処理コントローラ１０でＩ／Ｏ処理の継続が可能となる。
【００６４】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【００６５】
本発明のディスクアレイ装置は、特に、２重のキャッシュメモリを備えたディスクアレイ装置において、キャッシュメモリの一部に障害が発生した場合のＩ／Ｏ処理の継続技術に利用可能である。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施の形態のディスクアレイ装置の構成の一例を示す図である。
【図２】本発明の一実施の形態のディスクアレイ装置において、通常動作時の入出力経路の一例を示す図である。
【図３】本発明の一実施の形態のディスクアレイ装置において、論理的なメモリ領域の分割と論理ユニットの割り当て処理の手順の一例を示す図である。
【図４】本発明の一実施の形態のディスクアレイ装置において、論理メモリ領域管理テーブルの一例を示す図である。
【図５】本発明の一実施の形態のディスクアレイ装置において、論理ユニット情報管理テーブルの一例を示す図である。
【図６】本発明の一実施の形態のディスクアレイ装置において、メモリ領域Ａｒｅａ１に障害が発生した場合の入出力経路の一例を示す図である。
【図７】本発明に対する従来技術のディスクアレイ装置において、メモリ領域Ａｒｅａ１に障害が発生した場合の入出力経路の一例を示す図である。
【図８】本発明の一実施の形態のディスクアレイ装置において、メモリ領域Ａｒｅａ２に障害が発生し、Ｉ／Ｏ処理コントローラＢが高負荷の場合の入出力経路の一例を示す図である。
【図９】本発明の一実施の形態のディスクアレイ装置において、リード動作の処理手順の一例を示す図である。
【図１０】本発明の一実施の形態のディスクアレイ装置において、ライト動作の処理手順の一例を示す図である。
【図１１】本発明の一実施の形態のディスクアレイ装置において、キャッシュメモリの一部に障害が発生した場合の処理手順の一例を示す図である。
【図１２】本発明の一実施の形態のディスクアレイ装置において、障害回復時にメモリ領域を割り当て戻す場合の処理手順の一例を示す図である。
【符号の説明】
【００６７】
１０，２０…Ｉ／Ｏ処理コントローラ、１１，２１…プロセッサ、１２，２２…キャッシュメモリ、３０…記憶装置、４０，５０…ホスト、４１，５１，５２…アダプタ、５３…パス切り替えソフト。
【図１】
2008269142.tif 000003
【図２】
2008269142.tif 000004
【図３】
2008269142.tif 000005
【図４】
2008269142.tif 000006
【図５】
2008269142.tif 000007
【図６】
2008269142.tif 000008
【図７】
2008269142.tif 000009
【図８】
2008269142.tif 000010
【図９】
2008269142.tif 000011
【図１０】
2008269142.tif 000012
【図１１】
2008269142.tif 000013
【図１２】
2008269142.tif 000014