(57)【要約】【課題】キャッシュ障害発生時においてもライトアクセス応答速度と信頼性を維持する、大規模構成可能なストレージシステムおよびその制御方法を提供する。【解決手段】接続されたディスク装置を制御しキャッシュメモリを備えた複数のクラスタを相互結合網によりそれぞれ接続し、同一のディスク装置を共有する２つのクラスタのキャッシュメモリに相手のクラスタのキャッシュメモリのライトデータを相互に冗長化する。キャッシュメモリ障害発生時には、障害が発生したキャッシュメモリを有するクラスタと同一のディスク装置を共有するクラスタが、障害が発生したキャッシュメモリを有するクラスタが行っていたディスク装置にアクセスする必要がある処理行い、そのクラスタのキャッシュメモリのライトデータの冗長化のみを他の正常動作のクラスタに行わせる。【選択図】  図８
2005043930.tif 000002
【特許請求の範囲】
【請求項１】
計算機と接続される記憶装置システムであって、
第一の制御部、第二の制御部、第三の制御部及び複数の記憶装置を有し、
前記第一の制御部、前記第二の制御部及び前記第三の制御部の各々はメモリを有し、
前記第一の制御部は、前記計算機から受信したデータを当該第一の制御部が有するメモリと前記第二の制御部が有するメモリに格納することを特徴とする記憶装置システム。
【請求項２】
前記第二の制御部が使用不能となった際には、前記第一の制御部は、前記計算機から受信したデータを、当該第一の制御部が有するメモリと前記第三の制御部が有するメモリに格納することを特徴とする記憶装置システム。
【請求項３】
前記第二の制御部は、前記計算機から受信したデータを当該第二の制御部が有するメモリ及び前記第一の制御部が有するメモリに格納することを特徴とする請求項２記載の記憶装置システム。
【請求項４】
前記第二の制御部が使用不能となった際には、前記第一の制御部が前記第二の制御部に代わって前記計算機からデータを受け付け、当該第一の制御部は、前記受け付けたデータを当該第一の制御部が有するメモリ及び前記第三の制御部が有するメモリに格納することを特徴とする請求項３記載の記憶装置システム。
【請求項５】
更に第四の制御部を有し、前記第四の制御部はメモリを有し、
前記第二の制御部が使用不能となった際には、前記第一の制御部が前記第二の制御部に代わって前記計算機からデータを受け付け、当該第一の制御部は、前記受け付けたデータを当該第一の制御部が有するメモリ及び前記第四の制御部が有するメモリに格納することを特徴とする請求項３記載の記憶装置システム。
【請求項６】
前記第一の制御部と前記第二の制御部は別電源から電源供給を受けていることを特徴とする請求項５記載の記憶装置システム。
【請求項７】
前記第三の制御部と前記第四の制御部は別電源から電源供給を受け、かつ、前記第一の制御部と前記第三の制御部は別電源から電源供給を受けていることを特徴とする請求項６記載の記憶装置システム。
【請求項８】
前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部の各々を接続するスイッチを有し、前記各制御部は、前記スイッチを介して前記計算機と接続されることを特徴とする請求項５記載の記憶装置システム。
【請求項９】
インターフェース部を有し、
前記スイッチは前記インターフェースを介して前記計算機と接続され、
前記インターフェース部、前記スイッチ、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部で一つの制御装置となっていることを特徴とする請求項８記載の記憶装置システム。
【請求項１０】
管理用装置を有し、
前記管理用装置は、前記スイッチを介して前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部に接続されることを特徴とする請求項９記載の記憶装置システム。
【請求項１１】
前記管理用装置は、当該記憶装置システムにおける前記記憶装置と前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部との関係を示す情報を有し、
前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部は、前記情報に基づいて前記データの格納を実行することを特徴とする請求項１０記載の記憶装置システム。
【請求項１２】
前記情報には、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部のいずれかに障害が発生した際に、前記障害が発生した制御部の代替となる制御部及び前記障害が発生した制御部が受取るデータの複製を格納するメモリを有する制御部を指定する情報が含まれ居ていることを特徴とする請求項１１記載の記憶装置システム。
【請求項１３】
前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部のいずれかに障害が発生した場合、前記管理用装置が前記障害を検出して前記情報を前記障害の状態に応じて変更し、前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部に前記障害の発生及び前記情報の変更を通知し、前記インターフェース部、前記第一の制御部、第二の制御部、第三の制御部及び前記第四の制御部は前記変更された情報に基づいて動作することを特徴とする請求項１２記載の記憶装置システム。
【請求項１４】
更に前記障害が回復した場合、前記管理用装置は、前記障害の回復を前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部に通知することを特徴とする請求項１３記載の記憶装置システム。
【請求項１５】
前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部の各々は、当該記憶装置システムにおける前記記憶装置と前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部との関係を示す情報を有し、
前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部は、前記情報に基づいて前記データの格納を実行することを特徴とする請求項９記載の記憶装置システム。
【請求項１６】
前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部のいずれかに障害が発生した場合、前記インターフェース部が前記障害を検出し前記情報を前記障害の状態に応じて変更し、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部に前記障害の発生及び前記情報の変更を通知し、
前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部は、前記変更された情報に基づいて動作することを特徴とする請求項１５記載の記憶装置システム。
【請求項１７】
前記第二の制御部に障害が発生した際、前記第一の制御部は、その時点で該第一の制御部に格納されているデータを前記第三の制御部のメモリに転送することを特徴とする請求項４記載の記憶装置システム。
【請求項１８】
前記第二の制御部に障害が発生した際、前記第一の制御部は、その時点で該第一の制御部に格納されているデータを前記記憶装置に格納することを特徴とする請求項４記載の記憶装置システム。
【請求項１９】
前記第二の制御部に障害が発生した際、前記第三の制御部及び前記第四の制御部は、前記第一の制御部からのデータを受け付けるために、各々のメモリに格納されているデータの一部を前記記憶装置に格納することを特徴とする請求項４記載の記憶装置システム。
【請求項２０】
前記第一の制御部及び前記第二の制御部に障害が発生した場合、前記インターフェース部は、前記第一の制御部が管理する前記記憶装置への前記計算機からのアクセスに対して、エラー報告をすることを特徴とする請求項９記載の記憶装置システム。
【請求項２１】
管理用装置を有し、
前記管理用装置は、前記スイッチを介さずに前記インターフェース部、前記第一の制御部、前記第二の制御部、前記第三の制御部及び前記第四の制御部に接続されることを特徴とする請求項９記載の記憶装置システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリを備える記憶装置システムとそのキャッシュメモリの制御方法に関する。
【０００２】
【従来の技術】
複数の記憶装置を有する記憶装置システム（以下「ストレージシステム」）の性能を向上するための技術として、揮発性の半導体記憶部（以下「キャッシュメモリ」）をストレージシステムに導入する技術が知られている。
【０００３】
キャッシュメモリを有するストレージシステムは、データの書き込み要求に対して、キャッシュメモリにデータを書き込んだ時点でデータ書き込みを要求した計算機（以下「コンピュータ」又は「ホストコンピュータ」と称する）に書き込み完了の応答を返し、それと非同期に記憶装置にデータを書き込む。キャッシュメモリへのデータの書き込み速度は記憶装置（ここではディスク装置等）よりも高速なため、ストレージシステムは、より高速にホストコンピュータに応答を返すことができる。
【０００４】
しかし、データが記憶装置に書き込まれるまでの間は、キャッシュメモリにしか最新のデータが存在しないので、ストレージシステムでは、キャッシュメモリの信頼性を向上させる必要がある。
【０００５】
キャッシュメモリの信頼性を向上するための技術として、キャッシュメモリを冗長化する方法が知られている。冗長化の方法としては、例えば複数のキャッシュメモリにデータのコピーを格納すること（ミラーリング）や、特許文献１に開示されたＲＡＩＤ構成のキャッシュメモリがある。
【０００６】
更に、キャッシュメモリの障害等でキャッシュメモリの冗長度が失われた場合においてもストレージシステムの信頼性を維持するため、各書き込み要求に対して必ず記憶装置にデータを保存する制御方法（「ライトスルー制御」）が知られている。しかし、ライトスルー制御によって信頼性は維持されるが、上述したキャッシュメモリの利点は失われ、キャッシュメモリを有していても、書き込み要求に対する応答速度はキャッシュメモリを有しない場合と同等となってしまう。
【０００７】
そこで、ライトスルー制御を必要としないように、キャッシュメモリの冗長度を増加させる技術が考案されている。例えば、キャッシュメモリの予備を備えることや、特許文献２に開示されているような、３個以上のキャッシュメモリを備え、障害が発生したキャッシュメモリが担当していた領域に書き出すライトデータを残りのキャッシュメモリで分担する等の技術である。
【０００８】
【特許文献１】
特開平９―２６５４３５号公報
【特許文献２】
特開２００１―３４４１５４号公報
【０００９】
【発明が解決しようとする課題】
現在、このようなストレージシステムを更に大規模に構成する要求が高まっている。しかし、従来技術では、キャッシュメモリを一元的に使用する。このため、ストレージシステムの構成規模が大きくなるにつれてキャッシュメモリやキャッシュメモリを管理するための情報にアクセスが集中し、単にキャッシュメモリを有するだけではストレージシステムのスループット性能の維持が困難になるという問題がある。
【００１０】
また、キャッシュメモリに障害が発生した場合におけるストレージシステムの信頼性とライト性能維持に関しても上述の問題と同様の問題がある。即ち、前記特許文献２記載の技術等はキャッシュメモリを一元的に使用しているので、構成規模が大きくなるにつれ、キャッシュメモリの障害時にキャッシュメモリやキャッシュメモリを管理するための情報にアクセスが集中し、単にキャッシュメモリを有するだけではスループット性能の維持が困難になり、構成規模の拡大と障害時の信頼性等の両立は困難である。
【００１１】
即ち、本発明の目的は、キャッシュ障害発生時においてもライトアクセス応答速度と信頼性を維持する、大規模構成可能なストレージシステムおよびその制御方法を提供することである。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明は以下の構成を有する。即ち、複数の制御部及び記憶装置を有する記憶装置システムである。更に、複数の制御部は各々がメモリ、例えばキャッシュメモリを有する。そして、このような構成の記憶装置システムにおいて、複数の制御部のうち第一の制御部は、記憶装置システムと接続される計算機からデータを受信した際には、第一の制御部が有するメモリ及び他の制御部（以下「第二の制御部」）が有するメモリに受信したデータを格納し、その後、記憶装置へデータを転送する。
【００１３】
又、上記構成において第二の制御部に障害が発生した場合には、第一の制御部は、新たに第三の制御部のメモリに、計算機から受信したデータの複製を格納する。
更に、第二の制御部は、計算機から受信したデータを第一の制御部が有するメモリ及び第二の制御部が有するメモリに格納する構成としても良い。
【００１４】
更に、第二の制御部に障害が発生した場合には、ペアとして指定されている第一の制御部が第二の制御部の処理を代行する構成としても良い。この場合、第一の制御部は、第二の処理部の代行中に計算機から受取ったデータの複製を、ペアではない他の制御部が有するメモリに格納する。
【００１５】
又、ペアとなる第一の制御部と第二の制御部とは各々別電源から電源供給を受ける構成としても良い。
更に、複数の制御部は、スイッチを介して相互に接続される構成としても良い。更に、各制御部は、計算機とインターフェース部を介して接続する構成とすることもできる。
又、記憶装置システムは管理用装置を有し、この管理用装置が複数の制御部と記憶装置との対応関係を示す情報を有し、各制御部は、この情報に基づいて動作を行う構成とすることもできる。又、記憶装置システムが管理用装置を有さず、上記の情報を各制御部が有する構成とすることもできる。
【００１６】
更に、ペアとなる制御部には、同じ記憶装置が接続される構成とする。
又、制御部の障害の発見を管理用装置が行う構成でも、他の制御部又はインターフェース部が、制御部の障害を検出する構成とすることもできる。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。ただし、本発明が以下に開示される実施形態に限定されないのは言うまでもない。
図１は、本発明を適用したストレージシステムの第１の実施形態を示した図である。ストレージシステムは、ディスク制御装置５及び複数のディスク装置４を有する。尚、ディスク装置４とは、ハードディスクドライブやＣＤ，ＤＶＤ等の不揮発性の記憶媒体を有する記憶装置である。ディスク制御装置５は通信線（以下「チャネル」）６１を介してホストコンピュータ６に接続されている。又、ディスク制御装置５とディスク装置４とは通信線（以下「ディスク側チャネル」）４１を介して相互に接続されている。ホストコンピュータ６は、チャネル６１、ディスク制御装置５及びディスク側チャネル４１を介して、ディスク装置４との間でデータを送受信する。
【００１８】
チャネル６１及びディスク側チャネル４１では、例えばＳＣＳＩ（ＳｍａｌｌＣｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）やファイバチャネルなどのプロトコルが用いられる。また、チャネル６１は、ファイバチャネルケーブルと複数のファイバチャネルスイッチなどで構成されるＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）で構成されていても良い。
【００１９】
ディスク装置４は２つのポートを有し、その各々は、別々のディスク側チャネル４１を介してディスク制御装置５に接続されている。これにより、ディスク制御装置５は、同一のディスク装置４に複数の経路（以下「パス」）を介してアクセスすることが可能である。
【００２０】
ディスク制御装置５は、複数の電源部Ａ５１１、Ｂ５１２、複数のホストアダプタ１、複数のキャッシュアダプタ３及び管理アダプタ７を有する。さらに複数のホストアダプタ１、複数のキャッシュアダプタ３及び管理アダプタ７は、内部スイッチ２を介して相互に接続されている。内部スイッチ２とキャッシュアダプタ３等との接続には、通信線である内部結合２１が用いられる。本実施形態では内部スイッチ２と各要素との間の内部結合２１は一本であるが、障害の発生に対する冗長度の確保、データ送信の通信帯域の確保、もしくは通信で使用される異なったパケット長に対応するため、内部スイッチ２と各要素との間の内部結合２１が複数備えられてもよい。
【００２１】
尚、管理アダプタ７は、ホストアダプタ１やキャッシュアダプタ３と、内部結合２１とは異なるネットワークで接続されていても良い。これにより、データ転送に関わるネットワークと、システム管理用の情報の授受に関するネットワークを分離することができる。
【００２２】
ホストアダプタ１は、チャネル１を介してホストコンピュータ６からのアクセス要求を受領し、所持する管理テーブル１１に基づいてアクセス要求の解析を行い、内部結合２１を介して適切なキャッシュアダプタ３と通信し、ホストコンピュータ６に応答を返すインターフェース装置である。
【００２３】
キャッシュアダプタ３は、ディスク側チャネル４１を介してディスク装置４と接続され、内部スイッチ２を介してホストアダプタ１や他のキャッシュアダプタ３と通信する。又、キャッシュアダプタ３は、ホストアダプタ１からの通信に基づいてディスク装置４からのデータの読み出し又はディスク装置４へのデータの書き込みを制御する。また、キャッシュアダプタ３は、自身が有するキャッシュメモリ３２を制御し、キャッシュメモリ３２へのデータの格納等を行う制御装置である。
【００２４】
尚、キャッシュアダプタ３は、基本的には、自己に接続されているディスク装置４に格納されるデータの読み出し又は書き込みに関わるデータのみしかキャッシュメモリ３２に格納しない。言い換えると、他のキャッシュアダプタ３に管理されているディスク装置４のデータは、通常に使用されるデータとしては、他のキャッシュアダプタ３のキャッシュメモリ３２には格納されない。
【００２５】
キャッシュアダプタ３は、ディスク装置４に対する冗長化の制御（例えば、各ＲＡＩＤレベルの冗長化）も行う。更に、キャッシュアダプタ自身を冗長化するため、あるキャッシュアダプタ３と一つのポートで接続される各ディスク装置４のもう一方のポートは、そのキャッシュアダプタ３とペアになる別のキャッシュアダプタ３に接続される。
【００２６】
尚、本実施形態では、複数のキャッシュアダプタ３のペアが一つのディスク制御装置５内に格納されている構成について説明するが、他の構成として、一つのペアとそのペアに共有されるディスク装置４とで一つの装置を構成し、これらの装置がスイッチ２０を介して相互に接続される構成でも良い。この場合、管理用の装置（管理アダプタ）がスイッチ２０を介して各ペアを管理する。
【００２７】
管理アダプタ７は、ストレージシステムの構成についての情報が登録されたマスタ管理テーブル７１を備える。管理アダプタ７は、ストレージシステムの構成等が変更された場合などにマスタ管理テーブル７１の内容を変更し、必要な情報をホストアダプタ１やキャッシュアダプタ３に配信する。
【００２８】
電源部Ａ５１１及び電源部Ｂ５１２は、それぞれ商用電源など外部電源（図示せず）に接続され、ストレージシステムに電力を供給する。電源事故に備え、電源部Ａ５１１及び電源部Ｂ５１２は各々別系統の外部電源に接続されることが望ましい。又、本実施形態では、キャッシュアダプタ３の冗長性を確保するため、あるキャッシュアダプタ３とペアとなるキャッシュアダプタ３は、各々別の電源部Ａ５１１及び電源部Ｂ５１２から電力を供給される。
【００２９】
尚、他の装置構成として、ホストアダプタ１が存在せず、ホストアダプタ１が所持していた管理テーブル１１を備えるスイッチ２０により各キャッシュアダプタ３が相互に接続される構成もある。この場合、スイッチ２０は複数のチャネル６１と接続される。また、スイッチ２０は、チャネル６１毎に管理テーブル１１を備え、各々の管理テーブル１１に基づいて、ホストコンピュータ６のアクセス要求をキャッシュアダプタ３に転送する。
【００３０】
また、スイッチ２０が使用される場合は、ホストアダプタ１が行っていたホストコンピュータ６との間の通信やプロトコル変換等は、キャッシュアダプタ３が行う。
【００３１】
図２は、キャッシュアダプタ３の構成例を表した図である。キャッシュアダプタ３は、キャッシュメモリ３２、内部結合２１と接続される内部結合インタフェース（以下「Ｉ／Ｆ」）部３３、ディスク側チャネル４１と接続されるディスク側チャネルＩ／Ｆ部３４、プロセッサ３７、制御メモリ３６及びプロセッサ周辺制御部３５を有する。
【００３２】
キャッシュメモリ３２、内部結合Ｉ／Ｆ部３３及びディスク側チャネルＩ／Ｆ部３４はキャッシュデータバス３８により相互に接続されている。内部結合Ｉ／Ｆ部３３及びディスク側チャネルＩ／Ｆ部３４は、装置間の直接データ転送（ＤＭＡ）を行うことができる。具体的には、内部結合Ｉ／Ｆ部３３は、内部結合２１を介してホストコンピュータ６から受領したデータを、キャッシュデータバス３８を介してキャッシュメモリ３２に格納する。ホストコンピュータ６からリード要求を受領したら、内部結合Ｉ／Ｆ部３３は、キャッシュメモリ３２に格納されているデータをキャッシュデータバス３８を介して取り出し、内部結合２１を通じてホストアダプタ１に転送する。
【００３３】
ディスク側チャネルＩ／Ｆ部３４は、キャッシュメモリ３２に格納されたデータをキャッシュデータバス３８を介して取り出し、ディスク側チャネル４１を介してディスク装置４に格納する（以下「デステージング」）。また、ディスク側チャネルＩ／Ｆ部３４は、ディスク側チャネル４１を介してディスク装置４に格納されたデータを取り出し、キャッシュデータバス３８を介してキャッシュメモリ３２に格納する（以下「ステージング」）。
【００３４】
内部結合Ｉ／Ｆ部３３及びディスク側チャネルＩ／Ｆ部３４は、制御データバス３９を介したプロセッサ３７の制御に基づいて、上述のステージング及びデステージング等の処理を実行する。
【００３５】
プロセッサ３７は、メモリ制御回路やバス制御回路を含むプロセッサ周辺制御部３５を介して制御メモリ３６及び制御データバス３９に接続される。制御メモリ３６には、管理テーブル３１、制御プログラム３６１及びディレクトリ情報３６２が格納されている。
【００３６】
管理テーブル３１には、ホストアダプタ１から指定される論理デバイス（以下「ＬＤＥＶ」）、複数のディスク装置４を仮想的に１つのデバイスとして管理する場合の仮想デバイス（以下「ＶＤＥＶ」）及びＬＤＥＶに格納されるデータを冗長化（ここでは複製）して格納するキャッシュアダプタ３（以下「バックアップキャッシュアダプタ」）との対応関係を示す情報が登録されている。
【００３７】
制御プログラム３６１は、プロセッサ３７がキャッシュアダプタ３の有する各構成要素の制御を実行する際にプロセッサ３７で実行されるプログラムである。ディレクトリ情報３６２は、アクセス対象となるデータのキャッシュメモリ３２での有無やキャッシュメモリ３２でのアドレス等、データのキャッシュメモリ３２への格納状況を示す情報である。
【００３８】
図３は、ホストアダプタ１が保持する管理テーブル１１及びキャッシュアダプタ３が保持する管理テーブル３１の内容例を示した図である。管理テーブル１１は、複数のエントリを有し、各エントリはフィールド１１１及び１１２を有する。フィールド１１１には、ホストコンピュータ６がアクセスの際に指定する論理ユニット番号（ＬＵ番号）が登録される。
【００３９】
フィールド１１２は、キャッシュアダプタ３に関する情報が格納されるフィールド１１２１、１１２２及び１１２３のサブフィールドを有する。サブフィールド１１２１には、フィールド１１１に登録されたＬＵに対応する、キャッシュアダプタ３が管理する論理デバイス番号（ＬＤＥＶ番号）の値が登録される。サブフィールド１１２２には、ステージング、デステージングを行うキャッシュアダプタ３、即ちディスク装置４に対して通常のデータの書き込み、読み出しを行うキャッシュアダプタ（以下「マスタキャッシュアダプタ」）を示す情報が登録される。サブフィールド１１２３には、サブフィールド１１２２に登録されたマスタキャッシュアダプタのキャッシュメモリ３２に格納されたデータの冗長化を行うバックアップキャッシュアダプタを示す情報が登録される。
【００４０】
管理テーブル３１には、上述したように、ＬＤＥＶ、ＶＤＥＶ及びバックアップキャッシュアダプタとの対応関係を示すマッピング情報が格納される。管理テーブル３１も複数のエントリを有し、各エントリは、フィールド３１１、３１２、３１３及び３１４を有する。フィールド３１１には、一つのエントリに対応するＬＤＥＶのＬＤＥＶ番号を示す情報が登録される。フィールド３１２には、フィールド３１１に登録されたＬＤＥＶのデータを冗長化するバックアップキャッシュアダプタを示す情報が登録される。
【００４１】
フィールド３１３には、フィールド３１１に登録されたＬＤＥＶに対応するＶＤＥＶ番号を示す情報が登録される。フィールド３１４には、フィールド３１１に登録されたＬＤＥＶが、対応するＶＤＥＶのどの部分に割り当てられているかを示す仮想デバイスアドレス（以下「ＶＤＥＶアドレス」）を示す情報が登録される。尚、ＶＤＥＶは、ストレージシステムの管理者が、ＳＶＰ（図示せず）や管理アダプタ７に接続したコンソールを通じて、またはチャネルの特殊なコマンドを送付することで指定する。
【００４２】
なお、フィールド３１２に登録されるバックアップキャッシュアダプタがその管理テーブル３１を保持するキャッシュアダプタ３であれば、そのキャッシュアダプタ３は、対応するフィールド３１１に登録されたＬＤＥＶ番号で指定されるＬＤＥＶに関してバックアップキャッシュアダプタとしてライトデータ冗長化の処理を行う。具体的には、バックアップキャッシュアダプタは、ホストアダプタ１やマスタキャッシュアダプタ３より冗長化するライトデータを受領し、そのデータをキャッシュメモリ３２に保存する。
【００４３】
図４は、記憶装置システムがホストコンピュータ６からリード要求を受信した場合の各アダプタでの処理手順を示すフローチャートである。
まず、ホストアダプタ１が、チャネル６１を介してホストコンピュータ６よりリード要求を受領する。以下、ホストアダプタをＨＡ、マスタキャッシュアダプタをＣＡ（ｍ）と記述する（ステップ２００１）。
【００４４】
リード要求を受信したＨＡ１は、管理テーブル１１より、リード要求で指定されるＬＵ番号に対応するＬＤＥＶ番号及びＣＡ（ｍ）の情報を検索する（ステップ２００２）。その後、ＨＡ１は、内部結合２１を介して、検索されたＣＡ（ｍ）に対し、内部リード要求を送信する。ここで「内部リード（ライト）要求」とは、ホストアダプタ１とキャッシュアダプタ３との間でやり取りされるデータ読み出し（データ書き込み）のメッセージである（ステップ２００３）。
【００４５】
内部リード要求を受領したＣＡ（ｍ）は、内部リード要求に含まれているアドレス、サイズなどに基づいて、ディレクトリ情報３６２よりリード要求に対応するデータがキャッシュメモリ３２中に存在するか判定（以下「キャッシュヒット判定」）する（ステップ２００４）。判定の結果、キャッシュメモリ３２中に該当するデータが存在しない（以下「キャッシュミス」）場合、ＣＡ（ｍ）は、ディスク装置４より該当するデータをステージングしてキャッシュメモリ３２に格納し、該当するディレクトリ情報３６２を更新する（ステップ２００５）。
【００４６】
ステップ２００５の処理後又はステップ２００４でキャッシュメモリ３２に該当するデータが存在すると判断した場合、ＣＡ（ｍ）は、該当するデータをキャッシュメモリ３２より内部結合インタフェース部３３を介して読み出し、内部リード要求を送信してきたＨＡ１に転送する（ステップ２００６）。
データを受信したＨＡ１は、ホストコンピュータ６に受信したデータを応答する（ステップ２００７）。
【００４７】
図５は、ストレージシステムがホストコンピュータ６からデータのライト要求を受信した際の処理の流れを示すフローチャートである。以下、バックアップキャッシュアダプタをＣＡ（ｂ）と記述している。
【００４８】
チャネル６１を通じてホストコンピュータ６よりライト要求を受領したＨＡ１は、管理テーブル１１よりライト要求に含まれるＬＵ番号に対応するＬＤＥＶ番号、ＣＡ（ｍ）及びＣＡ（ｂ）の情報を検索する。
【００４９】
その後、ＨＡ１は、内部結合２１を介して、検索されたＣＡ（ｍ）に対し内部ライト要求を送信する（ステップ２１０１）。内部ライト要求を受信したＣＡ（ｍ）は、キャッシュメモリ３２にライト要求に対応するデータ（以下「ライトデータ」）を格納できる領域があるかディレクトリ情報３６２より判定する（ステップ２１０４）。
【００５０】
格納できる領域が無い場合、ＣＡ（ｍ）は、ＬＲＵアルゴリズム等に基づき、どのＬＤＥＶおよびＬＤＥＶアドレスに該当するキャッシュメモリ３２中のデータをディスク装置４に書き込むか決定し、そのデータをディスク装置４に書き込んだ後、該当領域を無効としてライトデータを格納できる領域を確保する。さらにＣＡ（ｍ）は、ＣＡ（ｂ）に、無効としたデータのＬＤＥＶ番号およびＬＤＥＶアドレスを通知する。
【００５１】
通知を受けたＣＡ（ｂ）は、該当データを無効とし、ライトデータを格納できる領域を確保する。その後、ＣＡ（ｂ）は、ＣＡ（ｍ）に対して領域確保の通知を行う。なお、ＣＡ（ｂ）のキャッシュメモリ３２には、ライトデータに関してはＣＡ（ｍ）と同じデータ（アドレスは異なってもよい）が格納されているので、ＣＡ（ｂ）における格納領域の判定には、ステップ２１０４で行われた判定結果がそのまま適用できる（ステップ２１０５）。
【００５２】
ステップ２１０５の後、又はステップ２１０４で格納領域があると判断された場合には、ＣＡ（ｍ）は、ＣＡ（ｂ）に、ステップ２１０５で受領した内部ライト要求に対応した内部メッセージである内部バックアップライト要求を送信する。ＣＡ（ｍ）およびＣＡ（ｂ）の各々は、ライトデータの受け入れが可能な状態になったら、内部結合２１を介して，内部ライト要求を送信したＨＡ１に対し内部メッセージである内部ライト準備応答を送信する。尚、ＣＡ（ｂ）は、ＨＡ１に内部ライト準備応答を送信する代わりに、ＣＡ（ｍ）に内部ライト準備応答を送信し、ＣＡ（ｍ）がまとめてＨＡ１に内部ライト準備応答を送信してもよい（ステップ２１０８）。
【００５３】
ＣＡ（ｍ）及びＣＡ（ｂ）の両方（ＣＡ（ｍ）が一括して応答する場合は、ＣＡ（ｍ））から内部ライト準備応答を受領したＨＡ１は、チャネル６１を介してホストコンピュータ６にライト準備応答を送信する。その後、ライト準備応答に応じてホストコンピュータ６が送信したライトデータを受領したＨＡ１は、内部結合２１を介して、ＣＡ（ｍ）及びＣＡ（ｂ）にライトデータを送信する（ステップ２１１０）。
【００５４】
ライトデータを受領したＣＡ（ｍ）及びＣＡ（ｂ）は、受信したライトデータをキャッシュメモリ３２内の前述したステップで確保された領域に書き込み、対応するディレクトリ情報３６２を更新する。その後、ＣＡ（ｍ）及びＣＡ（ｂ）は、内部結合２１を介して、内部ライト要求を送信したＨＡ１に対し内部メッセージである内部ライト完了応答を送信する（ステップ２１１１）。
【００５５】
ＣＡ（ｍ）及びＣＡ（ｂ）の両方から内部ライト完了応答を受領したＨＡ１は、チャネル６１を介して、ホストコンピュータ６にライト完了応答を送信する（ステップ２１１３）。
【００５６】
以下、４つのキャッシュアダプタ３間の操作を例として、キャッシュメモリ３２の領域割り当ての方法について説明する。簡単のため、以下各キャッシュメモリ３２が有する記憶領域のうち、ライトデータを格納するライトキャッシュ領域のみを図示して説明する。しかし、実際には、キャッシュメモリ３２は、リードデータを格納するリードキャッシュ領域なども有する。又、キャッシュアダプタ３を区別するため、以下、各キャッシュアダプタをＣＡ１、２、３及びＣＡ４と称する。
【００５７】
図６は、障害が発生していない通常時における、キャッシュアダプタ３間でのキャッシュメモリ３２における記憶領域の割り当てを示した図である。本図において、ＣＡ１及びＣＡ２、ＣＡ３及びＣＡ４がそれぞれディスク装置４を共有し、冗長性を確保するためのペアになっている（この関係を「キャッシュアダプタペア」と呼ぶ）。ＣＡ１のキャッシュメモリ３２は、ＣＡ１がマスタキャッシュアダプタとしてステージング動作、デステージング動作を行うべきデータが格納されるライトキャッシュ領域ＣＡ１（Ｍ）３０１２１及びＣＡ２のバックアップキャッシュアダプタとしてライトデータの複製を格納するライトキャッシュ領域ＣＡ２（Ｂ）３０１２２を有する。
【００５８】
以下、マスタキャッシュアダプタに扱われるデータが格納される記憶領域をマスタ領域と呼び（Ｍ）で表し、バックアップキャッシュアダプタに扱われるデータ（複製されたデータ）が格納される記憶領域をバックアップ領域とよび（Ｂ）で表す。
【００５９】
ＣＡ１のキャッシュアダプタペアであるＣＡ２のキャッシュメモリ３２は、ライトキャッシュ領域ＣＡ２（Ｍ）３０２２１、ライトキャッシュ領域ＣＡ１（Ｂ）３０２２２が含まれる。従って、ライトキャッシュ領域ＣＡ１（Ｍ）３０１２１に含まれるデータと、ライトキャッシュ領域ＣＡ１（Ｂ）３０２２２に含まれるデータは同一である（アドレス、並び順は異なってもよい）。
【００６０】
つまり、本図においては、キャッシュアダプタペアである二つのキャッシュアダプタ３が、お互いのデータの複製を格納する記憶領域をキャッシュメモリ３２に設け、キャッシュアダプタペアのライトデータを冗長化している。本図の矢印で、上述したデータの複製の関係を示している。ＣＡ１とＣＡ２のキャッシュアダプタペアと同様に、ＣＡ３とＣＡ４のキャッシュアダプタペアも、双方のキャッシュメモリ３２に格納されたデータを冗長化している。
【００６１】
図７は、ＣＡ２が有するキャッシュメモリ３２に障害が発生したり除去されたりといった要因で使用不能となった場合の、キャッシュメモリの記憶領域の割り当てを示した図である。ここでは、一方の電源部に障害が発生した場合にも運転が継続できるよう、２つの電源部Ａ５１１、電源部Ｂ５１２それぞれがＣＡ１とＣＡ３、ＣＡ２とＣＡ４に電力を供給している。ＣＡ２が有するキャッシュメモリ３２が使用不能となった場合、ＣＡ１は、ＣＡ１が有するＣＡ２のマスタ領域の複製、即ちＣＡ２（Ｂ）を、ＣＡ２のマスタ領域として取り扱う。つまり、ＣＡ１がライトキャッシュ領域ＣＡ２（Ｍ）３０２２１に関してもマスタキャッシュアダプタとして動作する。
【００６２】
一方、ＣＡ２及びＣＡ１に配置されていたバックアップ領域であるライトキャッシュ領域ＣＡ１（Ｂ）３０２２２及びライトキャッシュ領域ＣＡ２（Ｂ）３０１２２は、ＣＡ４に配置される。具体的には、ＣＡ１のキャッシュメモリ３２に格納されたデータの複製をＣＡ４のキャッシュメモリ３２に格納する。こうすることにより、１つのキャッシュアダプタ３が使用不能となった場合においても、キャッシュアダプタ３に格納されたライトデータは、キャッシュアダプタペアでは無い他のキャッシュアダプタ３によって冗長化されることになる。
【００６３】
尚、ＣＡ４の代わりにＣＡ３にＣＡ１のデータの複製を配置することも可能であるが、ＣＡ１に電力を供給している電源部Ａ５１１と別の電源部Ｂ５１２に電力を供給されているＣＡ４にデータの複製を配置することにより、さらにどちらかの電源部に障害が発生した場合においても、マスタ領域、バックアップ領域のいずれかには電力が供給されているのでライトデータを失うことがなくなる。
【００６４】
ただし、ＣＡ４のキャッシュメモリ３２の容量がＣＡ１と同じ場合、ＣＡ４のキャッシュメモリ３０４２にＣＡ１が有するデータ全てを格納することはできない（ＣＡ４の通常の使用が不可能になる）ので、ＣＡ１は、キャッシュメモリ３２に格納されているデータの半分をディスク装置４へデステージングした後、残ったデータの複製をＣＡ４へ配置する。尚、デステージングするデータ量は特に半分でなくても良いが、ＣＡ１及びＣＡ４のキャッシュメモリ３２のキャッシュヒット率を考慮すると、半分にする方が望ましい。
【００６５】
図８は、図７と同じ状況におけるキャッシュメモリの記憶領域の割り当ての別例を示した図である。図７とは、ＣＡ１へのデータの格納方法は同じだが、ＣＡ１に格納されたデータの複製の配置が異なる。すなわち、ＣＡ２が使用不能になる前にＣＡ２とＣＡ１に配置されていたバックアップ領域であるライトキャッシュ領域ＣＡ１（Ｂ）３０２２２とライトキャッシュ領域ＣＡ２（Ｂ）３０１２２がそれぞれＣＡ４とＣＡ３に配置される。
【００６６】
この場合、ＣＡ１がデステージングするデータ量は、図７とは異なり、もとの記憶領域の１／３で良い。なぜなら、図７と異なり、ＣＡ１に格納されるデータの複製は、ＣＡ４及びＣＡ３のキャッシュメモリ３２に分散されて配置されるので、個々のキャッシュアダプタ３でＣＡ１のデータの複製が占める領域が減るからである。このことより、１つのキャッシュメモリ３２が使用不能となった場合においてもライトデータはキャッシュメモリ３２によって冗長化されることになり、図７の場合と比較しライトキャッシュ領域の大きさは大きくなる。
【００６７】
図１１は、キャッシュメモリの記憶領域の割り当ての更なる別例を示した図である。本例では、更にＣＡ５及びＣＡ６の新たなキャッシュアダプタペアを追加することで、あるキャッシュアダプタ３が使用不可能となった際における１つのキャッシュアダプタ３当たりのライトキャッシュ領域の大きさを、ＣＡ１のバックアップデータを格納しつつも他の例と比較して大きくすることができる。図１１は、４つのキャッシュアダプタ３にバックアップ領域を置いた場合のキャッシュメモリの領域割り当て配置例を示している。しかし、バックアップ領域が割り当てられるキャッシュアダプタの数に制限は無い。
【００６８】
図９の（Ａ）は、管理アダプタ７が保持するマスタ管理テーブル７１の一例を示す図である。マスタ管理テーブル７１は、キャッシュアダプタ対応テーブル７１１及びキャッシュアダプタペアテーブル７１２を含んでいる。キャッシュアダプタ対応テーブル７１１は、複数のエントリを有する。各エントリは、ＬＤＥＶ番号、マスタキャッシュアダプタ、バックアップキャッシュアダプタの情報が登録されるフィールド７１１１、７１１２及び７１１３を有する。
【００６９】
尚、マスタ管理テーブル７１には、ディスク制御装置５全体のＬＤＥＶに関する情報が登録される。一方、キャッシュアダプタ３が保持する管理テーブル３１には、そのキャッシュアダプタ３がマスタキャッシュアダプタ及びバックアップキャッシュアダプタとして処理すべきＬＤＥＶに関する情報のみが登録される。
【００７０】
キャッシュアダプタペアテーブル７１２は、複数のエントリを有する。各エントリは、キャッシュアダプタペア及び障害サポートキャッシュアダプタの情報が登録されるフィールド７１２１及び７１２２を含んでいる。以下、キャッシュアダプタペアを括弧を用いて表す。
【００７１】
障害サポートキャッシュアダプタとは、同一エントリの対応するキャッシュアダプタペアの一方のキャッシュアダプタ３に障害が発生した場合に、バックアップ領域の格納を担当するキャッシュアダプタ３である。例えば、図９（Ａ）のキャッシュアダプタペアテーブル７１２の第一のエントリでは、ＣＡ２に障害が発生した場合、ＣＡ３及びＣＡ４にＣＡ１及びＣＡ２のバックアップ領域が設けられ、結果としてキャッシュメモリの領域割り当て配置が図８のようになることを示している。
【００７２】
図９の（Ｂ）は、図９（Ａ）の状態からＣＡ２に障害が発生した場合に、キャッシュアダプタペアテーブル７１２に基づき内容が変更されたキャッシュアダプタ対応テーブル７１１を示している。テーブル中の網掛けの欄が変更された部分である。マスタキャッシュアダプタの情報が登録されるフィールド７１１２のうち、障害が発生したキャッシュアダプタ３であるＣＡ２を指定する情報が登録されていたフィールドの情報がキャッシュアダプタペアのＣＡ１に、バックアップキャッシュアダプタの情報が登録されるフィールド７１１３のうち、ＣＡ２及びＣＡ１を指定する情報が登録されていた部分が、キャッシュアダプタペアテーブル７１２に登録された障害サポートキャッシュアダプタの情報に従って、ＣＡ３およびＣＡ４に変更される。
【００７３】
図１０は、ＣＡ２に障害が発生した場合の管理アダプタ７（以下「ＭＡ」と記述）の処理手順を示す図である。
まずＭＡはＣＡ２の障害発生を認識する。具体的には、ＣＡ２のキャッシュメモリ３０２２の障害発生報告、ＣＡ２に内部メッセージを送信して障害のため応答が得られなかったホストアダプタ１の報告、又はＭＡの定期的なディスク制御装置５全体の調査やＭＡに接続された管理インタフェース（図示せず）を介した管理者の指示などにより、ＭＡはＣＡ２のキャッシュメモリ３２の障害発生を認識する（ステップ２２０１）。
【００７４】
ＣＡ２の障害を認識したＭＡは、マスタ管理テーブル７１のキャッシュアダプタペアテーブル７１２より、ＣＡ２のキャッシュアダプタペアがＣＡ１であることを確認し（ステップ２２０２）、キャッシュアダプタ対応テーブル７１１のフィールド７１１２を走査して、マスタキャッシュアダプタとしてＣＡ２が指定されている部分をキャッシュアダプタペアであるＣＡ１に変更する（ステップ２２０３）。
【００７５】
続いて、ＭＡは、キャッシュアダプタペアテーブル７１２よりキャッシュアダプタペアである（ＣＡ１、ＣＡ２）の障害サポートキャッシュアダプタが（ＣＡ３、ＣＡ４）であることを確認する（ステップ２２０４）。その後、ＭＡはキャッシュアダプタ対応テーブル７１１のフィールド７１１３を走査し、ＣＡ１及びＣＡ２を指定している部分の内容を障害サポートキャッシュアダプタであるＣＡ３又はＣＡ４に変更する（ステップ２２０５）。
【００７６】
その後、ＭＡは、キャッシュアダプタ対応テーブル７１１で内容が変更されたエントリの情報を、ホストアダプタ１及び変更されたエントリの変更前または変更後のフィールド７１１２及び７１１３に登録されていたキャッシュアダプタ３に配信する（ステップ２２０６）。
【００７７】
この配信された情報を受信したホストアダプタ１又はキャッシュアダプタ３は、配信された情報を、自身が有する管理テーブル１１又は管理テーブル３１に反映する。さらにキャッシュアダプタ３は、キャッシュメモリ３のライトキャッシュ領域割り当てを計算する（ステップ２２０７）。尚、ステップ２２０７の処理については後に詳述する。このようにして、ＭＡがキャッシュアダプタ３の障害を検出し、バックアップキャッシュアダプタの設定を変更してシステム全体に変更した情報を配信する。これにより、ホストアダプタ１はマスタキャッシュアダプタとしてＣＡ２を使用していたＬＵへのアクセスをＣＡ１へ変更することができ、ＣＡ１は、ＣＡ２が担当していたディスク装置４に対するステージング動作及びデステージング動作を引継ぐことができる。
【００７８】
図１２は、ＣＡ２に障害が発生した際に、ＭＡから配信された情報を受信したキャッシュアダプタ３における処理手順を示した図である。
まず、ＣＡ２のキャッシュアダプタペアであるＣＡ１は、ＣＡ２又は内部メッセージを送信したホストアダプタ１の報告、もしくはＭＡの調査やＭＡを介した管理者の指示などにより、ＣＡ２のキャッシュメモリ３０２２の障害発生を認識する（ステップ２３０１）。
【００７９】
障害発生を認識したＣＡ１は、ＣＡ１及びＣＡ２が管理するＬＤＥＶに対するアクセス要求受領を中止し、キャッシュメモリ３０１２のライトキャッシュ領域に格納されているデータをディスク装置４に書き込む（ステップ２３０２）。その後、更新されたキャッシュアダプタ対応テーブル７１１のエントリの情報の一部（ＣＡ１に関係する部分のみ）をＭＡより受領し、管理テーブル３１に反映する（ステップ２３０３）。
【００８０】
ＣＡ１は、反映された内容に基づき、キャッシュメモリ３のライトキャッシュ領域割り当てを計算する。具体的には、エントリ７１２２に登録されている障害サポートキャッシュアダプタの数をｍとすると、障害発生により、データのバックアップに使用される領域以外の１つのキャッシュアダプタ３で使用できるライトキャッシュ領域は、ライトキャッシュ領域全体のｍ／（２ｍ＋２）となる（ステップ２３０４）。
【００８１】
計算の結果に基づいてＣＡ１は、バックアップキャッシュアダプタとなる障害サポートキャッシュアダプタ、ここではＣＡ３及びＣＡ４に、内部メッセージであるライトキャッシュ領域割当要求を送信する（ステップ２３０５）。ライトキャッシュ領域割当要求を受信したＣＡ３及びＣＡ４は、要求されたＣＡ１およびＣＡ２のデータをバックアップするライトキャッシュ領域が確保できるまで，キャッシュメモリ３のデータをディスク装置４に書き込む（ステップ２３０６）。
【００８２】
ＣＡ１に要求されたライトキャッシュ領域を確保したＣＡ３及びＣＡ４は、内部メッセージであるライトキャッシュ領域割当返答をＣＡ１に送信する（ステップ２３０７）。ＣＡ１は、ライトキャッシ領域割当要求を送信した全てのキャッシュアダプタ３からのライトキャッシュ領域割当返答を確認し、ステップ２３０２でアクセス受領を中止したＬＤＥＶに対するアクセス要求受領を再開する（ステップ２３０８）。
【００８３】
この結果、ＣＡ１のキャッシュメモリに書き込まれたデータはＣＡ３又はＣＡ４にバックアップされ、冗長性が確保される。尚、データの書き込みは上述した処理手順で行われるが、ライトデータのバックアップの対象がＣＡ２では無く、ＣＡ３又はＣＡ４となる。
【００８４】
次に、障害が発生したキャッシュアダプタ３のキャッシュメモリ３２が回復した場合の処理を説明する。図１３は、ＣＡ２に発生した障害が回復した時の処理手順を示した図である。
ＭＡは、管理者の指示などからＣＡ２の回復を認識し（ステップ２４０１）、キャッシュアダプタ対応テーブル７１１をＣＡ２に障害が発生する以前の状態に変更し、内部メッセージにより各ホストアダプタ１及び各キャッシュアダプタ３にその変更された情報を配信する。尚、キャッシュアダプタ対応テーブル７１１の障害発生前の状態は、ＭＡが有するメモリに格納されている。またＭＡは、ＣＡ２のキャッシュアダプタペアであるＣＡ１に、内部メッセージを用いてＣＡ２の障害回復を通知する（ステップ２４０２）。
【００８５】
通知を受けたＣＡ１は、ＣＡ１のライトキャッシュ領域に格納された全てのデータをディスク装置４に書込み、ライトキャッシュ領域のデータを無効化する（ステップ２４０３）その後、ＣＡ１は、バックアップキャッシュアダプタの動作を行っていた障害サポートキャッシュアダプタであるＣＡ３及びＣＡ４に内部メッセージであるライトキャッシュ領域開放要求を送信する（ステップ２４０４）。
【００８６】
ライトキャッシュ領域開放要求を受信したＣＡ３及びＣＡ４は、ＣＡ１及びＣＡ２のバックアップ領域に該当するライトキャッシュ領域を開放し、ライトキャッシュ領域をＣＡ２に障害が発生する以前のＣＡ３とＣＡ４各々のマスタ領域、バックアップ領域に変更し、ＣＡ１にライトキャッシュ領域開放返答を送信する。尚、障害が発生する以前のＣＡ３及びＣＡ４のマスタ領域及びバックアップ領域の情報はＭＡに保存されており、ＣＡ３及びＣＡ４はＭＡと内部メッセージを用いてつうしんすることにより、これらの情報を取得して、キャッシュメモリ３２に構成を変更する（ステップ２４０５）。
【００８７】
ＣＡ３及びＣＡ４からのライトキャッシュ領域開放返答を確認したＣＡ１は、ＣＡ２に内部メッセージである動作開始要求を送信し、ＣＡ１の担当するＬＤＥＶに対するアクセス要求受領を開始する（ステップ２４０６）。動作開始要求を受けたＣＡ２は、ＣＡ２がマスタキャッシュアダプタとなるＬＤＥＶに対するアクセス要求受領およびバックアップキャッシュアダプタとしての処理を開始する（ステップ２４０７）。
【００８８】
次に、キャッシュアダプタペアの双方のキャッシュアダプタのキャッシュメモリ３２に障害が発生した場合においてもライトデータを失わず障害から回復する処理を説明する。
図１４は、キャッシュアダプタペアであるＣＡ１及びＣＡ２に障害が発生し、キャッシュアダプタ３の交換などにより障害から回復するまでの処理手順を示した図である。尚、本実施形態では、ＣＡ１又はＣＡ２のいずれか一方に障害が発生してＣＡ３及びＣＡ４にＣＡ１及びＣＡ２のキャッシュメモリ３２に保存されるべきデータがバックアップされている状態で、残りのＣＡに障害が発生したとして説明する。
【００８９】
まず、キャッシュアダプタペアであるＣＡ１及びＣＡ２の双方のキャッシュメモリ３２に障害が発生する（ステップ２５０１）。
ＭＡは、ＣＡ１、ＣＡ２又はホストアダプタ１の報告、ＭＡの調査若しくは管理者の指示などにより、キャッシュアダプタペアであるＣＡ１及びＣＡ２双方のキャッシュメモリ３２の障害発生を認識する（ステップ２５０２）。
【００９０】
この場合ＭＡは、ホストアダプタ１に、ＣＡ１及びＣＡ２がマスタキャッシュアダプタとなるＬＤＥＶの使用不可要求を送信する。使用不可要求を受信したホストアダプタ１は、該当ＬＤＥＶへのアクセスを要求するホストコンピュータ６にアクセス不能のエラーを返す（ステップ２５０３）。この状態から保守員により、ＣＡ１及びＣＡ２が新しいキャッシュアダプタ３に交換され、元のようにディスク装置４がディスク側チャネル４１に接続され、新しいキャッシュアダプタ３がディスク制御装置５全体からＣＡ１、ＣＡ２として認識されるように設定され、ＣＡ１及びＣＡ２のキャッシュメモリ３２は障害から回復する（ステップ２５０４）。
【００９１】
障害から回復したＣＡ１及びＣＡ２は、それぞれ、バックアップキャッシュアダプタ動作を行っていた障害サポートキャッシュアダプタであるＣＡ３及びＣＡ４に内部メッセージであるライトデータ送信要求を送信する（ステップ２５０５）。ライトデータ送信要求を受信したＣＡ３及びＣＡ４は、それぞれ、ＣＡ１、ＣＡ２のバックアップ領域に該当するライトキャッシュ領域に格納されていたデータをＣＡ１又はＣＡ２に送信する。該当するライトキャッシュ領域に格納されていたデータを全て送信後、ＣＡ３及びＣＡ４は、該当するライトキャッシュ領域を開放し、ライトキャッシュ領域をＣＡ１、ＣＡ２に障害が発生する以前のＣＡ３とＣＡ４各々のマスタ領域、バックアップ領域に変更する（ステップ２５０６）。
【００９２】
ＣＡ１及びＣＡ２は、ＣＡ３又はＣＡ４より受信したライトデータを逐次ディスク装置４に書き込み、全ライトデータを処理後、各ＣＡが担当するＬＤＥＶに対するアクセス要求の受領を開始する（ステップ２５０７）。
【００９３】
ここまではＭＡの主導によるキャッシュアダプタ３の記憶領域割り当ての処理を説明した。しかし、各ホストアダプタ１及び各キャッシュアダプタ３だけで上述した処理を行うことも可能である。
【００９４】
図１５は、ＣＡ２のキャッシュメモリ３２に障害が発生した場合のキャッシュアダプタ３の記憶領域割り当て処理で、ＭＡを使用しない実施形態を示した図である。なおこの場合は、各ホストアダプタ１及び各キャッシュアダプタ３は、各自がアクセスしうるキャッシュアダプタ３に対応したキャッシュアダプタ対応テーブル７１１及びキャッシュアダプタペアテーブル７１２を、各自の管理テーブル１１および管理テーブル３１に所持している。
【００９５】
また、これまでの説明においては、キャッシュメモリ３２の障害が発生した時点で、まずキャッシュアダプタペアの他方のキャッシュアダプタ３のキャッシュメモリ３２に格納されているライトデータを全てディスク装置４に書き込む処理方式を述べてきたが、全てのライトデータをディスク装置４に書き込まない方式をとってもよい。ここで、前者を全デステージ方式、後者をコピー方式と呼び、本実施形態では、両方式の処理について説明する。
【００９６】
なお、コピー方式はこれまで説明してきたＭＡを介する処理においても同様に実行できる。両方式の選択は、処理時間と信頼性の兼ね合いで決定される。以下、図１６に示した処理手順についての説明を行う。
【００９７】
ホストアダプタ１（以下「ＨＡ１」）は、内部リード要求、内部ライト要求の応答などからＣＡ２のキャッシュメモリ３２の障害を認識し、他の全ＨＡ１に内部メッセージによりＣＡ２の障害を通知する（ステップ２６０１）。通知を受けた全ＨＡ１は、各々が有するキャッシュアダプタペアテーブル７１２に基づいて、ＣＡ２のキャッシュアダプタペアがＣＡ１であること及びその障害サポートキャッシュアダプタを確認し、管理テーブル１１のフィールド１１２２がＣＡ２であるものをＣＡ１に、フィールド１１２３がＣＡ２又はＣＡ１であるものをその障害サポートキャッシュアダプタに変更する（ステップ２６０２）。さらに、障害を発見したＨＡ１は、ＣＡ１に内部メッセージによりＣＡ２の障害を通知する（ステップ２６０３）。
【００９８】
通知を受けたＣＡ１は、設定されている方式に応じて、以下の処理を行う。全デステージ方式の場合、ＣＡ１は、ライトキャッシュ領域に格納されている全てのデータをディスク装置４に書き込み、そのライトキャッシュ領域を無効化する。次に、障害サポートキャッシュアダプタの数に基づいてライトキャッシュ領域割り当てを計算し、管理テーブル３１を変更する。一方、コピー方式の場合は、ＣＡ１はライトキャッシュ領域の無効化を行わずにライトキャッシュ領域割り当てを計算し、計算したライトキャッシュ領域が確保できるだけディスク装置４にライトデータを書き込み、該当ライトキャッシュ領域を無効化する（ステップ２６０４）。
【００９９】
続いてＣＡ１は、バックアップキャッシュアダプタとなる障害サポートキャッシュアダプタに計算した分のライトキャッシュ領域割当要求を内部メッセージにより送信する（ステップ２６０５）。ライトキャッシュ領域割当要求を受信した障害サポートキャッシュアダプタは、要求されたライトキャッシュ領域が確保できるだけ、キャッシュメモリ３のライトデータをディスク装置４に書き込み、キャッシュ領域を無効化する（ステップ２６０６）。
【０１００】
尚、コピー方式の場合、ＣＡ１はここでライトキャッシュ領域に格納されたデータを障害サポートキャッシュアダプタに送信する。送信が完了した場合、又は全デステージ方式の場合は、全てのキャッシュアダプタで該当ＬＤＥＶに対するアクセス要求の受領を開始する（ステップ２６０７）。
【０１０１】
以上のように本発明においては、同一のディスク装置を共有する、キャッシュメモリを備えた制御装置（キャッシュアダプタ）のペアをネットワークを介して接続することでストレージシステムを大規模構成とし、制御装置のペア間で、一方の制御装置のキャッシュメモリに相手の制御装置のキャッシュメモリのライトデータの複製を保持することで相互に冗長化し信頼性を向上させる。
【０１０２】
また、キャッシュメモリ障害発生時には障害が発生した制御装置とディスク装置を共有する制御装置がステージング及びデステージングを行い、ライトデータの冗長化のみを他の正常動作している制御装置に行わせることで、障害発生以前のライトアクセス応答速度と信頼性を維持する。
【０１０３】
【発明の効果】
本発明によって、キャッシュメモリを有する記憶装置システムにおいて信頼性が向上する。また、キャッシュメモリを有する記憶装置システムにおいて、障害発生以前のライトアクセス応答速度と信頼性を維持する。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態のストレージシステムの概要を表した図である。
【図２】キャッシュアダプタ３の構成例を表した図である。
【図３】管理テーブル１１および３１を表した図である。
【図４】リード要求の処理の流れを示したフローチャートである。
【図５】ライト要求の処理の流れを示したフローチャートである。
【図６】通常時のキャッシュメモリの領域割り当て配置を示した図である。
【図７】ＣＡ２に障害が発生した場合のキャッシュメモリの領域割り当て配置を示した図である。
【図８】ＣＡ２に障害が発生した場合のキャッシュメモリの領域割り当て配置を示した図である。
【図９】マスタ管理テーブル７１を示す図である。
【図１０】ＣＡ２に障害が発生した場合の管理アダプタ７の処理を含めたフローチャートである。
【図１１】ライトキャッシュ領域の大きさの比較を表す図である。
【図１２】ＣＡ２に障害が発生した場合の他のキャッシュアダプタの処理のフローチャートである。
【図１３】ＣＡ２に発生した障害が回復した時の処理のフローチャートである。
【図１４】キャッシュアダプタペアに障害が発生し、障害から回復する場合の処理を示したフローチャートである。
【図１５】ＣＡ２に障害の発生した場合の管理アダプタ７を介さない処理を示したフローチャートである。
【符号の説明】
１…ホストアダプタ、２…内部スイッチ、３…キャッシュアダプタ、４…ディスク装置、５…ディスク制御装置、６…ホストコンピュータ、７…管理アダプタ、２１…内部結合、３２…キャッシュメモリ、３３…内部結合Ｉ／Ｆ部、３４…ディスク側チャネルＩ／Ｆ部、３５…プロセッサ周辺制御部、３６…制御メモリ、３８…キャッシュデータバス、３９…制御データバス、４１…ディスク側チャネル、６１…チャネル、５１１…電源部Ａ、５１２…電源部Ｂ。
【図１】
2005043930.tif 000003
【図２】
2005043930.tif 000004
【図３】
2005043930.tif 000005
【図４】
2005043930.tif 000006
【図５】
2005043930.tif 000007
【図６】
2005043930.tif 000008
【図７】
2005043930.tif 000009
【図８】
2005043930.tif 000010
【図９】
2005043930.tif 000011
【図１０】
2005043930.tif 000012
【図１１】
2005043930.tif 000013
【図１２】
2005043930.tif 000014
【図１３】
2005043930.tif 000015
【図１４】
2005043930.tif 000016
【図１５】
2005043930.tif 000017