(57)【特許請求の範囲】
【請求項１】
複数のディスク装置と、
それぞれが、個別キャッシュメモリを具備し、前記複数のディスク装置のうち少なくとも１つのディスク装置にアクセス可能な複数のディスク側アダプタ部と、
それぞれが、個別キャッシュメモリを具備し、前記複数のディスク側アダプタ部のうち少なくとも１つのディスク側アダプタ部と接続され、データ転送パスを介して、ホスト装置と接続される複数のホスト側アダプタ部と、
前記複数のディスク側アダプタ部と前記複数のホスト側アダプタ部とからアクセスされ、前記複数のディスク側アダプタ部と前記複数のホスト側アダプタ部とのそれぞれが具備する個別キャッシュメモリに格納されるデータを格納する共有キャッシュメモリと
を具備するディスクアレイ装置であって、
各前期ディスク側アダプタ部は、前記複数のホスト側アダプタ部のうち少なくとも１つのホスト側アダプタ部と接続され、
各前記ホスト側アダプタ部は、
ホスト装置からディスク装置に書き込むべきデータを受け取った場合に、前記共有キャッシュメモリと自己が具備する個別キャッシュメモリとに該データを書き込み、前記複数のディスク側アダプタ部のうちいずれかのディスク側アダプタ部に該データのディスク装置への書き込みを要求し、いずれかのディスク装置に書き込ませ、
ホスト装置から、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリに該データが格納されているか否かを判別し、格納されていると判別した際には、該個別キャッシュメモリに格納されているデータを要求元のホスト装置に送信し、格納されていないと判別した際には、ディスク装置からデータを読み出して、要求元のホスト装置に送信するものであり、
各前記ディスク側アダプタ部は、ディスク装置からデータが読み出された場合に、前記共有キャッシュメモリと、自己が具備する個別キャッシュメモリとに該データを書き込むものであり、
各前記ホスト側アダプタ部は、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリに該データが格納されているか否かを判別し、格納されていないと判別した際には、該要求を前記複数のディスク側アダプタ部のうちいずれかのディスク側アダプタ部に転送するものであり、
各前記ディスク側アダプタ部は、さらに、前記複数のホスト側アダプタ部のうちいずれかのホスト側アダプタ部から、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリに該データが格納されているか否かを判別し、格納されていると判別した際には、該個別キャッシュメモリに格納されているデータを要求元のホスト装置に送信し、格納されていないと判別した際には、ディスク装置からデータを読み出して、要求元のホスト装置に送信するものであること
を特徴とするディスクアレイ装置。
【請求項２】
前記ディスクアレイ装置は、前記複数のディスク装置を冗長性を持つように具備するものであって、
各前記ホストアダプタ部は、
ホスト装置からディスク装置に書き込むべきデータを受け取った場合に、該データに基づいて、冗長データを作成し、該データと該冗長データとを、自己が具備する個別キャッシュメモリと前記共有キャッシュメモリとに書き込み、前記複数のディスク側アダプタ部のうちいずれかのディスク側アダプタ部に該データのディスク装置への書き込みを要求し、いずれかのディスク装置に書き込ませ、
ホスト装置から、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリと、前記複数のディスク側アダプタ部がそれぞれ具備する個別キャッシュメモリと、前記共有キャッシュメモリと、ディスク装置との内の１つから読み出されたデータに基づいて、ホスト装置に送信すべきデータを生成し、要求元のホスト装置に送信するものであること
を特徴とする請求項１に記載のディスクアレイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置に関し、特にキャッシュメモリを分散して具備するディスクアレイ装置に関する。
【背景技術】
【０００２】
ディスクアレイ装置は、高性能化と信頼性強化とが求められている。このため、ディスクアレイ装置は、ホスト装置やディスク装置とのインターフェイス部分の高速化、ディスクアレイ装置内部の共通のデータ転送パスの高速化、ディスク装置の冗長化、データ転送路やキャッシュメモリの２重化等を行ってきた。
【０００３】
図９は従来のディスクアレイ装置の構成を示すブロック図である。図示するように、図９は、特許文献１の図１において、セレクタ部とキャッシュメモリ部などを取り除いたものとなっている。
【０００４】
ディスクアレイ装置１は制御部２とディスク装置２００、２０１とを備える。そして、制御部２は、キャッシュメモリ部１０ａ、１０ｂと、ホストアダプタ部２０、３０と、ディスクアダプタ部４０、５０とを備える。
【０００５】
ホスト装置１００はホストアダプタ部２０と、ホスト装置１０１はホストアダプタ部３０と接続され、ディスク装置２００はディスクアダプタ部４０と、ディスク装置２０１はディスクアダプタ部５０と、それぞれ高速シリアルバスにて接続されている。また、ホストアダプタ部２０、３０、およびディスクアダプタ部４０、５０とキャッシュメモリ部１０ａ、１０ｂとが高速なパラレルバスまたは高速なシリアルバスにて接続されている。ホストアダプタ部２０、３０と、ディスクアダプタ部４０、５０とはキャッシュメモリ部１０ａ、１０ｂが備えるメモリを共有している。
【０００６】
例えば、ホスト装置１００からディスクデータの読み出し要求があった際に、要求されたデータがキャッシュメモリ部１０ａ、１０ｂに格納されている場合（キャッシュヒット時）は、前記ディスク装置２００あるいは２０１へのアクセスを行わずに、キャッシュメモリからデータをホスト装置１００に送る。このようにデータを送信することでアクセスの高速化を実現している。
【０００７】
また、キャッシュメモリ部１０ａと１０ｂとの間でデータが二重に格納されることとなっている。そのため、データ転送の経路のいずれの箇所で障害が発生したとしても、アクセスする経路を切り替えることによりデータ転送が停止せず、かつ前記キャッシュメモリ部１０ａまたは１０ｂ少なくとも一方においてデータが消失しない構成となっている。このような構成によりディスクアレイ装置の信頼性を強化している。
【特許文献１】特開２０００−９９２８１号公報（第５頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記キャッシュメモリの構成（以下、共有キャッシュ型と称する）では、ホストアダプタ部２０、３０とディスクアダプタ部４０、５０とがキャッシュメモリ部１０ａ、１０ｂを共有していた。このため、キャッシュメモリ部１０ａ、１０ｂにおいて、ホスト装置１００、１０１からのアクセス要求とディスク装置２００、２０１へのアクセス要求とが集中するため、結果としてホスト装置１００、１０１からのデータ転送要求のアクセス性能が低下してしまう問題があった。
【０００９】
本発明は上記問題点に鑑みてなされたもので、ホスト装置からのディスクアクセス要求に対し、分散キャッシュ型（すなわち、キャッシュを個別に備える構成）のもつ高速なアクセス性能を実現しつつ、共有キャッシュ型の高信頼性を維持できるディスクアレイ装置を提供することにある。
【課題を解決するための手段】
【００１０】
本発明の第１の観点にかかるディスクアレイ装置は、
複数のディスク装置と、
それぞれが、個別キャッシュメモリを具備し、前記複数のディスク装置のうち少なくとも１つのディスク装置にアクセス可能な複数のディスク側アダプタ部と、
それぞれが、個別キャッシュメモリを具備し、前記複数のディスク側アダプタ部のうち少なくとも１つのディスク側アダプタ部と接続され、データ転送パスを介して、ホスト装置と接続される複数のホスト側アダプタ部と、
前記複数のディスク側アダプタ部と前記複数のホスト側アダプタ部とからアクセスされ、前記複数のディスク側アダプタ部と前記複数のホスト側アダプタ部とのそれぞれが具備する個別キャッシュメモリに格納されるデータを格納する共有キャッシュメモリと
を具備するディスクアレイ装置であって、
各前期ディスク側アダプタ部は、前記複数のホスト側アダプタ部のうち少なくとも１つのホスト側アダプタ部と接続され、
各前記ホスト側アダプタ部は、
ホスト装置からディスク装置に書き込むべきデータを受け取った場合に、前記共有キャッシュメモリと自己が具備する個別キャッシュメモリとに該データを書き込み、前記複数のディスク側アダプタ部のうちいずれかのディスク側アダプタ部に該データのディスク装置への書き込みを要求し、いずれかのディスク装置に書き込ませ、
ホスト装置から、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリに該データが格納されているか否かを判別し、格納されていると判別した際には、該個別キャッシュメモリに格納されているデータを要求元のホスト装置に送信し、格納されていないと判別した際には、ディスク装置からデータを読み出して、要求元のホスト装置に送信する。
【００１１】
この発明によれば、キャッシュデータがホストアダプタ部が具備する個別キャッシュメモリと、共有キャッシュメモリとで二重化される。このため、キャッシュデータの信頼性が高まる。そして、ホスト装置からデータが要求されたとき（読み出し）には、要求されたデータが、個別キャッシュメモリに格納されていれば、そこからデータを要求元のホスト装置に送信する。このため、キャッシュヒット時のデータアクセス性能が共有キャッシュメモリだけの場合と比較して向上する。
また、ディスクアレイ装置内部の冗長度が高まり、信頼性が向上する。
【００１２】
上記ディスクアレイ装置において、
各前記ディスク側アダプタ部は、ディスク装置からデータが読み出された場合に、前記共有キャッシュメモリと、自己が具備する個別キャッシュメモリとに該データを書き込むことができる。
この場合、各前記ホスト側アダプタ部は、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリに該データが格納されているか否かを判別し、格納されていないと判別した際には、該要求を前記複数のディスク側アダプタ部のうちいずれかのディスク側アダプタ部に転送するものであり、
各前記ディスク側アダプタ部は、さらに、前記複数のホスト側アダプタ部のうちいずれかのホスト側アダプタ部からデータをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリに該データが格納されているか否かを判別し、格納されていると判別した際には、該個別キャッシュメモリに格納されているデータを要求元のホスト装置に送信し、格納されていないと判別した際には、ディスク装置からデータを読み出して、要求元のホスト装置に送信する。
【００１３】
上記ディスクアレイ装置において、
前記ディスクアレイ装置は、前記複数のディスク装置を冗長性を持つように具備することが望ましい。
この場合、各前記ホストアダプタ部は、
ホスト装置からディスク装置に書き込むべきデータを受け取った場合に、該データに基づいて、冗長データを作成し、該データと該冗長データとを、自己が具備する個別キャッシュメモリと前記共有キャッシュメモリとに書き込み、前記複数のディスク側アダプタ部のうちいずれかのディスク側アダプタ部に該データのディスク装置への書き込みを要求し、いずれかのディスク装置に書き込ませ、
ホスト装置から、データをディスク装置から読み出す旨の要求を受け取った場合に、自己が具備する個別キャッシュメモリと、前記複数のディスク側アダプタ部がそれぞれ具備する個別キャッシュメモリと、前記共有キャッシュメモリと、ディスク装置との内の１つから読み出されたデータに基づいて、ホスト装置に送信すべきデータを生成し、要求元のホスト装置に送信する。
【００１４】
この発明によれは、ディスク装置に書き込むデータの冗長度が高まり、例えば、複数のディスク装置のうち１台がアクセス不能となったとしても、データの復旧が可能となる。したがって、データの信頼性が高まる。
【発明の効果】
【００１７】
本発明によれば、共有キャッシュメモリと同等の信頼性を有しながら、従来のディスクアレイ装置と比較して、キャッシュヒット時のデータ転送性能が向上する。
【発明を実施するための最良の形態】
【００１８】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。図１は、本発明の実施の形態にかかるディスクアレイ装置を、２台のホスト装置に接続した例を示した図である。なお、図１と、図９とにおいて、同一の構成要素には同じ番号を付けている。
【００１９】
図示するように、本発明の実施の形態にかかるディスクアレイ装置１は、ディスク装置２００、２０１と、制御部２とを備え、ホストデータ転送パス１９０を介して、ホスト装置１００と、ホストデータ転送パス１９１を介して、ホスト１０１と接続される。ディスクアレイ装置１は、ホスト装置１００、１０１からデータの書き込み要求を受けて、制御部２の内部に備えるキャッシュメモリに当該データを一時的に格納する。また、ホスト装置１００、１０１からデータの読み出し要求を受けて、制御部２内部に備えるキャッシュメモリあるいはディスク装置２００、２０１から要求されたデータを読み出し、要求元のホスト装置に読み出したデータを送信する。キャッシュヒット時にはキャッシュメモリから、キャッシュミス時にはディスク装置２００、２０１からデータを読み出すものとする。
【００２０】
ホスト装置１００、１０１は、スーパーコンピュータ、メインフレーム、サーバ装置、パーソナルコンピュータ等の情報処理装置であり、アプリケーションプログラムを実行しその結果を出力する。ホスト装置１００は、ホストデータ転送パス１９０を介して、ディスクアレイ装置１のホストアダプタ部２０と３０とに接続される。同様に、ホスト装置１０１は、ホストデータ転送パス１９１を介して、ディスクアレイ装置１のホストアダプタ部２０と３０とに接続される。ホスト装置１００、１０１は、アプリケーションプログラムを実行する際に、ディスクアレイ装置１に格納されている各種データを読み書きする。なお、本実施の形態において、ホストデータ転送パス１９０、１９１は、例えば、高速シリアルバスであるものとする。
【００２１】
ディスク装置２００、２０１は、例えば、磁気ディスクなどの記憶装置である。ディスク装置２００は、ディスクデータ転送パス２９０を介して、制御部２の内部のディスクアダプタ部４０、５０に接続されている。同様に、ディスク装置２０１は、ディスクデータ転送パス２９１を介して、制御部２内部のディスクアダプタ部４０、５０に接続されている。
【００２２】
制御部２は、キャッシュメモリを備え、ホスト装置１００、１０１からデータを受け取って、ディスク装置２００、２０１に書き込み、また、そのデータをキャッシュする。なお、本実施の形態では、キャッシュは二重化されている。また、ホスト装置１００、１０１から指示を受け、ディスク装置２００、２０１から要求されたデータを読み出し、あるいは、キャッシュされているデータを読み出し、要求元のホスト装置へ送信する。
【００２３】
図１に示すように、制御部２は、キャッシュメモリ部１０と、ホストアダプタ部２０、３０と、ディスクアダプタ部４０、５０とを備える（以下これらを総称して、各アダプタ部と呼ぶ。）。そして、各アダプタ部とキャッシュメモリ部１０とはキャッシュメモリ間転送路３００を介して接続される。また、ホストアダプタ部２０とディスクアダプタ部４０とは、アダプタ間転送路３０１を介して接続され、ホストアダプタ部３０とディスクアダプタ部５０とは、アダプタ間転送路３０２を介して接続される。なお、本実施の形態では、キャッシュメモリ間転送路３００、およびアダプタ間転送路３０１、３０２は高速転送が可能なパラレルバスかシリアルバスを使用する。
【００２４】
なお、ホストアダプタ部２０と３０およびディスクアダプタ部４０と５０で、同一の構成および機能を有する。したがって、以下では、ホストアダプタ部２０およびディスクアダプタ部４０の各部の機能および構成についての説明を行う。
【００２５】
キャッシュメモリ部１０は、ホストアダプタ部２０、３０とディスクアダプタ部４０、５０とがそれぞれ備えているメモリに格納されているデータをキャッシュする。このようなキャッシュメモリ部１０の構成を図２に示す。
【００２６】
図示するように、キャッシュメモリ部１０はキャッシュメモリ制御部１１と共有キャッシュメモリ部１２とから構成されている。さらに、キャッシュメモリ制御部１１は、クロスバスイッチ１１１と、メモリ制御部１１２とから構成され、共有キャッシュメモリ部１２は、複数ブロックのメモリ１３、１４、１５、１６から構成されている。
【００２７】
キャッシュメモリ制御部１１は、ホストアダプタ部２０、３０およびディスクアダプタ部４０、５０と、キャッシュメモリ間転送路３００を介して接続される。キャッシュメモリ制御部１１は、これらの各アダプタ部とデータを送受信し、共有キャッシュメモリ部１２内部のメモリの読み書きを制御する。
【００２８】
クロスバスイッチ１１１は、ホストアダプタ部２０、３０と、ディスクアダプタ部４０、５０と、メモリ制御部１１２とに接続され、これらの各部の間のデータ交換を制御する。
【００２９】
メモリ制御部１１２は、クロスバスイッチ１１１を介して、ホストアダプタ部２０、３０とディスクアダプタ部４０、５０からデータを受け取り、共有キャッシュメモリ部１２内部のメモリ（モジュール）に当該データを書き込む。また、共有キャッシュメモリ部１２内部のメモリ（モジュール）からデータを読み出し、クロスバスイッチ１１１を介して、データを要求元のホストアダプタ部２０、３０とディスクアダプタ部４０、５０に送信する。
【００３０】
共有キャッシュメモリ部１２は、複数のメモリ１３、１４、１５、１６などから構成され、外部（例えば、ホストアダプタ部２０）からは１つの記憶装置（キャッシュメモリ）として認識される。共有キャッシュメモリ部１２は、少なくとも、ホストアダプタ部２０、３０とディスクアダプタ部４０、５０とがそれぞれ備えているキャッシュメモリに記憶しているデータと同じデータを記憶する。
【００３１】
メモリ１３、１４、１５、１６はそれぞれ、例えば、ＲＡＭ（Random Access Memory）などの記憶装置またはそれらの集合体であるメモリモジュールである。メモリ１３、１４、１５、１６は、共有キャッシュメモリ部１２の外部から、１つのメモリとしてアクセス可能となっている。なお、本実施の形態においては、メモリ１３、１４、１５、１６の記憶容量の合計は、ホストアダプタ部が２０、３０とディスクアダプタ部４０、５０とがそれぞれ備えるキャッシュメモリの記憶容量の合計以上とする。また、メモリ１３、１４、１５、１６の使用領域に関しては特に規定はなく、すべてのホストアダプタ部およびディスクアダプタ部からアクセス可能であり、それらの各アダプタ部が具備するキャッシュメモリに格納しているデータをすべて格納しているのであれば、いかような構成でもよい。
【００３２】
図１に戻って、ホストアダプタ部２０は、例えば、マイクロプロセッサ（Micro Processing Unit、ＭＰＵ）、メモリ等から構成され、ホスト装置１００、１０１とディスクアダプタ部４０と、キャッシュメモリ部１０とを接続する。このようなホストアダプタ部２０の構成を図３に示す。図示するように、ホストアダプタ部２０はブリッジ２１と、個別キャッシュメモリ２２と（以下単にメモリ２２と称する。）、アダプタ制御部２３とを備える。
【００３３】
ブリッジ２１は、クロスバスイッチ等から構成され、ホスト装置１００、１０１と、キャッシュメモリ部１０と、ディスクアダプタ部４０と、メモリ２２と、アダプタ制御部２３との間のデータ交換を制御する。図示するように、ブリッジ２１は、インターフェイス制御部２１１、２１４と、クロスバスイッチ２１２と、メモリ制御部２１３と、ＤＭＡ（Direct Memory Access）制御部２１５とを備える。
【００３４】
インターフェイス制御部２１１は、アダプタ制御部２３と、ホスト装置１００、１０１と、ＤＭＡ制御部２１５と、クロスバスイッチ２１２との間のデータ転送を制御し、ホスト装置１００、１０１から送信される書き込み要求や読み出し要求等の処理を司る。
【００３５】
クロスバスイッチ２１２は、インターフェイス制御部２１１、２１４と、メモリ制御部２１３と、ＤＭＡ制御部２１５とに接続され、これら各部の間のデータ交換を制御する。
【００３６】
メモリ制御部２１３は、クロスバスイッチ２１２から送信されるデータの、メモリ２２への書き込みと、メモリ２２からのデータを読み出しを制御する。
【００３７】
インターフェイス制御部２１４は、ディスクアダプタ部４０と、キャッシュメモリ部１０と、クロスバスイッチ２１２との間のデータ転送を制御する。
【００３８】
ＤＭＡ制御部２１５は、メモリ制御部２１３とインターフェイス制御部２１１との間のＤＭＡ転送を司る。
【００３９】
メモリ２２は、例えば、ＲＡＭなどの集合体であるメモリモジュールから構成される。メモリ２２はホスト装置１００、１０１から送信されたディスク装置２００、２０１への書き込みデータをキャッシュする。共有キャッシュメモリ部１２と対比すると、メモリ２２は個別のキャッシュメモリとなっている。
【００４０】
アダプタ制御部２３は、ＭＰＵやワークエリアとなるＲＡＭ、ＲＯＭ（Read Only Memory）などを備え、ホストアダプタ部２０全体の動作を制御する。
【００４１】
図１に戻って、ディスクアダプタ部４０は、例えば、ＭＰＵ、メモリ等から構成され、ディスク装置２００、２０１とホストアダプタ部２０と、キャッシュメモリ部１０とを接続する。このようなディスクアダプタ部４０の構成を図４に示す。図示するように、ディスクアダプタ部４０はブリッジ４１と、個別キャッシュメモリ４２と（以下単にメモリ４２と称する。）、アダプタ制御部４３とを備える。ディスク装置２００とは、ディスクデータ転送パス２９０と、ディスク装置２０１とは、ディスクデータ転送パス２９１とを介して接続される。なお、本実施の形態において、ディスクデータ転送パス２９０、２９１は、高速転送が可能なパラレルバスかシリアルバスであるものとする。
【００４２】
ブリッジ４１は、クロスバスイッチ等から構成され、ディスク装置２００、２０１と、キャッシュメモリ部１０と、ホストアダプタ部２０と、メモリ４２とアダプタ制御部４３との間のデータ交換を制御する。なお、ブリッジ４１の内部構成およびその機能はブリッジ２１と同様とする。
【００４３】
メモリ４２は、例えば、ＲＡＭなどの集合体であるメモリモジュールから構成される。メモリ４２は、ディスク装置２００、２０１から読み出したデータをキャッシュする。共有キャッシュメモリ部１２と対比すると、メモリ４２は個別のキャッシュメモリとなっている。
【００４４】
アダプタ制御部４３は、ＭＰＵやワークエリアとなるＲＡＭ、ＲＯＭなどを備え、ディスクアダプタ部４０全体の動作を制御する。
【００４５】
次に、図面を参照して、本発明の実施例について説明する。本実施例では、ホスト装置１００がディスク装置２００に格納されているデータを読み書きしようとする場合を説明する。なお、ここではホストアダプタ部２０とディスクアダプタ部４０とが主系で、ホストアダプタ部３０とディスクアダプタ部５０とが従系とする。
【００４６】
先に、ホスト装置１００からディスク装置への書き込み処理を説明する。図５は、書き込み処理におけるホストアダプタ部２０の書き込み処理を説明するフローチャートである。
【００４７】
ホストデータ転送パス１９０を介して、ホスト装置１００からホストアダプタ部２０に対して、ディスク装置へのデータ書き込み要求があると、ホストアダプタ部２０は書き込み処理を開始する。
【００４８】
ホストアダプタ部２０のインターフェイス制御部２１１が、ホスト装置１００からディスク装置へのデータ書き込み要求を受信すると（ステップＳ１０１）、インターフェイス制御部２１１は、アダプタ制御部２３に要求があったことを送信する。アダプタ制御部２３は、書き込み要求があったことを認識すると、インターフェイス制御部２１１からホスト装置１００から送信された書き込むべきデータを取得する。そして、このデータをＤＭＡ制御部２１５を介してクロスバスイッチ２１２へ送信する。クロスバスイッチ２１２は、受け取ったデータをメモリ制御部２１３とインターフェイス制御部２１４とに転送する。さらに、メモリ制御部２１３は、このデータをメモリ２２に書き込む。また、インターフェイス制御部２１４は、このデータをキャッシュメモリ間転送路３００を介して、キャッシュメモリ部１０に転送する。キャッシュメモリ部１０（キャッシュメモリ制御部１１）は、共有キャッシュメモリ部１２内のメモリ１３、１４、１５、１６にデータを書き込む（ステップＳ１０２）。つまり、ステップＳ１０２では、メモリ２２と共有キャッシュメモリ部１２とに同じデータが書き込まれる。
【００４９】
次に、インターフェイス制御部２１１は、ホスト装置１００に向けて、書き込みが完了した旨の情報を送信する（ステップＳ１０３）。最後にインターフェイス制御部２１１は、書き込み要求をアダプタ間転送路３０１を介して、ディスクアダプタ部４０に転送し（ステップＳ１０４）、書き込み処理を終了する。
【００５０】
キャッシュメモリ部１０内のメモリ制御部１１２は、クロスバスイッチ１１１を介して、書き込みデータをホストアダプタ部２０から受け取ると、メモリ１３、１４、１５、１６のうちのいずれかにデータを書き込む。
【００５１】
一方、ディスクアダプタ部４０は、アダプタ間転送路３０１を介して、ホストアダプタ部２０から書き込み要求を受信すると、書き込み処理を開始する。図６を参照して、この書き込み処理を説明する。
【００５２】
図示するように、ブリッジ４１がホストアダプタ部２０から書き込み要求を受信すると（ステップＳ２０１）、ブリッジ４１はメモリ２２からキャッシュされている書き込まれるべきデータを読み出す（ステップＳ２０２）。そして、ブリッジ４１は、書き込み先として要求されているディスク装置２００に書き込み要求と書き込まれるべきデータとを転送する（ステップＳ２０３）。すると、ディスク装置２００は、そのデータを書き込む。そして、ディスクアダプタ部４０は書き込み処理を終了する。
【００５３】
次に、図７、８を参照して読み出し処理を説明する。それぞれ、図７はホストアダプタ部２０の、図８はディスクアダプタ部４０の読み出し処理を説明するためのフローチャートである。ホスト装置１００からデータの読み出し要求が、ホストアダプタ部２０に送信されると、ホストアダプタ部２０が読み出し処理を開始する。
【００５４】
ホストアダプタ部２０のインターフェイス制御部２１１が、ホスト装置１００からディスク装置からのデータ読み出し要求を受信すると、インターフェイス制御部２１１は、アダプタ制御部２３に要求があったことを送信する。アダプタ制御部２３はメモリ２２に要求されたデータがキャッシュされているかどうかを判別する（図７、ステップＳ３０１）。より詳細には、アダプタ制御部２３がメモリ制御部２１３に、データがメモリ２２にキャッシュされているか否かを判別させする。
【００５５】
インターフェイス制御部２１１が、要求されたデータがメモリ２２に格納（キャッシュ）されていると判別した場合には（ステップＳ３０１：ＹＥＳ）、ＤＭＡ制御部２１５が、メモリ制御部２１３を介して、メモリ２２から要求されたデータを読み出す。そして、クロスバスイッチ２１２とホストデータ転送パス１９０とを介して、要求元であるホスト装置１００に読み出したデータを送信し（ステップＳ３０２）、読み出し処理を終了する。
【００５６】
一方、要求されたデータがメモリ２２に格納されていないと判別した場合には（ステップＳ３０１：ＮＯ）、読み出し要求をディスクアダプタ部４０に転送し（ステップＳ３０３）、ホストアダプタ部２０は、ディスクアダプタ部４０から読み出し完了の旨を示す情報が送信されるまで待機あるいは他のデータ処理（読み出し、書き込み等）を実行する。
【００５７】
その後、ホストアダプタ部２０が、ディスクアダプタ部４０から読み出し完了の旨を示す情報を受信すると（ステップＳ３０４）、ブリッジ２１は当該データをメモリ４２から読み出して、要求元のホスト装置１００へ送信し（ステップＳ３０５）、読み出し処理を終了する。
【００５８】
一方、ディスクアダプタ部４０は、ホストアダプタ部２０から読み出し要求を受信すると、読み出し処理を開始する。まず、ブリッジ４１は、メモリ４２に要求されたデータがキャッシュされているか否かを判別する（図８、ステップ４０１）。
【００５９】
ブリッジ４１が、要求されたデータがメモリ４２にキャッシュされていると判別した場合には（ステップＳ４０１：ＹＥＳ）、読み出しが完了した旨の情報を要求元のホストアダプタ部２０に送信し（ステップＳ４０２）、読み出し処理を終了する。
【００６０】
一方、ブリッジ４１が、要求されたデータがメモリ４２に格納されていないと判別した場合には（ステップＳ４０１：ＮＯ）、読み出し要求をディスク装置２００に転送しディスク装置から要求されたデータを読み出す（ステップＳ４０３）。次に、ブリッジ４１は、読み出したデータをメモリ４２に格納し（ステップＳ４０４）、キャッシュメモリ部１０に送信する（ステップＳ４０５）。最後に、読み出しが完了した旨の情報を要求元のホストアダプタ部２０に送信し（ステップＳ４０６）、読み出し処理を終了する。
【００６１】
上述した動作によれば、データの書き込み時には、ホストアダプタ部２０とキャッシュメモリ部１０とにデータがキャッシュされ、ディスク装置からのデータの読み出し時にはディスクアダプタ部４０とキャッシュメモリ部１０とにデータがキャッシュされ、キャッシュが二重化される。データの読み出し時には、ホストアダプタ部２０とディスクアダプタ部４０とで、データがキャッシュされているか否かを判別する。そして、データがキャッシュされていれば、キャッシュされたデータを要求元のホスト装置へ送信する。このため、従来の構成と比較して、キャッシュメモリ部１０の負荷が軽減されている。
【００６２】
なお、上述の実施例において、要求元のホスト装置と、要求先のディスク装置との組み合わせが変わったとしても、ホストアダプタ部２０とディスクアダプタ部４０との動作は変化しない。また、上述の実施例において、例えば、ホストアダプタ部２０とディスクアダプタ部５０とを経由して、ホスト装置とディスク装置との間でデータを読み書きする場合は、キャッシュメモリ部１０を介して、データを転送する。
【００６３】
図１の構成において、ホストアダプタ部２０が故障により動作停止状態になった場合には、ホスト装置１００、１０１はホストアダプタ部３０を経由することで継続してディスクにアクセスすることが可能である。また、ホストアダプタ部２０がディスクからのデータの読み出しをディスクアダプタ部４０に要求した後にホストアダプタ部２０が動作停止状態になった場合でも、キャッシュメモリ部１０からホストアダプタ部３０を経由して読み出したデータの転送が可能である。ディスクアダプタ部４０、５０のいずれかが動作停止状態になった場合もで、同じことが実現可能である。
【００６４】
また、キャッシュメモリ部１０が故障により動作不能状態になった場合においても、アダプタ間転送路３０１、３０２を経由することで、継続してディスクにアクセスが可能である。
【００６５】
なお、本発明は上記実施の形態に限定されず、種々の変形および応用が可能である。
【００６６】
例えば、ディスク装置に書き込むデータは、データ本体と、そのデータの誤りを検出、訂正するためのパリティや誤り訂正符号である冗長データとから構成されるものとすることができる。例えば、この場合、上述のステップＳ１０２において、インターフェイス制御部２１１は、そのデータをアダプタ制御部２３に転送し、アダプタ制御部２３がそのデータに対して、パリティや誤り訂正符号を生成させ、さらに、インターフェイス制御部２１１は、メモリ２２、キャッシュメモリ部１０やディスク装置２００等に書き込むものとする。また、ステップＳ３０２やＳ３０５において、メモリ２２あるいはディスクアダプタ部４０（メモリ４２）もしくはディスク装置２００、２０１から読み出したデータから、冗長データを取り除いて、要求元のホスト装置へ送信する。なお、冗長データの生成方法としては、その他の既知のＲＡＩＤ（blueundant Arrays of Inexpensive Disks）で用いられている生成方法を利用することができる。
【００６７】
また、キャッシュメモリへの書き込みの方法として、上記実施の形態ではライトスルー方式の場合を説明したが、ライトバック方式など既知の方式を採用してもよい。例えば、ライトバック方式の場合、ディスク装置２００、２０１へのデータの書き込みは、キャッシュされている該データが共有キャッシュメモリ部１０及びメモリ２２などから掃き出される際に行われる。この場合には、図５のステップＳ１０４や図６の各ステップは図５のステップＳ１０１からステップＳ１０３までの処理から独立した処理として実行される。
【００６８】
また、上記ステップＳ２０２とステップＳ３０５とにおいて、共有キャッシュメモリ部１２に格納されているデータを読み出すようにしてもよい。
【００６９】
さらに、上記実施の形態では、各アダプタ部のメモリのみに対して、要求されているデータがキャッシュされているか否かに関し判別を行っていたが、キャッシュメモリ部１０において、この判別を行ってもよい。
【００７０】
また、図１において、ホストアダプタ部２０とディスクアダプタ部５０間およびホストアダプタ部３０とディスクアダプタ部４０間をアダプタ間転送路３０１、３０２と同等のデータ転送路にて接続してもよい。このように接続すれば、キャッシュメモリ部１０が故障により動作不能状態になった場合においても転送路がアダプタ間転送路３０１、３０２に限定されずに転送動作を行うことが可能である。
【００７１】
キャッシュメモリ間転送路３００、およびアダプタ間転送路３０１、３０２が高速転送が可能なパラレルバスである場合には、図１のキャッシュメモリ間転送路３００は全アダプタが接続される共有バスで実現してもよい。また、図１のアダプタ間転送路３０１、３０２も全アダプタが接続される共有バスで実現してもよい。
【００７２】
図１ではホストアダプタ部２０とディスクアダプタ部５０、およびホストアダプタ部３０とディスクアダプタ部４０が接続されてはいなかったが、これらの間を接続してもよい。また、図１においては、キャッシュメモリ部１０は１つしか搭載していないが、これも複数搭載し多重化してもよい。
【００７３】
上記実施の形態では、ホストアダプタ部の数およびディスクアダプタ部の数をそれぞれ２つとしたが、それ以上であってもよい。この場合、各ホストアダプタ部は、アダプタ間転送路を介して１つ以上のディスクアダプタ部と接続されるものとする。また、ディスクアダプタ部も１つ以上のホストアダプタ部と接続される。
【００７４】
また、アダプタ制御部２３、４３等が多重化されていてもよい。メモリ２２、４２等も同様である。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施の形態にかかるディスクアレイ装置のブロック図である。
【図２】図１のキャッシュメモリ部の内部構成を示すブロック図である。
【図３】図１のホストアダプタ部の内部構成を示すブロック図である。
【図４】図１のディスクアダプタ部の内部構成を示すブロック図である。
【図５】本発明の動作例にかかるホストアダプタ部の書き込み処理を説明するためのフローチャートである。
【図６】本発明の動作例にかかるディスクアダプタ部の書き込み処理を説明するためのフローチャートである。
【図７】本発明の動作例にかかるホストアダプタ部の読み出し処理を説明するためのフローチャートである。
【図８】本発明の動作例にかかるディスクアダプタ部の読み出し処理を説明するためのフローチャートである。
【図９】従来のディスクアレイ装置のブロック図である。
【符号の説明】
【００７６】
１      ディスクアレイ装置
２      制御部
１０、１０ａ、１０ｂ  キャッシュメモリ部
１１、１１ａ、１１ｂ  キャッシュメモリ制御部
１１１  クロスバスイッチ
１１２  メモリ制御部
１２    共有キャッシュメモリ部
１３、１４、１５、１６  メモリ
２０、３０  ホストアダプタ部
２１、４１  ブリッジ
２１１    インターフェイス制御部
２１２    クロスバスイッチ
２１３    メモリ制御部
２１４    インターフェイス制御部
２１５    ＤＭＡ制御部
２２、４２  メモリ（個別キャッシュメモリ）
２３、４３  アダプタ制御部
４０、５０  ディスクアダプタ部
１００、１０１  ホスト装置
１９０、１９１  ホストデータ転送パス
２００、２０１  ディスク装置
２９０、２９１  ディスクデータ転送パス
３００  キャッシュメモリ間転送路
３０１、３０２  アダプタ間転送路
【図１】
0004698145.tif 000002
【図２】
0004698145.tif 000003
【図３】
0004698145.tif 000004
【図４】
0004698145.tif 000005
【図５】
0004698145.tif 000006
【図６】
0004698145.tif 000007
【図７】
0004698145.tif 000008
【図８】
0004698145.tif 000009
【図９】
0004698145.tif 000010