(57)【特許請求の範囲】
【請求項１】
キャッシュメモリを搭載したディスクアレイ装置において、正規のデータ領域であるキャッシュページ群とともに、キャッシュページ内のＤＩＲＴＹデータを退避するためのワークページ群を備える前記キャッシュメモリと、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込む際に、前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページに退避する処理を行い、書き込みデータ転送の中断が発生した場合に、前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページに復帰させる処理を行うホストインタフェース制御部と、
前記キャッシュメモリ上のＤＩＲＴＹデータのライトバック処理を行うディスクインタフェース制御部と
を有することを特徴とするディスクアレイ装置。
【請求項２】
キャッシュメモリを搭載したディスクアレイ装置において、正規のデータ領域であるキャッシュページ群と、キャッシュページ内のＤＩＲＴＹデータを退避するためのワークページ群と、各キャッシュページにおけるデータステートを管理するための管理領域とを備える前記キャッシュメモリと、
ホストコンピュータから書き込み要求を受けると、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込み、そのデータ書き込み時に前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページにコピーし退避する処理を行った上で書き込みデータ転送を開始させるホストインタフェース制御部内のデータ退避関連制御手段と、
書き込みデータ転送の中断が生じていないかどうかを監視し、書き込みデータ転送の中断が発生し、かつ、「ワークページへのデータ退避済み」であると判定した場合に、前記データ退避関連制御手段によって前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページにコピーして復帰させる処理を行い、書き込みデータ転送の中断が発生し、かつ、「ワークページへのデータ退避済み」ではないと判定した場合に、書き込み範囲のデータを破棄して当該書き込み範囲のデータステートを「ＮＵＬＬ」に変更するホストインタフェース制御部内のデータ復帰関連制御手段と、
前記キャッシュメモリ内にＤＩＲＴＹデータがあるかどうかを定期的に監視し、ＤＩＲＴＹデータを見つけた場合には、ホストＩ／Ｏとは非同期に、そのＤＩＲＴＹデータをディスク装置に書き込むライトバック処理を行うディスクインタフェース制御部と
を有することを特徴とするディスクアレイ装置。
【請求項３】
各キャッシュページについてＤＩＲＴＹデータの開始アドレスおよびデータ長ならびにＣＬＥＡＮデータの開始アドレスおよびデータ長を有する管理領域を備えることを特徴とする請求項２記載のディスクアレイ装置。
【請求項４】
あるキャッシュページの全領域と当該キャッシュページのＤＩＲＴＹデータを退避するためのワークページの全領域とが１対１に対応していることを特徴とする請求項１，請求項２，または請求項３記載のディスクアレイ装置。
【請求項５】
正規のデータ領域であるキャッシュページ群とともに、キャッシュページ内のＤＩＲＴＹデータを退避するためのワークページ群を備えるキャッシュメモリ，および複数のディスク装置を備えるディスクアレイ装置を、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込む際に、前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページに退避する処理を行い、書き込みデータ転送の中断が発生した場合に、前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページに復帰させる処理を行うホストインタフェース制御部，および前記キャッシュメモリ上のＤＩＲＴＹデータのライトバック処理を行うディスクインタフェース制御部として機能させるためのプログラム。
【請求項６】
正規のデータ領域であるキャッシュページ群と、キャッシュページ内のＤＩＲＴＹデータを退避するためのワークページ群と、各キャッシュページにおけるデータステートを管理するための管理領域とを備えるキャッシュメモリ，および複数のディスク装置を備えるディスクアレイ装置を、ホストコンピュータから書き込み要求を受けると、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込み、そのデータ書き込み時に前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページにコピーし退避する処理を行った上で書き込みデータ転送を開始させるホストインタフェース制御部内のデータ退避関連制御手段，書き込みデータ転送の中断が生じていないかどうかを監視し、書き込みデータ転送の中断が発生し、かつ、「ワークページへのデータ退避済み」であると判定した場合に、前記データ退避関連制御手段によって前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページにコピーして復帰させる処理を行い、書き込みデータ転送の中断が発生し、かつ、「ワークページへのデータ退避済み」ではないと判定した場合に、書き込み範囲のデータを破棄して当該書き込み範囲のデータステートを「ＮＵＬＬ」に変更するホストインタフェース制御部内のデータ復帰関連制御手段，および前記キャッシュメモリ内にＤＩＲＴＹデータがあるかどうかを定期的に監視し、ＤＩＲＴＹデータを見つけた場合には、ホストＩ／Ｏとは非同期に、そのＤＩＲＴＹデータをディスク装置に書き込むライトバック処理を行うディスクインタフェース制御部として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリを搭載したディスクアレイ装置に関し、特に、ホストコンピュータの障害やホストインタフェースケーブル（ホストコンピュータとディスクアレイ装置との間のケーブル）の障害等により書き込みデータ転送が中断した場合でも書き込みデータ転送が中断する前のデータを保護することができるディスクアレイ装置（データ保護機能を有するディスクアレイ装置）に関する。
【０００２】
【従来の技術】
通常、キャッシュメモリを搭載したディスクアレイ装置は、ホストコンピュータからの書き込み要求（データ書き込み要求）を受けた場合に、キャッシュメモリ上に受信したデータ（書き込みデータ）を格納した段階でホストコンピュータに応答を返し、ホストコンピュータとの間のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）とは非同期にディスク装置（物理ディスク）へのデータの書き込みを行うことにより、性能の向上を図っている。
【０００３】
このようなディスクアレイ装置において、ホストコンピュータからの書き込みデータ転送中にホストコンピュータの障害やホストインタフェースケーブルの障害等により書き込みデータ転送が中断した場合には、その書き込みデータ転送における書き込み範囲のデータの内容は保証できなくなる。
【０００４】
このため、従来のディスクアレイ装置は、その書き込み範囲のデータをそれ以降に読み込んだ時にそのデータが訂正不能エラーデータであると分かるような情報（訂正不能エラーを示す情報）を、そのデータに埋め込んでいる場合があった。
【０００５】
図７は、従来のディスクアレイ装置において、キャッシュメモリ上の書き込み先のキャッシュページ（書き込み要求によって指定された書き込み範囲を有するキャッシュページ）内の当該書き込み範囲にすでにＤＩＲＴＹデータ（ディスク装置への書き込みが完了していないデータ）が存在している状態で当該キャッシュメモリに対するデータ書き込み処理が行われ、当該書き込みデータ転送が正常に完了した場合における当該キャッシュページ中のデータの属性（データステート）の遷移を示す図である。なお、データステートの「ＤＩＲＴＹ」，「ＣＬＥＡＮ」，および「ＮＵＬＬ」の意味するところは、後述する本発明における各データステートと同一である。
【０００６】
従来のディスクアレイ装置は、書き込み先のキャッシュページ上の書き込み範囲にすでにＤＩＲＴＹデータが存在している状態（図７の（ａ）参照）でホストコンピュータから書き込み要求を受けた場合に、当該書き込み要求に基づくホストコンピュータからの書き込みデータを当該キャッシュページに格納し（書き込みデータ転送を完了させ）、データステートが「ＤＩＲＴＹ」の範囲を当該書き込み範囲まで拡張する（図７の（ｂ）参照）。
【０００７】
さらに、当該ディスクアレイ装置内のディスクインタフェース制御部（図１に示すディスクインタフェース制御部２３と同様のインタフェース制御部）が当該ＤＩＲＴＹデータをディスク装置に書き込むこと（ライトバック処理を行うこと）により、当該キャッシュページ中の当該書き込み範囲のデータステートは「ＣＬＥＡＮ」（ＣＬＥＡＮデータとは、ディスク装置への書き込みが完了したデータを意味する）に変更される（図７の（ｃ）参照）。
【０００８】
図８は、従来のディスクアレイ装置において、キャッシュメモリ上の書き込み先のキャッシュページ内の書き込み範囲にすでにＤＩＲＴＹデータが存在している状態で当該キャッシュメモリに対するデータ書き込み処理が行われ、当該書き込みデータ転送が中断した場合における当該キャッシュページ中のデータステートの遷移を示す図である。
【０００９】
図７の場合と同様に、従来のディスクアレイ装置は、書き込み先のキャッシュページ上の書き込み範囲にすでにＤＩＲＴＹデータが存在している状態（図８の（ａ）参照）でホストコンピュータから書き込み要求を受けた場合に、書き込みデータ転送を開始する。
【００１０】
ここで、この書き込みデータ転送が中断した場合には、書き込み範囲のデータの内容は保証できなくなる（図８の（ｂ）における「×××××」参照）。
【００１１】
そこで、従来のディスクアレイ装置は、この場合には、当該キャッシュページ中の書き込み範囲のデータをそれ以降に読み込んだ時にそのデータに訂正不能エラーが生じていること（そのデータが訂正不能データであること）を示す情報（訂正不能エラーを示す情報）をそのデータに埋め込む（図８の（ｃ）参照）。
【００１２】
そして、当該ディスクアレイ装置内のディスクインタフェース制御部が当該ＤＩＲＴＹデータ（訂正不能データを含むＤＩＲＴＹデータ）をディスク装置に書き込むこと（ライトバック処理を行うこと）により、当該キャッシュページ中の当該書き込み範囲のデータステートは「ＣＬＥＡＮ」に変更される（図８の（ｄ）参照）。
【００１３】
【発明が解決しようとする課題】
上述した従来のディスクアレイ装置においては、書き込み先のキャッシュページの書き込み範囲にすでにＤＩＲＴＹデータが存在している状態で、キャッシュメモリに対してデータ書き込み処理が行われ、当該書き込みデータ転送が中断した場合に、書き込みデータ転送の中断が発生する前のデータが破壊されているため（訂正不能データとなっているため）、ホストコンピュータのアプリケーション（アプリケーションプログラム）は磁気テープ装置等のバックアップ装置からデータを復旧しなければならず、障害の復旧処理（障害発生時の復旧作業）に長時間を要する場合があるという問題点があった。
【００１４】
また、この問題点を回避するために、新たなバッファメモリを搭載し、ホストコンピュータからの書き込みデータをバッファメモリに正常に格納してからキャッシュメモリに転送するという方式が考えられる。しかし、この方式の場合には、新たなハードウェア（バッファメモリ）が必要となる上、バッファメモリからキャッシュメモリへのデータ転送が毎回行われるため、書き込み性能が大幅に低下するという問題点が生じることになる。
【００１５】
本発明の目的は、上述の点に鑑み、新たなハードウェアを追加せず、また書き込み性能の低下をできるだけ発生させずに、書き込みデータ転送の中断発生時でも以前の（書き込みデータ転送中断発生前の）データを保護できる機能を有するディスクアレイ装置を提供することにある。
【００１６】
すなわち、本発明の目的は、キャッシュメモリを搭載したディスクアレイ装置において、ホストコンピュータの障害やホストインタフェースケーブルの障害等により書き込みデータ転送が中断した場合でも書き込みデータ転送が中断する前のデータを保護し（ホストコンピュータからの書き込みデータ転送が中断した場合にキャッシュメモリ内のワークページに退避しておいたデータを復帰させることによって、書き込みデータ転送が中断がする前のデータを保護し）、障害の復旧に要する時間を短縮することができ、書き込み性能の向上を図ることができるディスクアレイ装置（データ保護機能を有するディスクアレイ装置）を提供することにある。
【００１７】
【課題を解決するための手段】
本発明のディスクアレイ装置は、キャッシュメモリを搭載したディスクアレイ装置において、正規のデータ領域であるキャッシュページ群と、キャッシュページ内のＤＩＲＴＹデータ（ディスク装置への書き込みが完了していないデータ）を退避するためのワークページ群と、各キャッシュページにおけるデータステートを管理するための管理領域とを備える前記キャッシュメモリと、ホストコンピュータから書き込み要求を受けると、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込み、そのデータ書き込み時に前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページにコピーし退避する処理を行った上で書き込みデータ転送を開始させるホストインタフェース制御部内のデータ退避関連制御手段と、書き込みデータ転送の中断（ホストコンピュータの障害やホストインタフェースケーブルの障害等による中断）が生じていないかどうかを監視し、書き込みデータ転送の中断が発生し、かつ、「ワークページへのデータ退避済み」である（前記データ退避関連制御手段によるワークページへのＤＩＲＴＹデータの退避が行われている）と判定した場合に、前記データ退避関連制御手段によって前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページにコピーして復帰させる処理を行い、書き込みデータ転送の中断が発生し、かつ、「ワークページへのデータ退避済み」ではないと判定した場合に、書き込み範囲のデータを破棄して当該書き込み範囲のデータステートを「ＮＵＬＬ」に変更するホストインタフェース制御部内のデータ復帰関連制御手段と、前記キャッシュメモリ内にＤＩＲＴＹデータがあるかどうかを定期的に監視し、ＤＩＲＴＹデータを見つけた場合には、ホストＩ／Ｏ（ホストコンピュータとディスクアレイ装置との間のＩ／Ｏ）とは非同期に、そのＤＩＲＴＹデータをディスク装置に書き込むライトバック処理を行うディスクインタフェース制御部とを有する。
【００１８】
なお、本発明のディスクアレイ装置は、より一般的には、キャッシュメモリを搭載したディスクアレイ装置において、正規のデータ領域であるキャッシュページ群とともに、キャッシュページ内のＤＩＲＴＹデータを退避するためのワークページ群を備える前記キャッシュメモリと、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込む際に、前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページに退避する処理を行い、書き込みデータ転送の中断が発生した場合に、前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページに復帰させる処理を行うホストインタフェース制御部と、前記キャッシュメモリ上のＤＩＲＴＹデータのライトバック処理を行うディスクインタフェース制御部とを有する構成であると表現することができる。
【００１９】
また、本発明は、正規のデータ領域であるキャッシュページ群とともに、キャッシュページ内のＤＩＲＴＹデータを退避するためのワークページ群を備えるキャッシュメモリ，および複数のディスク装置を備えるディスクアレイ装置を、前記キャッシュメモリにホストコンピュータから転送された書き込みデータを書き込む際に、前記キャッシュメモリの書き込み範囲にＤＩＲＴＹデータがあった場合に、書き込み範囲とＤＩＲＴＹ範囲との重複した部分のデータを前記キャッシュメモリ内のワークページに退避する処理を行い、書き込みデータ転送の中断が発生した場合に、前記キャッシュメモリのワークページに退避されたデータを前記キャッシュメモリのキャッシュページに復帰させる処理を行うホストインタフェース制御部，および前記キャッシュメモリ上のＤＩＲＴＹデータのライトバック処理を行うディスクインタフェース制御部として機能させるためのプログラムとして実現することも可能である。
【００２０】
【発明の実施の形態】
次に、本発明について図面を参照して詳細に説明する。
【００２１】
（１）  第１の実施の形態
【００２２】
図１は、本発明の第１の実施の形態に係るディスクアレイ装置（ディスクアレイ装置２）を含むコンピュータシステムの構成を示すブロック図である。
【００２３】
図１を参照すると、本実施の形態に係るディスクアレイ装置（ディスクアレイ装置２）は、ホストインタフェースケーブル３によりホストコンピュータ１に接続されている。
【００２４】
ディスクアレイ装置２は、ホストインタフェース制御部２１と、キャッシュメモリ２２と、ディスクインタフェース制御部２３と、複数のディスク装置２４とを含んで構成されている。
【００２５】
ホストインタフェース制御部２１は、ホストコンピュータ１から書き込み要求（データ書き込み要求）を受けると、キャッシュメモリ２２内の書き込みアドレスに対応する範囲（書き込み範囲）を有するキャッシュページ（書き込み先のキャッシュページ）にホストコンピュータ１から転送されたデータ（書き込みデータ）を格納する。この時に、当該キャッシュページに格納されたデータは、ディスク装置２４への書き込みが完了していないデータ（ＤＩＲＴＹデータ）として管理される。また、ホストインタフェース制御部２１は、書き込みデータ転送が完了した時点で、その旨を示す応答をホストコンピュータ１に返す。
【００２６】
このホストインタフェース制御部２１は、データ退避関連制御手段２１１と、データ復帰関連制御手段２１２とを含んで構成されている。
【００２７】
キャッシュメモリ２２は、キャッシュページ群（キャッシュページと呼ばれるあるまとまった単位でデータを記憶する領域に分割されている正規のデータ領域）と、当該キャッシュページ群の一部（全てのキャッシュページに対応するワークページが存在するわけではない）の各キャッシュページ内のＤＩＲＴＹデータを退避するための各ワークページ（一時的にデータを記憶するワーク領域）からなるワークページ群（キャッシュページと１対１に対応するようにワークページが割り当てられている）と、各キャッシュページにおけるデータステートを管理するための管理領域とを備えている。なお、管理領域は、具体的には、各キャッシュページについて、ＤＩＲＴＹデータの開始アドレスおよびデータ長ならびにＣＬＥＡＮデータの開始アドレスおよびデータ長（ＤＩＲＴＹデータ／ＣＬＥＡＮデータが存在しない場合にはその旨）を管理している。
【００２８】
ディスクインタフェース制御部２３は、キャッシュメモリ２２内にＤＩＲＴＹデータがあるかどうかを定期的に監視し、ＤＩＲＴＹデータを見つけた場合には、ホストＩ／Ｏ（ホストコンピュータ１とディスクアレイ装置２との間のＩ／Ｏ）とは非同期に、そのＤＩＲＴＹデータをディスク装置２４に書き込む（この書き込み処理を「ライトバック処理」と呼ぶ）。これにより、キャッシュメモリ２２内のＤＩＲＴＹデータは、ディスク装置２４への書き込みが完了したデータ（ＣＬＥＡＮデータ）になる（データステートが「ＤＩＲＴＹ」から「ＣＬＥＡＮ」に変更される）。
【００２９】
図２は、ホストインタフェース制御部２１の処理を示す流れ図である。この処理は、書き込み先キャッシュページＤＩＲＴＹデータ有無判定ステップ２０１と、書き込み範囲・ＤＩＲＴＹ範囲重複判定ステップ２０２と、重複部分データ退避ステップ２０３と、書き込みデータ転送開始ステップ２０４と、書き込みデータ転送中断発生判定ステップ２０５と、データステート「ＤＩＲＴＹ」変更ステップ２０６と、データ退避済み判定ステップ２０７と、退避済みＤＩＲＴＹデータ復帰ステップ２０８と、書き込み範囲データ破棄ステップ２０９とからなる。
【００３０】
図３〜図５は、本実施の形態に係るディスクアレイ装置（ディスクアレイ装置２）の具体的な動作を説明するための図（キャッシュメモリ２２上の書き込み先のキャッシュページ（ホストコンピュータ１からの書き込み要求によって指定された書き込み範囲を有するキャッシュページ）におけるデータステートの遷移を示す図）である。
【００３１】
次に、図１〜図５を参照して、上記のように構成された本実施の形態に係るディスクアレイ装置（図１中のディスクアレイ装置２）の動作について詳細に説明する。
【００３２】
第１に、図２を参照して、ディスクアレイ装置２内のホストインタフェース制御部２１の全体的な動作について説明する。
【００３３】
ディスクアレイ装置２内のホストインタフェース制御部２１は、ホストインタフェースケーブル３を介してホストコンピュータ１から書き込み要求を受けると、図２に示すような処理を行う。
【００３４】
初めに、ホストインタフェース制御部２１内のデータ退避関連制御手段２１１は、当該書き込み要求に基づいて、以下に示すような処理を行う。
【００３５】
まず、当該書き込み要求で指定された書き込み範囲（キャッシュメモリ２２上の書き込みアドレスと書き込みデータ長とによって特定される範囲）が存在するキャッシュページ（書き込み先のキャッシュページ）にＤＩＲＴＹデータが存在するか否かを判定する（ステップ２０１）。
【００３６】
ステップ２０１で「書き込み先のキャッシュページにＤＩＲＴＹデータが存在する」と判定した場合には、書き込み範囲とＤＩＲＴＹ範囲（ＤＩＲＴＹデータの存在する範囲）とが重複しているか否かを判定する（ステップ２０２）。
【００３７】
ステップ２０２で「書き込み範囲とＤＩＲＴＹ範囲とが重複している」と判定した場合には、書き込み範囲とＤＩＲＴＹ範囲とが重複している部分のＤＩＲＴＹデータ（重複部分データ）を所定のワークページ（当該キャッシュページに対応するワークページ）に退避する（ステップ２０３）。
【００３８】
一方、ステップ２０１で「書き込み先のキャッシュページにＤＩＲＴＹデータが存在しない」と判定した場合，ステップ２０２で「書き込み範囲とＤＩＲＴＹ範囲とが重複していない」と判定した場合，またはステップ２０３のデータ退避処理が終了した場合には、当該書き込み要求に関する書き込みデータ転送を開始させる（ステップ２０４）。
【００３９】
続いて、ホストインタフェース制御部２１内のデータ復帰関連制御手段２１２は、ステップ２０４で開始された書き込みデータ転送の過程において、以下に示すような処理を行う。
【００４０】
まず、当該書き込みデータ転送が完了するまで、ホストコンピュータ１の障害やホストインタフェースケーブル３の障害等による書き込みデータ転送の中断が発生していないかどうかを監視（判定）する（ステップ２０５）。
【００４１】
ステップ２０５で「書き込みデータ転送の中断が発生しなかった」と判定した場合（書き込みデータ転送の中断が発生せずに当該書き込みデータ転送が完了した場合）には、当該書き込み範囲のデータステートを「ＤＩＲＴＹ」に変更する（ステップ２０６）。
【００４２】
一方、ステップ２０５で「書き込みデータ転送の中断が発生した」と判定した場合には、当該キャッシュページ（書き込み先のキャッシュページ）に対応するワークページへのＤＩＲＴＹデータ（重複部分データ）の退避が行われている（「データ退避済み」である）か否かを判定する（ステップ２０７）。
【００４３】
ステップ２０７で「データ退避済みである」と判定した場合には、退避済みのＤＩＲＴＹデータを当該ワークページから当該キャッシュページに復帰させ、当該書き込み範囲のデータステートを「ＤＩＲＴＹ」および「ＮＵＬＬ」（有効なデータがない状態を示すデータステート）に変更する（ステップ２０８）。すなわち、当該書き込み範囲中のデータを復帰した部分のデータステートを「ＤＩＲＴＹ」とし、当該書き込み範囲中のデータを復帰した部分以外の部分（データステートが「ＤＩＲＴＹ」でなかった部分）のデータステートを「ＮＵＬＬ」とする。
【００４４】
一方、ステップ２０７で「データ退避済みでない」と判定した場合には、当該書き込み範囲のデータを破棄して、当該書き込み範囲のデータステートを「ＮＵＬＬ」に変更する（ステップ２０９）。
【００４５】
第２に、ディスクアレイ装置２内のディスクインタフェース制御部２３の動作について説明する（なお、ディスクインタフェース制御部２３の動作は従来技術と同様である）。
【００４６】
ディスクアレイ装置２内のディスクインタフェース制御部２３は、キャッシュメモリ２２内にＤＩＲＴＹデータがあるかどうかを定期的に監視し、ＤＩＲＴＹデータを見つけた場合には、ホストＩ／Ｏとは非同期に、そのＤＩＲＴＹデータ（上記のようなホストインタフェース制御部２１の処理によって書き込みデータ転送の中断が発生したとしても保護されているＤＩＲＴＹデータ）をディスク装置２４に書き込む処理（ライトバック処理）を行う。
【００４７】
なお、ディスクインタフェース制御部２３がディスク装置２４にＤＩＲＴＹデータを書き込む（ライトバックする）ことにより、当該ＤＩＲＴＹデータが存在していた範囲のデータステートは「ＣＬＥＡＮ」に変更される。
【００４８】
第３に、図３〜図５を参照して、本実施の形態に係るディスクアレイ装置（ディスクアレイ装置２）の具体的な動作について説明する。
【００４９】
ここでは、以下のａ〜ｃの３つの場合について、キャッシュメモリ２２上の書き込み先のキャッシュページにおけるデータステート（データの属性）の遷移に関する動作について説明する。
【００５０】
ａ．初めに、図３を参照して、書き込み先のキャッシュページ上に有効なデータがない状態（当該キャッシュページの全範囲のデータステートが「ＮＵＬＬ」である状態。図３の（ａ）参照）での当該キャッシュページへのデータ書き込み処理における動作について説明する。
【００５１】
この場合には、ホストインタフェース制御部２１は、ホストコンピュータ１から書き込み要求を受けると、図２のステップ２０１で「書き込み先のキャッシュページにＤＩＲＴＹデータは存在しない」と判定し、ホストコンピュータ１からの書き込みデータをデータ転送の中断なく当該キャッシュページ上の書き込み範囲に格納し（図２のステップ２０４およびステップ２０５参照）、当該書き込み範囲のデータステートを「ＤＩＲＴＹ」に変更する（図２のステップ２０６および図３の（ｂ）参照）。
【００５２】
なお、上記の書き込み処理の後に、ディスクインタフェース制御部２３がディスク装置２４にＤＩＲＴＹデータを書き込む（ライトバックする）ことにより、書き込み先のキャッシュページ上の書き込み範囲のデータステートは「ＣＬＥＡＮ」に変更される（図３の（ｃ）参照）。
【００５３】
ｂ．続いて、図４を参照して、書き込み先のキャッシュページ上に有効なデータがない状態（当該キャッシュページの全範囲のデータステートが「ＮＵＬＬ」である状態。図４の（ａ）参照）での当該キャッシュページへのデータ書き込み処理において、書き込みデータ転送が中断した場合における動作について説明する。
【００５４】
従来の技術の説明でも述べたように、書き込みデータ転送が中断すると、書き込み範囲のデータは不定となる（図４の（ｂ）における「×××××」参照）。
【００５５】
本実施の形態、ひいては本発明では、この場合に、ホストインタフェース制御部２１が、書き込み範囲を有するキャッシュページ（書き込み先のキャッシュページ）中の当該書き込み範囲のデータを破棄する（当該書き込み範囲のデータステートを「ＮＵＬＬ」に変更する）（図２のステップ２０９および図４の（ｃ）参照）。
【００５６】
これにより、ディスクインタフェース制御部２３による当該データに対するディスク装置２４へのライトバック処理が実施されないので、ディスク装置２４に格納されている当該データの内容は保持される（従来の技術では「ディスク装置２４に訂正不能データが格納されること」になっていたが、本発明ではそのようなことがない）。
【００５７】
ｃ．最後に、図５を参照して、書き込み先のキャッシュページの書き込み範囲にすでにＤＩＲＴＹデータが存在している状態での当該キャッシュページへのデータ書き込み処理において、書き込みデータ転送が中断した場合における動作について説明する。
【００５８】
この場合（書き込み先のキャッシュページの書き込み範囲にすでにＤＩＲＴＹデータが存在していた場合）には、ホストインタフェース制御部２１は、まず書き込み範囲とＤＩＲＴＹ範囲との重複する部分のデータ（重複部分データ。図５中の「ＤＩＲＴＹ（２）」で示す範囲のＤＩＲＴＹデータ）をキャッシュメモリ２２内の所定のワークページ（当該キャッシュページに対応するワークページ）にコピーして退避しておく（図２のステップ２０３および図５の（ａ）参照）。
【００５９】
上記の退避コピーが完了すると、ホストコンピュータ１からの書き込みデータの書き込み先のキャッシュページへのデータ転送が開始される（図２のステップ２０４参照）。
【００６０】
図５の場合には、この書き込みデータ転送が中断することになるので、ホストインタフェース制御部２１は、上記のワークページに退避しておいたデータを当該キャッシュページにコピーして復帰させる（図２のステップ２０８および図５の（ｂ）参照）。
【００６１】
上記の復帰コピーが完了すると、データを復帰した部分のデータステートは「ＤＩＲＴＹ」に変更され、書き込み範囲ではあるがＤＩＲＴＹ範囲ではなかった部分のデータステートは「ＮＵＬＬ」に変更される（図５の（ｃ）参照）。
【００６２】
これにより、書き込みデータ転送を行う以前にキャッシュメモリ２２上に存在したＤＩＲＴＹデータ（ディスク装置２４への書き込みが完了していなかったデータ）の内容は、書き込みデータ転送が中断した場合でも保持されることになる。
【００６３】
そして、ディスクインタフェース制御部２３が当該ＤＩＲＴＹデータをディスク装置２４に書き込むこと（ライトバック処理を行うこと）により、当該キャッシュページ中の当該書き込み範囲のデータステートは「ＣＬＥＡＮ」に変更される（図５の（ｄ）参照）。
【００６４】
（２）  第２の実施の形態
【００６５】
図６は、本発明の第２の実施の形態の構成を示すブロック図である。
【００６６】
図６を参照すると、本発明の第２の実施の形態は、図１に示した第１の実施の形態に対して、データ保護機能実現プログラム６００を備える点が異なっている。
【００６７】
データ保護機能実現プログラム６００は、キャッシュメモリ２２および複数のディスク装置２４を備えるディスクアレイ装置２に読み込まれ、当該ディスクアレイ装置２の動作をホストインタフェース制御部２１（データ退避関連制御手段２１１およびデータ復帰関連制御手段２１２）およびディスクインタフェース制御部２３として制御する。データ保護機能実現プログラム６００の制御によるディスクアレイ装置２（ホストインタフェース制御部２１およびディスクインタフェース制御部２３）の動作は、第１の実施の形態におけるディスクアレイ装置２の動作と全く同様になるので、その詳しい説明を割愛する。
【００６８】
（３）  上記の実施の形態の変形（拡張）形態
【００６９】
上記の第１および第２の実施の形態に対しては、以下のａ〜ｃに示すような変形（拡張）形態を考えることができる（各変形形態を併有する形態も可能である）。
【００７０】
ａ．上記の実施の形態では、ある書き込み要求に対する書き込み先のキャッシュページは１つのキャッシュページであるとして説明した。しかし、書き込み範囲が複数のキャッシュページにまたがり、複数のキャッシュページが「書き込み先のキャッシュページ」に該当することになることも可能である。
【００７１】
ｂ．上記の実施の形態では、キャッシュメモリ２２内の管理領域の内容は、各キャッシュページについて、ＤＩＲＴＹデータの開始アドレスおよびデータ長ならびにＣＬＥＡＮデータの開始アドレスおよびデータ長（ＤＩＲＴＹデータ／ＣＬＥＡＮデータが存在しない場合にはその旨）を管理するものであった。しかし、管理領域の内容は、各キャッシュページにおけるデータステートの「ＤＩＲＴＹ」，「ＣＬＥＡＮ」，および「ＮＵＬＬ」の範囲が分かるものであれば、上記の内容に限定されるものではない。
【００７２】
ｃ．上記の実施の形態では、キャッシュメモリ２２内の各ワークページは、いずれかのキャッシュページに１対１に対応していた。これは、ＤＩＲＴＹデータの退避／復帰処理における制御の内容を複雑にしないためである。しかし、ワークページはキャッシュページ中の重複部分データ（書き込み範囲とＤＩＲＴＹ範囲との重複する部分のＤＩＲＴＹデータ）を退避できるものであればよく、必ずしもワークページの全領域とキャッシュページの全領域とが１対１に対応している必要はない。
【００７３】
【発明の効果】
以上説明したように、本発明によれば、ホストコンピュータからの書き込みデータ転送が中断した場合でも、キャッシュメモリ内の書き込み先のキャッシュページ中の書き込み範囲にＤＩＲＴＹデータ（ディスク装置への書き込みが完了していないデータ）が存在していたか否かにかかわらず、当該書き込みデータ転送の中断が発生する以前のデータを保護することができる。
【００７４】
これにより、ホストコンピュータのアプリケーションは磁気テープ装置等のバックアップ装置からデータを復旧する必要がなくなるので、障害発生時の復旧作業に要する時間を短縮することができるという効果が生じる。
【００７５】
また、本発明は、キャッシュメモリ上の一部をワークページ群（データ退避用のワーク領域）として使用するだけで実現できるので、新たなハードウェアを追加することなく安価に上記の効果を実現することができる。
【００７６】
さらに、本発明によれば、キャッシュメモリ内の書き込み先のキャッシュページの書き込み範囲にＤＩＲＴＹデータが存在した場合のみデータを退避すれば足りるので、書き込み要求がある度に毎回退避する方式に比べて書き込み性能の低下を小さくすることができるという効果が生じる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るディスクアレイ装置を含むコンピュータシステムの構成を示すブロック図である。
【図２】図１中のディスクアレイ装置内のホストインタフェース制御部の処理を示す流れ図である。
【図３】本発明の第１の実施の形態に係るディスクアレイ装置の具体的な動作を説明するための図である。
【図４】本発明の第１の実施の形態に係るディスクアレイ装置の具体的な動作を説明するための図である。
【図５】本発明の第１の実施の形態に係るディスクアレイ装置の具体的な動作を説明するための図である。
【図６】本発明の第２の実施の形態の構成を示すブロック図である。
【図７】従来のディスクアレイ装置の動作を説明するための図である。
【図８】従来のディスクアレイ装置の動作を説明するための図である。
【符号の説明】
１  ホストコンピュータ
２  ディスクアレイ装置
３  ホストインタフェースケーブル
２１  ホストインタフェース制御部
２２  キャッシュメモリ
２３  ディスクインタフェース制御部
２４  ディスク装置
２１１  データ退避関連制御手段
２１２  データ復帰関連制御手段
６００  データ保護機能実現プログラム
【図１】
0003610574.tif 000002
【図２】
0003610574.tif 000003
【図３】
0003610574.tif 000004
【図４】
0003610574.tif 000005
【図５】
0003610574.tif 000006
【図６】
0003610574.tif 000007
【図７】
0003610574.tif 000008
【図８】
0003610574.tif 000009