(57)【要約】　　　（修正有）【課題】デイスクアレイ装置のネットワークスイッチには、入出力チャネル、デイスクアダプタ、キャッシュメモリ間のトラフィックが競合し、ホストコンピュータへの応答速度を低下させる要因となっていた。このような観点から、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムを提供する。【解決手段】外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、入出力チャネルごとに用意されそれぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、ディスクドライブと、ディスクドライブに対してデータ入出力を行うディスク制御手段と、入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、を備えるディスクアレイ装置を提供する。【選択図】　　　図１１
2004139353.tif 000002
【特許請求の範囲】
【請求項１】
外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項２】
外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行する手段と、
前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御する手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項３】
請求項２に記載のディスクアレイ装置において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶しているデータを無効化する処理が含まれること、
を特徴とする請求項２に記載のディスクアレイ装置。
【請求項４】
請求項２に記載のディスクアレイ装置において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、当該キャッシュメモリの当該データを更新するとともに、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶されているデータについても更新する処理が含まれること、
を特徴とする請求項２に記載のディスクアレイ装置。
【請求項５】
請求項２に記載のディスクアレイ装置において、
前記ディスクドライブの記憶領域上には区画設定された論理的な記憶領域である複数の論理ボリュームが設定され、
前記データ入出力要求には当該データ入出力要求の処理対象となる論理ボリュームの識別子が設定され、
前記実行順の制御を、前記データ入出力要求に設定されている前記論理ボリュームの識別子に応じて行う手段を備えること、
を特徴とする請求項２に記載のディスクアレイ装置。
【請求項６】
請求項２に記載のディスクアレイ装置において、
他のディスクアレイ装置と接続する手段と、
データ入出力要求としてデータ書き込み要求を受信した場合に、この要求で指定されるデータを自身のディスクドライブに書き込むとともにそのデータについての書き込み要求を前記他のディスクアレイ装置に送信する手段を備え、
前記入出力チャネルは、データ書き込み要求を受信した場合に、
自身のディスクドライブにデータを書き込む動作モードと、
他のディスアレイ装置に前記書き込み要求を送信する動作モードと、
のいずれかのモードで動作し、
前記実行順の制御を、前記外部装置からのデータ入出力要求が入力される前記入出力チャネルが、前記いずれの動作モードで動作しているかに応じて行う手段と、を備えること、
を特徴とする請求項２に記載のディスクアレイ装置。
【請求項７】
外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行する手段と、
を備えるディスクアレイ装置の制御方法において、
前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御すること、
を特徴とするディスクアレイ装置の制御方法。
【請求項８】
請求項７に記載のディスクアレイ装置の制御方法において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶しているデータを無効化する処理が含まれること、
を特徴とする請求項７に記載のディスクアレイ装置の制御方法。
【請求項９】
請求項７に記載のディスクアレイ装置の制御方法において、
前記整合性確保処理には、
ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、当該キャッシュメモリの当該データを更新するとともに、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶されているデータについても更新する処理が含まれること、
を特徴とする請求項７に記載のディスクアレイ装置の制御方法。
【請求項１０】
請求項７に記載のディスクアレイ装置の制御方法において、
前記ディスクドライブの記憶領域上には区画設定された論理的な記憶領域である複数の論理ボリュームが設定され、
前記データ入出力要求には当該データ入出力要求の処理対象となる論理ボリュームの識別子が設定され、
前記実行順の制御は、前記データ入出力要求に設定されている前記論理ボリュームの識別子に応じて行われることを特徴とする請求項７に記載のディスクアレイ装置の制御方法。
【請求項１１】
請求項７に記載のディスクアレイ装置の制御方法において、
ディスクアレイ装置には他のディスクアレイ装置が接続し、
ディスクアレイ装置は、データ入出力要求としてデータ書き込み要求を受信した場合に、この要求で指定されるデータを自身のディスクドライブに書き込むとともにそのデータについての書き込み要求を前記他のディスクアレイ装置に送信し、
前記入出力チャネルは、データ書き込み要求を受信した場合に、
自身のディスクドライブにデータを書き込む動作モードと、
他のディスアレイ装置に前記書き込み要求を送信する動作モードと、
のいずれかのモードで動作し、
前記実行順の制御は、前記外部装置からのデータ入出力要求が入力される前記入出力チャネルが、前記いずれの動作モードで動作しているかに応じて行われることを特徴とする請求項７に記載のディスクアレイ装置の制御方法。
【請求項１２】
外部装置と、外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、ディスクドライブと、ディスクドライブに対してデータ入出力を行うディスク制御手段と、入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行するディスクアレイ装置とを備え、
前記ディスクアレイ装置が、前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御する手段を備えること、
を特徴とするストレージシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムに関する。
【０００２】
【従来の技術】
一般的なディスクアレイ装置では、ディスクドライブへのデータの入出力を制御するディスクアダプタと、ホストコンピュータとの接続を制御する入出力チャネルと、キャッシュメモリとがディスクアレイ装置の内部に設けられたネットワークスイッチを介して接続する構成となっている。
【０００３】
【特許文献１】
特開２００１−２９０７９０号公報
【０００４】
【発明が解決しようとする課題】
このため、ディスクアレイ装置のネットワークスイッチには、入出力チャネル、ディスクアダプタ、キャッシュメモリの間でのトラフィックが競合し、これによりネットワークスイッチの利用率が高くなり、これがホストコンピュータへの応答速度を低下させる要因となっていた。
本発明はこのような観点からなされたもので、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムを提供することを目的とする。
【０００５】
【課題を解決するための手段】
この目的を達成するための主たる発明であるディスクアレイ装置は、
外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、
入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、
ディスクドライブと、
ディスクドライブに対してデータ入出力を行うディスク制御手段と、
入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、
を備えることを特徴とする。
なお、本発明の他の特徴については、本明細書及び添付図面の記載により明らかにする。
【０００６】
【発明の実施の形態】
＝＝＝開示の概要＝＝＝
以下の開示により、少なくともつぎのことが明らかにされる。
前述の目的に対応して、本発明者らは、上記のように、入出力チャネルごとにキャッシュメモリを設けることを着想した。図１にそのように構成したディスクアレイ装置１を用いて構成したストレージシステムの概略構成を示す。この構成では、ホストコンピュータからのデータ入出力要求の対象となるデータが、そのデータ入出力要求を受信した入出力チャネル１０ａ〜１０ｄに対応して用意されているキャッシュメモリ１１ａ〜１１ｄに存在する場合には、そのデータをホストコンピュータに返すことができるので、キャッシュメモリ１１ａ〜１１ｄにデータが存在する場合には、ホストコンピュータに迅速に応答を返すことが可能である。
【０００７】
ところで、図１の構成において、例えば、異なる入出力チャネル１０ａ〜１０ｄで受信したデータ入出力要求により、ディスクドライブの同一の記憶領域に記憶されているデータに対してアクセスがあると、ディスクドライブのある記憶領域に記憶されていたデータが複数のキャッシュメモリ１１ａ〜１１ｄに同時に記憶されることになる。
【０００８】
ここでこの状態において、例えば、ある入出力チャネル１０ａ〜１０ｄが受信したデータ入出力要求に起因して前記データに対する更新が行われる場合には、それぞれのキャッシュメモリ１１ａ〜１１ｄが記憶しているデータの整合性を保つために、例えば、他のキャッシュメモリ１１ａ〜１１ｄに記憶しているデータを無効化してしまう処理（無効化処理）や、他のキャッシュメモリ１１ａ〜１１ｄに記憶しているデータを書き換える、といった整合性を確保するための処理を行う必要がある。
【０００９】
しかしながら、この整合性を確保するための処理においては、無効化のための通信や各キャッシュメモリ１１ａ〜１１ｄへの更新後のデータの通知のための通信などによりネットワークスイッチのトラフィックを増大させ、これによりホストコンピュータに対する応答速度が低下し、入出力チャネル１０ａ〜１０ｄごとにキャッシュメモリ１１ａ〜１１ｄを設けたことにより得られる効果が希釈することになる。
【００１０】
ところで、整合性を確保するための処理は、必ずしも必要でないこともある。例えば、ある記憶領域に記憶されているデータに対するアクセスが、特定の入出力チャネル１０ａ〜１０ｄを介してしか行われないような場合である。
【００１１】
また、同じ記憶領域に記憶されているデータに対して複数の入出力チャネル１０ａ〜１０ｄからのアクセスが想定される場合であっても、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、必ずしも整合性を確保する必要がなかったり、また、必要があったとしても厳密な整合性までは要求されないこともある。
【００１２】
そこで、本発明の他の一態様では、外部装置からのデータ入出力要求を受信する複数の入出力チャネルと、入出力チャネルごとに用意され、それぞれ対応する入出力チャネルに接続する複数のキャッシュメモリと、ディスクドライブと、ディスクドライブに対してデータ入出力を行うディスク制御手段と、入出力チャネルとディスク制御手段とを通信可能に接続する通信手段と、各キャッシュメモリに記憶しているデータに関する整合性を確保するための整合性確保処理を実行する手段と、を備えるディスクアレイ装置において、前記データ入出力要求を受信した場合に、そのデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と前記整合性確保処理との実行順を制御する手段を設けることとした。
【００１３】
なお、整合性確保処理には、例えば、ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶しているデータを無効化する処理や、ある前記キャッシュメモリに記憶しているデータについての更新が行われる場合に、当該キャッシュメモリの当該データを更新するとともに、そのデータが記憶されている前記ディスクドライブの記憶領域と同一の記憶領域に記憶される他の前記キャッシュメモリに記憶されているデータについても更新する処理などがある。
【００１４】
前述したように、整合性を確保するための処理は、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、必ずしも必要でなかったり、また、必要があるとしても厳密な整合性までは要求されないことがある。そこで、本発明のように、ホストコンピュータから送信されたデータ入出力要求の内容に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と整合性確保処理との実行順を制御するようにし、整合性を確保する必要がある場合とそうでない場合とで実行順を制御することで、ディスクアレイ装置を効率よく利用することが可能となる。具体的には、例えば、整合性を確保するための処理が必ずしも必要で無い場合には、ホストコンピュータへの応答処理を行った後に整合性確保処理を実行することで、ホストコンピュータへの応答を迅速に行うようにすることができる。
【００１５】
また、ディスクドライブの記憶領域上に論理的な記憶領域である複数の論理ボリュームが設定され、データ入出力要求に当該データ入出力要求の処理対象となる論理ボリュームの識別子が設定されている場合に、前記実行順の制御は、前記データ入出力要求に設定されている前記論理ボリュームの識別子に応じて行われるようにすることもできる。
【００１６】
このように論理ボリュームの識別子により実行順を制御することができることで、設定方法のバリエーションが増え、例えば、ホストコンピュータで動作するアプリケーションごとに個別に論理ボリュームを割り当てているような場合には、アプリケーションプログラムの性質に応じて、前記実行順の制御に関する設定を簡単に行うことができる。
【００１７】
また、本発明の他の態様では、ディスクアレイ装置には他のディスクアレイ装置が接続しており、ディスクアレイ装置はデータ入出力要求としてデータ書き込み要求を受信した場合に、この要求で指定されるデータを自身のディスクドライブに書き込むとともにそのデータについての書き込み要求を前記他のディスクアレイ装置に送信し、前記入出力チャネルは、データ書き込み要求を受信した場合に、自身のディスクドライブにデータを書き込む動作モード（ノーマルモード）と、他のディスアレイ装置に前記書き込み要求を送信する動作モード（コピーモード）と、のいずれかのモードで動作し、前記実行順の制御は、前記外部装置からのデータ入出力要求が入力される前記入出力チャネルが、前記いずれの動作モードで動作しているかに応じて行われることを特徴とする。
【００１８】
ここで例えば、コピーモードで動作中の入出力チャネルで受信したデータ入出力要求の処理は、ノーマルモードで動作中の入出力チャネルで受信したデータ入出力要求の処理に比べて整合性確保の必要性が少ないような場合には、例えば、ホストコンピュータへの応答処理を行った後に整合性確保処理を実行することで、ホストコンピュータへの応答を迅速に行うようにすることができる。
【００１９】
＝＝＝詳細＝＝＝
＜システム構成＞
図１のストレージシステムの構成について詳述する。ディスクアレイ装置１は、例えば、ＳＡＮ（Ｓｔｏｒａｇｅ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）やＬＡＮ（Ｌｏｃａｌ　Ａｒｅａ　Ｎｅｔｗｏｒｋ）などの通信手段を介して外部装置であるホストコンピュータに接続している。ディスクアレイ装置１は、ホストコンピュータとの間で通信を行う４つの入出力チャネル１０ａ〜１０ｄと、入出力チャネル１０ａ〜１０ｄごとに用意されそれぞれ対応する入出力チャネルに接続するキャッシュメモリ１１ａ〜１１ｄ、ディスクドライブ１４ａ〜１４ｄ、ディスクドライブ１４ａ〜１４ｄに接続しディスクドライブ１４ａ〜１４ｄへのデータの入出力を制御する４つのディスクアダプタ１３ａ〜１３ｄ、入出力チャネル１０ａ〜１０ｄとディスクアダプタ１３ａ〜１３ｄの間を接続する二つのネットワークスイッチ１２ａ、１２ｂ、などを備えて構成される。
【００２０】
なお、図１では、ネットワークスイッチ１２ａ、１２ｂは複数設けられ、入出力チャネル１０ａ〜１０ｄとディスクアダプタ１３ａ〜１３ｄの間の経路には冗長性を持たせているが、ネットワークスイッチは単数で構成してもよい。４つの入出力チャネル１０ａ〜１０ｄには、ホストコンピュータから、データ要求やデータ書き込み要求などのデータ入出力要求が送信されてくる。ディスクアレイ装置１は、入出力チャネル１０ａ〜１０ｄが受信したデータ入出力要求に応じて、ディスクドライブ１４ａ〜１４ｄに対するデータの読み出しや書き込みを行い、必要に応じて、その結果や読み出したデータなどを、ホストコンピュータに送信する。
【００２１】
＜入出力チャネル＞
図２は入出力チャネル１０ａ〜１０ｄの構成の例である。入出力チャネル１０ａ〜１０ｄはそれぞれプロセッサ２０１を備える。　またプロセッサ２０１で実行される制御プログラムや、処理に必要な情報（データ）を記憶するローカルメモリ２０２を備える。さらにホストコンピュータと接続するためのホストＩ／Ｆ回路２０４や、ネットワークスイッチ１２ａ，１２ｂと接続するためのネットワーク接続回路２０３，２０３ｂを備える。
【００２２】
これらは高速な信号線バスであるプロセッサバス２０５で接続される。さらにキャッシュメモリ１１ａ〜１１ｄも、このプロセッサバス２０５に接続される。この構成によりプロセッサ２０１はキャッシュメモリ１１ａ〜１１ｄに対して読み出しや書き込みを高速に行うことができる。
【００２３】
なお、図２ではローカルメモリ２０２に格納した制御プログラムをプロセッサ２０１で実行することにより、入出力チャネル１０ａ〜１０ｄの処理を行うことを想定している。制御プログラムの一部また全部の機能をハードウェア化することも考えられる。
【００２４】
＜ディスクアダプタ＞
図３はディスクアダプタ１３ａ〜１３ｄの構成の一例である。ディスクアダプタ１３ａ〜１３ｄはそれぞれプロセッサ３０１を備えている。またプロセッサ３０１で実行される制御プログラムや、処理に必要な情報（データ）を記憶するために、ローカルメモリ３０２を備えている。
【００２５】
さらにディスクドライブ１４ａ〜１４ｄと直接接続するディスクドライブＩ／Ｆ回路３０４や、ネットワークスイッチ１２ａ，１２ｂと接続するためのネットワーク接続回路３０３ａ，３０３ｂを備える。これらはプロセッサ３０１と高速な信号線バスであるプロセッサバス３０５で接続される。
【００２６】
なお、図３ではローカルメモリ３０２に格納した制御プログラムをプロセッサ３０１で実行することにより、ディスクアダプタの処理を行うことを想定しているが、入出力チャネルの場合と同様に、制御プログラムの一部また全部の機能をハードウェア化することも考えられる。
【００２７】
＜キャッシュメモリ＞
図４は、キャッシュメモリ１１ａ〜１１ｄの構成の例である。キャッシュメモリは検索制御部４０とメモリ部４１とを備え、メモリ部４１内に各々のデータを、有効ビットＶ　４０１、書き換えビットＤ　４０２、データブロック番号４０３、データ内容４０４の組で記憶している。
【００２８】
入出力チャネル１０ａ〜１０ｄは、アドレスバス４１１によってホストコンピュータに要求されたデータブロック番号を通知し、メモリ部４１内でデータブロック番号４０３が一致し、有効ビットＶ　４０１が有効状態（例えば’１’）であるデータがあるかどうか検索制御部４０に検索させる。
【００２９】
検索した結果、データが見つかると返答信号バス４１２によってヒット信号が伝達され、見つかったことが報告される。またデータバス４１３によって、データ内容４０４が読み出される。データの書き込みの場合には、制御コマンドバス４１４によって書き込みコマンド信号が通知され、データバス４１３によって伝達されるデータが当該データ内容４０４に書き込まれて、書き換えビットＤ　４０２がセット状態（例えば’１’）になって書き換えが生じたことが記録される。検索した結果、データが見つからない場合には、返答信号バス４１２によってミス信号が伝達され、見つからなかったことが報告される。
【００３０】
ディスクアダプタ１３ａ〜１３ｄからキャッシュメモリ上のデータを無効化するための無効化信号が送信されてきた場合には、同様に入出力チャネル１０ａ〜１０ｄは、アドレスバス４１１によって当該データブロック番号を通知し、メモリ部４１内でデータブロック番号４０３が一致し、有効ビットＶ　４０１が有効状態（例えば’１’）であるデータがあるかどうか検索制御部４０に検索させる。
【００３１】
検索した結果見つかった場合、書き換えビットＤ　４０２の内容も調べる。もし書き換えビットＤ　４０２がセット状態である場合には、返答信号バス４１２によってダーティヒット信号が伝達される。
【００３２】
ダーティヒット信号を受け取った入出力チャネル１０ａ〜１０ｄは、データ内容４０４をデータバス４１３によって読み出し、無効化信号を送信してきたディスクアダプタ１３ａ〜１３ｄに返送する。書き換えビットＤ　４０２がセット状態でない場合には、返答信号バス４１２によってクリーンヒット信号が伝達される。
【００３３】
これらの二つの場合において、その後、入出力チャネル１０ａ〜１０ｄは、再びアドレスバス４１１によって当該データブロック番号、制御コマンドバス４１４によって無効化コマンド信号を通知し、有効ビットＶ　４０１を無効状態（例えば’０’）としてそのデータの組を無効とする。
【００３４】
また検索した結果見つからなかった場合には、返答信号バス４１２によってミス信号が伝達されて、見つからなかったことが入出力チャネル１０ａ〜１０ｄに報告される。これらすべての場合において、最後に入出力チャネル１０ａ〜１０ｄは無効化信号を送信してきたディスクアダプタ１３ａ〜１３ｄに無効化処理終了信号を返送して、無効化に関する処理が終了したことを伝える。
【００３５】
なお、書き換えビットＤ　４０２がセット状態になって、ディスクドライブから読み出したデータの書き換えが生じたことが記録された場合、上述の無効化によるほか、適当な時間経過、もしくはキャッシュメモリが溢れた時に、ディスクアダプタ１３ａ〜１３ｄに書き換えられたデータを送り、ディスクドライブに書き戻しを行わせたら当該書き換えビットＤ　４０２はリセット状態（例えば’０’）にし、書き換えが生じたという記録を消去する。
【００３６】
なお、図４では、検索制御部４０が実際にメモリ部４１の検索制御を行うとしたが、メモリ部４１だけを備え、検索制御部４０は特に備えずに、同等の機能を入出力チャネル１０ａ〜１０ｄのプロセッサ２０１に行わせるようにすることもできる。
【００３７】
また図４では、アドレスバス４１１、返答信号バス４１２、データパス４１３、制御コマンドバス４１４の各種の信号バスがあって、これらが統合されて入出力チャネル１０ａ〜１０ｄに接続されるとしたが、単一の信号バスを備え、アドレスバス４１１、返答信号バス４１２、データパス４１３、制御コマンドバス４１４の各種の信号バスに相当する信号コマンドが該単一の信号パス上を伝達されるようにすることもできる。
【００３８】
図４の例では、単一のメモリ部４１に有効ビットＶ　４０１、書き換えビットＤ　４０２、データブロック番号４０３、データ内容４０４のデータの組がすべて格納され、当該データがあるかどうかを検索する場合には、メモリ部４１全体を検索する必要がある。このため、メモリ部４１の容量が大きくなってくると検索に時間がかかることが考えられる。
【００３９】
このような場合には図５のようにすることが考えられる。　図５では、制御検索部５０と、タグ部５１、データ部５２より構成され、タグ部５１には、有効ビットＶ　５０１、書き換えビットＤ　５０２、データブロック番号５０３、キャッシュ内データ位置５０４が格納される。データ部５２にはデータ内容５０５が格納される。
タグ部５１において、有効ビットＶ　５０１、書き換えビットＤ　５０２、データブロック番号５０３は、図４で示したものと同等の内容を記録する。キャッシュ内データ位置５０４には、データ部５２における当該データの位置が記録される。
データ部５２よりデータ内容を取り出す場合には、当該データブロック番号５０３に対応するキャッシュ内データ位置５０４より当該データの位置がデータ位置信号５１５によってデータ部５２に伝達され、データバス５１３に読み出される。
書き込みの時も同様にデータ位置信号５１５によって指定された位置にデータバス５１３によって伝達されたデータが書き込まれる。　その他のアドレスバス５１１、制御コマンドバス５１４、返答信号バス５１２によって伝達される信号等は、図４の場合と同等である。
【００４０】
このような構成を採ることにより、図５の例では、当該データの有無を検索する際にタグ部５１内のみを検索すればよく、データ部５１２の容量が大きくなっても、検索時間にはあまり影響しないようにすることが可能である。
すなわち、図４の場合には、メモリ部４１にデータ内容も一緒に格納されるため、データブロック数が多くなると多数の半導体チップが必要になり、多数の半導体チップに渡って検索する必要が生じ、検索に要する時間が大きくなる。
これに対し図５の場合には、データ内容を記憶するデータ部が格納される半導体チップと、タグ部を格納する半導体チップは別々になり、タグ部を格納する半導体チップの数は少なくてすみ、少ない半導体チップに渡って検索すればよいため、検索に要する時間は小さくなる。
【００４１】
なお、図５では、検索制御部５０が実際にタグ部５１の検索制御を行うとしたが、図４の例と同様に、タグ部５１、データ部５２だけを備え、検索制御部５０は特に備えずに、同等の機能を入出力チャネル１０ａ〜１０ｄのプロセッサ２０１で行わせることも考えられる。
【００４２】
また図５では、アドレスバス５１１、返答信号バス５１２、データパス５１３、制御コマンドバス５１４の各種の信号バスがあって、これらが統合されて入出力チャネル１０ａ〜１０ｄに接続されるとしたが、やはり図４の例と同様に、単一の信号バスを備え、アドレスバス５１１、返答信号バス５１２、データパス５１３、制御コマンドバス５１４の各種の信号バスに相当する信号コマンドが該単一の信号パス上を伝達されるようにしてもよい。
【００４３】
＜データテーブル＞
図６は、入出力チャネル１０ａ〜１０ｄにおいて、ホストコンピュータから要求されたデータブロック番号のデータが自分に接続されたキャッシュメモリ１１ａ〜１１ｄに存在しなかったとき、どのディスクアダプタ１３ａ〜１３ｄに当該データを要求すればよいか記録した各入出力チャネルに設けられたデータテーブルの形式の例である。
【００４４】
データブロック番号とディスクアダプタ番号が組みとなって記録され、当該入出力チャネル１０ａ〜１０ｄにそれぞれ接続されたホストコンピュータとの間で予め取り決めた分だけのデータブロック番号についての組みが存在する。
また、ある個数（例えば１６個）の連続したデータブロック番号を同一のディスクアダプタに接続されたディスクドライブに格納することとして、その個数分（例えば１６個）まとめ、先頭のディスクドライブ番号とディスクアダプタ番号の組みを作ってもよい。このようにすると、例えば１６分の１にデータテーブルの大きさを縮小することができる。
なお、このようなデータテーブルは、例えば図２におけるローカルメモリ２０２に格納され、プロセッサ２０１によって必要に応じて読み書きされる。
【００４５】
図７は、ディスクアダプタ１３ａ〜１３ｄにおいて、入出力チャネル１０ａ〜１０ｄから要求されたデータブロック番号のデータが、ディスクドライブ１４ａ〜１４ｄのどのディスクドライブのどの位置に存在するかを記録したデータテーブルの形式の例である。
【００４６】
データブロック番号、ディスクドライブ番号、ドライブ内データ位置、さらにはデータを送信した先の入出力チャネルを、送信先入出力チャネル番号として、これらを組みとして記録する。また未だ当該データブロック番号のデータをどの入出力チャネルにも送信したことがなければ、この送信先入出力チャネル番号としては、予め定める無効な入出力チャネル番号を記録しておく。あるいは、送信した入出力チャネルのキャッシュメモリが溢れて当該データが追い出され削除されたときにも、この送信先入出力番号として、無効な入出力チャネル番号を設定してもよい。
【００４７】
このデータテーブルは、それぞれのディスクアダプタ１３ａ〜１３ｄにおいて、ディスクドライブ１４ａ〜１４ｄのうちのそれぞれのディスクアダプタ１３ａ〜１３ｄに接続されたディスクドライブに格納されているデータブロック番号の分だけ持てばよい。なお、このデータテーブルは、実際には例えば図３におけるローカルメモリ３０２に格納され、プロセッサ３０１によって必要に応じ読み書きされる。
【００４８】
＜コマンド形式＞
キャッシュメモリに記憶しているデータに関する整合性確保処理において用いられる無効化コマンドと更新コマンドの、それぞれのコマンド形式について説明する。
【００４９】
図８は、ディスクアダプタ１３ａ〜１３ｄにおいて、入出力チャネル１０ａ〜１０ｄのうちの一つに一旦送信したデータを他の入出力チャネル１０ａ〜１０ｄから要求されたときに、先に送った方の入出力チャネル１０ａ〜１０ｄのキャッシュメモリ１１ａ〜１１ｄ内のデータを無効化するために当該入出力チャネル１０ａ〜１０ｄに向けて送信する無効化コマンドのコマンド形式の例である。無効化コマンドは、無効化コマンドコードと、無効化されるデータブロック番号からなる。
【００５０】
図９は、同一データを持つ複数の入出力チャネル１０ａ〜１０ｄ間である入出力チャネル１０ａ〜１０ｄのデータの書き換えが起こった場合に、これを当該ディスクアダプタ１３ａ〜１３ｄを通じてディスクドライブ１４ａ〜１４ｄに書き戻すと同時に、他の入出力チャネル１０ａ〜１０ｄのキャッシュメモリ１１ａ〜１１ｄのデータも書き換えて更新する場合に、図８の無効化コマンドに替えて、ディスクアダプタ１３ａ〜１３ｄより入出力チャネル１０ａ〜１０ｄに送信する更新コマンドのコマンド形式の例である。更新コマンドを表すコマンドコード、当該データブロック番号に加えて、新しくデータ内容を更新するための更新データからなる。
【００５１】
＜処理説明＞
つぎに、ホストコンピュータから送られてくる、データ要求やデータ書き込み要求などのデータ入出力要求を受信した場合に行われるディスクアレイ装置１の処理について詳述する。
【００５２】
図１０は、ホストコンピュータからディスクアレイ装置１に送られてくるデータ入出力要求のデータフォーマットの一例を示す。ヘッダにはホストコンピュータのＩＤなどが設定される。ポートＩＤには、そのデータ入出力要求の処理対象となる論理ボリュームが接続するポートのポートＩＤが設定される。ここで論理ボリュームとは、ディスクドライブ１４ａ〜１４ｄの記憶領域上に区画設定された論理的な記憶領域である。ＬＵＮ（Ｌｏｇｉｃａｌ　Ｕｎｉｔ　Ｎｕｍｂｅｒ）の欄には、当該データ入出力要求が対象とする論理ボリュームの識別子が設定される。アドレスの欄およびデータ長の欄は、例えば、データ入出力要求がデータ要求である場合に設定され、この場合、アドレスの欄には読み出し先のデータが格納されている論理ボリュームの先頭アドレスが設定され、また、データ長の欄には読み出し対象となるデータのデータ長が設定される。
【００５３】
モードの欄には、そのデータ入出力要求に対するホストコンピュータへの応答処理と、各キャッシュメモリのデータの整合性確保処理の実行順を制御するためにディスクアレイ装置１に参照される値が設定される。この実施例では、モードの欄には、「０」または「１」のいずれかの値が設定されるものとする。
【００５４】
なお、「０」は、例えば、そのデータ入出力要求の処理について、各キャッシュメモリに記憶しているデータの整合性を確保することよりも、ホストコンピュータに対する応答速度が要求される場合に設定される。また、「１」は、例えば、そのデータ入出力要求の処理について、各キャッシュメモリに記憶しているデータの整合性を確保する必要がある場合に設定される。
【００５５】
＜データ要求＞
まず、ホストコンピュータから送信されてくるデータ入出力要求として、データ要求を受信した場合にディスクアレイ装置１において行われる処理を、図１１に示すフローチャートとともに説明する。なお、ここではデータ要求を入出力チャネル１０ａが受信した場合について説明するが、他の入出力チャネル１０ｂ〜１０ｄが受信した場合でも同様である。
【００５６】
ホストコンピュータからデータ要求を受信（１１１０）した入出力チャネル１０ａは、まず、読み出し対象となるデータがキャッシュメモリ１１ａ上に存在するかどうかを調べる（１１１２）。ここで存在する場合（１１１２：ＹＥＳ）には、入出力チャネル１０ａはそのデータをキャッシュメモリ１１ａから読み出して、これをホストコンピュータに送信する（１１１３）。
【００５７】
一方、キャッシュメモリ１１ａに要求されたデータが存在しない場合（１１１２：ＮＯ）には、入出力チャネル１０ａはデータ要求で指定されているデータブロック番号に基づいて当該データが存在するディスクドライブに接続されているディスクアダプタ１３ａ〜１３ｄを決定し、データ要求をネットワークスイッチ１２ａまたは１２ｂを用いてそのディスクアダプタ１３ａ〜１３ｄに送信する。ディスクアダプタ１３ａは、データ要求を受け取ると、そのデータブロック番号に基づいて具体的にデータが存在するディスクドライブ１４ａ〜１４ｄ内のディスクドライブを決定し（１１１４）、そのディスクドライブからのデータの読み出しを開始する（１１１５）。
【００５８】
ここでデータ要求のモードの欄の内容を調べ（１１１６）、モード欄に「０」が設定されていた場合（１１１６：ＹＥＳ）には、ディスクドライブから読み出したデータを入出力チャネル１０ａに送信（１１１７）した後、（１１１８）以下の処理に進む。
一方、モード欄に「１」が設定されていた場合（１１１６：ＮＯ）には、そのまま（１１１８）以下の処理に進む。
【００５９】
（１１１８）では、ディスクアダプタ１３ａが、ここで要求されているデータを他の入出力チャネル１０ａとは別の入出力チャネル１０ｂ〜１０ｄに以前に送信したことがあるかどうかを検索する。この検索は、具体的には、ディスクアダプタ１３ａにおいて、図７のデータテーブルの送信先入出力チャネル番号に、有効な入出力チャネルの番号が登録されているかどうかを検索することにより行われる。
【００６０】
ここで他の入出力チャネルのキャッシュメモリに送ったことがない場合には、（１１２５）へ進む。一方、他の入出力チャネルのキャッシュメモリに送ったことがある場合には、その入出力チャネルに図８に示した無効化コマンドを送信し（１１２０）、当該データをその入出力チャネルのキャッシュから削除させる。
【００６１】
この際その入出力チャネルのキャッシュメモリにおいて当該データの書き換えが生じてまだその書き換えられたデータがディスクドライブに書き戻していなかったかどうか判定される（１１２１）。この判定は、具体的には図４または図５における書き換えビットＤ　４０２または５０２を検査することにより行われる。書き戻していない場合には、その入出力チャネルにおいて書き戻していないデータをそのキャッシュメモリから読み出し、当該ディスクアダプタに返送させる。そして、当該ディスクアダプタは、（１１１５）で開始したディスクドライブからのデータの読み出しが完了するのを待って、ディスクドライブから読み出されたデータの上に、入出力チャネルから返送されてきた書き換えデータを上書きする（１１２２）。
【００６２】
つぎにディスクアダプタは、その入出力チャネルから無効化処理完了信号が送信されてくるのを待ち、無効化されたことの確認を行う（１１２３）。
【００６３】
つぎに図７に示したデータテーブルにおいて、送信先入出力チャネル番号に予め定める無効なチャネル番号を設定することで、データ送信先の記録を削除する（１１２４）。なお、この後この送信先入出力チャネル番号には、後述する（１１２５）で新たにデータを送信した入出力チャネル番号を記録するので、この（１１２４）の処理はなくてもよい。
【００６４】
つぎに、（１１１０）新たにデータを要求してきた入出力チャネルのキャッシュメモリにデータを送信することを決定し、この入出力チャネルを記録する。具体的には、この記録は、図７のようなデータテーブルの送信先入出力チャネル番号に有効なチャネル番号で記録することにより行われる。
【００６５】
つぎに、もしまだ（１１１５）で開始したディスクドライブの読み出しが完了していなかった場合には、読み出しが完了するまで待ち、読み出したデータを当該入出力チャネルに送信して、その入出力チャネルに接続されたキャッシュメモリに格納させる（１１２６）。
【００６６】
つぎにディスクアダプタは、データ要求のモードの欄の内容を調べ（１１２７）、モード欄に「１」が設定されていた場合（１１２７：ＹＥＳ）には、ディスクドライブから読み出したデータを入出力チャネル１０ａに送信（１１２８）した後、（１１２９）以下の処理に進む。一方、モード欄に「０」が設定されていた場合（１１２７：ＮＯ）には、そのまま（１１２９）以下の処理に進む。
【００６７】
（１１２９）では、（１１２２）を通過し、ディスクドライブから読み出したデータに対して上書きが生じたかどうかを判定する。もし上書きが生じた場合には、上書きされたデータを当該ディスクドライブへ書き戻す（１１３０）。
【００６８】
なお、以上の処理において、モード欄の設定値が「１」であった場合、すなわち、ホストコンピュータに応答を返すより前に無効化処理を行う場合には、ディスクドライブからのデータの読み出し（１１１５）の処理を、（１１２２）や（１１２６）の処理完了までに完了することにより、すなわち、これらの処理をオーバーラップさせて処理するようにし、処理速度の向上を図るようにしてもよい。
【００６９】
以上に説明したように、この実施例では、（１１１６）において、モード欄に「０」が設定されている場合には、ディスクドライブから読み出したデータを先にホストコンピュータに送信した後に、（１１１８）に後続する処理を実行する。すなわち、そのデータ入出力要求のモード欄に「０」が設定されている場合には、各キャッシュメモリに記憶しているデータに関する整合性を確保するために必要となる（１１１８）〜（１１３０）の処理は、ディスクアレイ装置１からホストコンピュータへの応答処理が行われた後で行われることとなり、これによりホストコンピュータに対する応答速度が向上する。
【００７０】
従って、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、整合性を確保する必要がなかったり、また、必要があるとしてもさほど厳密性が要求されないような場合には、そのようなソフトウエアからのデータ入出力要求のモード欄に「０」を設定しておくことで、このようなデータ入出力要求についてはホストコンピュータに対する応答速度を向上させることができる。
【００７１】
とくに、（１１２０）などの無効化に関する処理では、無効化要求や無効化がされたことの確認のための通信がスイッチを介して行われ、ホストコンピュータへの応答速度を低下させる要因となるが、このように無効化処理が事後的に行われることで、ホストコンピュータに対する応答速度が改善されることになる。
【００７２】
なお、図１１では、（１１１８）の前にモード「０」の判定とホストコンピュータへの送信処理（１１１６，１１１７）を行うようにしているが、これらの処理は、例えば（１１１８）と（１１１９）の間や（１１１９）と（１１２０）の間で行っても良い。つまり、各キャッシュメモリに記憶しているデータに関する整合性を確保するために必要となる処理のうち、ホストコンピュータへの応答速度を低下させる主因となる処理が行われるよりも前に、ホストコンピュータに応答を返す構成であれば、ホストコンピュータへの応答速度の向上が期待できることになる。
【００７３】
＜データ書き込み要求＞
つぎに、ホストコンピュータから送信されてくるデータ入出力要求として、データ書き込み要求を受信した場合にディスクアレイ装置１において行われる処理について説明する。なお、ここではデータ書き込み要求を入出力チャネル１０ａが受信した場合について説明するが、他の入出力チャネル１０ｂ〜１０ｄが受信した場合でも同様である。
【００７４】
図１２に示すフローチャートは、ディスクアダプタ１３ａ〜１３ｄが、入出力チャネル１０ａ〜１０ｄのうちの一つに一旦送信したデータを他の入出力チャネル１０ａ〜１０ｄから要求されたときに、先に送った方の入出力チャネル１０ａ〜１０ｄのキャッシュメモリ１１ａ〜１１ｄ内のデータを無効化するための無効化信号を該当の入出力チャネル１０ａ〜１０ｄに向けて送信することで各キャッシュメモリ１１ａ〜１１ｄのデータに関する整合性を確保するようにしている場合に、この整合性確保の処理とホストコンピュータへの完了通知との実行順を、データ入出力要求の内容であるモードに応じて制御するようにした場合のディスクアレイ装置１の処理についての実施例を説明している。
【００７５】
ホストコンピュータからデータ書き込み要求を受信（１２１１）した入出力チャネル１０ａは、そのデータ書き込み要求のモードの欄の内容を調べる（１２１２）。ここでモードの欄に「０」が設定されていた場合（１２１２：ＹＥＳ）、当該入出力チャネル１０ａのキャッシュメモリ１１ａへの書き込みを許可して書き込みデータをキャッシュメモリ１１ａに書き込み（１２１３）、書き込み完了通知をホストコンピュータに送信する（１２１４）。一方、（１２１２）において、モード欄に「１」が設定されていた場合（１２１２：ＮＯ）には、入出力チャネル１０ａはすぐにキャッシュメモリ１１ａにデータを書き込まず、（１２１５）に進む。
【００７６】
つぎに、入出力チャネル１０ａは、書き込み要求があったことを該当のディスクアダプタ１３ａ〜１３ｄに通知し、通知を受けたディスクアダプタは、書き込み要求があった入出力チャネル１０ａ以外に、当該データを送信した入出力チャネルのキャッシュメモリがあったかどうかを検索する（１２１５）。ここでもし他に送信した入出力チャネルのキャッシュメモリがなければ（１２１６：ＮＯ）、（１２２０）に進む。一方、他に送った入出力チャネルのキャッシュメモリがあれば、それらの入出力チャネルのすべてのキャッシュメモリを対象として該当の入出力チャネルに無効化要求を送信する（１２１７）。ここでこの無効化要求には、例えば図８に示した、無効化コマンドを用いることができる。
無効化されたことが確認されたら（１２１８）、無効化したキャッシュメモリの入出力チャネル番号を、送信先入出力チャネル番号の記録から削除する（１２１９）。
【００７７】
つぎに（１２２０）では、そのデータ書き込み要求のモード欄の内容を調べる。ここでモード欄に「１」が設定されている場合には、（１２２１）に進み、書き込み要求を受け取った入出力チャネル１０ａのキャッシュメモリ１１ａへの書き込みを許可し、ホストコンピュータからの書き込みデータを受信してキャッシュメモリ１１ａへの書き込みを行い（１２２１）、また、書き込み完了通知をホストコンピュータに送信する（１２２２）。そして、キャッシュメモリ１１ａに書き込んだデータを当該入出力チャネル１０ａより該当のディスクアダプタ１３ａ〜１３ｄに送信し、ディスクドライブ１４ａ〜１４ｄにも書き戻しを行わせる（１２２３）。
他方、（１２２０）においてモード欄に「０」が設定されていた場合には（１２２１）に相当する処理は既に（１２１３）にて行われているので（１２２３）に進む。
【００７８】
以上に説明したように、この実施例のディスクアレイ装置１は、モード欄に「０」が設定されている場合には、ディスクドライブ１４ａ〜１４ｄから読み出したデータを、先にホストコンピュータに送信してしまった後に、整合性確保に関する処理を実行する。すなわち、そのデータ入出力要求にモードが「０」が設定されている場合には、整合性確保に関する処理は、ディスクアレイ装置１からホストコンピュータへの応答処理が行われた後に事後的に行われることとなり、ホストコンピュータに対する応答速度の向上が図られる。
【００７９】
従って、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、整合性を確保する必要が無かったり、また、必要があるとしても厳密性が要求されないような場合には、そのようなソフトウエアからのデータ入出力要求のモード欄には「０」を設定しておけば、このようなデータ入出力要求についてはホストコンピュータに対する応答速度を向上させることができる。
【００８０】
図１３に示すフローチャートは、ある入出力チャネル１０ａ〜１０ｄに対応するキャッシュメモリ１１ａ〜１１ｄのデータの書き換えが生じた場合に、これをディスクアダプタ１３ａ〜１３ｄを通じてディスクドライブ１４ａ〜１４ｄに書き戻すと同時に、他の入出力チャネル１０ａ〜１０ｄのキャッシュメモリ１１ａ〜１１ｄのデータを書き換えて更新することで各キャッシュメモリ１１ａ〜１１ｄのデータに関する整合性を確保するようにしている場合に、この整合性確保の処理とホストコンピュータへの完了通知との実行順を、データ入出力要求の内容であるモードに応じて制御するようにした場合のディスクアレイ装置１の処理についての実施例を説明している。
【００８１】
ホストコンピュータからデータ書き込み要求を受信（１３１１）した入出力チャネル１０ａは、当該入出力チャネル１０ａのキャッシュメモリ１１ａへの書き込みを許可して書き込みデータをキャッシュメモリ１１ａに書き込む（１３１２）。
【００８２】
つぎに、そのデータ書き込み要求のモードの欄の内容を調べ（１３１３）、モードの欄に「０」が設定されていた場合（１３１３：ＹＥＳ）には、書き込み完了通知をホストコンピュータに送信する（１３１４）。一方、（１３１３）において、モード欄に「１」が設定されていた場合（１３１３：ＮＯ）には（１３１５）に進む。
【００８３】
（１３１５）では、適宜なタイミングで当該入出力チャネル１０ａから書き込みデータを該当のディスクアダプタ１３ａ〜１３ｄに送信し、キャッシュメモリ１１ａに書き込んだデータを元のディスクドライブ１４ａ〜１４ｄにも書き戻す（１３１５）。
【００８４】
つぎに、ディスクアダプタ１３ａ〜１３ｄは、書き込みが行われた入出力チャネル１０ａ以外に、以前にそのデータを送信した入出力チャネルのキャッシュメモリがあったかどうかを検索する（１３１６）。もし他に送った入出力チャネルのキャッシュメモリがあれば（１３１７：ＹＥＳ）、（１３１８）に進む。無ければ（１３１９）に進む。
【００８５】
（１３１８）では、当該データをもつ他の入出力チャネルのキャッシュメモリのすべてに当該ディスクアダプタからディスクドライブに書き込んだ書き込みデータを送信し、データの変更を行わせる。
【００８６】
（１３１９）では、データ書き込み要求のモードの欄の値を調べ、モードの欄に「１」が設定されていた場合（１３１９：ＹＥＳ）には、書き込み完了通知をホストコンピュータに送信する（１３２０）。一方、モードの欄に「０」が設定されていた場合（１３２０：ＮＯ）には、完了報告は既に（１３１４）で行っているのでここでは行わない。
【００８７】
以上のように、この実施例では、モード欄に「０」が設定されている場合には、ディスクドライブ１４ａ〜１４ｄから読み出したデータを、先にホストコンピュータに送信してしまった後に、整合性確保に関する処理を実行する。すなわち、モードの欄に「０」が設定されている場合には、整合性確保に関する処理は、ディスクアレイ装置１からホストコンピュータへの応答処理が行われた後で行われ、整合性確保に関する処理よりも前にホストコンピュータへの応答がされることになるので、ホストコンピュータへの応答速度が向上することになる。
【００８８】
このため、ホストコンピュータで動作するソフトウエアの仕様や性質などにより、各キャッシュメモリ間でのデータに関する整合性を確保する必要が無かったり、また、必要があるとしてもさほど厳密性が要求されないような場合には、そのようなソフトウエアからのデータ入出力要求のモード欄に「０」を設定しておくことで、ホストコンピュータに対する応答速度を向上させることができる。
【００８９】
＜他の実施形態＞
前述の実施例では、データ入出力要求のモード欄の値に応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と、各キャッシュメモリ１１ａ〜１１ｄのデータに関する整合性確保処理の実行順を制御するようにしているが、モード欄に代えて、データ入出力要求に記述されているＬＵＮの値に応じて処理の切り替えを行うようにすることもできる。
【００９０】
具体的には、例えば、図１１〜図１３に示したフローチャートにおけるモード欄の値により実行制御を行っている部分において、モード欄の値に代えて、ＬＵＮを参照するようにし、ＬＵＮの値に応じて処理を分岐させるようにする。なお、モード欄の設定値やＬＵＮごとに前記実行順をどのように制御するかを、例えば、オペレータがディスクアレイ装置１の管理用端末を操作して設定できるようにすることもできる。
【００９１】
また、最近のディスクアレイ装置の中には、アベイラビリティの向上や、ディザスタリカバリ性能の向上などを目的として、ディスクアレイ装置がデータ入出力要求に応じて自身の論理ボリュームに管理しているデータの内容を、遠隔地などに設置され当該ディスクアレイ装置に接続する他のディスクアレイ装置にも記憶する機能（「リモートコピー機能」と称されることもある）を備えるものが存在する。
【００９２】
そして、この機能の実現方式として、ディスクアレイ装置１が備える入出力チャネルに他のディスクアレイ装置を通信可能に接続し、各入出力チャネルを自身のディスクドライブに書き込ませる動作モード（以下、「ノーマルモード」と称する）で動作させるか、他のディスクアレイ装置にデータ入出力要求を送信させる動作モード（以下、「コピーモード」と称する）で動作させるかをホストコンピュータからディスクアレイ装置１に送信するコマンドにより切り替えられるようにし、ホストコンピュータから入出力チャネルの動作モードを切り替えるようにしていることがある。
【００９３】
ここでこのような方式で前記機能が実現されている場合には、データ入出力要求を受信した入出力チャネルが、いずれの動作モードで動作しているかに応じて、そのデータ入出力要求に対するホストコンピュータへの応答処理と、各キャッシュメモリのデータに関する整合性確保処理の実行順を制御するようにすることが考えられる。すなわち、例えば、コピーモードで動作している入出力チャネルで受信したデータ入出力要求については、ホストコンピュータへの応答を優先させて、整合性確保のための処理は後で行うようにし、また、ノーマルモードで動作している入出力チャネルで受信したデータ入出力要求については、整合性確保のための処理を優先させ、その後でホストコンピュータへの応答を行うようにする。
【００９４】
つまり、コピーモードで動作中の入出力チャネルで受信したデータ入出力要求の処理は、ノーマルモードで動作中の入出力チャネルで受信したデータ入出力要求の処理に比べて整合性確保の必要性が少ないことが多いと考えられ、このような場合には、この仕組みを適用することでホストコンピュータへの応答速度を向上させることができる。
【００９５】
以上、本発明に係るディスクアレイ装置等について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれることは勿論である。
【００９６】
【発明の効果】
本発明によれば、ディスクアレイ装置、ディスクアレイ装置の制御方法、及びストレージシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施例による、ストレージシステムの概略構成を示す図である。
【図２】本発明の一実施例による入出力チャネルの構成を示す図である。
【図３】本発明の一実施例によるディスクアダプタの構成を示す図である。
【図４】本発明の一実施例によるキャッシュメモリの構成を示す図である。
【図５】本発明の一実施例によるキャッシュメモリの構成を示す図である。
【図６】本発明の一実施例によるデータテーブルの形式を示す図である。
【図７】本発明の一実施例によるデータテーブルの形式を示す図である。
【図８】本発明の一実施例による無効化コマンドのコマンド形式を示す図である。
【図９】本発明の一実施例による、更新コマンドのコマンド形式を示す図である。
【図１０】本発明の一実施例による、データ入出力要求のデータフォーマットを示す図である。
【図１１】本発明の一実施例による、データ要求を受信した場合にディスクアレイ装置において行われる処理を説明するフローチャートを示す図である。
【図１２】本発明の一実施例による、データ書き込み要求を受信した場合にディスクアレイ装置において行われる処理を説明するフローチャートを示す図である。
【図１３】本発明の一実施例による、データ書き込み要求を受信した場合にディスクアレイ装置において行われる処理を説明するフローチャートを示す図である。
【符号の説明】
１　ディスクアレイ装置
１０ａ〜１０ｄ　入出力チャネル
１１ａ〜１１ｄ　キャッシュメモリ
１２ａ、１２ｂ　ネットワークスイッチ
１３ａ〜１３ｄ　ディスクアダプタ
１４ａ〜１４ｄ　ドライブ群
２０１、３０１　プロセッサ
２０２、３０２　ローカルメモリ
２０３ａ、２０３ｂ、３０３ａ、３０３ｂ　ネットワーク接続回路
２０４　ホストＩ／Ｆ回路
３０４　ディスクドライブＩ／Ｆ回路
３０５　プロセッサバス
４０、５０　検索制御部
４１　メモリ部
４１１、５１１　アドレスバス
４１２、５１２　返答信号バス
４１３、５１３　データバス
４１４、５１４　制御コマンドバス
５１　タグ部
５２　データ部
５１５　データ位置信号
【図１】
2004139353.tif 000003
【図２】
2004139353.tif 000004
【図３】
2004139353.tif 000005
【図４】
2004139353.tif 000006
【図５】
2004139353.tif 000007
【図６】
2004139353.tif 000008
【図７】
2004139353.tif 000009
【図８】
2004139353.tif 000010
【図９】
2004139353.tif 000011
【図１０】
2004139353.tif 000012
【図１１】
2004139353.tif 000013
【図１２】
2004139353.tif 000014
【図１３】
2004139353.tif 000015