(57)【要約】【課題】キャッシュメモリ上で更新された更新レコードをディスク装置に書き戻す際のディスク装置の負荷の増大を抑制するストレージ装置を提供する。【解決手段】ＲＡＩＤコントローラ１４が、キャッシュコントローラ１２が更新した更新レコードを含む単位読み出しデータをキャッシュコントローラ１２から受信し、ＲＡＩＤコントローラ１４が、単位読み出しデータをマージ補間するかを判断し、単位読み出しデータをマージ補間すると判断した場合に、単位読み出しデータに対応するデータをディスク装置２から読み出す。そして、ＲＡＩＤコントローラ１４が、上記単位読み出しデータとディスク装置２から読み出されたデータとに基づいて、単位読み出しデータをマージ補間して、ディスク装置２に書き込む。【選択図】図１
2010218485.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュメモリと、
前記キャッシュメモリにアクセスするキャッシュコントローラと、
１又は複数のディスク装置と、
前記キャッシュコントローラが更新した更新レコードを含み、前記キャッシュメモリからの読み出しの単位である単位読み出しデータを前記キャッシュコントローラから受信するデータ受信部と、
前記受信された単位読み出しデータをマージ補間するかを判断するマージ補間判断部と、
前記単位読み出しデータをマージ補間すると判断された場合に、該単位読み出しデータに対応するデータをディスク装置から読み出すデータ読み出し部と、
前記単位読み出しデータと前記ディスク装置から読み出されたデータとに基づいて、前記単位読み出しデータをマージ補間して、前記ディスク装置に対する書き込み対象となるデータを生成する書き込みデータ生成部と、
前記生成された書き込み対象となるデータを前記ディスク装置に書き込むデータ書き込み部とを備える
ことを特徴とするストレージ装置。
【請求項２】
前記マージ補間判断部が、前記単位読み出しデータに含まれる更新レコードが該単位読み出しデータ内に離散し、かつ、該離散している更新レコードが３個以上であるかを判断し、前記更新レコードが前記単位読み出しデータ内に離散し、かつ、該離散している更新レコードが３個以上であると判断した場合に、単位読み出しデータをマージ補間すると判断する
ことを特徴とする請求項１記載のストレージ装置。
【請求項３】
前記マージ補間判断部が、更に、前記ディスクコントローラと前記ディスク装置との間のデータ転送量がフル状態であるかを判断し、該データ転送量がフル状態であると判断した場合に、前記単位読み出しデータをマージ補間すると判断する
ことを特徴とする請求項２記載のストレージ装置。
【請求項４】
キャッシュメモリと、前記キャッシュメモリにアクセスするキャッシュコントローラと、１又は複数のディスク装置と、前記ディスク装置にアクセスするディスクコントローラとを備えるストレージ装置における、前記キャッシュコントローラが更新した更新レコードを前記ディスク装置に書き込む方法であって、
前記ディスクコントローラが、前記キャッシュコントローラが更新した更新レコードを含み、前記キャッシュメモリからの読み出しの単位である単位読み出しデータを前記キャッシュコントローラから受信し、
前記ディスクコントローラが、前記受信された単位読み出しデータをマージ補間するかを判断し、
前記ディスクコントローラが、前記単位読み出しデータをマージ補間すると判断された場合に、該単位読み出しデータに対応するデータをディスク装置から読み出し、
前記ディスクコントローラが、前記単位読み出しデータと前記ディスク装置から読み出されたデータとに基づいて、該単位読み出しデータをマージ補間して、前記ディスク装置に対する書き込み対象となるデータを生成し、
前記ディスクコントローラが、前記生成された書き込み対象となるデータを一括して前記ディスク装置に書き込む
ことを特徴とするデータ書き込み方法。
【請求項５】
前記ディスクコントローラが、前記単位読み出しデータに含まれる更新レコードが該単位読み出しデータ内に離散し、かつ、該離散している更新レコードが３個以上であるかを判断し、前記更新レコードが前記単位読み出しデータ内に離散し、かつ、該離散している更新レコードが３個以上であると判断した場合に、単位読み出しデータをマージ補間すると判断する
ことを特徴とする請求項４記載のデータ書き込み方法。
【請求項６】
前記ディスクコントローラが、更に、前記ディスクコントローラと前記ディスク装置との間のデータ転送量がフル状態であるかを判断し、該データ転送量がフル状態であると判断した場合に、前記単位読み出しデータをマージ補間すると判断する
ことを特徴とする請求項４記載のデータ書き込み方法。
【請求項７】
キャッシュメモリと、前記キャッシュメモリにアクセスするキャッシュコントローラと、１又は複数のディスク装置と、前記ディスク装置にアクセスするディスクコントローラとを備えるストレージ装置における、前記キャッシュコントローラが更新した更新レコードを前記ディスク装置に書き込むプログラムであって、
前記ディスクコントローラであるコンピュータに、
前記キャッシュコントローラが更新した更新レコードを含み、前記キャッシュメモリからの読み出しの単位である単位読み出しデータを前記キャッシュコントローラから受信する処理と、
前記受信された単位読み出しデータをマージ補間するかを判断する処理と、
前記単位読み出しデータをマージ補間すると判断された場合に、該単位読み出しデータに対応するデータをディスク装置から読み出す処理と、
前記単位読み出しデータと前記ディスク装置から読み出されたデータとに基づいて、該単位読み出しデータをマージ補間して、前記ディスク装置に対する書き込み対象となるデータを生成する処理と、
前記生成された書き込み対象となるデータを一括して前記ディスク装置に書き込む処理とを実行させる
ことを特徴とするデータ書き込みプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュコントローラとディスクコントローラとを備えるストレージ装置、キャッシュコントローラが更新したデータをディスク装置に書き込むデータ書き込み方法、及びデータ書き込みプログラムに関する。
【背景技術】
【０００２】
記録再生装置においては、ディスク装置から読み出したデータを、ディスク装置に書き戻すことが行われる。例えば、ランダムアクセス可能な記録媒体上のビデオデータ、オーディオデータ、または、ビデオデータまたはオーディオデータに対応するリアルタイムメタデータに対して編集終了点を指定する信号に応じて、編集終了点が指定された記録単位のデータの記録媒体への書き戻しを、編集終了点が指定された記録単位に相当する期間を経過した後に開始するようにした記録再生装置が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１０７６４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
キャッシュメモリとディスク装置とを備えるストレージ装置においても、キャッシュメモリ上で更新された更新レコードをディスク装置に書き戻す処理を行うことが考えられる。この書き戻し処理において、キャッシュメモリ上で更新された複数の更新レコードを、ディスク装置における離散した位置に書き込む場合がある。この場合、各々の更新レコードについてライト要求を発行して更新レコードを個別にディスク装置に書き込む必要がある。この結果、ディスク装置の負荷が増大する。
【０００５】
本発明は、キャッシュメモリ上で更新された更新レコードをディスク装置に書き戻す際のディスク装置の負荷の増大を抑制するストレージ装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
本ストレージ装置は、キャッシュメモリと、前記キャッシュメモリにアクセスするキャッシュコントローラと、１又は複数のディスク装置と、データ受信部と、マージ補間判断部と、データ読み出し部と、書き込みデータ生成部と、データ書き込み部とを備える。データ受信部は、前記キャッシュコントローラが更新した更新レコードを含み、前記キャッシュメモリからの読み出しの単位である単位読み出しデータを前記キャッシュコントローラから受信する。マージ補間判断部は、前記受信された単位読み出しデータをマージ補間するかを判断する。データ読み出し部は、前記単位読み出しデータをマージ補間すると判断された場合に、該単位読み出しデータに対応するデータをディスク装置から読み出す。書き込みデータ生成部は、前記単位読み出しデータと前記ディスク装置から読み出されたデータとに基づいて、前記単位読み出しデータをマージ補間して、前記ディスク装置に対する書き込み対象となるデータを生成する。データ書き込み部は、前記生成された書き込み対象となるデータを前記ディスク装置に書き込む。
【発明の効果】
【０００７】
本ストレージ装置によれば、キャッシュメモリ上で更新された複数の更新レコードをディスク装置に書き戻す場合に、各々の更新レコードについて、別個にディスク装置に書き戻すことなく、所定の単位で一括してディスク装置に書き戻すことができる。従って、本ストレージ装置によれば、キャッシュメモリ上で更新された更新レコードをディスク装置に書き戻す際のディスク装置の負荷の増大を抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】本実施形態のストレージ装置の構成例を示す図である。
【図２】ＲＡＩＤの構成例を示す図である。
【図３】本実施形態のストレージ装置による、ディスク装置への更新レコードの書き込み処理を説明する図である。
【図４】キャッシュコントローラからＲＡＩＤコントローラに対して送信された単位読み出しデータをマージ補間する条件を説明する図である。
【図５】キャッシュコントローラからＲＡＩＤコントローラに対して送信された単位読み出しデータをマージ補間する条件を説明する図である。
【図６】本実施形態のストレージ装置による、ディスク装置への更新レコードの書き込み処理フローの例を示す図である。
【図７】キャッシュメモリにおいて更新された更新レコードをディスク装置に書き戻す動作の例を示す図である。
【発明を実施するための形態】
【０００９】
図７は、キャッシュメモリとディスク装置とを備えるストレージ装置における、キャッシュメモリにおいて更新された更新レコードをディスク装置に書き戻す動作の例を示す。なお、図７に示すストレージ装置は、本発明者が検討したストレージ装置である。
図７に示すストレージ装置は、キャッシュコントローラ（図示を省略）と、ディスク装置１０１とを備える。キャッシュコントローラは、キャッシュメモリ１００にアクセスする制御部である。また、ディスク装置１０１は、ディスクコントローラとディスク（図示を省略）とを備える。図示を省略するホストコンピュータは、例えば小ブロックＤＡＭ（Direct Access Memory）形式レコードをキャッシュメモリ１００から順次読み出すとともに、キャッシュメモリ１００上のレコードを更新する（図７の＃１）。図７中のハッチングが施された部分が更新レコードを示す。レコードが更新されると、キャッシュメモリ１００において管理されるＣＢＥ（Cash Block Entry）内に、更新レコードが離散した状態で含まれることになる場合がある。なお、１個のＣＢＥは、キャッシュメモリ１００の１ページである。
【００１０】
例えば、更新レコードをキャッシュメモリ１００からディスク装置へ書き戻す処理において、キャッシュコントローラが、上記離散した状態の更新レコードを分割してバラバラにした上で（図７の＃２）、各々の更新レコードのライト要求をディスクコントローラに対して発行する（図７の＃３）。上記ライト要求を受けたディスクコントローラが、各々の更新レコードをディスク装置に書き込ませる。
【００１１】
図７を参照して前述したストレージ装置では、ディスクコントローラが、キャッシュコントローラから要求される各々の更新要求に応じて各々の更新レコードをディスク装置に書き込ませる。従って、更新レコードの数が多くなると、ディスク装置へのコマンド発行待ちキューが増加して、ディスク装置の負荷が高くなる（図７の＃４）。その結果、ディスク装置に対するオンラインのデータ読み出し要求処理についても遅延するという問題が生じる。
【００１２】
以下に説明する本実施形態のストレージ装置によれば、更新レコードをディスク装置に書き戻す際のディスク装置の負荷の増大を抑制することができる。
【００１３】
図１は、本実施形態のストレージ装置の構成例を示す図である。本実施形態のストレージ装置は、ＣＭ（Control Module）１、複数のディスク装置２を備える。ディスク装置２は１台でもよい。ストレージ装置は、ホストコンピュータ１０に接続されている。ＣＭ１は、ＣＡ（Channel Adaptor ）１１、キャッシュコントローラ１２、キャッシュメモリ１３、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks ）コントローラ１４、ディスクドライブ１５を備える。
ＣＭ１は、ホストコンピュータ１０からのデータの書き込み要求に応じてキャッシュメモリ１３にデータを書き込む。また、ＣＭ１は、ホストコンピュータ１０からのデータの読み出し要求に応じてキャッシュメモリ１３からデータを読み出す。また、ＣＭ１は、更新レコードを、ディスク装置２に書き戻す。更新レコードとは、キャッシュコントローラ１２によりキャッシュメモリ１３上で更新されたレコードである。更新レコードについては、図３を参照して後述する。ディスク装置２は、データを記憶する記憶装置であって、例えば、物理ディスクを備える磁気ディスク装置である。
【００１４】
ＣＡ１１は、ＣＭ１とホストコンピュータ１０との間の通信を媒介する。キャッシュコントローラ１２は、ホストコンピュータ１０から要求されたデータ書き込み要求を受けて、キャッシュメモリ１３上にデータを書き込む。すなわち、キャッシュコントローラ１２は、キャッシュメモリ１３にアクセスする制御装置である。また、キャッシュコントローラ１２は、ホストコンピュータ１０から要求されたデータ読み出し要求を受けて、キャッシュメモリ１３からデータを読み出す。キャッシュコントローラ１２は、キャッシュメモリ１３に書き込まれるデータをＣＢＥ単位で管理する。そして、キャッシュコントローラ１２は、キャッシュメモリ１３上でレコードを更新した場合に、単位読み出しデータと、
トラック情報と、更新レコード位置情報とをＲＡＩＤコントローラ１４に対して送信する。トラック情報とは、単位読み出しデータに対応するデータが書き込まれているディスク装置２上のトラックの情報である。更新レコード位置情報とは、単位読み出しデータに含まれる更新レコードの位置を示す位置情報である。
単位読み出しデータとは、１又は複数の更新レコードを含み、キャッシュメモリ１３からの読み出しの単位のデータである。単位読み出しデータは、例えば、１個のＣＢＥのデータである。単位読み出しデータについては、図３を参照して後述する。
【００１５】
キャッシュメモリ１３は、ディスク装置２よりも高速で読み出し及び書き込みが可能なデータ記憶部であって、例えば半導体記憶装置や、ディスク装置２と比べて高速アクセス可能なディスク装置である。例えば、キャッシュコントローラ１２は、ディスク装置２に記憶されるデータをコピーしてキャッシュメモリ１３に記憶する。
ＲＡＩＤコントローラ１４は、ディスク装置２へアクセスするディスクコントローラである。ＲＡＩＤコントローラ１４は、キャッシュコントローラ１２がキャッシュメモリ１３上で更新した１又は複数の更新レコードを含む単位読み出しデータと、この単位読み出しデータに対応するデータが書き込まれているディスク装置２上のトラックの情報であるトラック情報とをキャッシュコントローラ１２から受信し、単位読み出しデータをマージ補間するかを判断する。
マージ補間とは、上記単位読み出しデータに含まれる更新レコードが離散している場合、つまり、単位読み出しデータ内の更新レコード間に未更新のレコードが存在している場合に、ディスク装置２上の単位読み出しデータに対応するデータと単位読み出しデータとをマージすることによって、単位読み出しデータにおける未更新のレコードを補間することを言う。マージ補間の具体的な処理については、図３を参照して後述する。未更新のレコードとは、処理対象の単位読み出しデータにおいて、キャッシュコントローラ１２がキャッシュメモリ１３上で更新しなかったレコードを言う。
【００１６】
ＲＡＩＤコントローラ１４が、単位読み出しデータをマージ補間すると判断した場合、ＲＡＩＤコントローラ１４は、単位読み出しデータに対応するデータを、ディスクドライブ１５及びＦＣ（Fibre Channel:ファイバチャネル）１６を介して、ディスク装置２から読み出す。ＲＡＩＤコントローラ１４は、上記単位読み出しデータと上記ディスク装置２から読み出されたデータとに基づいて、該単位読み出しデータをマージ補間して、ディスク装置２に対する書き込み対象となるデータを生成する。そして、ＲＡＩＤコントローラ１４は、上記生成された書き込み対象となるデータを、ディスクドライブ１５及びＦＣ１６を介して、ディスク装置２に書き込む。
ＲＡＩＤコントローラ１４が、単位読み出しデータをマージ補間しないと判断した場合、ＲＡＩＤコントローラ１４は、単位読み出しデータに含まれる各々の更新レコードを別個にディスク装置２に書き込む。
ディスクドライブ１５は、各々のディスク装置２とＦＣ１６で接続されており、ディスク装置２との間のデータ転送を媒介する。
【００１７】
本実施形態のストレージ装置及びそれらの各部の機能は、ＣＰＵとその上で実行されるプログラムにより実現される。このプログラムは、コンピュータが読み取り可能な記録媒体、例えば半導体メモリ、ハードディスク、ＣＤ−ＲＯＭ、ＤＶＤ等に格納することができ、これらの記録媒体に記録して提供され、又は、通信インタフェースを介してネットワークを利用した送受信により提供される。
【００１８】
図２は、図１に示すＲＡＩＤの構成例を示す図である。ＲＡＩＤコントローラ１４は、データ受信部２０１、データ記憶部２０２、マージ補間判断部２０３、データ読み出し部２０４、書き込みデータ生成部２０５、データ書き込み部２０６を備える。
【００１９】
データ受信部２０１は、キャッシュコントローラ１２が更新した更新レコードを含む単位読み出しデータを、キャッシュコントローラ１２から受信し、データ記憶部２０２に送信する。また、データ受信部２０１は、キャッシュコントローラ１２から、上記単位読み出しデータに対応するデータが書き込まれているディスク装置２上のトラックを示す情報であるトラック情報を受信し、データ記憶部２０２に送信する。また、データ受信部２０１は、キャッシュコントローラ１２から単位読み出しデータについての更新レコード位置情報を受信し、データ記憶部２０２に送信する。
【００２０】
データ記憶部２０２は、データ受信部２０１が送信した単位読み出しデータ、トラック情報、更新レコード位置情報を受信して記憶する。データ記憶部２０２が記憶した単位読み出しデータは、マージ補間判断部２０３によって参照される。また、単位読み出しデータは、データ記憶部２０２からデータ読み出し部２０４に送信される。データ記憶部２０２が記憶したトラック情報は、後述するように、データ記憶部２０２がマージ補間判断部２０３から単位読み出しデータをマージ補間することを通知されたときに、データ記憶部２０２からデータ読み出し部２０４に送信される。
また、データ記憶部２０２が記憶した更新レコード位置情報は、マージ補間判断部２０３によって参照される。また、更新レコード位置情報は、データ記憶部２０２からデータ読み出し部２０４に送信される。
マージ補間判断部２０３は、データ記憶部２０２が記憶した単位読み出しデータと更新レコード位置情報とに基づいて、単位読み出しデータをマージ補間するかを判断する。マージ補間判断部２０３は、単位読み出しデータに含まれる更新レコードが単位読み出しデータ内に離散し、かつ、離散している更新レコードの数が閾値以上であるかを判断する。
この例では、閾値は、例えば３個である。閾値は、３個以上であってもよい。上記閾値は、経験的に定まる。
マージ補間判断部２０３は、更新レコードが単位読み出しデータ内に離散し、かつ、該離散している更新レコードの数が閾値以上であると判断した場合に、単位読み出しデータをマージ補間すると判断する。マージ補間判断部２０３は、単位読み出しデータをマージ補間すると判断した場合に、データ記憶部２０２に対して、単位読み出しデータをマージ補間することを通知する。
【００２１】
なお、マージ補間判断部２０３が、更に、ＣＭ１のＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態であるかを判断し、該データ転送量がフル状態でないと判断した場合に、単位読み出しデータをマージ補間すると判断するようにしてもよい。データ転送量がフル状態とは、ＣＭ１とディスク装置２とを接続するＦＣ１６のデータ転送領域の容量が残っていない状態をいう。
データ記憶部２０２は、マージ補間判断部２０３から単位読み出しデータをマージ補間することを通知されると、上記データ受信部２０１から受信して記憶したトラック情報と、単位読み出しデータと、更新レコード位置情報とを、データ読み出し部２０４に送信する。
【００２２】
データ読み出し部２０４は、マージ補間判断部２０３が上記単位読み出しデータをマージ補間すると判断した場合に、単位読み出しデータに対応するデータである対応データを、ディスクドライブ１５及びＦＣ１６を介して、ディスク装置２から読み出す。具体的には、データ読み出し部２０４は、データ記憶部２０２が送信したトラック情報と単位読み出しデータとを受信し、受信したトラック情報に基づいて、単位読み出しデータに対応するデータである対応データを、ディスクドライブ１５及びＦＣ１６を介して、ディスク装置２から読み出す。データ読み出し部２０４は、単位読み出しデータと、対応情報と、更新レコード位置情報と、トラック情報とを書き込みデータ生成部２０５に送信する。
【００２３】
書き込みデータ生成部２０５は、データ読み出し部２０４から送信された単位読み出しデータと、対応データと、更新レコード位置情報とに基づいて、後述する図３に示すように、単位読み出しデータをマージ補間して、ディスク装置２に対する書き込み対象となるデータを生成する。このマージ補間を、後述する図３ではＯＲ演算と表している。
マージ補間すなわちＯＲ演算とは、以下の処理をいう。書き込みデータ生成部２０５が、単位読み出しデータに含まれる更新レコードについては、該更新レコードを選択する。また、書き込みデータ生成部２０５が、単位読み出しデータに含まれる未更新のレコードについては、対応レコードを選択する。対応レコードとは、対応データに含まれるレコードである。また、書き込みデータ生成部２０５が、上記選択した更新レコードと対応レコードとをマージする。より詳細には、書き込みデータ生成部２０５が、単位読み出しデータにおける未更新のレコードを、対応レコードで上書きすることによって、該未更新のレコードを対応レコードで補間する。これによって、ディスク装置２に対する書き込み対象となるデータが生成される。書き込みデータ生成部２０５は、書き込み対象となるデータとトラック情報とをデータ書き込み部２０６に送信する。
【００２４】
データ書き込み部２０６は、書き込みデータ生成部２０５から送信された、書き込み対象となるデータとレコード情報とを受信する。そして、データ書き込み部２０６は、受信したレコード情報に基づいて、書き込みデータ生成部２０５が生成した書き込み対象となるデータを、ディスクドライブ１５及びＦＣ１６を介して、ディスク装置２のデータ読み出し部２０４が読み出した対応データが書き込まれていた元の箇所に書き込む。なお、マージ補間判断部２０３が、上記単位読み出しデータをマージ補間しないと判断した場合には、データ書き込み部２０６は、上記単位読み出しデータに含まれる各々の更新レコードを、ディスクドライブ１５及びＦＣ１６を介して、別個にディスク装置２に書き込むようにする。
【００２５】
図３は、本実施形態のストレージ装置による、ディスク装置への更新レコードの書き込み処理を説明する図である。図３では、単位読み出しデータｄ１は１個のＣＢＥのデータである。図３内のハッチングが施された部分が更新レコードＲ１である。図３に示すように、キャッシュコントローラ１２から送信された１個のＣＢＥのデータｄ１内に、更新レコードＲ１が５個存在する（図３の＃１）。
【００２６】
上記１個のＣＢＥにおいて、図３中の点線の楕円部分が未更新のレコードＲ２’である。データ読み出し部２０４が、ディスク装置２から上記１個のＣＢＥのデータｄ１に対応する対応データｄ２を、ディスクドライブ１５及びＦＣ１６を介して、読み出す（図３の＃２）。そして、書き込みデータ生成部２０５が、上記ディスク装置２から読み出された対応データｄ２と上記１個のＣＢＥのデータｄ１とに基づいて、マージ補間する（図３の＃３）。具体的には、書き込みデータ生成部２０５が、上記１個のＣＢＥのデータｄ１における未更新のレコードＲ２’を、上記ディスク装置２から読み出された対応データｄ２に含まれる対応レコードＲ２で上書きする。これにより、１個のＣＢＥのデータｄ１が上記ディスク装置２から読み出された対応データＲ２でマージ補間され、書き込み対象のデータｄ３が生成される（図３の＃４）。そして、データ書き込み部２０６が、上記生成された書き込み対象のデータｄ３を、ディスクドライブ１５及びＦＣ１６を介して、ディスク装置２に書き込む（図３の＃５）。
例えば、ＲＡＩＤコントローラ１４が図３に示す１個のＣＢＥに含まれる５個の更新レコードの各々について別個にディスク装置２に書き込む場合がある。この場合には、ＲＡＩＤコントローラ１４からディスク装置２に対して５回の書き込みコマンドが発行される。
【００２７】
しかし、本実施形態のように、上記１個のＣＢＥをマージ補間した上で一括してディスク装置２に書き込むことによって、ＲＡＩＤコントローラ１４からディスク装置２に対するコマンドの発行回数は、データ読み出しコマンドが１回、データ書き込みコマンドが１回の合計２回である。従って、本実施形態のストレージ装置によれば、コマンドの発行回数が３回抑制され、その結果、ディスク装置２の負荷が軽減される。
【００２８】
図４及び図５は、キャッシュコントローラからＲＡＩＤコントローラに対して送信された単位読み出しデータをマージ補間する条件を説明する図である。
図４のハッチングが施された部分のレコードが更新レコードである。ＲＡＩＤコントローラ１４は、例えば、キャッシュコントローラ１２から送信された１個のＣＢＥに含まれる離散した更新レコードが３個以上であり、かつ、ＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態である場合に、上記１個のＣＢＥをマージ補間すると判断する。
【００２９】
図４に示すように、１個のＣＢＥに含まれる離散した更新レコードが３個である場合に、該１個のＣＢＥをマージ補間した上で一括してディスク装置に書き込むようにすれば、書き込みに要するコマンドの発行数は２回で済む。これにより、上記３個の更新レコードの各々を個別にディスク装置２に書き込む場合に比べて、コマンドの発行回数を１回削減することができる。
【００３０】
また、図５に示すように、ＣＭ１のＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態である場合、マージ補間したデータをＲＡＩＤコントローラ１４からディスク装置２に対して転送するために必要な空き容量が残っていない。これは、図５中に示すＦＣ１６のデータ転送領域の容量がディスク装置２に発行するコマンドで埋まっている状態である場合である。ＲＡＩＤコントローラ１４は、ＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態でない場合に、キャッシュコントローラ１２が更新した１個のＣＢＥをマージ補間する。ＲＡＩＤコントローラ１４は、上記ＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態である場合には、キャッシュコントローラ１２が更新した１個のＣＢＥに含まれる各々の更新レコードを別個にディスク装置２に書き込むようにする。
【００３１】
図６は、本実施形態のストレージ装置による、ディスク装置への更新レコードの書き込み処理フローの例を示す図である。
【００３２】
キャッシュコントローラ１２がＲＡＩＤコントローラ１４に対して、更新レコードを含む単位読み出しデータを送信する（ステップＳ１）。単位読み出しデータの送信は、キャッシュコントローラ１２がキャッシュメモリ１３上でレコードを更新したことを契機に行われる。ＲＡＩＤコントローラ１４のマージ補間判断部２０３が、上記更新レコードが上記単位読み出しデータ内で離散しているかを判断する（ステップＳ２）。
【００３３】
マージ補間判断部２０３が、上記更新レコードが上記単位読み出しデータ内で離散していないと判断した場合は（ステップＳ２  Ｎｏ）、ＲＡＩＤコントローラ１４のデータ書き込み部２０６が、各々の更新レコードを、ディスクドライブ１５、ＦＣ１６を介して、別個にディスク装置２に書き込み（ステップＳ９）、処理を終了する。
【００３４】
マージ補間判断部２０３が、上記更新レコードが上記単位読み出しデータ内で離散していると判断した場合は（ステップＳ２  Ｙｅｓ）、マージ補間判断部２０３が、離散している更新レコードが３個以上であるかを判断する（ステップＳ３）。マージ補間判断部２０３が、離散している更新レコードが３個以上でないと判断した場合は（ステップＳ３  Ｎｏ）、上記ステップＳ９に進む。
【００３５】
マージ補間判断部２０３が、離散している更新レコードが３個以上であると判断した場合（ステップＳ３  Ｙｅｓ）、マージ補間判断部２０３が、ＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態であるかを判断する（ステップＳ４）。ステップＳ４においては、マージ補間判断部２０３は、ＣＭ１とディスク装置２とを接続するＦＣ１６のデータ転送領域の容量が残っているかに基づいて、上記データ転送量がフル状態であるかを判断する。マージ補間判断部２０３が、ＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態であると判断した場合は（ステップＳ４  Ｙｅｓ）、上記ステップＳ９に進む。
【００３６】
マージ補間判断部２０３が、ＲＡＩＤコントローラ１４とディスク装置２との間のデータ転送量がフル状態でないと判断した場合は（ステップＳ４  Ｎｏ）、マージ補間判断部２０３が、キャッシュコントローラ１２から送信された上記単位読み出しデータをマージ補間すると判断する（ステップＳ５）。続いて、データ読み出し部２０４が、上記単位読み出しデータに対応する対応データをディスク装置２から読み出す（ステップＳ６）。書き込みデータ生成部２０５が、上記単位読み出しデータと上記ディスク装置２から読み出された対応データとに基づいて、単位読み出しデータをマージ補間して、ディスク装置２に対する書き込み対象となるデータを生成する（ステップＳ７）。そして、データ書き込み部２０６が、上記生成された書き込み対象となるデータを、ディスクドライブ１５及びＦＣ１６を介して、ディスク装置２に書き込み（ステップＳ８）、処理を終了する。
【符号の説明】
【００３７】
１  ＣＭ
２  ディスク装置
１０  ホストコンピュータ
１１  ＣＡ
１２  キャッシュコントローラ
１３  キャッシュメモリ
１４  ＲＡＩＤコントローラ
１５  ディスクドライブ
１６  ＦＣ
【図１】
2010218485.tif 000003
【図２】
2010218485.tif 000004
【図３】
2010218485.tif 000005
【図４】
2010218485.tif 000006
【図５】
2010218485.tif 000007
【図６】
2010218485.tif 000008
【図７】
2010218485.tif 000009