(57)【要約】【課題】ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することを可能としたディスクアレイ装置を提供する。【解決手段】マスタＬＵダーティ量制御部１４５は、記憶媒体２のダーティデータがキャッシュ上に占める総容量の上限を設定し、その上限に相当するバッファのキャッシュ上での確保をスワップ領域管理部１４６に要求する。そして、デステージング制御部１４２は、ダーティデータがこの上限を越えないように、キャッシュのデステージングを制御する。また、ホスト機器からスナップショット作成要求を受けると、キャッシュメモリ管理部１４３は、スワップ領域管理部１４６によって確保されたバッファにマスタディスクのダーティデータをコピーした時点で、当該スナップショット作成の完了をホスト機器に返答する。【選択図】    図４
2005031746.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器と第１の記憶媒体との間に介在し、前記ホスト機器からのスナップショット作成要求に応じて、その要求時における前記第１の記憶媒体のデータを第２の記憶媒体に保存する機能を有するディスクアレイ装置において、
キャッシュメモリと、
前記キャッシュメモリ上にキャッシング可能とする前記第１の記憶媒体のデータの総容量の上限値を設定する上限値設定手段と、
前記上限値設定手段により設定された上限値の容量をもつ退避エリアを前記キャッシュメモリ上に確保する退避エリア確保手段と、
前記上限値設定手段により設定された上限値に基づき、前記キャッシュメモリ上における前記第１の記憶媒体のデータのデステージングを制御するデステージング制御手段と、
前記デステージング制御手段から前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータのデステージングが指示された場合に、前記スナップショット作成要求がなされていない状況であれば、そのデータを前記第１の記憶媒体および前記第２の記憶媒体の双方に出力し、前記スナップショット作成要求がなされている状況であれば、そのデータを前記第１の記憶媒体のみに出力するデータ出力制御手段と、
前記ホスト機器からスナップショット作成要求を受けた際、前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータを前記退避エリア確保手段により確保された退避エリアに退避し、その退避完了をもってスナップショット作成完了を前記ホスト機器に通知するスナップショット作成手段とを具備することを特徴とするディスクアレイ装置。
【請求項２】
前記データ出力制御手段は、前記退避エリアに退避された前記第１の記憶媒体のキャッシングデータを前記第２の記憶媒体に出力する手段を有することを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記第２の記憶媒体は、複数存在し、
前記退避エリア確保手段は、前記複数存在する第２の記憶媒体ごとに前記退避エリアを確保し、
前記スナップショット作成手段は、前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータを前記複数の退避エリアにそれぞれ退避する
ことを特徴とする請求項１または２記載のディスクアレイ装置。
【請求項４】
前記上限値設定手段は、前記総容量の上限値から第１の基準値および第２の基準値を算出して設定する手段を有し、
前記デステージング制御手段は、前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータの総容量が前記第１の基準値に達した場合、その総容量が前記第２の基準値に至るまで、当該キャッシングデータのデステージングを実行制御することを特徴とする請求項１、２または３記載のディスクアレイ装置。
【請求項５】
ホスト機器と第１の記憶媒体との間に介在し、前記ホスト機器からのスナップショット作成要求に応じて、その要求時における前記第１の記憶媒体のデータを第２の記憶媒体に保存する機能を有するディスクアレイ装置において、
キャッシュメモリと、
前記ホスト機器から受け取った前記第１の記憶媒体に対する書き込みデータを前記キャッシュメモリ上にキャッシングする場合に、前記スナップショット作成要求がなされていない状況であれば、その書き込みデータのキャッシングに加えて、当該書き込みデータと同一内容の複製データを前記第２の記憶媒体に対する書き込みデータとして前記キャッシュメモリ上に別途キャッシングするキャッシング制御手段と、
前記ホスト機器からスナップショット作成要求を受けた際、前記キャッシング制御手段による複製データのキャッシング完了をもってスナップショット作成完了を前記ホスト機器に通知するスナップショット作成手段とを具備することを特徴とするディスクアレイ装置。
【請求項６】
前記第２の記憶媒体は、複数存在し、
前記キャッシング制御手段は、前記複製データのキャッシングを前記複数存在する第２の記憶媒体ごとに個別に実行することを特徴とする請求項５記載のディスクアレイ装置。
【請求項７】
キャッシュメモリを備え、ホスト機器と第１の記憶媒体との間に介在し、前記ホスト機器からのスナップショット作成要求に応じて、その要求時における前記第１の記憶媒体のデータを第２の記憶媒体に保存する機能を有するディスクアレイ装置の筐体内レプリケーション方法であって、
前記キャッシュメモリ上にキャッシング可能とする前記第１の記憶媒体のデータの総容量の上限値を設定する上限値設定ステップと、
前記上限値設定ステップにより設定された上限値の容量をもつ退避エリアを前記キャッシュメモリ上に確保する退避エリア確保ステップと、
前記上限値設定ステップにより設定された上限値に基づき、前記キャッシュメモリ上における前記第１の記憶媒体のデータのデステージングを制御するデステージング制御ステップと、
前記デステージング制御ステップから前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータのデステージングが指示された場合に、前記スナップショット作成要求がなされていない状況であれば、そのデータを前記第１の記憶媒体および前記第２の記憶媒体の双方に出力し、前記スナップショット作成要求がなされている状況であれば、そのデータを前記第１の記憶媒体のみに出力するデータ出力制御ステップと、
前記ホスト機器からスナップショット作成要求を受けた際、前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータを前記退避エリア確保手段により確保された退避エリアに退避し、その退避完了をもってスナップショット作成完了を前記ホスト機器に通知するスナップショット作成ステップと
を具備することを特徴とするディスクアレイ装置の筐体内レプリケーション方法。
【請求項８】
キャッシュメモリを備え、ホスト機器と第１の記憶媒体との間に介在し、前記ホスト機器からのスナップショット作成要求に応じて、その要求時における前記第１の記憶媒体のデータを第２の記憶媒体に保存する機能を有するディスクアレイ装置の筐体内レプリケーション方法であって、
前記ホスト機器から受け取った前記第１の記憶媒体に対する書き込みデータを前記キャッシュメモリ上にキャッシングする場合に、前記スナップショット作成要求がなされていない状況であれば、その書き込みデータのキャッシングに加えて、当該書き込みデータと同一内容の複製データを前記第２の記憶媒体に対する書き込みデータとして前記キャッシュメモリ上に別途キャッシングするキャッシング制御ステップと、
前記ホスト機器からスナップショット作成要求を受けた際、前記キャッシング制御ステップによる複製データのキャッシング完了をもってスナップショット作成完了を前記ホスト機器に通知するスナップショット作成ステップと
を具備することを特徴とするディスクアレイ装置の筐体内レプリケーション方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えばマスタディスクとバックアップディスクをミラーとして運用するシステムに適用して好適なディスクアレイ装置および同装置の筐体内レプリケーション方法に関する。
【０００２】
【従来の技術】
昨今、ディスク容量の増大のペースは著しく、それに伴い、データ量増大のペースも著しい。このような状況下、テープ機器へのバックアップは非常に時間を要するため、ディスクをバックアップ先に指定するケースが増えている。
【０００３】
通常、ディスクにバックアップを採るケースでは、マスタディスクとバックアップディスクを常時ミラーとして運用し、バックアップ作成時に、サーバ側にてコミットポイント作成またはファイルシステムアンマウントを実行し、サーバメモリ上のダーティデータをすべて掃き出し、データ記憶システムのキャッシュ上のデータをマスタディスクとバックアップディスクの両方に掃き出した後に、マスタディスクとバックアップディスクを分離（ミラー状態の解除）して、バックアップの生成を行う。また、このバックアップディスクの分離、つまりミラー状態の解除は、スナップショット作成などと称されている。
【０００４】
【発明が解決しようとする課題】
ところで、このスナップショット作成にあたっては、マスタとバックアップの両方に書き込みを実施するために、最悪のケース（例えばデータ記憶システムのキャッシュ上に、ランダム書き込みとなるダーティデータが非常に多く存在する場合）では、多大な時間を要してしまうことになる。
【０００５】
この発明は、このような事情を考慮してなされたものであり、ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することを可能としたディスクアレイ装置および同装置の筐体内レプリケーション方法を提供することを目的とする。
【０００６】
【課題を解決するための手段】
前述した目的を達成するために、この発明は、ホスト機器と第１の記憶媒体との間に介在し、前記ホスト機器からのスナップショット作成要求に応じて、その要求時における前記第１の記憶媒体のデータを第２の記憶媒体に保存する機能を有するディスクアレイ装置において、キャッシュメモリと、前記キャッシュメモリ上にキャッシング可能とする前記第１の記憶媒体のデータの総容量の上限値を設定する上限値設定手段と、前記上限値設定手段により設定された上限値の容量をもつ退避エリアを前記キャッシュメモリ上に確保する退避エリア確保手段と、前記上限値設定手段により設定された上限値に基づき、前記キャッシュメモリ上における前記第１の記憶媒体のデータのデステージングを制御するデステージング制御手段と、前記デステージング制御手段から前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータのデステージングが指示された場合に、前記スナップショット作成要求がなされていない状況であれば、そのデータを前記第１の記憶媒体および前記第２の記憶媒体の双方に出力し、前記スナップショット作成要求がなされている状況であれば、そのデータを前記第１の記憶媒体のみに出力するデータ出力制御手段と、前記ホスト機器からスナップショット作成要求を受けた際、前記キャッシュメモリ上にキャッシングされた前記第１の記憶媒体のデータを前記退避エリア確保手段により確保された退避エリアに退避し、その退避完了をもってスナップショット作成完了を前記ホスト機器に通知するスナップショット作成手段とを具備することを特徴とする。
【０００７】
この発明のディスクアレイ装置においては、マスタディスクのダーティデータがキャッシュ上に占める総容量を制限し、かつ、その総容量分のバッファをあらかじめ確保しておき、スナップショット作成時に、そのあらかじめ確保したバッファに対してマスタディスクのダーティデータをコピーすることで、スナップショット作成を完了とする。これにより、ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することができる。
【０００８】
また、この発明は、ホスト機器と第１の記憶媒体との間に介在し、前記ホスト機器からのスナップショット作成要求に応じて、その要求時における前記第１の記憶媒体のデータを第２の記憶媒体に保存する機能を有するディスクアレイ装置において、キャッシュメモリと、前記ホスト機器から受け取った前記第１の記憶媒体に対する書き込みデータを前記キャッシュメモリ上にキャッシングする場合に、前記スナップショット作成要求がなされていない状況であれば、その書き込みデータのキャッシングに加えて、当該書き込みデータと同一内容の複製データを前記第２の記憶媒体に対する書き込みデータとして前記キャッシュメモリ上に別途キャッシングするキャッシング制御手段と、前記ホスト機器からスナップショット作成要求を受けた際、前記キャッシング制御手段による複製データのキャッシング完了をもってスナップショット作成完了を前記ホスト機器に通知するスナップショット作成手段とを具備することを特徴とする。
【０００９】
この発明のディスクアレイ装置においては、マスタディスクのダーティデータをその書き込み時にキャッシュ上で複製するようにする。これにより、ホストからのスナップショット作成要求時、マスタディスクおよびバックアップディスクに対するキャッシュのデステージングを実施することなくスナップショット作成を完了できることになり、すなわち、ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することができる。
【００１０】
【発明の実施の形態】
以下、図面を参照してこの発明の実施形態を説明する。
【００１１】
（第１実施形態）
まず、この発明の第１実施形態について説明する。
【００１２】
図１は、この発明の第１実施形態に係るディスクアレイ装置の概略構成を示す図である。
【００１３】
このディスクアレイ装置１０は、データ通信路１を介して接続されるホスト機器と記憶媒体２との間に介在して設けられるものであり、図１に示すように、ＨＯＳＴインタフェース部１１、ＣＰＵ１２、プログラムメモリ１３、キャッシュメモリ１４およびＨＤＤインタフェース部１５を有している。なお、データ通信路１を介して接続されるものとしては、ホスト機器となるコンピュータまたはその集合体のほか、他のデータ記憶装置も想定される。
【００１４】
ＨＯＳＴインタフェース部１１およびＨＤＤインタフェース部１５は、それぞれ外部接続される装置との間の通信を実行制御するものであり、ＨＯＳＴインタフェース部１１はデータ通信路１側の通信を司り、一方、ＨＤＤインタフェース部１５は記憶媒体２側の通信を司る。
【００１５】
ＣＰＵ１２は、データ記憶装置における必要処理を実行するものであり、プログラムメモリ１３には、そのための各種プログラムとデータ領域とが格納されている。そして、ここで説明する筐体内レプリケーションの手法は、このプログラムメモリ１３に格納されるプログラムによって実現される。
【００１６】
また、キャッシュメモリ１４は、データ通信路１を介して接続されるコンピュータや他のデータ記憶装置から記憶媒体２に対して発行される入出力要求に対するバッファの役目を提供する。例えば、外部装置からの記憶媒体２への書き込み処理は、キャッシュメモリ１４にエントリした時点で、要求ホストに対しては書き込み処理完了を返却する。そして、その後に、キャッシュメモリ１４から記憶媒体２に対する実際の書き込みを実行する。一方、記憶媒体２からの読み込み処理については、まず、キャッシュメモリ１４に該当データがキャッシュされているか否かを判定し、キャッシュメモリ１４にエントリされていれば、そのデータを返却する。そして、キャッシュメモリ１４にエントリされていない場合に、記憶媒体２からキャッシュメモリ１４に読み出して、その後に、要求元である外部装置に対して読み出しデータをデータ通信路１を介して返却する。
【００１７】
図２には、キャッシュメモリ１４の構造が示されている。キャッシュメモリ１４は、ある論理的な単位に分割されて管理される。そして、この分割された単位で自由に記憶媒体２の位置に対応させ、そのデータを格納することができる。この分割された１つの単位をキャッシュブロックと呼ぶ。
【００１８】
図２においては、キャッシュメモリ１４は、１６ＫＢ単位のキャッシュブロックに分割される。それぞれがセットアソシアティブ方式によるメモリマッピングで管理する部分である。キャッシュメモリ１４上では、ＲＤＣ（リードキャッシュ）とＷＢＣ（ライトバックキャッシュ）の２種類のデータを管理する。ホスト機器からのリード／ライトアクセスにより各エントリをサーチし、対象となるキャッシュブロックとホスト機器または記憶媒体２間とでデータ転送を行う。
【００１９】
ここで、図３を参照して、この第１実施形態のディスクアレイ装置１０が実行する筐体内レプリケーションの概要を説明する。なお、ここでは、説明を分かり易くするために、記憶媒体２としてマスタディスク２ａおよびバックアップディスク２ｂの２つのディスクのみを考慮し、これらを通常時はミラーとして運用するものと想定する。また、ディスクアレイ装置１０については、キャッシュメモリ１４のみを図示する。
【００２０】
いま、このキャッシュメモリ１４の容量が６４ＭＢであるとすると、ホスト機器からマスタディスク２ａへの書き込みデータは、一般的には、最大６４ＭＢまでキャッシングすることが可能である。これに対して、このディスクアレイ装置１０では、その総容量の上限値をあらかじめ定め、かつ、その上限値に相当する容量のバッファをキャッシュメモリ１４上に確保する。つまり、キャッシング可能な総容量は最大で３２ＭＢとなる。
【００２１】
ここでは、その上限値を最大の３２ＭＢと定めたとする。その結果、このディスクアレイ装置１０では、３２ＭＢのバッファがキャッシュメモリ１４上に確保されることになる。図３では、キャッシュメモリ１４上でキャッシングのために利用可能な領域をキャッシュ領域１４ａ、バッファとして確保された領域をスワップ領域１４ｂとして表すことにする。
【００２２】
図３（Ａ）は、ミラー状態の解除前、つまりバックアップディスク２ｂの切り離し前の状態を示しており、キャッシュ領域１４ａ上のダーティデータをデステージする場合、そのデータをマスタディスク２ａおよびバックアップディスク２ｂの両方に出力する。一方、図３（Ｂ）は、ホスト機器からスナップショット作成要求がなされてミラー状態の解除、つまりバックアップディスク２ｂの切り離しを実行する時およびその後の状態を示しており、このスナップショット作成要求を受信すると、キャッシュ領域１４ａ上のダーティデータをスワップ領域１４ｂにコピーする。そして、このコピーが完了した時点で、スナップショット作成完了をホスト機器に返答する。その後、このスワップ領域１４ｂにコピーしたダーティデータをバックアップディスク２ｂに掃き出すことにより、スナップショット作成要求がなされた時点におけるマスタディスク２ａの状態がバックアップディスク２ｂに保存されることになる。また、これ以降、キャッシュ領域１４ａ上のダーティデータをデステージする場合、そのデータはマスタディスク２ａのみに出力する。
【００２３】
すなわち、このディスクアレイ装置１０では、キャッシュメモリ１４上のコピーのみでスナップショット作成を完了させることができるため（筐体内レプリケーション）、ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することが実現されることになる。
【００２４】
図４は、このディスクアレイ装置１０のプログラムメモリ１３に格納される各種プログラムのモジュール構成を示す図である。
【００２５】
ＨＯＳＴインタフェース制御部１１０は、他装置との間のインタフェース処理を担当する。ＩＯ管理部１２０は、ＩＯアクセス管理およびＩＯアクセス領域制御を実行する。レプリケーション管理部１３０は、レプリケーション機能を処理する。キャッシュ管理モジュール１４０は、ＩＯアクセス制御部１４１、デステージング／ステージング制御部１４２、キャッシュメモリ管理部１４３、ＬＤＩＳＫアクセス制御部１４４、マスタＬＵダーティ量制御部１４５およびスワップ領域管理部１４６で構成される。
【００２６】
ＩＯアクセス制御部１４１は、ＩＯ管理部１２０から要求を受け付けるブロックであり、主にホストからのリード／ライトアクセスを制御する。要求のアクセス情報（アドレス、転送サイズ）により、キャッシュメモリ管理部１４３との連携で該当するキャッシュブロックのエントリサーチを行い、キャッシュメモリ１４とホスト機器との間のデータ転送をＨＯＳＴインタフェース制御部１１０に対して要求する。また、データ格納状況によりディスク転送が伴う場合は、キャッシュメモリ１４と記憶媒体２との間のデータ転送情報をＬＤＩＳＫアクセス制御部１４４に引き渡し、必要なディスクデータの転送を行う。
【００２７】
キャッシュメモリ管理部１４３では、キャッシュカラム単位に割り当てられているキャッシュブロックと対象論理ディスクの領域とをマッピングし、ホスト機器からライトされたデータまたはディスクからリードしたデータの格納状態を管理する。
【００２８】
デステージング／ステージング制御部１４２では、ホストＩＯのアクセス情報によりシーケンシャルライトまたはシーケンシャルリードの検出を行う。シーケンシャルなアクセスを検出した場合、ライトでは後追い吐き出し要求を、リードではデータ先読み要求をＩＯ管理部１２０に領域を指定して発行する。また、特定のタイミングで未吐き出しのＷＢＣデータを抽出し、ストライプグループ単位にまとめて記憶媒体（ＬＤＩＳＫ）２に書き込むための要求をＩＯ管理部１２０に領域を指定して発行する。
【００２９】
なお、キャッシュメモリ１４が２重化されている場合には、さらにミラードキャッシュ制御やコンカレントキャッシュ制御が存在するが、本願発明の本質ではないので省略する。
【００３０】
図５に、マスタＬＵダーティ量制御部１４５が保持するダーティ量制御テーブル１４５１のデータ構造を示す。
【００３１】
マスタＬＤＩＳＫ番号ａ１は、筐体内レプリケーションにおけるマスタのＬＤＩＳＫ番号である。一方、バックアップＬＤＩＳＫ番号ａ２は、バックアップディスクに割り当てられるＬＤＩＳＫ番号である。ステートａ３には、現在、レプリケーションとしてミラー状態となっている（ミラー）のか、または、切り離されているのか（スプリット）を示す情報が保持されている。
【００３２】
ダーティ量上限ａ４は、マスタＬＤＩＳＫのデータとしてキャッシュメモリ１４上に保持するダーティデータ量の上限値であり、筐体内レプリケーション設定時に指定する。マスタＬＤＩＳＫの総ダーティ量が、Ｈｉ−Ｗａｔｅｒマークａ５の値に達した場合、Ｌｏｗ−Ｗａｔｅｒマークａ６の値に至るまで、マスタＬＤＩＳＫを対象にデステージを実施することにより、マスタＬＤＩＳＫのダーティ量がこのダーティ量上限ａ４を越えないように制御する。このＨｉ−Ｗａｔｅｒマークａ５およびＬｏｗ−Ｗａｔｅｒマークａ６の値は、ダーティ量上限ａ４の指定に伴って適切な値が自動的に算出される。
【００３３】
カレントダーティ量ａ７には、マスタＬＤＩＳＫの現在のダーティ量が保持される。そして、スワップエリアアドレスａ８には、筐体内レプリケーション設定時、スワップ領域管理部１４６がマスタＬＤＩＳＫのダーティ量の上限をコピーするだけの容量をキャッシュメモリ１４からバッファとして確保し、そのアドレスがポインタとしてここに格納される。
【００３４】
図６には、筐体内レプリケーション設定時の処理フローが示されている。
【００３５】
筐体内レプリケーション設定時、マスタＬＵダーティ量制御部１４５は、ダーティ量制御テーブル１４５１の１エントリを確保し（ステップＡ１）、その確保したエントリに指定されたマスタＬＵ番号、ダーティ量上限をセットする（ステップＡ２）。また、このダーティ量上限のセットに伴い、マスタＬＵダーティ量制御部１４５は、確保したエントリのＨｉ−Ｗａｔｅｒマーク、Ｌｏｗ−Ｗａｔｅｒマークを計算してセットする（ステップＡ３）。
【００３６】
そして、マスタＬＵダーティ量制御部１４５は、そのダーティ量上限に相当する容量のスワップエリアの確保要求をスワップ領域管理部１４６に発行し（ステップＡ４）、これにより確保されたスワップエリアのアドレスをポインタとしてスワップエリアアドレスにセットする（ステップＡ５）。
【００３７】
図７には、記憶媒体に対する書き込み要求発生時の処理フロー、図８には、デステージ処理発生時の処理フローがそれぞれ示されている。
【００３８】
書き込み要求発生時、まず、ＩＯ管理部１２０が、ＩＯ領域をロックし（ステップＢ１）、続いて、キャッシュ管理モジュール１４０が、キャッシュの確保およびロックを行う（ステップＢ２）。そして、ホスト機器からのデータがＨＯＳＴインタフェース制御部１１０により受信されると（ステップＢ３）、レプリケーション管理部１３０が、そのＬＤＩＳＫがレプリケーション指定されたものかどうかを判断して（ステップＢ４）、レプリケーション指定されたものであった場合（ステップＢ４のＹＥＳ）、以下のレプリケーション処理を実行する（ステップＢ５）。
【００３９】
すなわち、レプリケーション管理部１３０は、キャッシュメモリ１４が稼働状態かどうかを調べ（ステップＢ５１）、稼働状態でなければ（ステップＢ５１のＹＥＳ）、そのデータのマスタＬＤＩＳＫ、バックアップＬＤＩＳＫの両方に対する書き込みリクエストをＬＤＩＳＫアクセス制御部１４４に発行する（ステップＢ５２）。
【００４０】
また、デステージ処理発生時は、ＩＯ管理部１２０がＩＯ領域をロックし（ステップＣ１）、キャッシュ管理モジュール１４０がキャッシュの確保およびロックを行った後（ステップＣ２）、レプリケーション管理部１３０が、デステージ先のＬＤＩＳＫがレプリケーション指定されたものかどうかを判断する（ステップＣ４）。もし、レプリケーション指定されたものでなければ（ステップＢ４のＮＯ）、レプリケーション管理部１３０は、そのＬＤＩＳＫへの書き込みリクエストをＬＤＩＳＫアクセス制御部１４４に発行する（ステップＣ５）。一方、デステージ先のＬＤＩＳＫがレプリケーション指定されたものであれば（ステップＣ４のＹＥＳ）、レプリケーション管理部１３０は、以下のレプリケーション処理を実行する（ステップＣ４）。
【００４１】
すなわち、レプリケーション管理部１３０は、マスタＬＤＩＳＫとバックアップＬＤＩＳＫとがミラー状態にあるかどうかを判断し（ステップＣ４１）、ミラー状態にあれば（ステップＣ４１のＹＥＳ）、マスタＬＤＩＳＫ、バックアップＬＤＩＳＫの両方への書き込みリクエストをＬＤＩＳＫアクセス制御部１４４に発行する（ステップＣ４２）。
【００４２】
また、キャッシュメモリ管理部１４３は、マスタＬＤＩＳＫに対し、ホスト機器から書き込み要求があって新たにキャッシュエントリを確保した時、またはキャッシュヒットしたが、キャッシュの状態がクリーンからダーティに変化した場合に、ダーティ量制御テーブル１４５１のカレントダーティ量ａ７をインクリメントする。その結果、マスタＬＤＩＳＫの総ダーティ量が、Ｈｉ−Ｗａｔｅｒマークａ５の値に達した場合、Ｌｏｗ−Ｗａｔｅｒマークａ６の値に至るまで、マスタＬＤＩＳＫを対象としたデステージ要求をデステージング／ステージング制御部１４２に発行することにより、マスタＬＤＩＳＫのダーティ量がダーティ量上限ａ３の値を越えないように制御する。この処理フローを図９に示す。
【００４３】
つまり、キャッシュメモリ管理部１４３は、キャッシュヒットの場合（ステップＤ１のＹＥＳ）、そのデータがクリーンからダーティに変化したかどうかを調べ（ステップＤ２）、その変化がなければ（ステップＤ２のＮＯ）、データ転送を行うのみでこの処理を終了する（ステップＤ３）。一方、キャッシュヒットせずにキャッシュブロックを確保した場合（ステップＤ１のＮＯ，Ｄ４）、またはキャッシュヒットの場合であって、クリーンからダーティに変化した場合（ステップＤ２のＹＥＳ）、キャッシュメモリ管理部１４３は、ダーティ量制御テーブル１４５１の該当エントリのカレントダーティ量をインクリメントした上で（ステップＤ５）、データ転送を実行する（ステップＤ６）。
【００４４】
そして、そのインクリメント後のカレントダーティ量がＨｉ−Ｗａｔｅｒマークの値に達した場合（ステップＤ７）、キャッシュメモリ管理部１４３は、該当のマスタＬＵを対象としたデステージ要求をデステージング／ステージング制御部１４２に発行する（ステップＤ８）。
【００４５】
なお、スナップショット作成時、オペレーティングシステムが動作しているホスト機器のメモリ上にキャッシュされているデータが掃き出されてくるが、この際にも、このダーティ量上限ａ４を越えさせないための処理は実行される。そして、スナップショット作成の最終段階で、マスタＬＤＩＳＫとバックアップＬＤＩＳＫとの切り離しが発生するが、その際には、キャッシュメモリ１４上に保持されているマスタＬＤＩＳＫのすべてのダーティデータは、バックアップ領域にコピーされ（図３のキャッシュ領域１４ａ→スワップ領域１４ｂ）、このコピーが完了した時点で、スナップショット作成完了となる。マスタＬＤＩＳＫとバックアップＬＤＩＳＫ切り離し時の処理フローを図１０に示す。
【００４６】
キャッシュメモリ管理部１４３は、該当ＬＵをダーティ量制御テーブル１４５１から見つけ出し（ステップＥ１）、そのＬＵのダーティエントリをキャッシュメモリ１４上から検索する（ステップＥ２）。そして、ダーティブロックが検出されると（ステップＥ３のＹＥＳ）、キャッシュメモリ管理部１４３は、そのデータを該当ＬＵのスワップエリアにコピーする（ステップＥ４）。
【００４７】
この処理は、ダーティブロックが検出されている間は繰り返され、ダーティブロックが検出されなくなった時点で（ステップＥ３のＮＯ）、当該切り離し処理を終了する。以降、マスタＬＤＩＳＫのデステージング処理は、マスタＬＤＩＳＫに対してのみ行われることになる。
【００４８】
以上のように、この第１実施形態のディスクアレイ装置１０は、キャッシュメモリ１４上のコピーのみでスナップショット作成を完了させるため、ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することを実現する。
【００４９】
なお、バックアップディスクは、１つのマスタディスクに対して複数用意することも可能であり、例えば２つ用意する場合には、スワップ領域管理部１４６がマスタＬＤＩＳＫのダーティ量の上限をコピーするだけの容量をもつバッファを２つ確保し、ダーティ量制御テーブル１４５１のスワップエリアアドレスフィールドを２つ設けてそれぞれ格納するようにすれば良い。
【００５０】
（第２実施形態）
次に、この発明の第２実施形態について説明する。
【００５１】
この第２実施形態のディスクアレイ装置の概略構成および同装置が備えるキャッシュメモリの構造は、前述した第１実施形態のディスクアレイ装置と同じであるため、ここではその説明は省略する。そこで、早速、図１１を参照して、この第２実施形態のディスクアレイ装置１０が実行する筐体内レプリケーションの概要を説明する。なお、説明を分かり易くするための前提は、前述した図３と同様であるものとする。
【００５２】
この第２実施形態では、前述した第１実施形態とは異なり、キャッシング可能な総容量の上限値をあらかじめ定め、かつ、その上限値に相当する容量のバッファをキャッシュメモリ１４上に確保するといったことは行わない。つまり、キャッシュメモリ１４が６４ＭＢであれば、この６４ＭＢを上限値としてステージングおよびデステージングを制御する。そして、これに代わり、この第２実施形態のディスクアレイ装置１０は、ホスト機器からマスタディスク２ａへの書き込みデータを受け取った際、そのデータをマスタディスク２ａ用にキャッシュメモリ１４上にキャッシングするとともに、その複製データをバックアップディスク２ｂ用にキャッシュメモリ１４上にキャッシングしておく。
【００５３】
図１１（Ａ）は、ミラー状態の解除前、つまりバックアップディスク２ｂの切り離し前の状態を示しており、ダーティデータがマスタディスク２ａ用およびバックアップディスク２ｂ用としてそれぞれキャッシングされている。そして、このダーティデータは、デステージの際、それぞれのディスク２ａ，２ｂに出力されることになる。一方、図１１（Ｂ）は、ホスト機器からスナップショット作成要求がなされてミラー状態の解除、つまりバックアップディスク２ｂの切り離しを実行する時およびその後の状態を示しており、このスナップショット作成要求を受信すると、仕掛中の複製データのキャッシングがすべて完了した時点で、スナップショット作成完了をホスト機器に返答する。その後、このキャッシュメモリ１４上にキャッシングしたバックアップディスク２ｂ用のダーティデータをバックアップディスク２ｂに掃き出すことにより、スナップショット作成要求がなされた時点におけるマスタディスク２ａの状態がバックアップディスク２ｂに保存されることになる。また、これ以降、バックアップディスク２ｂ用にダーティデータと同一内容の複製データをキャッシングすることは行わない。
【００５４】
すなわち、このディスクアレイ装置１０では、データの書き込み時にキャッシュ上で複製化を行うことにより、ディスクにバックアップを採る場合のスナップショット作成時間を極めて短縮化することが実現されることになる。また、この複製化もキャッシュ上で行われるものであるため、データ書き込み時の性能に悪影響を与えることもほとんどない。
【００５５】
図１２は、このディスクアレイ装置１０のプログラムメモリ１３に格納される各種プログラムのモジュール構成を示す図である。
【００５６】
前述した第１実施形態のモジュール構成とこの第２実施形態のモジュール構成との違いは、マスタＬＵダーティ量制御部１４５、スワップ領域管理部１４６の代わりに筐体内レプリケーションＩＯアクセス制御部１４１を備える点、ＩＯ管理部１２０が筐体内レプリケーション処理部１２１を備える点にある。
【００５７】
ホストライトを受け付けたＩＯ管理部１２０は、筐体内レプリケーション処理部１２１を介して、レプリケーションのマスタＬＤＩＳＫに対するライト要求か否か判別する。筐体内レプリケーション処理部１２１は、レプリケーション管理部１３０が保持するレプリケーション情報をもとにそれを判定する。そして、リクエストが筐体内レプリケーションのマスタＬＤＩＳＫへのライト要求と判定された場合、筐体内レプリケーション処理部１２１は、レプリケーションマスタＬＤＩＳＫへのライトであるというフラグをセットして、キャッシュ管理モジュール１４０のＩＯアクセス制御部１４１を呼び出す。
【００５８】
レプリケーションマスタＬＤＩＳＫへのライトというフラグがセットされて呼び出された場合、ＩＯアクセス制御部１４１は、筐体内レプリケーションＩＯアクセス制御部１４７を呼び出す。この場合の筐体内レプリケーションＩＯアクセス制御部１４７の処理フローを図１３に示す。
【００５９】
筐体内レプリケーションＩＯアクセス制御部１４７は、マスタＬＤＩＳＫのキャッシュの確保およびロックを行い（ステップＦ１）、ホストデータの転送を行うと（ステップＦ２）、１つ目のバックアップＬＤＩＳＫのキャッシュの確保およびロックを行う（ステップＦ３）、このキャッシュの確保およびロックが成功すると（ステップＦ４のＹＥＳ）、筐体内レプリケーションＩＯアクセス制御部１４７は、マスタＬＤＩＳＫのデータをその確保したキャッシュブロックにコピーする（ステップＦ５）。また、未処理のバックアップＬＤＩＳＫが存在する場合には（ステップＦ６のＮＯ）、筐体内レプリケーションＩＯアクセス制御部１４７は、その次のバックアップＬＤＩＳＫについて、前述のステップＦ３からの処理を繰り返す）。このコピーが完了すると（ステップＦ６のＹＥＳ）、筐体内レプリケーションＩＯアクセス制御部１４７は、ホスト機器に書き込み完了を通知し（ステップＦ７）、キャシュをアンロックする（ステップＦ８）。
【００６０】
そして、もし、いずれかのバックアップＬＤＩＳＫのキャッシュの確保およびロックが失敗すると（ステップＦ４のＮＯ）、筐体内レプリケーションＩＯアクセス制御部１４７は、マスタＬＤＩＳＫおよびバックアップＬＤＩＳＫの全てに対して当該ライトデータの書き出しを実行する（ステップＦ９）。
【００６１】
このように、この第２実施形態のディスクアレイ装置１０は、データの書き込み時にキャッシュ上で複製化を行うことにより、ディスクにバックアップを採る場合のスナップショット作成時間を極めて短縮化することを実現する。
【００６２】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【００６３】
【発明の効果】
以上詳述したように、この発明によれば、ディスクにバックアップを採る場合のスナップショット作成時間を大幅に短縮することを可能としたディスクアレイ装置および同装置の筐体内レプリケーション方法を提供することができる。
【図面の簡単な説明】
【図１】この発明の第１実施形態に係るディスクアレイ装置の概略構成を示す図
【図２】同第１実施形態のディスクアレイ装置が備えるキャッシュメモリの構造を示す図
【図３】同第１実施形態のディスクアレイ装置が実行する筐体内レプリケーションの概要を説明するための概念図。
【図４】同第１実施形態のディスクアレイ装置のプログラムメモリに格納される各種プログラムのモジュール構成を示す図
【図５】同第１実施形態のディスクアレイ装置のマスタＬＵダーティ量制御部が保持するダーティ量制御テーブルのデータ構造を示す図
【図６】同第１実施形態のディスクアレイ装置の筐体内レプリケーション設定時の処理フロー
【図７】同第１実施形態のディスクアレイ装置の記憶媒体に対する書き込み要求発生時の処理フロー
【図８】同第１実施形態のディスクアレイ装置のデステージ処理発生時の処理フロー
【図９】同第１実施形態のディスクアレイ装置が実行するダーティデータ量制御の処理フロー
【図１０】同第１実施形態のディスクアレイ装置のマスタＬＤＩＳＫとバックアップＬＤＩＳＫ切り離し時の処理フロー
【図１１】同第２実施形態のディスクアレイ装置が実行する筐体内レプリケーションの概要を説明するための概念図
【図１２】同第２実施形態のディスクアレイ装置のプログラムメモリに格納される各種プログラムのモジュール構成を示す図
【図１３】同第２実施形態のディスクアレイ装置が実行する筐体内レプリケーションの処理フロー
【符号の説明】
１…データ通信路、２…記憶媒体、１０…ディスクアレイ装置、１１…ＨＯＳＴインタフェース部、１２…ＣＰＵ、１３…プログラムメモリ、１４…キャッシュメモリ、１５…ＨＤＤインタフェース部、１１０…ＨＯＳＴインタフェース制御部、１２０…ＩＯ管理部、１２１…筐体内レプリケーション処理部、１３０…レプリケーション管理部、１４０…キャッシュ管理モジュール、１４１…ＩＯアクセス制御部、１４２…ステージング制御部、１４３…キャッシュメモリ管理部、１４４…ＬＤＩＳＫアクセス制御部、１４５…ＬＵダーティ量制御部、１４６…スワップ領域管理部、１４７…ＩＯアクセス制御部、１４５１…ダーティ量制御テーブル。
【図１】
2005031746.tif 000003
【図２】
2005031746.tif 000004
【図３】
2005031746.tif 000005
【図４】
2005031746.tif 000006
【図５】
2005031746.tif 000007
【図６】
2005031746.tif 000008
【図７】
2005031746.tif 000009
【図８】
2005031746.tif 000010
【図９】
2005031746.tif 000011
【図１０】
2005031746.tif 000012
【図１１】
2005031746.tif 000013
【図１２】
2005031746.tif 000014
【図１３】
2005031746.tif 000015