(57)【要約】【課題】効率的にキャッシュメモリを利用することができるストレージシステム等を提供すること【解決手段】ストレージ装置は、キャッシュメモリの使用状況を示す使用状況情報を通信可能に接続された他のストレージ装置から取得するキャッシュメモリ使用状況取得部と、使用状況情報を取得元の前記他のストレージ装置を識別する情報と対応付けて記憶するキャッシュメモリ管理テーブルと、ホストコンピュータからデータを受信したときに自装置のキャッシュメモリの空き領域がない場合にキャッシュメモリ管理テーブルを参照して空き領域のある他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置にデータを格納する外部書き込み部と、キャッシュメモリに他のストレージ装置により書き込まれたデータを当該データの書き込み元の他のストレージ装置のキャッシュメモリに書き込むデータ書き戻し部とを備える。【選択図】図２
2008065559.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから受信したデータをキャッシュメモリに書き込んだ後に記憶媒体に書き込むストレージ装置において、
前記キャッシュメモリの使用状況を示す使用状況情報を通信可能に接続された他のストレージ装置から取得するキャッシュメモリ使用状況取得部と、
前記使用状況情報を取得元の前記他のストレージ装置を識別する情報と対応付けて記憶するキャッシュメモリ管理テーブルと、
前記ホストコンピュータから前記データを受信したときに自装置の前記キャッシュメモリの空き領域がない場合に前記キャッシュメモリ管理テーブルを参照して前記空き領域のある前記他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置の前記キャッシュメモリに前記データを格納する外部書き込み部と、
前記キャッシュメモリに前記他のストレージ装置により書き込まれたデータを当該データの書き込み元の前記他のストレージ装置の前記キャッシュメモリに書き込むデータ書き戻し部と、を備えたことを特徴としたストレージ装置。
【請求項２】
前記使用状況情報は、前記キャッシュメモリの使用中の記憶領域の大きさと未使用の記憶領域の大きさを示すものであることを特徴とした請求項１に記載のストレージ装置。
【請求項３】
前記記憶媒体の記憶領域中の位置を示す記憶位置情報と、その位置に書き込まれるべき前記データが前記他のストレージ装置の前記キャッシュメモリに書き込まれたものであるか否かを示す情報を対応付けて記憶した外部書き込み管理テーブルを備え、
前記外部書き込み部は、その動作の結果を反映するように前記外部書き込み管理テーブルを更新し、
前記データ書き戻し部は、その動作の結果を反映するようにデータの書き戻し先の前記他のストレージ装置の前記外部書き込み管理テーブルを更新することを特徴とした請求項１または請求項２に記載のストレージ装置。
【請求項４】
前記記憶位置情報は、前記記憶媒体におけるブロックを特定する情報であることを特徴とした請求項３に記載のストレージ装置。
【請求項５】
前記記憶位置情報は、所定の数の前記ブロックの集合を特定する情報であることを特徴とする請求項３に記載のストレージ装置。
【請求項６】
前記他のストレージ装置から前記キャッシュメモリに書き込まれたデータの各々について、当該データを書き込んだ前記他のストレージ装置を特定する情報と、当該データが書き込まれるべき前記記憶媒体を特定する情報と、この記憶媒体の当該データが書き込まれるべき位置を示す前記記憶位置情報とを対応付けて記憶する外部受け入れ管理テーブルを備え、
前記外部書き込み部は、その動作の結果を反映するようにデータの書き込み先の前記他のストレージ装置の前記外部受け入れ管理テーブルを更新し、
前記データ書き戻し部は、その動作の結果を反映するように前記外部受け入れ管理テーブルを更新することを特徴とした請求項１ないし請求項５のいずれかひとつに記載のストレージ装置。
【請求項７】
ホストコンピュータから受信したデータをキャッシュメモリに書き込んだ後に記憶媒体に書き込むストレージ装置の制御方法において、
前記キャッシュメモリの使用状況を示す使用状況情報を通信可能に接続された他のストレージ装置から取得するキャッシュメモリ使用状況取得工程と、
前記使用状況情報を取得元の前記他のストレージ装置を識別する情報と対応付けてキャッシュメモリ管理テーブルに記憶するキャッシュメモリ使用状況記憶工程と、
前記ホストコンピュータから前記データを受信したときに自装置の前記キャッシュメモリの空き領域がない場合に前記キャッシュメモリ管理テーブルを参照して前記空き領域のある前記他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置の前記キャッシュメモリに前記データを格納する外部書き込み工程と、
前記キャッシュメモリに前記他のストレージ装置により書き込まれたデータを当該データの書き込み元の前記他のストレージ装置の前記キャッシュメモリに書き込むデータ書き戻し工程と、を備えたことを特徴としたストレージ装置の制御方法。
【請求項８】
前記使用状況情報は、前記キャッシュメモリの使用中の記憶領域の大きさと未使用の記憶領域の大きさを示すものであることを特徴とした請求項７に記載のストレージ装置の制御方法。
【請求項９】
前記記憶媒体の記憶領域中の位置を示す記憶位置情報と、その位置に書き込まれるべき前記データが前記他のストレージ装置の前記キャッシュメモリに書き込まれたものであるか否かを示す情報を対応付けて記憶した外部書き込み管理テーブル予め記憶装置に記憶しておき、
前記外部書き込み工程の実行後に、その実行結果を反映するように前記外部書き込み管理テーブルを更新し、
前記データ書き戻し工程の実行後に、その実行結果を反映するようにデータの書き戻し先の前記他のストレージ装置の前記外部書き込み管理テーブルを更新することを特徴とした請求項７または請求項８に記載のストレージ装置の制御方法。
【請求項１０】
前記記憶位置情報は、前記記憶媒体におけるブロックを特定する情報であることを特徴とした請求項９に記載のストレージ装置の制御方法。
【請求項１１】
前記記憶位置情報は、所定の数の前記ブロックの集合を特定する情報であることを特徴とする請求項９に記載のストレージ装置の制御方法。
【請求項１２】
前記他のストレージ装置から前記キャッシュメモリに書き込まれたデータの各々について、当該データを書き込んだ前記他のストレージ装置を特定する情報と、当該データが書き込まれるべき前記記憶媒体を特定する情報と、この記憶媒体の当該データが書き込まれるべき位置を示す前記記憶位置情報とを対応付けて記憶する外部受け入れ管理テーブルを記憶装置に予め記憶装置に記憶しておき、
前記外部書き込み工程の実行後に、その実行結果を反映するようにデータの書き込み先の前記他のストレージ装置の前記外部受け入れ管理テーブルを更新し、
前記データ書き戻し工程の実行後に、その動作の結果を反映するように前記外部受け入れ管理テーブルを更新することを特徴とした請求項７ないし請求項１１のいずれかひとつに記載のストレージ装置の制御方法。
【請求項１３】
ホストコンピュータから受信したデータをキャッシュメモリに書き込んだ後に記憶媒体に書き込むストレージ装置が複数台相互に通信可能に接続されたストレージシステムにおいて、
前記ストレージ装置はそれぞれ、
前記キャッシュメモリの使用状況を示す使用状況情報を他の前記ストレージ装置から取得するキャッシュメモリ使用状況取得部と、
前記使用状況情報を取得元の前記他のストレージ装置を識別する情報と対応付けて記憶するキャッシュメモリ管理テーブルと、
前記ホストコンピュータから前記データを受信したときに自装置の前記キャッシュメモリの空き領域がない場合に前記キャッシュメモリ管理テーブルを参照して前記空き領域のある前記他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置の前記キャッシュメモリに前記データを格納する外部書き込み部と、
前記キャッシュメモリに前記他のストレージ装置により書き込まれたデータを当該データの書き込み元の前記他のストレージ装置の前記キャッシュメモリに書き込むデータ書き戻し部と、を備えたことを特徴としたストレージシステム。
【請求項１４】
前記使用状況情報は、前記キャッシュメモリの使用中の記憶領域の大きさと未使用の記憶領域の大きさを示すものであることを特徴とした請求項１３に記載のストレージシステム。
【請求項１５】
前記記憶媒体の記憶領域中の位置を示す記憶位置情報と、その位置に書き込まれるべき前記データが前記他のストレージ装置の前記キャッシュメモリに書き込まれたものであるか否かを示す情報を対応付けて記憶した外部書き込み管理テーブルを備え、
前記外部書き込み部は、その動作の結果を反映するように前記外部書き込み管理テーブルを更新し、
前記データ書き戻し部は、その動作の結果を反映するようにデータの書き戻し先の前記他のストレージ装置の前記外部書き込み管理テーブルを更新することを特徴とした請求項１３または請求項１４に記載のストレージシステム。
【請求項１６】
前記記憶位置情報は、前記記憶媒体におけるブロックを特定する情報であることを特徴とした請求項１５に記載のストレージシステム。
【請求項１７】
前記記憶位置情報は、所定の数の前記ブロックの集合を特定する情報であることを特徴とする請求項１５に記載のストレージシステム。
【請求項１８】
前記他のストレージ装置から前記キャッシュメモリに書き込まれたデータの各々について、当該データを書き込んだ前記他のストレージ装置を特定する情報と、当該データが書き込まれるべき前記記憶媒体を特定する情報と、この記憶媒体の当該データが書き込まれるべき位置を示す前記記憶位置情報とを対応付けて記憶する外部受け入れ管理テーブルを備え、
前記外部書き込み部は、その動作の結果を反映するようにデータの書き込み先の前記他のストレージ装置の前記外部受け入れ管理テーブルを更新し、
前記データ書き戻し部は、その動作の結果を反映するように前記外部受け入れ管理テーブルを更新することを特徴とした請求項１３ないし請求項１７のいずれかひとつに記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストコンピュータからの要求に応じてデータを入出力するストレージ装置に関し、特にシステム全体としてキャッシュメモリを効率的に利用することができるストレージ装置等に関する。
【背景技術】
【０００２】
従来のストレージ装置では、ホストからの書き込み動作時にキャッシュメモリに空き領域がある場合はキャッシュメモリにデータを書き込んだ時点でホストに応答を返し、ディスクへの書き込みは非同期に行うことにより応答の高速化を図っている。
【０００３】
図１２に従来のストレージ装置の構成を示す。ストレージ装置４００は、ホストインターフェース制御部４１０、キャッシュメモリ部４２０、スイッチ部４３０、ディスク制御部４４０、物理ディスク部４５０を備え、ホストコンピュータ３００からの要求に応じて、物理ディスク部４５０へのデータの書き込みおよび物理ディスク部４５０からのデータの読み出しを行う。また、スイッチ部４３０を介して同様の構成を持つ他のストレージ装置４００と接続されている。
【０００４】
図１３に、ホストコンピュータ３００から書き込み要求を受けた時のストレージ装置４００の動作フローを示す。また図１２に、このときのデータの流れを矢印で示す。
ホストコンピュータ３００から書き込み要求を受けたホストインターフェース制御部４１０は、キャッシュメモリ部４２０に空き領域があるかどうか調査する（Ｓ２０１、図１２のＢ１）。
【０００５】
キャッシュメモリ部４２０に未使用のキャッシュページがない場合は、ホストインターフェース制御部４１０は、キャッシュメモリ部４２０に記憶されているデータのうち物理ディスク部４５０に未書き込みのデータを物理ディスク部４５０に書き込んで未使用のキャッシュページを作成する（Ｓ２０２、図１２のＢ２）。次に、未使用のキャッシュページを獲得し、ホストインターフェース制御部４１０によりホストコンピュータ３００から受信したデータをキャッシュメモリ部４２０に格納する（Ｓ２０３、図１２のＢ３）。格納が完了したらキャッシュページを開放してホストインターフェース制御部４１０がホストコンピュータ３００に応答を送信する（図１２のＢ４）。その後、ディスク制御部４４０はホストコンピュータ３００からの書き込み要求とは非同期にキャッシュメモリ部４２０上のディスク未書き込みデータを物理ディスク部４５０に書き込む（Ｓ２０５、図１２のＢ５）。
キャッシュメモリ部４３０に未使用のキャッシュページがある場合は、Ｓ２０２はスキップし上記のＳ２０３ないしＳ２０５の動作を行う。
【０００６】
このように、キャッシュメモリに空き領域がない場合はキャッシュメモリのディスクへ未書き込みのデータをディスクに書き込んで空き領域を作成してからホストからのデータをキャッシュメモリに転送していたため、ホストからの書き込み負荷が高い時にホストへの応答が遅延していた。ただし、このような場合でも、接続されている他のストレージ装置のキャッシュメモリには未使用の領域が残っている場合がある。
【０００７】
特許文献１には、ディスクアレイ制御部を冗長化したストレージ装置において、一方のディスクアレイ制御部が他のディスクアレイ制御部のキャッシュメモリを利用することができるストレージ装置が記載されている。このストレージ装置では、複数のディスクアレイ制御部のそれぞれがキャッシュメモリを備え、キャッシュメモリ内にキャッシュメモリの割り当てを管理するキャッシュメモリ管理情報領域を設け、他のディスクアレイ制御部のキャッシュメモリの一部を自装置のキャッシュメモリとして割り当てて使用する。
【０００８】
【特許文献１】特開２００５−２８４３４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に記載のストレージ装置では、図１２のような複数のストレージ装置を備えたストレージシステムを構成した場合に、あるストレージ装置のキャッシュメモリが不足したときに、他のストレージ装置のキャッシュメモリを有効に利用することができなかった。
【００１０】
そこで、本発明は、システム全体として効率的にキャッシュメモリを利用することができるストレージシステム等を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の、ストレージ装置は、キャッシュメモリの使用状況を示す使用状況情報を通信可能に接続された他のストレージ装置から取得するキャッシュメモリ使用状況取得部と、使用状況情報を取得元の前記他のストレージ装置を識別する情報と対応付けて記憶するキャッシュメモリ管理テーブルと、ホストコンピュータからデータを受信したときに自装置のキャッシュメモリの空き領域がない場合にキャッシュメモリ管理テーブルを参照して空き領域のある他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置のキャッシュメモリにデータを格納する外部書き込み部と、キャッシュメモリに他のストレージ装置により書き込まれたデータを当該データの書き込み元の他のストレージ装置のキャッシュメモリに書き込むデータ書き戻し部と、を備えている（請求項１ないし請求項６）。
【００１２】
上記ストレージ装置によれば、使用状況取得部が他のストレージ装置からキャッシュメモリの使用状況情報を取得し、この情報はキャッシュメモリ管理テーブルに集積される。すなわち、ストレージ装置は、他のすべてのストレージ装置のキャッシュメモリの使用状況を把握することができる。外部書き込み部は、自装置のキャッシュメモリに空き領域がない場合にキャッシュメモリ管理テーブルを参照し、他のストレージ装置のキャッシュメモリに空き領域がある場合は、その領域にデータを書き込む。他のストレージ装置によりキャッシュメモリに書き込まれたデータは、データ書き戻し部により書き込み元のストレージ装置のキャッシュメモリに書き戻し、データの矛盾が生じないようにする。
【００１３】
そのため、ホストからの書き込み負荷が高い場合でも、記憶媒体への書き込みを待たずに他のストレージ装置のキャッシュメモリにデータを書き込んだ時点でホストコンピュータへの応答を行うことができる。すなわち、ホストコンピュータから見た応答時間を短縮することができる。
また、任意の他のストレージ装置のキャッシュメモリを利用することができるから、ホストからの書き込み負荷が高い場合でも十分な記憶容量のキャッシュメモリを各ストレージ装置に備えておく必要がない。すなわち、システム全体としてキャッシュメモリを効率的に利用することができ、コストダウンを図ることができる。
【００１４】
上記ストレージ装置において、使用状況情報を、キャッシュメモリの使用中の記憶領域の大きさと未使用の記憶領域の大きさを示すものとしてもよい（請求項２）。
このようにすれば、外部書き込み部は、他のストレージ装置のキャッシュメモリの空き容量を正確に知ることができるから、受信したデータを書き込むのに十分な量の未使用の記憶領域を持つ他のストレージ装置を特定することができる。
【００１５】
上記ストレージ装置において、記憶媒体の記憶領域中の位置を示す記憶位置情報と、その位置に書き込まれるべきデータが他のストレージ装置のキャッシュメモリに書き込まれたものであるか否かを示す情報を対応付けて記憶した外部書き込み管理テーブルを備え、外部書き込み部は、その動作の結果を反映するように外部書き込み管理テーブルを更新し、データ書き戻し部は、その動作の結果を反映するようにデータの書き戻し先の他のストレージ装置の外部書き込み管理テーブルを更新するようにしてもよい（請求項３）。
【００１６】
このようにすれば、記憶媒体の記憶領域の各部分領域について、そこに記憶されるべきデータが他のストレージ装置のキャッシュメモリに格納されているか否かを常に認識することができる。そのため、そこに格納されるべきデータが他のストレージ装置のキャッシュメモリに格納されている部分領域に対して、再度書き込み要求があった場合に、データの矛盾を生じさせることなく書き込み処理を行うことができる。
【００１７】
上記ストレージ装置において、記憶位置情報を、記憶媒体におけるブロックを特定する情報としてもよい（請求項４）。
このようにすれば、ホストコンピュータがデータの読み書きをする際の最小単位であるブロックを基準に外部書き込み管理テーブルを構成しているので、ホストコンピュータの仕様に適合した書き込み処理をすることができる。
【００１８】
上記ストレージ装置において、記憶位置情報を、所定の数のブロックの集合を特定する情報としてもよい（請求項５）。
このようにすれば、複数のブロックをまとめてひとつの部分領域として管理することができるので、データの書き込み処理を高速に行うことができる。
【００１９】
上記ストレージ装置において、他のストレージ装置からキャッシュメモリに書き込まれたデータの各々について、当該データを書き込んだ他のストレージ装置を特定する情報と、当該データが書き込まれるべき記憶媒体を特定する情報と、この記憶媒体の当該データが書き込まれるべき位置を示す記憶位置情報とを対応付けて記憶する外部受け入れ管理テーブルを備え、外部書き込み部は、その動作の結果を反映するようにデータの書き込み先の他のストレージ装置の外部受け入れ管理テーブルを更新し、データ書き戻し部は、その動作の結果を反映するように外部受け入れ管理テーブルを更新するようにしてもよい（請求項６）。
【００２０】
このようにすれば、他のストレージ装置から自装置のキャッシュメモリに書き込まれたデータについて、その書き込み元に関する情報を正確に把握することができる。そのため、他のストレージ装置がそれらのデータについて再度ホストコンピュータから書き込み要求を受けた場合に、適切な書き込み処理を行うことができる。
【００２１】
本発明の、ストレージ装置の制御方法は、キャッシュメモリの使用状況を示す使用状況情報を通信可能に接続された他のストレージ装置から取得するキャッシュメモリ使用状況取得工程と、使用状況情報を取得元の他のストレージ装置を識別する情報と対応付けてキャッシュメモリ管理テーブルに記憶するキャッシュメモリ使用状況記憶工程と、ホストコンピュータからデータを受信したときに自装置のキャッシュメモリの空き領域がない場合にキャッシュメモリ管理テーブルを参照して空き領域のある他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置のキャッシュメモリにデータを格納する外部書き込み工程と、キャッシュメモリに他のストレージ装置により書き込まれたデータを当該データの書き込み元の他のストレージ装置のキャッシュメモリに書き込むデータ書き戻し工程と、を備えている（請求項７ないし請求項１２）。
【００２２】
上記ストレージ装置の制御方法によれば、ホストからの書き込み負荷が高い場合でも、記憶媒体への書き込みを待たずに他のストレージ装置のキャッシュメモリにデータを書き込んだ時点でホストコンピュータへの応答を行うことができる。すなわち、ホストコンピュータから見た応答時間を短縮することができる。
また、任意の他のストレージ装置のキャッシュメモリを利用することができるから、ホストからの書き込み負荷が高い場合でも十分な記憶容量のキャッシュメモリを各ストレージ装置に備えておく必要がない。すなわち、システム全体としてキャッシュメモリを効率的に利用することができ、コストダウンを図ることができる。
【００２３】
上記ストレージ装置の制御方法において、使用状況情報は、キャッシュメモリの使用中の記憶領域の大きさと未使用の記憶領域の大きさを示すものとしてもよい（請求項８）。
このようにすれば、外部書き込み工程では、他のストレージ装置のキャッシュメモリの空き容量を正確に知ることができるから、受信したデータを書き込むのに十分な量の未使用の記憶領域を持つ他のストレージ装置を特定することができる。
【００２４】
上記ストレージ装置の制御方法において、記憶媒体の記憶領域中の位置を示す記憶位置情報と、その位置に書き込まれるべきデータが他のストレージ装置のキャッシュメモリに書き込まれたものであるか否かを示す情報を対応付けて記憶した外部書き込み管理テーブル予め記憶装置に記憶しておき、外部書き込み工程の実行後に、その実行結果を反映するように外部書き込み管理テーブルを更新し、データ書き戻し工程の実行後に、その実行結果を反映するようにデータの書き戻し先の他のストレージ装置の外部書き込み管理テーブルを更新するようにしてもよい（請求項９）。
【００２５】
このようにすれば、記憶媒体の記憶領域の各部分領域について、そこに記憶されるべきデータが他のストレージ装置のキャッシュメモリに格納されているか否かを常に認識することができる。そのため、そこに格納されるべきデータが他のストレージ装置のキャッシュメモリに格納されている部分領域に対して、再度書き込み要求があった場合に、データの矛盾を生じさせることなく書き込み処理を行うことができる。
【００２６】
上記ストレージ装置の制御方法において、記憶位置情報は、記憶媒体におけるブロックを特定する情報としてもよい（請求項１０）。
このようにすれば、ホストコンピュータがデータの読み書きをする際の最小単位であるブロックを基準に外部書き込み管理テーブルを構成しているので、ホストコンピュータの仕様に適合した書き込み処理をすることができる。
【００２７】
上記ストレージ装置の制御方法において、記憶位置情報は、所定の数のブロックの集合を特定する情報としてもよい（請求項１１）。
このようにすれば、複数のブロックをまとめてひとつの部分領域として管理することができるので、データの書き込み処理を高速に行うことができる。
【００２８】
上記ストレージ装置の制御方法において、他のストレージ装置からキャッシュメモリに書き込まれたデータの各々について、当該データを書き込んだ他のストレージ装置を特定する情報と、当該データが書き込まれるべき記憶媒体を特定する情報と、この記憶媒体の当該データが書き込まれるべき位置を示す記憶位置情報とを対応付けて記憶する外部受け入れ管理テーブルを記憶装置に予め記憶装置に記憶しておき、外部書き込み工程の実行後に、その実行結果を反映するようにデータの書き込み先の他のストレージ装置の外部受け入れ管理テーブルを更新し、データ書き戻し工程の実行後に、その動作の結果を反映するように外部受け入れ管理テーブルを更新するようにしてもよい（請求項１２）。
【００２９】
このようにすれば、他のストレージ装置から自装置のキャッシュメモリに書き込まれたデータについて、その書き込み元に関する情報を正確に把握することができる。そのため、他のストレージ装置がそれらのデータについて再度ホストコンピュータから書き込み要求を受けた場合に、適切な書き込み処理を行うことができる。
【００３０】
本発明の、ストレージシステムは、ホストコンピュータから受信したデータをキャッシュメモリに書き込んだ後に記憶媒体に書き込むストレージ装置が複数台相互に通信可能に接続され、ストレージ装置はそれぞれ、キャッシュメモリの使用状況を示す使用状況情報を他のストレージ装置から取得するキャッシュメモリ使用状況取得部と、使用状況情報を取得元の他のストレージ装置を識別する情報と対応付けて記憶するキャッシュメモリ管理テーブルと、ホストコンピュータからデータを受信したときに自装置のキャッシュメモリの空き領域がない場合にキャッシュメモリ管理テーブルを参照して空き領域のある他のストレージ装置が存在するか否かを判定し、存在する場合には当該他のストレージ装置のキャッシュメモリにデータを格納する外部書き込み部と、キャッシュメモリに他のストレージ装置により書き込まれたデータを当該データの書き込み元の他のストレージ装置のキャッシュメモリに書き込むデータ書き戻し部と、を備えている。（請求項１３ないし請求項１８）。
【００３１】
上記ストレージシステムによれば、ホストからの書き込み負荷が高い場合でも、記憶媒体への書き込みを待たずに他のストレージ装置のキャッシュメモリにデータを書き込んだ時点でホストコンピュータへの応答を行うことができる。すなわち、ホストコンピュータから見た応答時間を短縮することができる。
また、任意の他のストレージ装置のキャッシュメモリを利用することができるから、ホストからの書き込み負荷が高い場合でも十分な記憶容量のキャッシュメモリを各ストレージ装置に備えておく必要がない。すなわち、システム全体としてキャッシュメモリを効率的に利用することができ、コストダウンを図ることができる。
【００３２】
上記ストレージシステムにおいて、使用状況情報は、キャッシュメモリの使用中の記憶領域の大きさと未使用の記憶領域の大きさを示すものとしてもよい（請求項１４）。
このようにすれば、外部書き込み部は、他のストレージ装置のキャッシュメモリの空き容量を正確に知ることができるから、受信したデータを書き込むのに十分な量の未使用の記憶領域を持つ他のストレージ装置を特定することができる。
【００３３】
上記ストレージシステムにおいて、記憶媒体の記憶領域中の位置を示す記憶位置情報と、その位置に書き込まれるべきデータが他のストレージ装置のキャッシュメモリに書き込まれたものであるか否かを示す情報を対応付けて記憶した外部書き込み管理テーブルを備え、外部書き込み部は、その動作の結果を反映するように外部書き込み管理テーブルを更新し、データ書き戻し部は、その動作の結果を反映するようにデータの書き戻し先の他のストレージ装置の外部書き込み管理テーブルを更新する（請求項１５）。
【００３４】
このようにすれば、記憶媒体の記憶領域の各部分領域について、そこに記憶されるべきデータが他のストレージ装置のキャッシュメモリに格納されているか否かを常に認識することができる。そのため、そこに格納されるべきデータが他のストレージ装置のキャッシュメモリに格納されている部分領域に対して、再度書き込み要求があった場合に、データの矛盾を生じさせることなく書き込み処理を行うことができる。
【００３５】
上記ストレージシステムにおいて、記憶位置情報は、記憶媒体におけるブロックを特定する情報としてもよい（請求項１６）。
このようにすれば、ホストコンピュータがデータの読み書きをする際の最小単位であるブロックを基準に外部書き込み管理テーブルを構成しているので、ホストコンピュータの仕様に適合した書き込み処理をすることができる。
【００３６】
上記ストレージシステムにおいて、記憶位置情報は、所定の数のブロックの集合を特定する情報としてもよい（請求項１７）。
このようにすれば、複数のブロックをまとめてひとつの部分領域として管理することができるので、データの書き込み処理を高速に行うことができる。
【００３７】
上記ストレージシステムにおいて、他のストレージ装置からキャッシュメモリに書き込まれたデータの各々について、当該データを書き込んだ他のストレージ装置を特定する情報と、当該データが書き込まれるべき記憶媒体を特定する情報と、この記憶媒体の当該データが書き込まれるべき位置を示す記憶位置情報とを対応付けて記憶する外部受け入れ管理テーブルを備え、外部書き込み部は、その動作の結果を反映するようにデータの書き込み先の他のストレージ装置の外部受け入れ管理テーブルを更新し、データ書き戻し部は、その動作の結果を反映するように外部受け入れ管理テーブルを更新するようにしてもよい（請求項１８）。
【００３８】
このようにすれば、他のストレージ装置から自装置のキャッシュメモリに書き込まれたデータについて、その書き込み元に関する情報を正確に把握することができる。そのため、他のストレージ装置がそれらのデータについて再度ホストコンピュータから書き込み要求を受けた場合に、適切な書き込み処理を行うことができる。
【発明の効果】
【００３９】
本発明によれば、ホストからの書き込み負荷が高い場合でも、記憶媒体への書き込みを待たずに他のホスト装置のキャッシュメモリにデータを書き込んだ時点でホストコンピュータへの応答を行うことができる。すなわち、ホストコンピュータから見た応答時間を短縮することができる。
【００４０】
また、任意の他のストレージ装置のキャッシュメモリを利用することができるから、ホストからの書き込み負荷が高い場合でも十分な記憶容量のキャッシュメモリを各ストレージ装置に備えておく必要がない。すなわち、ストレージ装置の台数が多い場合でもシステム全体としてキャッシュメモリを効率的に利用することができ、コストダウンを図ることができる。
【発明を実施するための最良の形態】
【００４１】
次に、本発明の一実施形態であるストレージシステム１の構成について図面を参照して詳細に説明する。
図１を参照すると、ストレージ装置２００は、ホストコンピュータ１００との間のデータおよびコマンドの転送を制御するホスト制御部２１０、転送されるデータを一時的に記憶するキャッシュメモリ部２２０、ストレージ装置２００の各部の間の通信および他のストレージ装置との間の通信を制御するスイッチ部２３０、物理ディスク部へのデータの書き込みおよびデータの読み出しを制御するディスク制御部２４０、データを記憶する物理ディスク部２５０から構成される。
【００４２】
ホストコンピュータ１００は、サーバコンピュータ、パーソナルコンピュータ等の任意のコンピュータシステムで、ストレージ装置２００に対してデータの書き込みまたは読み出しの要求を送信する。この要求には、対象となるデータと、そのデータを書き込みまたは読み出す対象となる論理ディスクと、その論理ディスクにおいてデータを書き込みまたは読み出す位置（アドレス）の指定が含まれている。要求が書き込みの場合、ストレージ装置１００は、応答時間を短縮するために、キャッシュメモリにデータ書き込んだ段階で応答を返し、その後データをキャッシュメモリから物理ディスクに転送する。
【００４３】
ストレージ装置２００は、単独でもストレージ装置として機能するが、スイッチ部２３０の間をケーブル等で接続することにより複数のストレージ装置２００を接続しストレージシステム１を構成している。図１においては２台のストレージ装置２００が接続されているが、３台以上のストレージ装置２００も接続可能である。また、図１では、２台のストレージ装置のスイッチ部２３０が直接接続されているが、ストレージ装置２００の外部に独立したスイッチ装置を設け、各ストレージ装置をそれに接続するようにしてもよい。
各ストレージ装置２００は、例えばＳＡＮ（Storage Area Network）により接続されたホストコンピュータ１００からの要求に従って、物理ディスク部２５０へのデータの書き込みおよび物理ディスク部２５０からのデータの読み出しを行う。
【００４４】
各ストレージ装置２００を「ユニット」と呼ぶことにし、区別する必要がある場合は「ユニット１」「ユニット２」のように番号を付すことにし、また、着目しているユニットを「自ユニット」、着目しているユニット以外のユニットを「外部ユニット」と呼ぶことにする。
【００４５】
図２にストレージ装置２００の詳細な構成図を示す。
ホスト制御部２１０は、ホストコマンド制御部２１１、データ転送制御部２１２、内部通信制御部２１３から構成されている。
【００４６】
ホストコマンド制御部２１１（外部書き込み部の一例）は、ホストコンピュータ１００から受信したコマンドを解釈し、スイッチ部２３０を介してキャッシュメモリ部２２０にデータを転送する。また、ストレージ装置２００においては、このような一般的な機能に加えて、次の各機能を備えている。
【００４７】
（１）ホストコンピュータ１００から書き込み要求を受けた時に、外部書き込み管理テーブル２２３を参照し、データの格納先として指定されたブロックについて、そのブロックに書き込まれるデータを外部ユニットのキャッシュメモリに対する書き込みを実施したブロックであるかどうかを判定する。
【００４８】
（２）ホストコンピュータ１００から書き込み要求を受けた時に、自ユニットのキャッシュメモリ２２１に未使用ページがあるかどうかを判定する。自ユニットのキャッシュメモリ２２１に未使用ページがない場合には、さらに、キャッシュメモリ管理テーブル２２２を参照して、他ユニットのキャッシュメモリ２２１に未使用ページがあるかどうかを判定する。
【００４９】
（３）自ユニットのキャッシュメモリ２２１と他ユニットのキャッシュメモリ２２１との間でデータのコピーを行ったときに、外部書き込み管理テーブル２２３と外部受け入れ管理テーブル２２４を更新する。
【００５０】
（４）ホストコンピュータ１００から書き込み要求を受けたときに、自ユニットのキャッシュメモリに未使用ページがなく、かつ、他ユニットのキャッシュメモリ２２１に未使用ページがある場合には、他ユニットのキャッシュメモリ２２１にホストコンピュータ１００から受信したデータを書き込み、ホストコンピュータ１００に応答を返す。
【００５１】
データ転送制御部２１２は、ホストコンピュータ１００とホスト制御部２１０の間、ホスト制御部２１０とキャッシュメモリ部２２１の間のデータ転送を実行する。
【００５２】
内部通信制御部２１３は、ホスト制御部２１０とキャッシュメモリ部２２１の間、ホスト制御部２１０とディスク制御部２４０との間、スイッチ部２３０を介して自ユニットと他ユニットの間のコマンドの送受信を制御する。
【００５３】
キャッシュメモリ部２２０は、キャッシュメモリ２２１、キャッシュメモリ管理テーブル２２２、外部書き込み管理テーブル２２３、外部受け入れ管理テーブル２２４から構成されている。このほか、図示はしていないが、キャッシュメモリに格納されているデータとそのデータを格納する物理ディスクのアドレスの対応関係の管理等を行うメモリ管理機能を備えている。
【００５４】
キャッシュメモリ２２１は、例えば半導体メモリにより構成され、ホストコンピュータ１００から受信した書き込みデータを物理ディス２５１に書き込むまでの間一時的に記憶する。本実施形態においては、自ユニットに接続されたホストコンピュータ１００から受信したデータだけでなく、外部ユニットから受信した書き込みデータを記憶する場合もある。
【００５５】
キャッシュメモリ管理テーブル２２２は、ストレージシステム１を構成する全ユニットのキャッシュメモリ２２１の使用状況を管理するテーブルあり、全てのユニットのキャッシュメモリ２２１の使用状況を未使用キャッシュページ数と使用中キャッシュページ数で管理している。このテーブルは各ユニットのキャッシュ間コピー制御部２４４が他のユニットからキャッシュメモリ２２１の使用状況を定期的に取得することにより、常に最新の状態を示すようにしておく。
【００５６】
図３および図４にキャッシュメモリ管理テーブル２２２の一例を示す。この例では、キャッシュメモリ２２１の総ページ数は１００００ページとしてある。
図３は、ホストコンピュータ１００からの書き込み要求がない状態の例を示しており、ユニット１、ユニット２共に使用中キャッシュページ数がゼロである。図４は、ホストコンピュータからの書き込み負荷によりユニット１のキャッシュページが全て使用されており、ユニット２のキャッシュページは５０００ページが使用中であるがまだ５０００ページの未使用のページが存在する状態を示している。
【００５７】
外部書き込み管理テーブル２２３は、自ユニットの論理ディスク２５１の各ブロックについて、そのブロックに書き込まれるデータが他ユニットのキャッシュメモリ２２１に書き込まれている（以下、このようなブロックを「外部書き込みブロック」という）か否かを示すテーブルである。
【００５８】
図５に外部書き込み管理テーブル２２３の一例を示す。図中の数値は１６進数で詳記している。
この例では、ユニット内の論理ディスク２５２毎にアドレスブロックに対応したビットマップとなっており、そのブロックが外部書き込みブロックである場合に、対応するビットをセット（値を１と）し、そうでない場合はリセット（値を０と）する。図では、セットされたビットを「○」、リセットされたビットを「×」で示している。また、ユニット内の各論理ディスク２５２は、一意に識別できるように付された論理ディスク番号により区別している。
例えば、符号２２３ａを付した欄は、論理ディスク番号「００００」を付された論理ディスク２５２のアドレスブロック「ＦＦＦＦ」に書き込むべきデータは外部ユニットのキャッシュメモリ２２１に書き込まれてはいないことを、符号２２３ｂを付した欄は、論理ディスク番号「０００４」を付された論理ディスク２５２のアドレスブロック「ＦＦＦＦ」に書き込むべきデータは外部ユニットのキャッシュメモリ２２１に書き込まれていることをそれぞれ示している。
【００５９】
ホストコンピュータ１００からの書き込み要求時に、ホストコマンド制御部２１１がこのテーブルを参照することにより、その要求の対象となるブロックのデータが外部ユニットに書き込まれているのかどうかを判断することができる。
なお、この例では外部書き込み管理テーブル２２３をブロック単位で管理しているが、このブロックはホストコンピュータ１００からの書き込み最小単位のブロックでも良いし、あるいはあるまとまった単位のブロック（たとえば１６ブロックや６４ブロック）でも良い。
【００６０】
外部受け入れ管理テーブル２２４は、外部ユニットからの要求により自ユニットのキャッシュメモリ２２１に書き込んだデータを管理するためのテーブルである。
図６に外部受け入れ管理テーブル２２４の一例を示す。
外部ユニットから書き込まれたデータに、書き込み元のユニットを識別する情報である書き込み元のユニット番号、書き込み元のユニットがデータを格納すべきものとしてホストコンピュータ１００から指定された論理ディスク２５２を識別する論理ディスク番号、その論理ディスク２５２のおける当該データの格納ブロックを識別する書き込み開始ブロックと書き込み終了ブロックが格納されている。
例えば、図の１行目（符号２２４ａ）は、書き込み元ユニット番号が「００」である外部ユニットの論理ディス番号が「００００」である論理ディスク２５２の「００００」ブロックから「０００１」ブロックに書き込むデータが、自ユニットのキャッシュメモリ２２１に書き込まれていることを示している。
【００６１】
スイッチ部２３０は、ストレージ装置２００の各部間、自ユニットと他ユニットの間の通信経路を送受信されるデータのヘッダに基づいて決定する。
【００６２】
ディスク制御部２４０は、ディスクコマンド制御部２４１、データ転送制御部２４２、内部通信制御部２４３、キャッシュ間コピー制御部２４４から構成されている。
ディスクコマンド制御部２４１は、ホスト制御部２１０がホストコンピュータ１００から受信し、スイッチ部２３０を介してキャッシュメモリに転送したデータを物理ディスクに書き込むために、ディスクコマンドを物理ディスク２５２に対して発行する。
【００６３】
データ転送制御部２４２は、ディスク制御部２４０とキャッシュメモリ部２２１の間、ディスク制御部２４０と物理ディスク部２５０との間のデータ転送を実行する。
【００６４】
内部通信制御部２４３は、ディスク制御部２４０とキャッシュメモリ部２２１の間、ホスト制御部２１０とディスク制御部２４０との間、スイッチ部２３０を介して自ユニットと他ユニットの間のコマンドの送受信を制御する。
【００６５】
キャッシュ間コピー制御部２４４（データ書き戻し部およびキャッシュメモリ使用状況取得部の一例）は、自ユニットのキャッシュメモリ２２１と他ユニットのキャッシュメモリ２２１との間のデータコピーを制御する。
また、スイッチ部２３０経由で接続されている全ての外部ユニットに対して定期的にキャッシュメモリ２２１の使用状況を取得するコマンドを発行し、接続されている全ユニットのキャッシュメモリ使用状況を外部ユニットの番号と対応付けてキャッシュメモリ管理テーブル２２２に格納する。
【００６６】
物理ディスク部２５０は、複数の物理ディスク２５１により構成されている。
物理ディスク２５１は、磁気ディスク（記憶媒体の一例）と磁気ディスクに対して情報の読み書きを行う機構から構成されるハードディスク装置である。物理ディスク２５１は、同じ量のデータの書き込みに要する時間がキャッシュメモリ２２１と比べた場合大幅に長くなる。物理ディスク２５１とディスク制御部２４０は、例えばシリアルＡＴＡ（AT Attachment）やｉＳＣＳＩ（Small Computer System Interface）のインターフェースにより接続されている。
【００６７】
複数の物理ディスク２５１を、例えばＲＡＩＤ(Redundant Array of Independent Disks)として構成することにより、ホストコンピュータ１００からはひとつの記憶領域として認識される論理ディスク２５２が構成されている。
【００６８】
物理ディスク２５１と論理ディスク２５２の記憶領域は、所定のビット数からなるブロックを単位として管理され、各ブロックにはブロックアドレスが付されている。
なお、物理ディスクとしてはＤＶＤ−Ｒ(Digital Versatile Disk-Recordable)、磁気テープ等の磁気ディスク以外の記憶媒体にデータの書き込みを行うことができるドライブ装置を用いてもよい。
【００６９】
上記のホスト制御部２１０とディスク制御部２４０は、マイクロプロセッサ等により構成されるコンピュータを内蔵しており、これらのコンピュータがコンピュータプログラムを実行することにより上記の各機能を実現する。
【００７０】
次に、ストレージシステム２００の動作について説明する。
図７ないし図９は、ホストコンピュータ１００から書き込み要求を受けた時のストレージ装置２００の動作フローを示す図である。
ホストコンピュータ１００から書き込み要求を受けたホストコマンド制御部２１１は、外部ユニットへの書き込みブロック管理テーブル２２３を参照し、要求の対象となっている物理ディスクのブロック（以下「対象ブロック」という）が外部書き込みブロックかどうかを調査する（図７のＳ１０１）。具体的には、外部書き込み管理テーブル２２３の対象ブロックに対応するビットを読み出し、そのビットが１（図５では「○」）であれば対象ブロックは外部書き込みブロックであると、そのビットが０（図５では「×」）であれば対象ブロックは外部書き込みブロックではないと判定する。
【００７１】
＜対象ブロックが外部書き込みブロックでなく、自ユニット、外部ユニット共に未使用ページがない場合＞
対象ブロックが外部書き込み実施ブロックでない場合、ホスト制御部２１０は、自ユニット内のキャッシュメモリ２２１に空き領域があるかどうか調査する（Ｓ１０２の判定がノー、Ｓ１０２）。具体的には、キャッシュメモリ管理テーブル２２２を参照して、自ユニットの未使用キャッシュページ数が０でない場合には空き領域があると、自ユニットの未使用キャッシュページ数が０の場合には空き領域がないと、それぞれ判断する。
【００７２】
自ユニットのキャッシュメモリ２２１に未使用のキャッシュページがない場合（図４の状態）は、ホスト制御部２１０は、キャッシュ管理テーブル２２２を参照して外部ユニットのキャッシュメモリ２２１内に未使用のキャッシュページがあるかどうかをＳ１０１と同様にして調査する（Ｓ１０２の判定がノー、Ｓ１０６）。
外部ユニットのキャッシュメモリ２２１内に未使用のキャッシュページがない場合は、ディスク制御部２４０は、自ユニットのキャッシュメモリ２２１上の物理ディスク２５１に未書き込みのデータを物理ディスク２５１に書き込んで未使用のキャッシュページを作成し（Ｓ１０６の判定がノー、Ｓ１０７）、ホスト制御部２１０は、ホストコンピュータ１００から受信したデータをキャッシュメモリ２２１に格納する（Ｓ１０３）。
格納が完了したらホスト制御部２１０がホストコンピュータ１００に書き込みが完了した旨の応答を送信する（Ｓ１０４）。その後、ディスク制御部２４０がキャッシュメモリ２２２上のデータを物理ディスク２５１の対象ブロックに書き込む（Ｓ１０５）。
【００７３】
＜対象ブロックが外部ユニット書き込みブロックでなく、自ユニットに未使用ページがある場合＞
自ユニット内のキャッシュメモリ２２１に空き領域がある（Ｓ１０２の判定がイエスの）場合は、外部ユニットのキャッシュメモリ２２１に未使用ページがあるかどうかの調査は行わずに、上記のＳ１０３ないしＳ１０５の動作を行う。
【００７４】
図８は、書き込み対象ブロックが外部ユニットへの書き込みを実施したブロックである（図７のＳ１０１の判定がイエスの）場合の動作フローである。
＜対象ブロックが外部ユニット書き込みブロックで、自ユニットに未使用ページがある場合＞
ホスト制御部２１０は、図７のＳ１０２と同様の手順で自ユニットのキャッシュメモリ２２１に未使用ページがあるかどうかを調べる（Ｓ１１１）。
自ユニット内のキャッシュメモリに未使用ページがある場合、ホスト制御部２１０は、対象ブロックの書き込み先の外部ユニットに対して対象ブロックを格納するためのキャッシュページの確保を内部通信制御部２１３を介して要求するとともに、自ユニット内のキャッシュメモリ２２１に未使用キャッシュページを確保し、外部ユニットに格納されているデータをキャッシュ間コピー制御部２４４により自ユニット内に確保した未使用キャッシュページにコピーする（Ｓ１１１の判定がイエス、Ｓ１１２）。
【００７５】
ホスト制御部２１０は、コピーが完了したら外部ユニットのコピー元キャッシュページを未使用状態に変更し（Ｓ１１３）、外部ユニット内の外部受け入れブロック管理テーブル２２４から対象ブロックに関するレコードを削除し（Ｓ１１４）、自ユニット内の外部ユニットへの書き込みブロック管理テーブル２２３の対象ブロックのビットをクリア（図５の例では、「○」を「×」に変更）する（Ｓ１１５）。
その後、ホスト制御部２１０は、ホストコンピュータ１００から受信したデータをＳ１１２でコピー先となった自ユニット内のキャッシュページに格納し（Ｓ１１６）、ホストコンピュータ１００に書き込みが完了した旨の応答を送信する（Ｓ１１７）。その後、Ｓ１１２でキャッシュメモリ２２１に格納されたデータをディスク制御部２４０が物理ディスク２５１の対象ブロックに書き込む（Ｓ１１８）。
【００７６】
＜対象ブロックが外部ユニット書き込みブロックで、自ユニットに未使用ページがない場合＞
また、自ユニット内のキャッシュメモリ２２１に未使用ページがない場合、ホスト制御部２１０は、書き込み先の外部ユニットに対して対象ブロック用のキャッシュページの確保を内部通信制御部２１３を介して要求し、ホストから受信したデータを確保した外部ユニットのキャッシュページに格納する（Ｓ１１１の判定がノー、Ｓ１１９）。
その後、ホスト制御部２１０は、データを格納した外部ユニット内の外部受け入れブロック管理テーブル２２４に対象データのレコードを追加して更新し（Ｓ１２０）、確保していたキャッシュページを開放してホストコンピュータに応答を送信する（Ｓ１２１）。
このようにすることにより、外部ユニットに一時的にデータが格納された場合においても、データの一貫性を保持することができる。
【００７７】
＜対象ブロックが外部ユニット書き込みブロックでなく、外部ユニットに未使用ページがある場合＞
図９は、自ユニット内に未使用のキャッシュページがなく、全ユニットのキャッシュメモリ使用状況の調査結果、外部ユニットのキャッシュメモリに未使用のキャッシュページが存在する（図７のＳ１０６の判定がイエスの）場合の動作フローである。また、図１１はこのときのデータとコマンドの流れを説明する図である。
ホストコンピュータ１００から書き込み要求を受けた（図１１のＡ１）ホスト制御部２１０は、未使用のキャッシュページがある外部ユニットに対してキャッシュページの確保を内部通信制御部２１３により要求し、ホストから受信したデータをそのキャッシュページに格納する（Ｓ１３１、図１１のＡ２）。その後、ホスト制御部２１０は、データを格納した外部ユニット内の外部受け入れ管理テーブル２２４に対象ブロックに関するレコードを登録し（Ｓ１３２）、自ユニット内の外部書き込み管理テーブル２２３に対象ブロックのビットをセットし（Ｓ１３３）、確保していたキャッシュページを開放してホストに応答を送信する（Ｓ１３４、図１１のＡ３）。
【００７８】
本実施形態ではホスト制御部２１０やディスク制御部２４０が外部ユニットのキャッシュメモリ２２１への書き込みを実施しているが、キャッシュメモリ部２２０内に独立したキャッシュメモリ間のデータコピー制御部を持つ構成としても良い。
【００７９】
図１０は、外部ユニットからキャッシュメモリにデータを書き込まれたユニットにおいて、書き込まれたデータを元のユニットのキャッシュメモリに戻すためのキャッシュデータ書き戻し処理の動作フローを示したものである。
ディスク制御部２４０は、外部受け入れ管理テーブル２２４を定期的に調査し、外部ユニットから書き込まれたキャッシュページが存在するかどうかを判定する（Ｓ１４２）。この判定は、外部受け入れ管理テーブルにひとつ以上のレコードがある場合に外部ユニットから書き込まれたキャッシュページがあると判定し、そうでない場合に外部ユニットから書き込まれたキャッシュページはないと判定する。
【００８０】
外部ユニットから書き込まれたキャッシュページがある場合、ディスク制御部２４０は、データの書き込み元の外部ユニットに未使用キャッシュページがあるかどうかを判定する（Ｓ１４２の判定がイエス、Ｓ１４３）。この判定は、キャッシュメモリ管理テーブル２２２を参照し、外部受け入れ管理テーブル２２４から取得した書き込み元ユニット番号に対応する未使用キャッシュページ数が１以上の場合に未使用キャッシュページがあると判定し、そうでない場合は未使用キャッシュページがないと判定する。
【００８１】
書き込み元ユニットのキャッシュメモリに未使用のキャッシュページが存在する場合（Ｓ１４３の判定がイエスの場合）は、ディスク制御部２４０は、当該キャッシュページおよび書き込み元ユニットのキャッシュページを確保する。次に、ディスク制御部２４０が当該キャッシュページのデータを書き込み元ユニットのキャッシュページにコピーする（Ｓ１４４、図１１のＡ４）。
ディスク制御部２４０は、コピーが完了したらコピー元のキャッシュページを未使用状態に変更し（Ｓ１４５）、コピー元およびコピー先のキャッシュページを開放し、自ユニットの外部受け入れ管理テーブル２２４からコピーを行ったブロックに関するレコードを削除する（Ｓ１４６）。
【００８２】
Ｓ１４３ないしＳ１４６の処理は、Ｓ１４２の時点で外部受け入れ管理テーブル２２４に存在したすべてのレコードについて繰り返し行う。
このようにすることにより、一時的に外部ユニットのキャッシュメモリに格納されたデータは元のユニットのキャッシュメモリに書き戻され、ディスク制御部２４０により物理ディスク２５０に書き込まれる（図１１のＡ５）。
【００８３】
ストレージ装置２００の第一の効果は、スイッチ部２３０経由で接続されている外部ストレージ装置２００のキャッシュメモリ２２１を一時的に利用することにより、ホストからの書き込み負荷が高い場合でもホストへの応答を高速に行うことができるということである。
ストレージ装置２００の第二の効果は、スイッチ経由で接続されている別のストレージ装置のキャッシュメモリを有効に利用することによりキャッシュメモリの利用効率を向上し、コストダウンを図ることができるということである。
【図面の簡単な説明】
【００８４】
【図１】本発明の一実施形態であるストレージシステムの全体構成を示す図である。
【図２】図１のストレージ装置の詳細構成を示す図である。
【図３】キャッシュメモリ管理テーブルの一例を示す図である。
【図４】キャッシュメモリ管理テーブルの一例を示す図である。
【図５】外部書き込み管理テーブルの一例を示す図である。
【図６】外部受け入れ管理テーブルの一例を示す図である。
【図７】ストレージ装置のデータ書き込み動作を示す図である。
【図８】ストレージ装置のデータ書き込み動作を示す図である。
【図９】ストレージ装置のデータ書き込み動作を示す図である。
【図１０】ストレージ装置のキャッシュデータ書き戻し動作を示す図である。
【図１１】ストレージ装置におけるデータとコマンドの流れを説明する図である。
【図１２】従来のストレージ装置の構成を示す図である。
【図１３】従来のストレージ装置のデータ書き込み動作を示す図である。
【符号の説明】
【００８５】
１  ストレージシステム
１００  ホストコンピュータ
２００  ストレージ装置
２１０  ホスト制御部
２１１  ホストコマンド制御部
２１２  データ転送制御部
２１３  内部通信制御部
２２０  キャッシュメモリ部
２２１  キャッシュメモリ
２２２  キャッシュメモリ管理テーブル
２２３  外部書き込み管理テーブル
２２４  外部受け入れ管理テーブル
２３０  スイッチ部
２４０  ディスク制御部
２４１  ディスクコマンド制御部
２４２  データ転送制御部
２４３  内部通信制御部
２４４  キャッシュ間コピー制御部
２５０  物理ディスク部
【図１】
2008065559.tif 000003
【図２】
2008065559.tif 000004
【図３】
2008065559.tif 000005
【図４】
2008065559.tif 000006
【図５】
2008065559.tif 000007
【図６】
2008065559.tif 000008
【図７】
2008065559.tif 000009
【図８】
2008065559.tif 000010
【図９】
2008065559.tif 000011
【図１０】
2008065559.tif 000012
【図１１】
2008065559.tif 000013
【図１２】
2008065559.tif 000014
【図１３】
2008065559.tif 000015