(57)【特許請求の範囲】
【請求項１】
データ複製機能を有するストレージ・システムを制御する装置であって、
主ストレージと、
副ストレージと、
レプリケーション・エンジンと、
前記主ストレージ、前記副ストレージ、及び前記レプリケーション・エンジンに接続されたストレージ・アレイであって、前記レプリケーション・エンジンとはネットワークを介して接続される前記ストレージ・アレイとを含み、
前記ストレージ・アレイは、ホストから前記主ストレージへの書き込みデータを受信し、及び、前記書き込みデータの書込みがデータ・レプリケーションの対象になることの通知を前記書き込みデータを含むことなく前記レプリケーション・エンジンに送るように動作可能であり、
前記レプリケーション・エンジンが、前記通知を受け取り、それに応答して、前記書き込みデータの制御に関するメタデータを作成し、前記メタデータを前記ストレージ・アレイへ送り、
前記ストレージ・アレイは、前記書き込みデータと前記メタデータを組み合わせ、組み合わせたデータを前記副ストレージに送る、
前記装置。
【請求項２】
前記ホストから要求されたデータの読取りを実行するようにさらに動作可能であり、前記要求されたデータが、前記レプリケーション・エンジンに転送されることなく前記ストレージ・アレイによって前記ホストに返される、請求項１に記載の装置。
【請求項３】
前記ホストから前記副ストレージに書き込みデータを書き込むようにさらに動作可能であり、前記書き込みデータが、前記ストレージ・アレイによって、前記レプリケーション・エンジンから前記ストレージ・アレイに送られたメタデータと組み合わせられて、前記レプリケーション・エンジンを介することなく前記副ストレージジに書き込まれる、請求項１に記載の装置。
【請求項４】
前記主ストレージと前記副ストレージとの間でデータを再同期化するようにさらに動作可能であり、前記主ストレージから前記ストレージ・アレイにより読み出されたデータが、前記ストレージ・アレイによって、前記レプリケーション・エンジンから前記ストレージ・アレイに送られたメタデータを適用され、かつ、適用された前記データと前記メタデータとが組み合わせられて、前記レプリケーション・エンジンを介することなく前記主ストレージから前記副ストレージに転送される、請求項１に記載の装置。
【請求項５】
主ストレージと、副ストレージと、レプリケーション・エンジンと、前記主ストレージ、前記副ストレージ、及び前記レプリケーション・エンジンに接続されたストレージ・アレイであって、前記レプリケーション・エンジンとはネットワークを介して接続される前記ストレージ・アレイとを含み、データ複製機能を有するストレージ・システムを制御する方法であって、
前記ストレージ・アレイによって、ホストから前記主ストレージへの書き込みデータを受信するステップと、
前記ストレージ・アレイによって、前記書き込みデータの書込みがデータ・レプリケーションの対象になることの通知を前記書き込みデータを含むことなく前記レプリケーション・エンジンに送るステップと、
前記レプリケーション・エンジンによって前記通知を受け取り、それに応答して、前記書き込みデータの制御に関するメタデータを作成し、前記メタデータを前記ストレージ・アレイへ送るステップと、
前記ストレージ・アレイによって、前記書き込みデータと前記メタデータを組み合わせ、組み合わせたデータを前記副ストレージに送るステップと、
を含む方法。
【請求項６】
前記ホストから要求された前記データの読取りをさらに実行し、前記要求されたデータが、前記レプリケーション・エンジンに転送されることなくに前記ストレージ・アレイによって前記ホストに返される、請求項５に記載の方法。
【請求項７】
前記ホストから前記副ストレージに書き込みデータを書き込むステップをさらに含み、前記書き込みデータが前記ストレージ・アレイによって、前記レプリケーション・エンジンから前記ストレージ・アレイに送られたメタデータと組み合わせられて、前記レプリケーション・エンジンを介することなく前記副ストレージジに書き込まれる、請求項５に記載の方法。
【請求項８】
前記主ストレージと前記副ストレージとの間でデータを再同期化するステップをさらに含み、前記主ストレージから前記ストレージ・アレイにより読み出されたデータが、前記ストレージ・アレイによって、前記レプリケーション・エンジンから前記ストレージ・アレイに送られたメタデータを適用され、かつ、適用された前記データと前記メタデータとが組み合わせられて、前記レプリケーション・エンジンを介することなく前記主ストレージから前記副ストレージに転送される、請求項５に記載の方法。
【請求項９】
コンピュータに、請求項５乃至８のいずれかに一項に記載のデータ複製機能を有するストレージ・システムを制御させる方法の各ステップを実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ・システムの改善された管理の技術に関し、より具体的には、ストレージ・コピー・サービスを有するストレージ・システムを管理する技術に関する。
【背景技術】
【０００２】
現代のストレージ・コントローラによって提供される重要なサービスの１つが、コピー・サービス・ソリューション（解決策）である。コピー・サービスは、リモート・コピー、ポイント・イン・タイム・コピー（point in time copy）、およびコンティニュアス・データ・プロテクション（continuous dataprotection、ＣＤＰ）を含むが、これらに限定はされない。これらのコピー・サービスは、現在、通常はストレージ・コントローラ・マイクロコードの一体化された部分としてストレージ・コントローラの内部に実装される。しかし、最近、ストレージ・コントローラの内部ではなく、本明細書で「レプリケーション・エンジン（ReplicationEngine）」と呼ばれる機器内にコピー・サービスが実装される、新しい手法が、産業界で現れてきた。
【０００３】
上記のコピー・サービス機能またはレプリケーション機能のすべてが、保護されるデータの「書込み」が「分割(スプリット)される」ことに頼る。これが意味するものは、コピー・サービス機器が、書込みがストレージ・コントローラに対して実行されつつある書込みと同期式に進行中であることの通知を受け取ることである。
【０００４】
従来技術によるシステムには、おおまかに言って、このスプリッタ技術の２つの別個の実施態様がある。これらの配置を、図１に示す。まず、ファブリック内に実装されるスプリッタを使用するという技法がある。これは図１の左側に示されており、ここで、ホスト１００は、ＳＡＮファブリック１０４に接続され、ＳＡＮベースのスプリッタ１１６は、物理ストレージ１０６に対して主Ｉ／Ｏとして機能する。ＳＡＮベースのスプリッタ１１６は、Ｉ／Ｏをレプリケーション・エンジン１１０にも向け、レプリケーション・エンジン１１０には、コピー・サービス・コンポーネント１１２が常駐し、コピー・サービスを実行する。第２の技法は、デバイス・ドライバなど、ホスト・ソフトウェア・スタック内にスプリッタを実装することである。ホスト・オペレーティング・システムの論理ボリューム・マネージャ（ＬＶＭ）を、この機能に使用することもできる。この配置は、図１の右側に示されており、ここで、スプリッタ１１４は、ＳＡＮファブリック１０４のレベルの上でホスト１０２に接続される。これらの実施態様のそれぞれで、書込みデータは、スプリッタからレプリケーション・エンジンに送られる。
【０００５】
これらの方式のすべての不利益は、次のとおりである。
１．複数の異なる実施態様が、すべてのホスト・タイプおよびスイッチ・タイプを包含するために必要である。
２．ホストでの分割（スプリット）は、ホストＣＰＵ  ＭＩＰＳを消費し、スイッチ・リンクへのホスト上の書込み帯域幅要件を２倍にする。
３．ホストおよびスイッチは、通常、不揮発性メモリへのアクセスを有しない。これは、ホストがインフライト書込みの状態を信頼できる形で追跡することがむずかしく、設計上の妥協を強制し、この設計上の妥協が、性能、堅牢さ(ロバストネス)、または解決策が電力消失から回復できる速度のいずれかに影響することを意味する。
【０００６】
米国特許出願第１１／８４０１７９号に、ホスト内またはストレージ・エリア・ネットワーク（ＳＡＮ）内ではなく、ストレージ・コントローラの内部での包括的スプリット・プロトコルの実装を可能にする技法が開示されている。このプロトコルは、複数の異なるストレージ・コントローラにまたがって共通のコピー機能を作成するためのインフラストラクチャを提供する。インターフェースは、ストレージ・アレイ（ＳＡ）をレプリケーション・エンジン（ＲＥ）におよび互いに接続することを可能にし、新しいレプリケーション機能をよりすばやく展開できるようにする、単純なインターフェースであることが意図されている。この実施態様は、スプリッタによって受け取られる各書込みコマンドが複製され、主ストレージとレプリケーション・エンジンとの両方に並列に送られるプロトコルの使用に依存する。レプリケーション・エンジンは、通常（そうである必要はないが）スプリッタを含むものと同一のストレージ・アレイによって提供される、あるストレージを有する。ＲＥは、これをそのコピー・サービスを実施するための「リポジトリ」として使用する。このリポジトリは、通常、主ディスクに書き込まれたデータを、おそらくは過去のある時に主ディスクにあったデータのより古いコピーと一緒に、またメタデータと一緒に含む。このプロトコルでは、使用されるコマンドは、制御情報とホストから受け取られたデータとの両方を転送する。レプリケーション・エンジンの期待される実施態様は、ディスク・ストレージを含まないが、その代わりにストレージ・アレイによって提供されるストレージＬＵＮを使用することである。したがって、ＲＥがそのリポジトリ内に１つのコピーを格納することだけを必要とする単純な書込みのデータ・フローは、ホスト→ストレージ・コントローラ→レプリケーション・エンジン→ストレージ・コントローラ→ディスク（リポジトリ・ストレージ）である。もちろん、実際には、ＲＥは、おそらくはあるメタデータをデータに関連付けることを必要とし、また、データを、そのリポジトリ内のある場所からそのリポジトリ内の別の場所にコピーすることをも必要とする可能性がある。ＲＥは、主ディスクとリポジトリとの間でデータをコピーすることをも必要とする可能性がある。
【０００７】
そのような配置を、図２に示すが、図２には、スプリッタ２０２を有するストレージ装置２００およびスプリッタ２０６を有するストレージ仮想化コントローラ（ＳＶＣ）２０４がさらに示されている。
【０００８】
従来技術のこれらの実施態様のすべてによる分割書込みのデータ・フローを、図３に示されているように単純化された形で示すことができ、図３では、ホスト３００が、フロー１でデータをストレージ・アレイ（ＳＡ）３０２に書き込む。ＳＡ  ３０２は、データをフロー２で主物理ストレージ３０６に送り、フロー３でレプリケーション・エンジン（ＲＥ）３０４に送る。ＲＥ  ３０４は、メタデータを追加し、データおよびメタデータをフロー４でＳＡ  ３０２に送り、ＳＡ  ３０２は、そのデータをフロー５で副物理ストレージ３０８に送る。
【０００９】
ＲＥを介してデータを送ることは、次の不利益を有する。
・データは、ネットワークにまたがりストレージ・アレイ・メモリをネットワーク接続するバスにまたがる、少なくとも２つの余分な通過(パス)を必要とする。これは、任意の所与のハードウェア・プラットフォームに関してこの解決策によって達成できる帯域幅を制限する。
・ストレージ・コントローラが、データ保全性検査のためのチェック・バイトを含むデータ・フォーマットを実装する場合に、ＲＥがこの方式に加わらなければならないか、データがデータ・フローのこの部分で保護されないかのいずれかになる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許出願第１１／８４０１７９号
【発明の概要】
【発明が解決しようとする課題】
【００１１】
したがって、ストレージ・コピー・サービスを有するストレージ・システムを管理する改善された技術を有することが望ましい。
【課題を解決するための手段】
【００１２】
本発明は、第１の態様で、ホストによる主ストレージ位置へのデータの書込みがデータ・レプリケーションの対象になることの通知をレプリケーション・エンジンに送るように動作可能であるストレージ・アレイ・コンポーネントを含み、レプリケーション・エンジンが、通知を受け取り、それに応答して、データを副ストレージ位置にコピーするようにストレージ・アレイに指示するように動作可能であり、データが、レプリケーション・エンジンによって調停（仲介）されずに副ストレージ位置にコピーされる、データ複製機能を有するストレージ・システムを制御する装置を提供する。
【００１３】
好ましくは、レプリケーション・エンジンは、データの制御に関するメタデータを作成し、メタデータをストレージ・アレイに送るように動作可能である。
【００１４】
この装置は、データの読取りを実行するようにさらに動作可能とすることができ、データは、レプリケーション・エンジンによって調停されずにストレージ・アレイによってホストに返される。
【００１５】
この装置は、ホストから副ストレージ位置にデータを書き込むようにさらに動作可能とすることができ、データは、レプリケーション・エンジンによって調停されずにストレージ・アレイによって副ストレージ位置に書き込まれる。
【００１６】
この装置は、主ストレージ位置と副ストレージ位置との間でデータを再同期化するようにさらに動作可能とすることができ、データは、レプリケーション・エンジンによって調停されずにストレージ・アレイによって主ストレージ位置から副ストレージ位置に転送される。
【００１７】
第２の態様では、ストレージ・アレイ・コンポーネントによって、ホストによる主ストレージ位置へのデータの書込みがデータ・レプリケーションの対象になることの通知をレプリケーション・エンジンに送るステップと、レプリケーション・エンジンによって通知を受け取り、それに応答して、データを副ストレージ位置にコピーするようにストレージ・アレイに指示するステップとを含み、データが、レプリケーション・エンジンによって調停されずに副ストレージ位置にコピーされる、データ複製機能を有するストレージ・システムを制御する方法が提供される。
【００１８】
好ましくは、レプリケーション・エンジンは、データの制御に関するメタデータを作成し、メタデータをストレージ・アレイに送る。
【００１９】
この方法は、データの読取りをさらに実行することができ、データは、レプリケーション・エンジンによって調停されずにストレージ・アレイによってホストに返される。
【００２０】
この方法は、ホストから副ストレージ位置にデータを書き込むことをさらに含むことができ、データは、レプリケーション・エンジンによって調停されずにストレージ・アレイによって副ストレージ位置に書き込まれる。
【００２１】
この方法は、主ストレージ位置と副ストレージ位置との間でデータを再同期化することをさらに含むことができ、データは、レプリケーション・エンジンによって調停されずにストレージ・アレイによって主ストレージ位置から副ストレージ位置に転送される。
【００２２】
第３の態様では、その上に機能データを有するデータ・キャリアであって、機能データが、コンピュータ・システムにロードされ、これによって操作される時に、コンピュータ・システムが第２の態様による方法のすべてのステップを実行することを可能にするために機能コンピュータ・データ構造を含む、データ・キャリアが提供される。
【００２３】
第４の態様では、コンピュータ・システムにロードされ、そこで実行される時に、コンピュータ・システムに第２の態様による方法のすべてのステップを実行させるためにコンピュータ・プログラム・コードを含む、コンピュータ・プログラムが提供される。
【００２４】
本発明の実施形態は、その最も広義の態様において、レプリケーション・エンジンが、データ自体がレプリケーション・エンジンを介して流れることなくコピー・サービスを実施することを可能にするために、制御シーケンスおよびメタデータをレプリケーション・エンジンと交換する装置および方法を提供する。
【００２５】
本発明の好ましい実施形態を、これから、例としてのみ、添付図面を参照して説明する。
【図面の簡単な説明】
【００２６】
【図１】従来技術による装置の２つの可能な配置を概略的な形で示す図である。
【図２】従来技術に対する１つの提案される改善による装置の２つの可能な配置を概略的な形で示す図である。
【図３】図１および２に示された従来技術方式による分割書込みのデータの流れ(データ・フロー)を単純化された概略的な形で示す図である。
【図４】本発明の好ましい実施形態による分割書込みのデータの流れを単純化された概略的な形で示す図である。
【図５】従来技術によるＣＤＰを使用して保存されたボリュームのヒストリック・ビューからのデータ読取りのデータの流れを単純化された概略的な形で示す図である。
【図６】本発明の好ましい実施形態によるＣＤＰを使用して保存されたボリュームのヒストリック・ビューからのデータ読取りのデータの流れを単純化された概略的な形で示す図である。
【図７】本発明の好ましい実施形態によるＣＤＰを使用して保存されたボリュームのヒストリック・ビューへのデータ書込みのデータの流れを単純化された概略的な形で示す図である。
【図８】本発明の好ましい実施形態による副ボリュームとの主ボリュームの再同期化のデータの流れを単純化された概略的な形で示す図である。
【発明を実施するための形態】
【００２７】
本発明の好ましい実施形態を、これから図面を参照して説明する。上述したように、図１から図３は、従来技術による装置の配置およびデータ・フローを示す。これらは、本発明の背景を形成するものとして上述された。
【００２８】
非常に広義の用語で、本発明の好ましい実施形態は、新しい改善されたプロトコルに従うハードウェアおよびソフトウェアを提供する。このプロトコルは、レプリケーション・エンジンがサブスクライブしたボリュームへのすべての新しい書込みについてレプリケーション・エンジンに知らせる。レプリケーション・エンジンが新たに書き込まれるデータをレプリケーション・エンジン・リポジトリ・ボリューム上のエリアに向けることを可能にするインターフェースが設けられる。このインターフェースは、データがリポジトリに書き込まれる時に、ＲＥによって生成されるメタデータをそのデータに追加することをも可能にし、リポジトリと主ボリュームとの間のデータ移動を可能にする。このプロトコルは、これらのデータ移動の必要なシリアライゼーションを可能にし、コンシステンシ・グループ（consistency group）をボリュームの間で作成することを可能にする。このプロトコルは、ＣＤＰ（continuous dataprotection）エンジン内のデータのヒストリカル・ビューなど、リポジトリ内のデータの「コピー・サービス・ビュー」にアクセスするためにボリュームを作成することをも可能にする。
【００２９】
当業者に明白であるとおり、ＳＡ→ＲＥ→ＳＡデータ・フローは、ＲＥがおそらくはデータをリモート・サイトのＲＥに送る（グローバル・ミラー／メトロミラー：Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ／ＭｅｔｒｏＭｉｒｒｏｒ）ためにデータのコピーを入手する必要がある時に必要である。しかし、本発明の好ましい実施形態による新しい改善されたプロトコルが、Ｃｏｎｔｉｎｕｏｕｓ  Ｄａｔａ  Ｐｒｏｔｅｃｔｉｏｎ（ＣＤＰ）およびスナップショットまたはＴ０コピーなどの機能のために使用されるならば、サーバのデータが実際にレプリケーション・エンジンを介して流れる必要はない。本発明の好ましい実施形態は、これを避ける方式を提供する。
【００３０】
本発明の好ましい実施形態を説明するために、ＩＢＭ  Ｓｙｓｔｅｍ  Ｓｔｏｒａｇｅ  ＳＡＮボリューム・コントローラなどのすべての「帯域内仮想化機器」は、ストレージ・アレイ（ＳＡ）として扱われる。したがって、用語「ストレージ・アレイ」は、記憶媒体の単なる物理的配置に限定されるのではなく、アレイの制御およびアレイ内のデータのストレージに関するハードウェアおよびソフトウェア供給の全体を包含する。
【００３１】
上で述べたスプリッタ・プロトコルではなく本発明の好ましい実施形態を使用することの利益の一部は、次のとおりである。
・データがＲＥへおよびそこから戻って流れる必要がないので、帯域幅に関する要件が、ＳＡ、ＳＡＮ、およびＲＥ内で大きく減らされる。所与のハードウェア・システムについて、これは、大幅により高いデータ・レートを達成することを可能にする。
・データがＲＥを介して流れる必要がないので、この方式は、データ保全性フィールドをデータに埋め込むＳＡＳ（serial attached SCSI）についても働く。ＲＥは、ＳＡがこれを行ったことを知る必要がなく、これに関するサポートを有する必要がない。
・データがＳＡとＲＥとの間で流れないので、ＳＡとＲＥとの間のリンクを、より低い帯域幅の相互接続技術を使用して実施することができる。潜在的に、このリンクを、ファイバ・チャネルではなくイーサネット（Ｒ）を使用して実施することができる。これは、現在はファイバ・チャネル・イニシエータを実装しないストレージ・アレイのかなりの開発出費およびタイム・トゥー・マーケットを節約することができる。
【００３２】
基本的な前提は、主ボリュームとＲＥとの間で書込みデータを本質的にミラーリングする「スプリッタ」が、ストレージ・アレイ（ＳＡ）に書き込まれることである。ＲＥによって使用されるストレージが、主ボリュームを管理しているのと同一のＳＡ機器上にあることが意図されている。
【００３３】
以下の図面の例示的説明は、ＳＡがカスタマ書込みデータをＲＥにどのように通信し、ＲＥがカスタマ・データについてＣＤＰをどのように提供するかを説明するものである。コマンド・シーケンスは、標準ＳＣＳＩコマンドではなく、ベンダ固有ＳＣＳＩコマンドであることが意図されている。したがって、ＳＣＳＩ「読取り」は、実際のＳＣＳＩ読取りを示すことを意味するのではなく、ターゲットからイニシエータ（ＳＡがイニシエータである）に向かうデータ転送の方向を有する読取りに見えるコマンドを示すことを意味する。
【００３４】
ＲＥ製品の１つの既知の例は、ホスト・カスタマ・データをヘッダおよびフッタ情報でラップする。この情報が、ＲＥメタデータであり、ＲＥは、この情報を使用して、ＣＤＰの主ボリューム・データをそれ相応に管理する。ＲＥデバイスは、ＬＵＮ（logical unit number）にまたがってＣＤＰデータおよびメタデータをストライピングすることを選択することもでき、したがって、コマンドの一部は、ＬＵＮおよびＬＢＡ(logicalblock addressing)のリストを必要とする。
【００３５】
ここで図４に移ると、本発明の好ましい実施形態による分割書込み(splitwrite)のデータの流れが単純化された概略的な形で示されている。ホスト３００は、フロー１で書込みデータをＳＡ  ３０２に送り、ＳＡ  ３０２は、フロー２で書込みデータを主物理ストレージ３０６に送る。完了は、フロー２ａで主物理ストレージ３０６によって返され、ＳＡ  ３０２は、フロー２ｂで完了をホスト３００に返す。この書込みのコマンド記述子ブロック（ＣＤＢ）は、ＳＡ  ３０２によってフロー３でＲＥ  ３０４に送られる。ＲＥ  ３０４は、メタデータを生成し、これをフロー４でＳＡ  ３０２に返す。状況メッセージも、ＲＥ  ３０４によってフロー５でＳＡ  ３０２に送られる。ＳＡ  ３０２は、書込みデータおよびＲＥ  ３０４から受け取ったメタデータを組み合わせ、その組合せをフロー６で副物理ストレージ３０８に送る。したがって、当業者には、有利なことに、ＲＥ  ３０４へおよびこれからのデータ・フローが、処理および帯域幅減少における結果の利益を伴って回避されることが明白である。書込みデータが、「インフライト」の電力消失の場合に保存されることを保証するために、インフライト書込みデータのすべてが、図４のフロー２ｂとフロー６との間で不揮発性ストレージ内に保存されなければならない。
【００３６】
ネットワークにまたがって送られる状況メッセージは、ＲＥが別のＳＡから切断された可能性が考えられる場合に、クロス・スプリッタ・コンシステンシ・グループに使用される。
【００３７】
主ボリュームのヒストリック・ビューに発行される読取り（すなわち、現在の最新のレイヤからではなく、過去の指定された時刻のデータを表すレイヤからデータを読み取る命令）の場合には、類似する有益な効果を、本発明の好ましい実施形態によって達成することができる。
【００３８】
図５に移ると、この状況に関する従来技術によるコマンドおよびデータ・フローが示されている。
【００３９】
図５では、ホスト３００は、フロー１でヒストリック・ビューを指定するＲＥＡＤコマンドを発行する。ＳＡ  ３０２は、このＲＥＡＤコマンドをフロー２でＲＥ  ３０４に送る。ＲＥは、ヒストリック・ビューについてそのデータに従ってコマンドを構造化し、そのＲＥＡＤをフロー３でＳＡ  ３０２に送る。ＳＡ  ３０２は、そのＲＥＡＤをフロー４で副物理ストレージ３０８に発行し、副物理ストレージは、フロー５でデータをＳＡ  ３０２に返す。データは、ＲＥのＲＥＡＤを満たすためにＳＡ  ３０２によってフロー６でＲＥ  ３０４に渡され、ＲＥは、そのデータをフロー７でＳＡ  ３０２に返す。その後、ＳＡ  ３０２は、そのデータをフロー８でホスト３００に返す。
【００４０】
図６に移ると、この状況に関する本発明の好ましい実施形態によるコマンドおよびデータ・フローが示されている。
【００４１】
図６では、ホスト３００は、ＲＥＡＤコマンドをＳＡ  ３０２に送り、ＳＡ  ３０２は、そのＲＥＡＤコマンドをフロー２でＲＥ  ３０４に送る。ＲＥ  ３０４は、状況メッセージをフロー３でＳＡ  ３０２に送り、ＳＡ  ３０２は、ＲＥＡＤをフロー４で副物理ストレージ３０８に発行する。副物理ストレージ３０８は、要求されたデータをフロー５でＳＡ  ３０２に返し、ＳＡは、要求されたデータをフロー６でホスト３００に返す。
【００４２】
ＲＥが、複数のＬＵＮにまたがってデータをフラグメント化したかストライピングした場合があること、またはＲＥの割り当てたＬＵＮがスナップショット・エリア内でフラグメント化され、したがってＲＥがホスト・データの複数の位置を指定できるという要件があることが、可能である。したがって、ＳＡ  ３０２からＲＥ  ３０４に送られるＲＥＡＤが、複数位置ＲＥＡＤである場合がある。
【００４３】
書込みを副ボリュームに発行することが必要になる場合、たとえば、システムがＣＤＰ機能性を使用して保存されたヒストリック・ビュー内のデータに戻ることが必要になる場合がある。これは、たとえば、より後のデータが破壊され、より以前の破壊されていないデータを基礎として処理を継続するために「時計の針を逆に回す」ことが必要になる時に当たる。
【００４４】
図７に移ると、この状況に関する本発明の好ましい実施形態によるコマンドおよびデータ・フローが示されている。
【００４５】
図７では、フロー１で、ホスト３００が、書き込まれるデータをＳＡ  ３０２に送り、そしてＳＡ  ３０２は、書込みＣＤＢをフロー２でＲＥ  ３０４に送る。ＲＥ  ３０４は、フロー３でメタデータを、フロー４で状況メッセージをＳＡ  ３０２に送り、ＳＡ  ３０２は、書込みデータおよびメタデータを組み合わせ、これをフロー５で副物理ストレージ３０８に書き込む。
【００４６】
ＲＥボリューム（またはＬＵＮ）が、主ボリュームと同期外れになる（たとえば、切断に起因して）場合には、ＲＥ  ＬＵＮを主ボリュームと再同期化することが必要である。ＲＥとＳＡとの間の切断のすべての期間中に、ＳＡは、主ボリュームに関する書込みＩ／Ｏ要求の処理を継続することを強いられる。切断されている間に、主ボリュームは、ＣＤＰデータを格納しているＲＥ  ＬＵＮと同期外れになる。再接続がＳＡによって検出される時に、ＳＡは、書込みが切断中にＳＡによって受け取られたことをＲＥが知るようにするために、そのＤＲＬ（ダーティ・リージョン・ログ（Ｄｉｒｔｙ  Ｒｅｇｉｏｎ  Ｌｏｇ））をＲＥに送る必要がある。その後、ＲＥは、ダーティである主ボリュームのリージョンのそれぞれに関するコピー要求を開始する。
【００４７】
この状況のコマンドおよびデータ・フローを図８に示すが、図８では、ホスト３００は、おそらくはネットワーク混乱またはＲＥ  ３０４を収容するシステムでのローカル障害のゆえに、ＳＡ  ３０２およびＲＥ  ３０４が切断されている期間中に、主物理ストレージ３０６への書込みＩ／Ｏを処理しつつあった。接続が再確立される時に、ＲＥ  ３０４は、フロー１で再同期化を要求する。ＳＡ  ３０２は、フロー２でそのダーティ・リージョン・ログ（ＤＲＬ）をＲＥ  ３０４に送ることによって応答する。ＲＥ  ３０４は、フロー３でメタデータをＳＡ  ３０２に送る。その後、ＳＡ  ３０２は、フロー４でＲＥＡＤコマンドを主物理ストレージ３０６に送り、フロー５で主物理ストレージ３０６から返されたデータを受け取る。ＳＡ  ３０２は、メタデータをデータに適用し、結果のデータおよびメタデータの組合せを、同期外れであったリージョンごとに、フロー６で副物理ストレージ３０８に送る。
【００４８】
図４を参照して上で説明した正常書込みに類似する形で、ＲＥは、カスタマ・データの前後をヘッダおよびフッタ情報でラップする必要がある。ＳＡは、主ボリュームへの読取り要求を開始し、そのデータをＲＥによって供給されるヘッダおよびフッタ情報とマージし、その後、ＣＤＰデータを格納するＲＥ  ＬＵＮへの書込みを開始する。
【００４９】
本発明の好ましい実施形態は、ＲＥに構成命令を供給するファシリティを含む。そのような構成コマンドのいくつかの例は、次のとおりである。
・時点（タイムポイント）Ｘへの主ボリュームの戻し／ロールバック（revert/rollback）  ・時点Ｘのボリュームのヒストリ・ビューの作成
・主ボリュームのスナップショット作成
・この主ボリュームのＣＤＰ保護
・空間効率のよいボリュームの作成
・空間効率のよいボリュームの削除
【００５０】
単一のＲＥを複数のＳＡについて使用できるコンシステンシ・グループ・サポートについて、コンシステンシ・グループ同期化が破壊された時にＳＡが警告されるようにするために、ハートビート機構が、ＲＥとＳＡとの間に設けられる。
【００５１】
要約すると、本発明の好ましい実施形態のいくつかの重要な態様および利益は、次のとおりである。
１．ＳＡおよびＲＥが、それを介して通信するファブリック上で互いを発見するか、互いのアドレスを知るように構成されるファシリティがある。
２．ＳＡが、どの主ボリュームがコピー・サービス用に構成され、ＲＥにどのように分割すべきであり、ＲＥをどのようにアドレッシングすべきかを知るようにするために、ＳＡおよびＲＥを構成するファシリティがある。
３．ＳＡを、ＲＥによるリポジトリとしての使用のためのあるストレージ空間を有して構成することができる。
４．ＳＡを、コピー・サービスがそれに関して構成されるボリュームに新しい書込みコマンドがアドレッシングされる時に、ＲＥにメッセージを送るように送信することができる。このメッセージは、書き込まれるアドレス（ターゲット、ＬＵＮ／ＬＢＡ）および書き込まれる長さを含むが、データは含まない。
５．ＲＥが、新しい書込みが受け取られたことの通知を受け取る時に、ＲＥがこの書き込まれるデータをリポジトリ・エリア内の０個以上の場所にコピーすることを可能にするファシリティがある。このプロトコルは、ＲＥが、サーバ・データに関連するリポジトリ・エリアにメタデータを書き込むことをも可能にする。
６．ＲＥがデータをコピーする機会を得る前に、そのデータが上書きされることを防ぐファシリティがある。好ましい実施形態では、ＲＥは、書込みコマンドがＳＡ内でまだアクティブである間にデータをコピーすることと、２つの同時書込みコマンドが同一のディスク・ブロックに書き込むのを防ぐこととを可能にされる。この場合に、ＲＥは、ＳＡが書込みの完了を可能にする前に、新しい書込みを肯定応答しなければならない。
７．ＲＥが、リポジトリと主ボリュームとの間およびリポジトリのある場所から別の場所へのいずれかの方向でデータをコピーすることを可能にするファシリティがある。
８．ＲＥとＳＡとの間の接続が破壊される場合には、このプロトコルが、検出し回復する方法を実装することが重要である。１つの方法は、ハートビート・プロトコルを実装し、その結果、ＲＥが、ＳＡが切断されたことを知ることができ、他のＳＡから受け取られたすべての書込みが知らされていない書込みに「依存する」可能性があることを知ることができるようにすることである。ハートビートに加えて、ＳＡは、受け取られたがＲＥに送られていないすべての書込みのレコードを保持しなければならない。ＳＡが、この情報を合体させ、その結果、どの領域が書き込まれ、同期化されなければならないのかを示す領域のビットマップだけが保持されるようにすることが、許容可能である。
９．オプションで、このプロトコルは、読取りをインターセプトするファシリティを提供することができ、その結果、コピー・サービス・リポジトリから来るデータをサーバに提示することが可能になる。この場合に、このプロトコルは、読取りをインターセプトし、ＲＥによって向けられたものとしてデータを返すファシリティを提供する。
【００５２】
当業者には、本発明の好ましい実施形態の方法のすべてまたは一部を、その方法のステップを実行するように配置された論理要素を含む１つまたは複数の論理装置で適切かつ有用に実施できることと、そのような論理要素が、ハードウェア・コンポーネント、ファームウェア・コンポーネント、またはその組合せを含むことができることが、明白であろう。
【００５３】
当業者には、本発明の好ましい実施形態による論理配置のすべてまたは一部を、本方法のステップを実行するための論理要素を含む論理装置で適切に実施できることと、そのような論理要素が、たとえばプログラマブル・ロジック・アレイまたは特定用途向け集積回路内の論理ゲートなどのコンポーネントを含むことができることが、同等に明白であろう。そのような論理配置を、さらに、固定キャリア媒体または伝送可能キャリア媒体を使用して格納でき伝送できる、たとえば仮想ハードウェア記述子言語を使用して、そのようなアレイまたは回路内の論理構造を一次的または永久的に確立するためのイネーブルする要素で実施することができる。
【００５４】
上で説明した方法および配置を１つまたは複数のプロセッサ（図面には図示せず）で動作するソフトウェアで完全にまたは部分的に適切に実行することもできることと、ソフトウェアを、磁気ディスク、光ディスク、または類似物などの任意の適切なデータ・キャリア（やはり図面には図示せず）に担持される１つまたは複数のコンピュータ・プログラム要素の形で提供できることとを理解されたい。データの伝送のためのチャネルは、同様に、すべての記述の記憶媒体ならびに有線または無線の信号担持媒体などの信号担持媒体を含むことができる。
【００５５】
一般に、方法は、所望の結果につながるステップの自己完結的シーケンスと考えられる。これらのステップは、物理量の物理的操作を必要とする。必ずではないが通常、これらの量は、格納され、転送され、組み合わされ、比較され、および他の形で操作され得る電気信号または磁気信号の形をとる。時に、主に一般的な使用の理由から、これらの信号を、ビット、値、パラメータ、項目、要素、オブジェクト、記号、文字、項、数などと称することが便利である。しかし、これらの用語および類似する用語のすべてが、適当な物理量に関連付けられなければならず、これらの量に適用される単に便利なラベルであることに留意されたい。
【００５６】
本発明は、さらに、コンピュータ・システムと共に使用されるコンピュータ・プログラムとして適切に実施することができる。そのような実施態様は、ディスケット、ＣＤーＲＯＭ、ＲＯＭ、またはハード・ディスクなどのコンピュータ可読媒体などの有形の媒体上で記録されて、あるいは、光通信回線もしくはアナログ通信回線を含むがこれらに限定はされない有形の媒体を介してまたはマイクロ波、赤外線、もしくは他の伝送技法を含むがこれらに限定はされない無線技法を使用して無形でのいずれかで、モデムまたは他のインターフェース・デバイスを介して、コンピュータ・システムに伝送可能のいずれかの、一連のコンピュータ可読命令を含むことができる。一連のコンピュータ可読命令は、本明細書で前に説明した機能性のすべてまたは一部を実施する。
【００５７】
当業者は、そのようなコンピュータ可読命令を、多数のコンピュータ・アーキテクチャまたはオペレーティング・システムと共に使用される複数のプログラミング言語で記述できることを理解するであろう。さらに、そのような命令を、半導体、磁気、もしくは光学を含むがこれらに限定はされない現在もしくは将来のすべてのメモリ・技術を使用して格納し、または光学、赤外線、もしくはマイクロ波を含むがこれらに限定はされない現在のもしくは将来の任意の通信技術を使用して送信することができる。そのようなコンピュータ・プログラムを、たとえばシュリンクラップされたソフトウェアなど、付随する印刷ドキュメンテーションもしくは電子ドキュメンテーションを伴うリムーバブル媒体として、たとえばシステムＲＯＭまたは固定ディスク上など、コンピュータ・システムにプリロードされて、または、たとえばインターネットまたはワールド・ワイド・ウェブなどのネットワークを介してサーバまたは電子掲示板から配布されて、配布することができることが企図されている。
【００５８】
１つの代替案では、本発明の好ましい実施形態を、コンピュータ・インフラストラクチャに展開され、その上で実行される時に、コンピュータ・システムにこの方法のすべてのステップを実行させるように動作可能なコンピュータ・プログラム・コードを展開するステップを含むサービスを展開するコンピュータで実施される方法の形で実現することができる。
【００５９】
さらなる代替案では、本発明の好ましい実施形態を、その上に機能データを有するデータ・キャリアであって、前記機能データは、コンピュータ・システムにロードされ、それによって操作される時に、前記コンピュータ・システムが本方法のすべてのステップを実行することを可能にする機能コンピュータ・データ構造を含む、データ・キャリアの形で実現することができる。
【００６０】
当業者には、本発明の範囲から逸脱せずに、前述の例示的実施形態に対して多数の改善および変更を行うことができることが明白であろう。
【図１】
0005466650.tif 000002
【図２】
0005466650.tif 000003
【図３】
0005466650.tif 000004
【図４】
0005466650.tif 000005
【図５】
0005466650.tif 000006
【図６】
0005466650.tif 000007
【図７】
0005466650.tif 000008
【図８】
0005466650.tif 000009