(57)【特許請求の範囲】
【請求項１】
複数のディスク装置と、
個別に１個のキャッシュメモリを有し、前記複数のディスク装置のそれぞれに接続されているｍ（ｍは２以上の整数）個のディスクアダプタ部と、
個別に１個のキャッシュメモリを有し、データの読み出しまたはデータの書き込みを要求する複数のホスト装置および前記ｍ個のディスクアダプタ部のそれぞれに接続されているｎ（ｎは２以上の整数）個のホストアダプタ部と、
前記ｎ個のホストアダプタ部および前記ｍ個のディスクアダプタ部を制御して、前記ホスト装置からデータを書き込むように要求されたときはこれを受信して該データを前記ｍ個のディスクアダプタ及びｎ個のホストアダプタの有する（ｍ＋ｎ）個のキャッシュメモリのいずれかに書き込み、データを読み出すように前記ホスト装置から要求されたときは前記（ｍ＋ｎ）個のキャッシュメモリを参照してそのデータがあればこれを前記ホスト装置へ送信し、そのデータがなければ前記ディスク装置からそのデータを読み出してこれを前記ホスト装置へ送信するアダプタ制御部と、
を備えるディスクアレイ装置であって、
前記アダプタ制御部によって前記ホスト装置から受信した対象データまたは前記ディスク装置から読み出された対象データについて、対象データを（ｍ＋ｎ−２）個の分割データに分割するデータ分割手段と、
前記対象データについてパリティデータを作成して、対象データとパリティデータとを含む全データを前記（ｍ＋ｎ）個のキャッシュメモリのいずれか１個に記憶させる第一のキャッシュ記憶手段と、
（ｍ＋ｎ−２）個の前記分割データおよび前記パリティデータのそれぞれを、前記第一のキャッシュ記憶手段が全データを記憶させたキャッシュメモリを除く残りの（ｍ＋ｎ−１）個のキャッシュメモリに１個ずつ分散させて記憶させる第二のキャッシュ記憶手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項２】
前記第一のキャッシュ記憶手段は、前記データ分割手段によって分割された（ｍ＋ｎ−２）個の前記分割データと前記対象データについて作成したパリティデータとを、前記全データとして前記（ｍ＋ｎ）個のキャッシュメモリのいずれか１個に記憶させる、
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
（ｍ＋ｎ−２）個の前記分割データおよび前記パリティデータから、前記第一のキャッシュ記憶手段によって記憶された全データを復元するデータ復元手段をさらに備える、
ことを特徴とする請求項１または２に記載のディスクアレイ装置。
【請求項４】
複数のディスク装置と、
個別に１個のキャッシュメモリを有し、前記複数のディスク装置のそれぞれに接続されているｍ（ｍは２以上の整数）個のディスクアダプタ部と、
個別に１個のキャッシュメモリを有し、データの読み出しまたはデータの書き込みを要求する複数のホスト装置および前記ｍ個のディスクアダプタ部のそれぞれに接続されているｎ（ｎは２以上の整数）個のホストアダプタ部と、
前記ｎ個のホストアダプタ部および前記ｍ個のディスクアダプタ部を制御して、前記ホスト装置からデータを書き込むように要求されたときはこれを受信して該データを前記ｍ個のディスクアダプタ及びｎ個のホストアダプタの有する（ｍ＋ｎ）個のキャッシュメモリのいずれかに書き込み、データを読み出すように前記ホスト装置から要求されたときは前記（ｍ＋ｎ）個のキャッシュメモリを参照してそのデータがあればこれを前記ホスト装置へ送信し、そのデータがなければ前記ディスク装置からそのデータを読み出してこれを前記ホスト装置へ送信するアダプタ制御部と、
を備えるディスクアレイ装置であって、
前記アダプタ制御部によって前記ホスト装置から受信した対象データまたは前記ディスク装置から読み出された対象データについて、対象データを（ｍ＋ｎ−３）個の分割データに分割するデータ分割手段と、
前記対象データについて第一のパリティデータと第二のパリティデータとを作成して、対象データと第一のパリティデータと第二のパリティデータとを含む全データを前記（ｍ＋ｎ）個のキャッシュメモリのいずれか１個に記憶させる第一のキャッシュ記憶手段と、
（ｍ＋ｎ−３）個の前記分割データ、前記第一のパリティデータ及び第二のパリティデータのそれぞれを、前記第一のキャッシュ記憶手段が全データを記憶させたキャッシュメモリを除く、残りの（ｍ＋ｎ−１）個のキャッシュメモリに１個ずつ分散させて記憶させる第二のキャッシュ記憶手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項５】
（ｍ＋ｎ−１）個のキャッシュメモリに１個ずつ記憶された（ｍ＋ｎ−３）個の前記分割データと前記第一のパリティデータと第二のパリティデータとから、前記第一のキャッシュ記憶手段によって記憶された全データを復元するデータ復元手段をさらに備える、
ことを特徴とする請求項４に記載のディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置に関し、特にキャッシュメモリを分散したディスクアレイ装置に関する。
【背景技術】
【０００２】
ディスクアレイ装置は、データを記憶させるディスク装置を複数備えている。そして、ディスクアレイ装置は、複数のホスト装置に接続されて、ホスト装置からデータを書き込みするように要求され、あるいはデータを読み出すように要求される。そのため、ディスクアレイ装置には、データの読み出し要求に対して高速なレスポンス性能が求められている。また、ディスクアレイ装置には、データを確実に記憶させていること、すなわちデータの信頼性が求められている。
【０００３】
このため、ディスクアレイ装置は、ホスト装置やディスク装置とのインターフェイス部分の高速化、ディスクアレイ装置内部の共通のデータ転送パスの高速化、ディスク装置の冗長化、データ転送路の二重化、キャッシュメモリに記憶させるデータの二重化、等、がされている。
【０００４】
例えば、特許文献１には、ディスク装置のインターフェイス部およびホスト装置のインターフェイス部のそれぞれがキャッシュメモリを共有し、かつキャッシュメモリを二重に備えたディスクアレイ装置が記述されている。
【特許文献１】特開２０００−９９２８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
この公報に開示されているディスクアレイ装置は、ホスト装置からデータを読み出すように要求されたときに、要求されたデータが共有キャッシュメモリに記憶されているか否かを判別する。そして、このディスクアレイ装置は、要求されたデータが共有キャッシュメモリに記憶されていれば、これを共有キャッシュメモリから読み出して、ホスト装置へ送信する。
【０００６】
このようにして、このディスクアレイ装置は、要求されたデータが共有キャッシュメモリにあれば、ディスク装置からではなく共有キャッシュメモリからこのデータを読み出してホスト装置に送信するので、レスポンス性能を向上させている。また、共有キャッシュが二重化されていることによって、データの信頼性が確保されている。
【０００７】
しかしながら、このディスクアレイ装置では、ホスト装置からデータの書き込み要求またはデータの読み出し要求が集中すると、要求されたデータを書き込むためあるいは要求されたデータがあるか否かを問い合わせるために、共有キャッシュメモリへのアクセスが集中する。これにより、レスポンス性能が低下する問題が生じるおそれがある。
【０００８】
本発明は上記問題点に鑑みてなされたもので、ホスト装置からのアクセス要求に対して高速なアクセス性能を維持しつつ共有キャッシュメモリを削減し、なおかつデータの信頼性をさらに高めたディスクアレイ装置を提供する。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明のディスクアレイ装置は、
複数のディスク装置と、
個別に１個のキャッシュメモリを有し、前記複数のディスク装置のそれぞれに接続されているｍ（ｍは２以上の整数）個のディスクアダプタ部と、
個別に１個のキャッシュメモリを有し、データの読み出しまたはデータの書き込みを要求する複数のホスト装置および前記ｍ個のディスクアダプタ部のそれぞれに接続されているｎ（ｎは２以上の整数）個のホストアダプタ部と、
前記ｎ個のホストアダプタ部および前記ｍ個のディスクアダプタ部を制御して、前記ホスト装置からデータを書き込むように要求されたときはこれを受信して該データを前記ｍ個のディスクアダプタ及びｎ個のホストアダプタの有する（ｍ＋ｎ）個のキャッシュメモリのいずれかに書き込み、データを読み出すように前記ホスト装置から要求されたときは前記（ｍ＋ｎ）個のキャッシュメモリを参照してそのデータがあればこれを前記ホスト装置へ送信し、そのデータがなければ前記ディスク装置からそのデータを読み出してこれを前記ホスト装置へ送信するアダプタ制御部と、
を備えるディスクアレイ装置であって、
前記アダプタ制御部によって前記ホスト装置から受信した対象データまたは前記ディスク装置から読み出された対象データについて、対象データを（ｍ＋ｎ−２）個の分割データに分割するデータ分割手段と、
前記対象データについてパリティデータを作成して、対象データとパリティデータとを含む全データを前記（ｍ＋ｎ）個のキャッシュメモリのいずれか１個に記憶させる第一のキャッシュ記憶手段と、
（ｍ＋ｎ−２）個の前記分割データおよび前記パリティデータのそれぞれを、前記第一のキャッシュ記憶手段が全データを記憶させたキャッシュメモリを除く残りの（ｍ＋ｎ−１）個のキャッシュメモリに１個ずつ分散させて記憶させる第二のキャッシュ記憶手段と、
を備えることを特徴とする。
本発明の他のディスクアレイ装置は、
複数のディスク装置と、
個別に１個のキャッシュメモリを有し、前記複数のディスク装置のそれぞれに接続されているｍ（ｍは２以上の整数）個のディスクアダプタ部と、
個別に１個のキャッシュメモリを有し、データの読み出しまたはデータの書き込みを要求する複数のホスト装置および前記ｍ個のディスクアダプタ部のそれぞれに接続されているｎ（ｎは２以上の整数）個のホストアダプタ部と、
前記ｎ個のホストアダプタ部および前記ｍ個のディスクアダプタ部を制御して、前記ホスト装置からデータを書き込むように要求されたときはこれを受信して該データを前記ｍ個のディスクアダプタ及びｎ個のホストアダプタの有する（ｍ＋ｎ）個のキャッシュメモリのいずれかに書き込み、データを読み出すように前記ホスト装置から要求されたときは前記（ｍ＋ｎ）個のキャッシュメモリを参照してそのデータがあればこれを前記ホスト装置へ送信し、そのデータがなければ前記ディスク装置からそのデータを読み出してこれを前記ホスト装置へ送信するアダプタ制御部と、
を備えるディスクアレイ装置であって、
前記アダプタ制御部によって前記ホスト装置から受信した対象データまたは前記ディスク装置から読み出された対象データについて、対象データを（ｍ＋ｎ−３）個の分割データに分割するデータ分割手段と、
前記対象データについて第一のパリティデータと第二のパリティデータとを作成して、対象データと第一のパリティデータと第二のパリティデータとを含む全データを前記（ｍ＋ｎ）個のキャッシュメモリのいずれか１個に記憶させる第一のキャッシュ記憶手段と、
（ｍ＋ｎ−３）個の前記分割データ、前記第一のパリティデータ及び第二のパリティデータのそれぞれを、前記第一のキャッシュ記憶手段が全データを記憶させたキャッシュメモリを除く、残りの（ｍ＋ｎ−１）個のキャッシュメモリに１個ずつ分散させて記憶させる第二のキャッシュ記憶手段と、
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、キャッシュメモリに記憶されるデータの信頼性を高める。
【発明を実施するための最良の形態】
【００１１】
発明を実施するための最良の形態について、図面を参照して詳細に説明する。
【００１２】
（第一の実施形態）
図１に示すように、本発明の第一の実施形態に係るディスクアレイ装置１０は、アダプタ部３０と、ディスク装置４０、４１と、制御部８０と、を備える。
【００１３】
アダプタ部３０は、スイッチ５０と、複数（ｍ個）のホストアダプタ部６０ａ〜ｍと、複数（ｎ個）のディスクアダプタ部７０ａ〜ｎと、から構成され、スイッチ５０を介して接続されている制御部８０の指示に従って動作する。
【００１４】
複数のホストアダプタ部６０ａ〜ｍは、データを記憶させるキャッシュメモリ６５ａ〜ｍをそれぞれ個別に有している。同様に、複数のディスクアダプタ部は、キャッシュメモリ７５ａ〜ｎをそれぞれ個別に有している。
【００１５】
ホストアダプタ部６０は、ホスト装置２０、２１に接続されていて、ホスト装置２０、２１からされるデータの書き込み要求またはデータの読み出し要求を受信する。
【００１６】
ディスクアダプタ部７０は、ディスク装置４０、４１に接続されていて、ディスク装置４０、４１にデータを書き込むように要求し、あるいはデータを読み出すように要求する。
【００１７】
制御部８０は、書き込み要求とともにホスト装置２０、２１から送信されたデータを、アダプタ部３０を制御して、キャッシュメモリ６５ａ〜ｍのいずれかに書き込む。また、制御部８０は、ディスク装置４０、４１から読み出したデータを、アダプタ部３０を制御して、キャッシュメモリ７５ａ〜ｎのいずれかに書き込む。制御部８０は、ホスト装置２０、２１からデータを要求されると、当該データがキャッシュメモリ６５または７５に記憶されているか否かを判別し、なければディスク装置４０、４１から当該データを読み出してホスト装置２０，２１へ送信する。
【００１８】
制御部８０は、第一のキャッシュ記憶手段８１と、第二のキャッシュ記憶手段８２と、データ分割手段８３と、データ復元手段８４と、を備える。
【００１９】
上記構成を備えるディスクアレイ装置１００の動作について、以下、説明する。
【００２０】
まず、データをキャッシュメモリに二重化して記憶させる動作について説明する。
【００２１】
ホストアダプタ部６０が、ホスト装置２０、２１からデータを書き込みするように要求されたデータを受信したときに、図２に示すキャッシュデータの二重化の処理が開始する。また、ホスト装置２０、２１からデータを要求された制御部８０が、キャッシュメモリ６５およびキャッシュメモリ７５を参照して、当該データが記憶されていないと判別して、ディスク装置４０、４１から当該データを読み出したときも同様に、キャッシュデータの二重化の処理が開始する。
【００２２】
まず、データ分割手段８３は、ホスト装置２０、２１から受信したデータあるいはディスク装置４０、４１から読み出したデータを、ホストアダプタ部の総数ｍ個とディスクアダプタ部の総数ｎ個とを足した数から２を引いた数（ｍ＋ｎ−２）に分割する（ステップＳ２０１）。
【００２３】
次に、第一のキャッシュ記憶手段８１は、当該データからパリティデータを作成して（ステップＳ２０２）、当該データと当該パリティデータとを、いずれかのキャッシュメモリ６５ａ〜ｍ、７５ａ〜ｎ、のうちの１つに記憶させる（ステップＳ２０３）。
【００２４】
次に、第二のキャッシュ記憶手段８２は、データ分割手段８３によって作成された（ｍ＋ｎ−２）個の分割データおよび前記第一のキャッシュ記憶手段によって作成されたパリティデータを、第一のキャッシュ記憶手段８２が記憶させたキャッシュメモリ以外のキャッシュメモリにそれぞれ１つずつ記憶させる（ステップＳ２０４）。
【００２５】
このようにして、キャッシュメモリに記憶されるデータは二重化されると、キャッシュデータの二重化処理は終了する。
【００２６】
次に、本発明の実施形態に係るディスクアレイ装置１０が、内部に備わるホストアダプタ部６０またはディスクアダプタ部７０のいずれか１つが故障したときに、データを復元して再びキャッシュに記憶されるデータを二重化させる動作について説明する。
【００２７】
まず、制御部８０が、ホストアダプタ部６０またはディスクアダプタ部７０のいずれか１つが故障したことを検出すると、図３に示すデータ復元処理が開始する。
【００２８】
故障したアダプタ部のキャッシュメモリに記憶されていたデータが、第一のキャッシュ記憶手段８１によって記憶されていたデータおよびパリティデータ（全データ）ならば（ステップＳ２５０のＹｅｓ）、データ復元手段８４は、故障したアダプタ部のキャッシュメモリ以外から（ｍ＋ｎ−２）の分割データとパリティデータを読み出す。そして、データ復元手段８４は、この（ｍ＋ｎ−２）の分割データおよびパリティデータの全てを、いずれか１つのキャッシュメモリ６５、７５に記憶させる（ステップＳ２５１）。
【００２９】
次に、故障したアダプタ部のキャッシュメモリに記憶されていたデータが、第二のキャッシュ記憶手段８２によって記憶されていた（ｍ＋ｎ−２）個の分割データのうちの１つまたはパリティデータならば（ステップＳ２５２のＹｅｓ）、データ復元手段８４は全データが記憶されているキャッシュメモリから、これに対応する分割データまたはパリティデータを読み出す。そして、データ復元手段８４は、この読み出した分割データまたはパリティデータを、いずれか１つのキャッシュメモリ６５、７５に記憶させる（ステップＳ２５２）。
【００３０】
このようにして、データ復元手段８４は、いずれかのホストアダプタ部またはディスクアダプタ部のうちの１つが故障した場合に、データ復元処理に従ってキャッシュメモリに記憶されているデータを再び二重化する。
【００３１】
次に、発明を実施するための具体的な形態について、図面を参照して詳細に説明する。
【００３２】
（第二の実施形態）
図４に示すように、本発明の実施形態に係るディスクアレイ装置１００は、ディスク装置１５０、１５１と、制御部１９０と、を備える。制御部１９０は、ホストアダプタ部１２０、１２１と、バススイッチ１３０と、ディスクアダプタ部１４０、１４１と、を備える。
【００３３】
ホスト装置１１０、１１１は、例えば、スーパーコンピュータ、メインフレーム、サーバ装置、またはＰＣ（Personal Computer）等の情報処理装置から構成される。
【００３４】
ホスト装置１１０は、ホストデータ転送パス１６０を介して、ホストアダプタ部１２０およびホストアダプタ部１２１に接続されている。同様に、ホスト装置１１１は、ホストデータ転送パス１６１を介して、ホストアダプタ部１２０およびホストアダプタ部１２１に接続されている。
【００３５】
ホスト装置１１０、１１１は、ホストアダプタ部１２０、１２１に、ホスト装置１１０、１１１が有するデータを記憶するように要求する。また、ホスト装置１１０、１１１は、ディスク装置１５０、１５１または後述のキャッシュメモリに記憶されているデータを、ホスト装置１１０、１１１へ送信するようにホストアダプタ部１２０、１２１へ要求する。
【００３６】
バススイッチ１３０は、ホストアダプタ部１２０、１２１およびディスクアダプタ部１４０、１４１に接続されている。バススイッチ１３０は、ホストアダプタ部１２０、１２１またはディスクアダプタ部１４０、１４１から送信コマンドとともにデータを受け取ると、データ送信元の指示に従って、指定された送信先のアダプタ部にデータを送信する。
【００３７】
ディスク装置１５０、１５１は、例えば、磁気ディスク等の記憶装置等から構成され、各種データを記憶する。
【００３８】
ディスク装置１５０は、ディスクデータ転送パス１７０を介して、ディスクアダプタ部１４０およびディスクアダプタ部１４１に接続される。同様に、ディスク装置１５１は、ディスクデータ転送パス１７１を介して、ディスクアダプタ部１４０およびディスクアダプタ部１４１に接続される。
【００３９】
ホストアダプタ部１２０は、図５（Ａ）に示すように、アダプタ制御部２０１、キャッシュメモリ２０２、およびブリッジ２１０から構成される。ブリッジ２１０は、インターフェイス部２１３、２１４、クロスバススイッチ２１５、ＤＭＡ制御部２１６、およびメモリ制御部２１７から構成される。
【００４０】
ディスクアダプタ部１４０は、図５（Ｂ）に示すように、ホストアダプタ部１２０と同様に、アダプタ制御部２２１、キャッシュメモリ２０２、およびブリッジ２３０から構成される。
【００４１】
以下、ホストアダプタ部１２０、１２１およびディスクアダプタ部１４０、１４１の各構成要素について、具体的に説明する。
【００４２】
アダプタ制御部２０１は、ＭＰＵ（Micro Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）などから構成され、ホストアダプタ部１２０全体の動作を制御する。
【００４３】
キャッシュメモリ２０２は、ＲＡＭ等の半導体記憶素子から構成され、各種のデータを記憶する。
【００４４】
ＤＭＡ制御部２１６は、インターフェイス部２１３またはインターフェイス部２１４と、メモリ制御部２１７との間のデータ転送を制御する。
【００４５】
メモリ制御部２１７は、クロスバススイッチ２１５から送信されたデータをキャッシュメモリ２０２に書き込み、または、キャッシュメモリ２０２からデータを読み出し、キャッシュメモリ２０２のデータの読み込みおよび書き込みを制御する。
【００４６】
上記構成を備えるディスクアレイ装置１００が、キャッシュメモリにデータを二重化して記憶させる動作について説明する。
【００４７】
ホストデータ転送パス１６０を介して、ホスト装置１１０からディスク装置１５０または１５１にデータを書き込みする要求がホストアダプタ部１２０になされると、図６に示す書き込み処理が開始する。
【００４８】
まず、ホストアダプタ部１２０のインターフェイス部２１３が、この書き込み要求とともにデータを受信すると、インターフェイス部２１３はアダプタ制御部２０１に、この要求があったことを送信する（ステップＳ３０１）。
【００４９】
これを受信したアダプタ制御部２０１は、ＤＭＡ制御部２１６に、このデータをキャッシュメモリ２０２に書き込むように指示する。ＤＭＡ制御部２１６は、このデータをインターフェイス部２１３から取得して、メモリ制御部２１７に、このデータをキャッシュメモリ２０２へ書き込むように指示する。この指示を受けたメモリ制御部２１７は、このデータをキャッシュメモリ２０２へ書き込む（ステップＳ３０２）。
【００５０】
キャッシュメモリ２０２に、このデータが書き込まれると、図７（Ａ）に示すように、書き込まれたデータ４１０がキャッシュメモリ２０２のキャッシュメモリ領域４００内に記憶される。
【００５１】
次に、ＤＭＡ制御部２１６は、メモリ制御部２１７にデータ４１０のパリティデータを作成するように指示する。パリティデータを作成する指示を受けたメモリ制御部２１７は、図７（Ｂ）に示すように、キャッシュメモリ領域４００内にデータ４１０のパリティデータ４２０を作成する（ステップＳ３０３）。
【００５２】
次に、メモリ制御部２１７は、図７（Ｃ）に示すように、記憶させたデータ４１０を、分割データ４１１と分割データ４１２とに分割する（ステップＳ３０４）。
【００５３】
次に、メモリ制御部２１７は、キャッシュメモリ２０２から、分割データ４１１、分割データ４１２、およびパリティデータ４２０をそれぞれ読み出す。そして、ＤＭＡ制御部２１６は、分割データ４１１をホストアダプタ部１２１へ、分割データ４１２をディスクアダプタ部１４０へ、パリティデータ４２０をディスクアダプタ部１４１へ、バススイッチ１３０を介して送信する。この各データをアダプタ制御部がそれぞれ受信すると、各アダプタ制御部は受け取ったデータを各自のメモリ制御部に送信して、各自のキャッシュメモリに書き込ませる（ステップＳ３０５）。なお、このとき、ホストアダプタ部１２０のキャッシュメモリ２０２内には、図７（Ｃ）に示すように、分割データ４１１、分割データ４１２、およびパリティデータ４２０、が記憶されている。
【００５４】
このようにして、分割データ４１１、４１２およびパリティデータ４２０を、キャッシュメモリ２０２以外のキャッシュメモリに記憶させて、キャッシュに記憶されるデータは二重化される。
【００５５】
そして、キャッシュに記憶されるデータが二重化された後、アダプタ制御部２０１は、ホスト装置から書き込み要求されたデータをディスクアダプタ１４０へ送信するとともに、このデータをディスク装置１５０または１５１に書き込むように、ディスクアダプタ部１４０のアダプタ制御部２２１に指示する。ディスクアダプタ部１４０のインターフェイス部２３３が、このデータおよび指示を受け取ると、アダプタ制御部２２１はディスク装置１５０またはディスク装置１５１にこのデータを記憶させる（ステップＳ３０６）。
【００５６】
このように、ホスト装置１１０から書込み要求されたデータを受け取ったホストアダプタ部１２０は、自己のキャッシュメモリ２０２に当該データを書き込みする。そして、キャッシュメモリ２０２に当該データのパリティデータが記憶され、また当該データは複数個に分割してキャッシュメモリ２０２に記憶される。そして、ホストアダプタ部１２０以外のホストアダプタ部またはディスクアダプタ部は、パリティデータまたは複数個の分割データのいずれか１つを各自のキャッシュメモリに記憶させる。このようにして、ホスト装置から書き込み要求を受けたデータは、本発明に係るディスクアレイ装置内のキャッシュメモリに二重化して記憶される。
【００５７】
次に、本発明の実施形態に係るディスクアレイ装置１００が、ホスト装置１１０からデータの読み出し要求を受けたときに、キャッシュメモリから要求されたデータを読み出す動作について説明する。また、本発明の実施形態に係るディスクアレイ装置１００が、ディスク装置１５０、１５１から読み出したデータをキャッシュメモリに二重化して記憶させる動作について説明する。なお、以下の説明で用いる「全データ」は、図７（Ｃ）に示すように、キャッシュメモリに記憶されている、分割データおよびパリティデータを意味する。
【００５８】
ホスト装置１１０からホストアダプタ部１２０に、データの読み出しの要求がされると、図８に示す読み出し処理が開始する。
【００５９】
まず、ホストアダプタ部１２０のインターフェイス部２１３が、ホスト装置１１０からデータの読み出し要求を受信すると、インターフェイス部２１３は、アダプタ制御部２０１へこの要求があったことを送信する（ステップＳ５０１）。
【００６０】
この要求を受信したアダプタ制御部２０１は、読み出し要求されたデータがキャッシュメモリ２０２に記憶されているか否かをメモリ制御部２１７に問い合わせる。（ステップＳ５０２）。
【００６１】
アダプタ制御部２０１より問い合わせを受けたメモリ制御部２１７は、キャッシュメモリ２０２を参照して、この要求されたデータの全データがキャッシュメモリ２０２に記憶されているか否かを判別して、判別した結果をアダプタ制御部２０１に送信する。アダプタ制御部２０１はこれを受信して、読み出し要求されたデータの全データがキャッシュメモリ２０２に記憶されているか否かを判別する（ステップＳ５０３）。
【００６２】
アダプタ制御部２０１が、要求されたデータの全データがキャッシュメモリ２０２に記憶されていると判別した場合（ステップＳ５０３のＹｅｓ）、要求されたデータをホスト装置１１０へ送信するようにＤＭＡ制御部２１６へ指示する。この指示を受けたＤＭＡ制御部２１６は、要求されたデータを読み出すようにメモリ制御部２１７へ指示する。そして、メモリ制御部２１７は要求されたデータをキャッシュメモリ２２２から読み出して、これをホスト装置１１０に送信する（ステップＳ５０４）。
【００６３】
一方、アダプタ制御部２０１が、要求されたデータの全データがキャッシュメモリ２０２に記憶されていないと判別した場合（ステップＳ５０３のＮｏ）、要求されたデータの分割データまたはパリティデータがあるか否かをメモリ制御部２１７へ問い合わせる（ステップＳ５０５）。
【００６４】
要求されたデータの分割データまたはパリティデータがキャッシュメモリ２０２にある場合（ステップＳ５０５のＹｅｓ）、アダプタ制御部２０１は要求されたデータの全データを記憶しているキャッシュメモリを有するアダプタ部のアダプタ制御部に、この要求されたデータをホスト装置１１０へ送信するように指示する（ステップＳ５０６）。
【００６５】
要求されたデータの分割データまたはパリティデータがキャッシュメモリ２０２にない場合（ステップＳ５０５のＮｏ）、図５（Ｂ）に示すディスクアダプタ部１４０のアダプタ制御部２２１に、要求されたデータがディスクアダプタ部１４０のキャッシュメモリ２２２に記憶されているか否かを問い合わせる。（ステップＳ５０７）。
【００６６】
問い合わせを受けたディスクアダプタ部１４０のアダプタ制御部２２１は、図６に示すデータの読み出し処理に従う（ステップS５０８）。
【００６７】
まず、アダプタ制御部２２１は、読み出し要求されたデータがキャッシュメモリ２０２に記憶されているかどうかをメモリ制御部２１７に問い合わせる（ステップＳ６０１）。
【００６８】
要求されたデータの全データがキャッシュメモリ２２２に記憶されている場合（ステップS６０１のＹｅｓ）、アダプタ制御部２２１は、要求されたデータをキャッシュメモリ２２２から読み出してホスト装置１１０へ送信するように、ＤＭＡ制御部２３６へ指示する。この指示を受けたＤＭＡ制御部２３６は、メモリ制御部２３７へ要求されたデータを読み出すように指示する。そして、メモリ制御部２３７は要求されたデータを読み出して、これをホスト装置１１０へ送信する（ステップＳ６０２）。
【００６９】
要求されたデータの全データがキャッシュメモリ２２２に記憶されていない場合（ステップＳ６０１のＮｏ）、アダプタ制御部２２１は、要求されたデータの分割データまたはパリティデータがあるか否かをメモリ制御部２３７へ問い合わせる（ステップＳ６０３）。
【００７０】
要求されたデータの分割データまたはパリティデータがキャッシュメモリ２２２に記憶されている場合（ステップＳ６０３のＹｅｓ）、アダプタ制御部２２１は、要求されたデータの全データを記憶しているキャッシュメモリを有するアダプタ部のアダプタ制御部に、この要求されたデータをホスト装置１１０へ送信するように指示する（ステップＳ６０４）。
【００７１】
要求されたデータの分割データまたはパリティデータがキャッシュメモリ２２２に記憶されていない場合（ステップＳ６０３のＮｏ）、アダプタ制御部２２１は、要求されたデータをディスク装置１５０またはディスク装置１５１から読み出して、これを取得する（ステップＳ６０５）。
【００７２】
そして、図１０に示すディスクアダプタ部のキャッシュメモリへのデータ書き込みの処理に従って、キャッシュメモリ２２２にディスク装置から読み出されたデータが記憶される。また、図３に示す書き込み処理と同様にして、分割データおよびパリティデータが作成される（ステップＳ６０６）。
【００７３】
まず、アダプタ制御部２２１は、ディスク装置１５０または１５１から読み出したデータを、メモリ制御部２３７に指示してキャッシュメモリ２２２に記憶させる（ステップＳ７０１）。
【００７４】
キャッシメモリ２２２には、図７（Ａ）に示すように、ディスク装置１５０または１５１から読み出されたデータ４１０がキャッシュメモリ領域４００内に記憶される。
【００７５】
次に、ＤＭＡ制御部２３６は、メモリ制御部２３７に対して、パリティデータを作成するように指示する。パリティデータを作成する指示を受けたメモリ制御部２３７は、図７（Ｂ）に示すように、キャッシュメモリ領域４００内にデータ４１０のパリティデータ４２０を作成する（ステップＳ７０２）。
【００７６】
次に、メモリ制御部２３７は、図７（Ｃ）に示すように、書き込みされたデータ４１０を、分割データ４１１と分割データ４１２とに分割する（ステップＳ７０３）。
【００７７】
次に、メモリ制御部２３７は、キャッシュメモリ２２２から、分割データ４１１、分割データ４１２、およびパリティデータ４２０をそれぞれ読み出す。そして、ＤＭＡ制御部２３６は、分割データ４１１をホストアダプタ部１２０へ、分割データ４１２をホストアダプタ部１２１へ、パリティデータ４２０をディスクアダプタ部１４１へ、バススイッチ１３０を介して送信する。この各データをアダプタ制御部がそれぞれ受信すると、各アダプタ制御部は受け取ったデータを各自のメモリ制御部に送信して、各自のキャッシュメモリに書き込ませる（ステップＳ７０４）と、図１０に示すディスクアダプタ部のキャッシュメモリへのデータ書き込みの処理は終了する。
【００７８】
図６に戻って、アダプタ制御部２２１は、ディスク装置１５０または１５１から読み出したデータをホスト装置１１０へ送信する（ステップＳ６０７）と、ディスクアダプタ部での読み出し処理は終了する。
【００７９】
以上、説明したように、本発明の実施形態に係るディスクアレイ装置１００は、ディスク装置１５０または１５１からデータを読み出した場合にも、この読み出したデータをキャッシュメモリに二重化して記憶させる。
【００８０】
なお、上記実施形態のデータの読み出し処理において、１つのディスクアダプタ部のみに、ホスト装置から要求されたデータがキャッシュメモリに記憶されているか否かを問い合わせているが、複数のディスクアダプタ部に対して、このデータがキャッシュメモリに記憶されているか否かを問い合わせるようにしてもよい。
【００８１】
なお、データの書き込み処理において、分割したデータおよびパリティデータをそれぞれどのアダプタ部のキャッシュメモリに記憶させるかは任意である。
【００８２】
なお、ディスクアダプタ部の読み出し処理において、ディスク装置から読み出したデータを自己のキャッシュメモリだけではなく、他のディスクアダプタ部のキャッシュメモリにも記憶させるようにしてもよい。
【００８３】
次に、いずれかのホストアダプタ部またはディスクアダプタ部が故障したときに、故障したアダプタ部のキャッシュメッモリに記憶されている全データ、および、分割データまたはパリティデータを復元する動作について、図１１で示されるフローチャートを用いて説明する。なお、理解を容易にするため、ディスクアダプタ部１４０が故障したときの例を用いて説明する。
【００８４】
ディスクアダプタ部１４０が故障すると、アダプタ制御部２２１は他のディスクアダプタ部およびホストアダプタ部へ、故障したことを示す情報を送信する。他のディスクアダプタ部およびホストアダプタ部がこの情報を受信すると、他のディスクアダプタ部およびホストアダプタ部はディスクアダプタ部１４０が故障したことを検出する（ステップＳ８０１）。
【００８５】
次に、ディスクアダプタ部１４１のアダプタ制御部２４１は、自己のキャッシュメモリ２４２に記憶されている分割されたデータから、ディスクアダプタ部１４０のキャッシュメモリ２２２に全データが記憶されているか否かを判別する（ステップＳ８０２）。
【００８６】
故障したディスクアダプタ部１４０のキャッシュメモリ２２２が全データを記憶していた場合（ステップＳ８０２のＹｅｓ）、ディスクアダプタ部１４１のアダプタ制御部２４１は各アダプタ部のアダプタ制御部に問い合わせて、当該データの分割データまたはパリティデータを送信するように要求する。そして、この要求を受けた各アダプタ部のアダプタ制御部は、自己のキャッシュメモリから当該データの分割データまたはパリティデータを読みだして、ディスクアダプタ部１４１へ送信する。ディスクアダプタ部１４１のアダプタ制御部２４１は、送信された当該データの分割データおよびパリティデータの全てを、自己のキャッシュメモリ２４２に記憶させる（ステップＳ８０３）
【００８７】
このようにして、ディスクアダプタ部１４１のキャッシュメモリ２４２には、当該データの分割データの全てと、当該データのパリティデータと、が記憶される。
【００８８】
次に、ディスクアダプタ部１４１のアダプタ制御部２４１は、他のアダプタ部のそれぞれに、当該データの分割データまたはパリティデータを送信するように要求する前に、自己のキャッシュメモリ２４２に記憶されていた当該データの分割データまたはパリティデータを読み出す。そして、ディスクアダプタ部１４１のアダプタ制御部は、この読み出した分割データまたはパリティデータをホストアダプタ部１２０へ送信して、ホストアダプタ部１２０のキャッシュメモリ２０２に記憶させる（ステップＳ８０４）。
【００８９】
このようにして、故障したアダプタ部のキャッシュに全データが記憶されていた場合には、他のアダプタ部のキャッシュメモリの１つに、全データの分割データとパリティデータを記憶させる。そして、このアダプタ部がもともと記憶していた分割データまたはパリティデータを、さらに別のアダプタ部のキャッシュメモリに記憶させる。これにより、故障したアダプタ部が有していた全データは、別のキャッシュメモリに復元され、また全データの分割データとパリティデータのそれぞれが各キャッシュメモリに記憶されるようにして、キャッシュデータの二重化を維持する。
【００９０】
次に、ディスクアダプタ部１４０から故障したことを示す信号を受信したディスクアダプタ部１４１のアダプタ制御部２４１は、自己のキャッシュメモリ２４２に全データが記憶されていれば（ステップＳ８０５のＹｅｓ）、各アダプタ部のキャッシュメモリに記憶されている全データの分割データまたはパリティデータについて各アダプタ制御部へ問い合わせる。そして、問い合わせを受けた各アダプタ制御部は、自己のキャッシュメモリを参照して、自己のキャッシュメモリに記憶されている分割データまたはパリティデータがいずれであるかを示す情報をアダプタ制御部２４１へ送信する。ディスクアダプタ部１４１のアダプタ制御部２４１は、送られてきた情報から、ディスクアダプタ部１４０のキャッシュメモリ２２２に記憶されていた分割データまたはパリティデータを判別する（ステップＳ８０６）。
【００９１】
次に、ディスクアダプタ部１４１のアダプタ制御部２４１は、ステップＳ８０６で判別した、アダプタ部１４０のキャッシュメモリ２２２に記憶されていた分割データまたはパリティデータと同一のものをキャッシュメモリ２４２か１４０ら読み出す。そして、アダプタ制御部２４１は、これをホストアダプタ部１２０のアダプタ制御部２０１へ送信して、キャッシュメモリ２０２に記憶させる（ステップＳ８０７）。
【００９２】
このようにして、故障したアダプタ部のキャッシュメモリに記憶されていた分割データまたはパリティデータが特定される。そして、全データを記憶させているキャッシュメモリを有するアダプタ部は、特定された分割データまたはパリティデータを自己のキャッシュメモリから読み出して、他のキャッシュメモリに記憶させる。これにより、故障により失われた分割データが復元される。
【００９３】
なお、上記実施例では、図７（Ｂ）に示すように、１つのデータに対応させて１個のパリティデータが作成されているが、１つのデータから、ガロア体演算を用いて第一と第二のパリティデータを作成するようにしてもよい。これにより、分割されたデータが２つ失われた場合でも、残りの分割データと２個のパリティデータからデータを復元することができる。
【図面の簡単な説明】
【００９４】
【図１】本発明の第一の実施形態に係るディスクアレイ装置のブロック図である。
【図２】本発明の第一の実施形態に係るディスクアレイ装置のキャッシュデータの二重化処理を示すフローチャートである。
【図３】本発明の第一の実施形態に係るディスクアレイ装置のキャッシュデータの復元処理を示すフローチャートである。
【図４】本発明の第二の実施形態に係るディスクアレイ装置のブロック図である。
【図５】（Ａ）は、図４に示すホストアダプタ部の内部構成を示すブロック図であり、（Ｂ）は、図４に示すディスクアダプタ部の内部構成を示すブロック図である。
【図６】本発明の実施形態に係るホストアダプタ部の書き込み処理を説明するためのフローチャートである。
【図７】（Ａ）は、キャッシュメモリに記憶されているデータを説明するための図である。（Ｂ）は、キャッシュメモリにパリティデータを追加したメモリ領域の状態を説明するための図である。（Ｃ）は、キャッシュメモリに記憶されているデータを分割した状態を説明するための図である。
【図８】本発明の第二の実施形態に係るデータを読み出し処理を説明するためのフローチャートである。
【図９】本発明の第二の実施形態に係るディスクアダプタ部の読み出し処理を説明するためのフローチャートである。
【図１０】本発明の第二の実施形態に係るディスクアダプタ部のキャッシュメモリへの書き込み処理を説明するためのフローチャートである。
【図１１】本発明の第二の実施形態に係るディスクアレイ装置の故障時の処理を示すフローチャートである。
【符号の説明】
【００９５】
１０、１００  ディスクアレイ装置
２０、２１    ホスト装置
３０      アダプタ部
４０、４１    ディスク装置
５０      スイッチ
６０ａ〜ｍ  ホストアダプタ部
６５ａ〜ｍ、７５ａ〜ｎ  キャッシュメモリ
７０ａ〜ｎ  ディスクアダプタ部
８０      制御部
８１      第一のキャッシュ記憶手段
８２      第二のキャッシュ記憶手段
８３      データ分割手段
８４      データ復元手段
１１０、１１１  ホスト装置
１２０、１２１  ホストアダプタ部
１３０      バススイッチ
１４０、１４１  ディスクアダプタ部
１５０、１５１  ディスク装置
１６０、１６１  ホストデータ転送パス
１７０、１７１  ディスクデータ転送パス
１８０      ホスト側パス
１８１      ディスク側パス
１９０      制御部
２０１、２２１、２４１  アダプタ制御部
２０２、２２２、２４２  キャッシュメモリ
２１０、２３０、２５０  ブリッジ
２１３、２１４  インターフェイス部（ホストアダプタ部）
２３３、２３４、２５３、２５４  インターフェイス部（ディスクアダプタ部）
２１６、２３６、２５６  ＤＭＡ制御部
２１５、２３５、２５５  クロスバススイッチ
２１７、２３７、２５７  メモリ制御部
４００      キャッシュメモリ領域
４１０      データ
４２０      パリティデータ
４１１、４１２  分割データ
【図１】
0004893684.tif 000002
【図２】
0004893684.tif 000003
【図３】
0004893684.tif 000004
【図４】
0004893684.tif 000005
【図５】
0004893684.tif 000006
【図６】
0004893684.tif 000007
【図７】
0004893684.tif 000008
【図８】
0004893684.tif 000009
【図９】
0004893684.tif 000010
【図１０】
0004893684.tif 000011
【図１１】
0004893684.tif 000012