(57)【要約】  整合性のある状態にあるソース・データのコピーを獲得するための方法、コンピュータ・プログラム製品、およびシステムが説明される。前記ソース・データを変更する、対応する時間系列を有する１回または複数回のファイル処理が、記録される。整合性のある状態にあるソース・データのコピーを求める要求が、受け取られる。対応する時間系列におけるいずれの時点で、ファイル処理の或る部分を適用した結果、前記ソース・データが整合性のある状態にあるかが、判定される。ソース・データが、整合性のある状態にある、対応する時間系列におけるその時点に、マークが付けられる。ソース・データを整合性のある状態にすると判定されたファイル処理のその或る部分が、ソース・データのコピーに適用される。【特許請求の範囲】
【請求項１】
整合性のある状態にあるソース・データのコピーを獲得するための方法であって、
該ソース・データを変更する対応する時間系列を有する１つまたは複数のファイル処理を記録すること、
整合性のある状態にある該ソース・データのコピーを求める要求を受信すること、
前記対応する時間系列におけるいずれの時点で、前記ファイル処理の或る部分を適用した結果、前記ソース・データが、整合性のある状態にあるかを判定すること、
前記ソース・データが整合性のある状態にある、前記対応する時間系列における前記時点にマークを付けること、
前記ソース・データを整合性のある状態にすると判定されたファイル処理の該部分を、前記ソース・データの前記コピーに適用すること
を備える方法。
【請求項２】
前記対応する時間系列における前記時点に前記マークを付けることは、
前記整合性のある状態が獲得される前記ファイル処理の対応する処理を判定すること
を含む、請求項１に記載の方法。
【請求項３】
各レコードが、ファイル処理の前記部分における前記ファイル処理の１つに対応する、時間順に並べられたレコード・シリーズとして記録されるファイル処理の前記部分をリアルタイムで、前記ソース・データに適用されるにつれて記録すること、
前記ソース・データがいつ整合性のある状態にあるかを示すマーカ・レコードを、前記レコード・シリーズに挿入すること、
前記レコード・シリーズに対応するファイル処理を、マーカ・レコードが確認されるまで、前記ソース・データの前記コピーに適用すること
をさらに備える、請求項１に記載の方法。
【請求項４】
前記ソース・データの前記コピーを使用して処理を実行する際、入ってくる、新たなファイル処理が、前記ソース・データに適用されることを許可している間、前記ソース・データの前記コピーへの、記録されたファイル処理のさらなる適用を一時停止すること
をさらに備える、請求項３に記載の方法。
【請求項５】
前記ソース・データの前記コピーへの、記録されたファイル処理のさらなる適用を前記一時停止することは、前記ソース・データの前記コピーを含むターゲット・システム上でターゲット・スクリプトを実行することによって制御される、請求項４に記載の方法。
【請求項６】
前記ソース・データを含むソース・システム上の処理に応じて、一時停止される、ファイル処理の前記部分に対応するレコードを前記ターゲット・システムに伝送すること
をさらに備える、請求項５に記載の方法。
【請求項７】
前記ソース・システムから前記ターゲット・システムへの、前記レコードの伝送を制御するソース・スクリプトを、前記ソース・システム上で実行すること
をさらに備える、請求項６に記載の方法。
【請求項８】
前記マーカ・レコードは、前記ソース・スクリプト、前記ターゲット・スクリプト、データ処理の前記部分の、前記ソース・データの前記コピーへの適用を一時停止するかどうかを示す第１のフラグ値、および前記ソース・システムからの前記レコードの、前記ターゲット・システムへの伝送を一時停止するかどうかを示す第２のフラグ値の少なくとも１つに対応する標識を含む、請求項７に記載の方法。
【請求項９】
前記ソース・データの前記コピーを使用して実行される前記処理は、前記ソース・データのバックアップ処理である、請求項４に記載の方法。
【請求項１０】
整合性のある状態にある前記ソース・データのコピーを求める前記要求は、前記ソース・データへのアクセスを調整する構成要素に対するアプリケーション・プログラミング・インタフェースを使用して行われ、前記要求を受信したことに応答して、前記構成要素は、
前記ソース・データのライタが、少なくとも１つの基準に従って、新たなトランザクションの開始を一時停止して、新たなトランザクションを開始することなしに、既存のトランザクションを完了し、前記ソース・データのデータ・キャッシュ・ストアをフラッシュするようにさせ、
前記ソース・データが整合性のある状態にあることを、登録された要素に通信し、
前記少なくとも１つの基準に従って、新たなトランザクションを再開するよう、前記ライタに通信する、
請求項１に記載の方法。
【請求項１１】
前記登録された要素は、ファイル処理の前記部分に対応するマーカ・レコードを、時間順に並べられたレコード・シリーズに挿入することにより、前記対応する時間系列における前記時点に前記マークを付けることを実行するものであり、前記方法は、
前記レコードを、前記ソース・データを含むソース・ロケーションから、前記ソース・データの前記コピーを含むターゲット・ロケーションに伝送すること
を更に備え、ファイル処理の前記部分は、さらなる処理が前記ソース・データに適用されるかどうかとは無関係に、前記コピーに適用される、請求項１に記載の方法。
【請求項１２】
整合性のある状態にあるソース・データのコピーを獲得するためのコンピュータ・プログラム製品であって、
ソース・データを変更する対応する時間系列を有する１つまたは複数のファイル処理を記録し、
整合性のある状態にある該ソース・データのコピーを求める要求を受信し、
前記対応する時間系列におけるいずれの時点で、前記ファイル処理の或る部分を適用した結果、前記ソース・データが、整合性のある状態にあるかを判定し、
前記ソース・データが整合性のある状態にある、前記対応する時間系列における前記時点にマークを付け、
前記ソース・データを整合性のある状態にすると判定されたファイル処理の該部分を、前記ソース・データの前記コピーに適用する
コードを含む、コンピュータ・プログラム製品。
【請求項１３】
前記対応する時間系列における前記時点に前記マークを付ける前記コードは、
前記整合性のある状態が獲得される前記ファイル処理の対応する処理を判定する
コードを含む、請求項１２に記載のコンピュータ・プログラム製品。
【請求項１４】
前記部分における前記ファイル処理の１つに対応する各レコードが時間順に並べられたレコード・シリーズとして記録される、ファイル処理の前記部分をリアルタイムで、前記ソース・データに適用されるにつれて記録し、
前記ソース・データがいつ整合性のある状態にあるかを示すマーカ・レコードを、前記レコード・シリーズに挿入し、
前記レコード・シリーズに対応するファイル処理を、マーカ・レコードが確認されるまで、前記ソース・データの前記コピーに適用する
コードをさらに含む請求項１に記載のコンピュータ・プログラム製品。
【請求項１５】
前記ソース・データの前記コピーを使用して処理を実行する際、入ってくる、新たなファイル処理が、前記ソース・データに適用されることを許可している間、前記ソース・データの前記コピーへの、記録されたファイル処理のさらなる適用を一時停止する
コードをさらに含む、請求項１４に記載のコンピュータ・プログラム製品。
【請求項１６】
前記ソース・データの前記コピーへの、記録されたファイル処理のさらなる適用を前記一時停止する前記コードは、前記ソース・データの前記コピーを含むターゲット・システム上でターゲット・スクリプトを実行することによって制御される、請求項１５に記載のコンピュータ・プログラム製品。
【請求項１７】
前記ソース・データを含むソース・システム上の処理に応じて、一時停止される、ファイル処理の前記部分に対応するレコードを前記ターゲット・システムに伝送すること、
コードをさらに備える、請求項１６に記載のコンピュータ・プログラム製品。
【請求項１８】
前記ソース・システムから前記ターゲット・システムへ前記レコードの、伝送を制御するソース・スクリプトを、前記ソース・システム上で実行すること
コードを更に備え、前記マーカ・レコードは、前記ソース・スクリプト、前記ターゲット・スクリプト、データ処理の前記部分の、前記ソース・データの前記コピーへの適用を一時停止するかどうかを示す第１のフラグ値、および前記ソース・システムからの前記レコードの、前記ターゲット・システムへの伝送を一時停止するかどうかを示す第２のフラグ値の少なくとも１つに対応する標識を含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
システムであって、
データ・ソースを含む第１のデータ・ストレージ・システムと、
データ・ターゲットを含む第２のデータ・ストレージ・システムと、
前記第１のデータ・ストレージ・システムに接続された第１のホストの中に含まれる第１のコードであって、
前記ソース・データを変更する対応する時間系列を有する１つまたは複数のファイル処理を記録し、
整合性のある状態にある該ソース・データのコピーを求める要求を受信し、
前記対応する時間系列におけるいずれの時点で、前記ファイル処理の或る部分を適用した結果、前記ソース・データが、整合性のある状態にあるかを判定し、
前記ソース・データが整合性のある状態にある、前記対応する時間系列における前記時点にマークを付ける、
前記第１のデータ・ストレージ・システムに接続された第１のホストの中に含まれる第１のコードと、
前記第２のデータ・ストレージ・システムに接続された第２のホストの中に含まれる第２のコードであって、
前記ソース・データを整合性のある状態にすると判定されたファイル処理の該部分を、前記ソース・データの前記コピーに適用する
前記第２のデータ・ストレージ・システムに接続された第２のホストの中に含まれる第２のコードと
を備えるシステム。
【請求項２０】
整合性のある状態にある前記ソース・データのコピーを求める前記要求は、前記ソース・データへのアクセスを調整する前記第１のホストの中に含まれる構成要素に、前記第１のホストの中に含まれるアプリケーション・プログラミング・インタフェースを使用して行われ、前記構成要素は、
前記ソース・データのライタが、少なくとも１つの基準に従って、新たなトランザクションの開始を一時停止して、新たなトランザクションを開始することなしに、既存のトランザクションを完了し、前記ソース・データのデータ・キャッシュ・ストアをフラッシュするようにさせ、
前記ソース・データが整合性のある状態にあることを、登録された要素に通信し、
前記少なくとも１つの基準に従って、新たなトランザクションを再開するよう、前記ライタに通信する
第３のコードをさらに備える、請求項１９に記載のシステム。
【請求項２１】
データ・セットに適用されるファイル処理をキャプチャするための方法であって、
前記データ・セットを変更する対応する時間系列を有する１つまたは複数のファイル処理を記録すること、
整合性のある状態にある該データ・セットのコピーを求める要求を受信すること、
前記対応する時間系列におけるいずれの時点で、前記ファイル処理の或る部分を適用した結果、前記データ・セットが整合性のある状態にあるかを判定すること、
前記データ・セットが整合性のある状態にある、前記対応する時間系列における前記時点にマークを付けること
を備える方法。
【請求項２２】
前記対応する時間系列における前記時点に前記マークを付けることは、
前記整合性のある状態が獲得される前記ファイル処理の対応する処理を判定すること
を含む、請求項２１に記載の方法。
【請求項２３】
前記部分における前記ファイル処理の１つに対応する、時間順に並べられたレコード・シリーズとして記録される、ファイル処理の前記部分をリアルタイムで、前記データ・セットに適用されるにつれて記録すること、
前記データ・セットがいつ整合性のある状態にあるかを示すマーカ・レコードを、前記レコード・シリーズに挿入すること
をさらに備える、請求項２１に記載の方法。
【請求項２４】
ファイル処理の前記部分に対応するレコードを、前記データ・セットに関連するシステムから伝送することを更に備え、
前記レコードを前記伝送することは、前記システム上で実行される処理に応じて、一時停止される、請求項２３に記載の方法。
【請求項２５】
ターゲットへの前記レコードの伝送を制御するソース・スクリプトを、前記システム上で実行すること
をさらに備える、請求項２４に記載の方法。
【請求項２６】
前記マーカ・レコードは、前記ソース・スクリプト、前記レコードが、ターゲットに伝送された後に、前記レコードを処理することに関連して実行されるターゲット・スクリプト、データ処理の前記部分の、前記ターゲットにおける前記データ・セットのコピーへの適用を一時停止するかどうかを示す第１のフラグ値、および前記システムからの前記レコードの伝送を一時停止するかどうかを示す第２のフラグ値の少なくとも１つに対応する標識を含む、請求項２３に記載の方法。
【請求項２７】
整合性のある状態にある前記データ・セットのコピーを求める前記要求は、前記データ・セットへのアクセスを調整する構成要素に対するアプリケーション・プログラミング・インタフェースを使用して行われ、前記要求を受信したことに応答して、前記構成要素は、
前記データ・セットのライタが、少なくとも１つの基準に従って、新たなトランザクションの開始を一時停止して、新たなトランザクションを開始することなしに、既存のトランザクションを完了し、前記データ・セットのデータ・キャッシュ・ストアをフラッシュするようにさせ、
前記データ・セットが整合性のある状態にあることを、登録された要素に通信し、
前記少なくとも１つの基準に従って、新たなトランザクションを再開するよう、前記ライタに通信する、
請求項２１に記載の方法。
【請求項２８】
前記登録された要素は、ファイル処理の前記部分に対応するマーカ・レコードを、時間順に並べられたレコード・シリーズに挿入することにより、前記対応する時間系列における前記時点に前記マークを付けることを実行する、請求項２１に記載の方法。
【請求項２９】
データ・セットに適用されるファイル処理をキャプチャするためのシステムであって、
関心対象のファイル処理が正常に完了すると、前記関心対象のファイル処理が、他に記録された関心対象のファイル処理に関する前記データ・セットに適用された時点に対応する時間順の表現で、或るロケーションに前記ファイル処理を記録するミラーリング・ドライバと、
前記データ・セットが、整合性のある状態にあるという通知があると、前記ロケーションにおける次のエントリの中に、整合性ポイント・マーカを記録する複製サービスであって、前記整合性ポイント・マーカは、前記整合性ポイント・マーカに対応する時点まで、記録された関心対象のファイル処理が、前記データ・セットに適用された場合に、前記データ・セットが整合性のある状態にあることを示す、複製サービスと
を備えるシステム。
【請求項３０】
前記データ・セットへのアクセスを調整する構成要素と、
前記構成要素に対するアプリケーション・プログラミング・インタフェースと
をさらに備え、前記データ・セットが整合性のある状態にある時点を記録する要求を行うのに使用され、前記構成要素は、前記要求を受信したことに応答して、
前記データ・セットのライタが、少なくとも１つの基準に従って、新たなトランザクションの開始を一時停止して、新たなトランザクションを開始することなしに、既存のトランザクションを完了し、前記データ・セットのデータ・キャッシュ・ストアをフラッシュするようにさせ、
前記データが整合性のある状態にあることを、前記複製・サービスに通信し、
前記少なくとも１つの基準に従って、新たなトランザクションを再開するよう、前記ライタに通信する
コードをさらに備える、請求項２９に記載のシステム。
【請求項３１】
前記データ・セットを使用してファイル処理を実行し、かつ前記データ・セットのライタであるアプリケーション
をさらに備える、請求項３０に記載のシステム。
【請求項３２】
前記ミラーリング・ドライバは、ファイル処理が処理される際に、カーネル・モードで実行される複数の構成要素のコール・チェーンの中に含まれるドライバである、請求項２９に記載のシステム。
【請求項３３】
記録されたファイル処理、および整合性ポイント・マーカに対応する情報を前記ロケーションから読み取り、前記情報をターゲットに伝送する、ユーザ・モードで実行されるコード
をさらに備える、請求項２９に記載のシステム。
【請求項３４】
メモリの中に格納されたデータ構造であって、
データ・セットに適用される記録されたファイル処理の１つにそれぞれが対応する、前記記録されたファイル処理の時間系列に対応する複数のレコードと、
或る時点までの前記記録されたファイル処理の或る部分を前記データ・セットに適用した結果、前記データ・セットが整合性のある状態にある前記時間系列における前記時点をそれぞれが表す、前記複数のレコードに挿入された１つまたは複数の整合性ポイント・マーカと
を備える、データ構造。
【請求項３５】
前記整合性ポイント・マーカのそれぞれは、記録されたファイル処理の、前記データ・セットのコピーへの適用を制御するのに使用される更新一時停止フラグを含む整合性ポイント・マーカ・レコードによって表される、請求項３４に記載のデータ構造。
【請求項３６】
前記整合性ポイント・マーカ・レコードは、前記データ構造の中の後続のレコードの伝送が、一時停止されるべきかどうかを示す転送フラグを含む、請求項３５に記載のデータ構造。
【請求項３７】
前記整合性ポイント・マーカ・レコードは、前記転送フラグを使用して、ソースからターゲットへの後続のレコードの伝送を制御する、前記データ・セットに関連するソース・ロケーションにおけるソース・スクリプトの識別子を含む、請求項３６に記載のデータ構造。
【請求項３８】
前記整合性ポイント・マーカ・レコードは、前記更新一時停止フラグを使用して、記録されたファイル処理の、前記データ・セットの前記コピーへの適用を制御する、前記データ・セットの前記コピーに関連するターゲット・ロケーションにおけるターゲット・スクリプトの識別子を含む、請求項３５に記載のデータ構造。
【請求項３９】
データ・セットに適用されるファイル処理をキャプチャするためのコンピュータ・プログラム製品であって、
データ・セットを変更する対応する時間系列を有する１つまたは複数のファイル処理を記録し、
整合性のある状態にある該データ・セットのコピーを求める要求を受信し、
前記対応する時間系列におけるいずれの時点で、ファイル処理の或る部分を適用した結果、前記データ・セットが整合性のある状態にあるかを判定し、
前記データ・セットが整合性のある状態にある、前記対応する時間系列における前記時点にマークを付ける
コードを備える、コンピュータ・プログラム製品。
【請求項４０】
整合性のある状態にある前記データ・セットのコピーを求める前記要求は、前記データ・セットへのアクセスを調整する構成要素に対するアプリケーション・プログラミング・インタフェースを使用して行われ、前記要求を受信したことに応答して、前記構成要素は、
前記データ・セットのライタが、少なくとも１つの基準に従って、新たなトランザクションの開始を一時停止して、新たなトランザクションを開始することなしに、既存のトランザクションを完了し、前記データ・セットのデータ・キャッシュ・ストアをフラッシュするようにさせ、
前記データ・セットが整合性のある状態にあることを、登録された要素に通信し、
前記少なくとも１つの基準に従って、新たなトランザクションを再開するよう、前記ライタに通信するコードを含み、、前記登録された要素は、ファイル処理の前記部分に対応するマーカ・レコードを、時間順に並べられたレコード・シリーズに挿入することにより、前記対応する時間系列における前記時点にマークを付ける、請求項３９に記載のコンピュータ・プログラム製品。
【請求項４１】
ソース・データの或る時点のコピーを生成するための方法であって、
前記ソース・データに適用される記録されたファイル処理の時間順に並べられたシリーズに対応し、或る時点まで行われた、前記記録されたファイル処理の或る部分が、前記ソース・データに適用された場合に、前記ソース・データが整合性のある状態にある前記時点をそれぞれが示す、１つまたは複数の整合性ポイント・マーカを含むレコード・セットを受信すること、
整合性ポイント・マーカに対応するマーカ・レコードが確認されるまで、前記レコード・セットに対応する記録されたファイル処理を、該ソース・データの前記コピーに適用すること
を備える方法。
【請求項４２】
前記ソース・データの前記コピーを使用して処理を実行する際、記録されたファイル処理の、前記ソース・データの前記コピーへのさらなる適用を一時停止すること
をさらに備える、請求項４１に記載の方法。
【請求項４３】
記録されたファイル処理の、前記ソース・データの前記コピーへのさらなる適用を前記一時停止することは、前記ソース・データの前記コピーを含むターゲット・システム上でターゲット・スクリプトを実行することによって制御される、請求項４２に記載の方法。
【請求項４４】
前記マーカ・レコードは、前記ターゲット・スクリプトと、記録されたファイル処理の、前記ソース・データの前記コピーへの適用を一時停止するかどうかを示す第１のフラグ値の少なくともいずれかに対応する標識を含む、請求項４３に記載の方法。
【請求項４５】
前記ソース・データの前記コピーを使用して実行される前記処理は、前記ソース・データのバックアップ処理である、請求項４２に記載の方法。
【請求項４６】
前記整合性ポイント・マーカの第１のマーカは、第１の時点における前記ソース・データの第１のバージョンに対応し、前記整合性ポイント・マーカの第２のマーカは、第２の時点における前記ソース・データの第２のバージョンに対応ており、前記方法は、
前記第１の整合性ポイント・マーカを検出すると、前記ソース・データの前記コピーの現在の状態が、前記第１のバージョンに対応する間、第１の期間にわたって、記録されたファイル処理のさらなる適用を一時停止すること、
前記第２の整合性ポイント・マーカの検出まで、前記レコード・セットの処理を再開すること、
前記第２の整合性ポイント・マーカを検出すると、前記ソース・データの前記コピーの現在の状態が、前記第２のバージョンに対応する間、第２の期間にわたって、記録されたファイル処理のさらなる適用を一時停止すること、  前記レコード・セットの出力を再開すること
をさらに備える、請求項４１に記載の方法。
【請求項４７】
前記一時停止する工程、および前記再開する工程は、フラグ値、および前記ソース・データの前記コピーを含むターゲット・システム上で実行されるスクリプトに応じて制御される、請求項４６に記載の方法。
【請求項４８】
前記スクリプトのロケーションは、前記第１の整合性ポイント・マーカ、および前記第２の整合性ポイント・マーカのそれぞれに対応するマーカ・レコードのフィールドの中に含まれ、前記フラグ値は、各マーカ・レコードの別のフィールドの中に含まれる、請求項４７に記載の方法。
【請求項４９】
ソース・データの或る時点のコピーを生成するためのコンピュータ・プログラム製品であって、
ソース・データに適用される記録されたファイル処理の時間順に並べられたシリーズに対応する、或る時点まで行われた、前記記録されたファイル処理の或る部分が、前記ソース・データに適用された場合に、前記ソース・データが整合性のある状態にある前記時点をそれぞれが示す、１つまたは複数の整合性ポイント・マーカを含むレコード・セットを受信し、
整合性ポイント・マーカに対応するマーカ・レコードが確認されるまで、前記レコード・セットに対応する記録されたファイル処理を、該ソース・データの前記コピーに適用する
コードを備える、コンピュータ・プログラム製品。
【請求項５０】
前記ソース・データの前記コピーを使用して処理を実行する際、記録されたファイル処理の、前記ソース・データの前記コピーへのさらなる適用を一時停止する
コードをさらに備える、請求項４９に記載のコンピュータ・プログラム製品。
【請求項５１】
記録されたファイル処理の、前記ソース・データの前記コピーへのさらなる適用を一時停止する前記コードは、前記ソース・データの前記コピーを含むターゲット・システム上でターゲット・スクリプトを実行することによって制御される、請求項５０に記載のコンピュータ・プログラム製品。
【請求項５２】
前記マーカ・レコードは、前記ターゲット・スクリプトと、記録されたファイル処理の、前記ソース・データの前記コピーへの適用を一時停止するかどうかを示す第１のフラグ値の少なくともいずれかに対応する標識を含む、請求項５１に記載のコンピュータ・プログラム製品。
【請求項５３】
前記ソース・データの前記コピーを使用して実行される前記処理は、前記ソース・データのバックアップ処理である、請求項５０に記載のコンピュータ・プログラム製品。
【請求項５４】
前記整合性ポイント・マーカの第１のマーカは、第１の時点における前記ソース・データの第１のバージョンに対応し、前記整合性ポイント・マーカの第２のマーカは、第２の時点における前記ソース・データの第２のバージョンに対応するものであり、前記コンピュータ・プログラム製品は、
前記第１の整合性ポイント・マーカを検出すると、前記ソース・データの前記コピーの現在の状態が、前記第１のバージョンに対応する間、第１の期間にわたって、記録されたファイル処理のさらなる適用を一時停止し、
前記第２の整合性ポイント・マーカの検出まで、前記レコード・セットの処理を再開し、
前記第２の整合性ポイント・マーカを検出すると、前記ソース・データの前記コピーの現在の状態が、前記第２のバージョンに対応する間、第２の期間にわたって、記録されたファイル処理のさらなる適用を一時停止し、
前記レコード・セットの出力を再開する
コードをさらに備える、請求項４９に記載のコンピュータ・プログラム製品。
【請求項５５】
一時停止する前記コード、および再開する前記コードは、フラグ値、および前記ソース・データの前記コピーを含むターゲット・システム上で実行されるスクリプトに応じて制御される、請求項５４に記載のコンピュータ・プログラム製品。
【請求項５６】
前記スクリプトのロケーションは、前記第１の整合性ポイント・マーカ、および前記第２の整合性ポイント・マーカのそれぞれに対応するマーカ・レコードのフィールドの中に含まれ、前記フラグ値は、各マーカ・レコードの別のフィールドの中に含まれる、請求項５５に記載のコンピュータ・プログラム製品。
【請求項５７】
ソース・データの或る時点のコピーを生成するためのターゲット・システムであって、
前記ソース・データの前記コピーを含むデータ・ストレージ・デバイスと、
複製サービスであって、
前記ソース・データに適用される記録されたファイル処理の時間順に並べられたシリーズに対応するし、或る時点まで行われた、前記記録されたファイル処理の或る部分が、前記ソース・データに適用された場合に、前記ソース・データが整合性のある状態にある前記時点をそれぞれが示す、１つまたは複数の整合性ポイント・マーカを含むレコード・セットを受信すること、
整合性ポイント・マーカに対応するマーカ・レコードが確認されるまで、前記レコード・セットに対応する記録されたファイル処理を、該ソース・データの前記コピーに適用すること
を行うコードを備える複製サービスと
を備えるターゲット・システム。
【請求項５８】
前記ソース・データの前記コピーを使用して処理を実行する際、記録されたファイル処理の、前記ソース・データの前記コピーへのさらなる適用を一時停止する
コードをさらに備え、
記録されたファイル処理の、前記ソース・データの前記コピーへのさらなる適用を前記一時停止することは、前記ソース・データの前記コピーを含むターゲット・システム上でターゲット・スクリプトを実行することによって制御される、請求項５７に記載のターゲット・システム。
【請求項５９】
前記マーカ・レコードは、前記ターゲット・スクリプトと、記録されたファイル処理の、前記ソース・データの前記コピーへの適用を一時停止するかどうかを示す第１のフラグ値の少なくともいずれかに対応する標識を含む、請求項５８に記載のターゲット・システム。
【請求項６０】
前記整合性ポイント・マーカの第１のマーカは、第１の時点における前記ソース・データの第１のバージョンに対応し、前記整合性ポイント・マーカの第２のマーカは、第２の時点における前記ソース・データの第２のバージョンに対応しており前記ターゲット・システムは、
前記第１の整合性ポイント・マーカを検出すると、前記ソース・データの前記コピーの現在の状態が、前記第１のバージョンに対応する間、第１の期間にわたって、記録されたファイル処理のさらなる適用を一時停止する、
前記第２の整合性ポイント・マーカの検出まで、前記レコード・セットの処理を再開する、
前記第２の整合性ポイント・マーカを検出すると、前記ソース・データの前記コピーの現在の状態が、前記第２のバージョンに対応する間、第２の期間にわたって、記録されたファイル処理のさらなる適用を一時停止する、
前記レコード・セットの出力を再開する
コードさらに備える、請求項５７に記載のターゲット・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、概ね、データ・ストレージ・システムに関し、より詳細には、データ・ストレージ・システムにおいて、整合性ポイント、および関連する整合性のあるデータ・コピーを使用する技術に関する。
【背景技術】
【０００２】
コンピュータ・システムは、１つまたは複数のホスト・プロセッサによって使用される様々なリソースを含む。コンピュータ・システム内のリソースおよびホスト・プロセッサは、１つまたは複数の通信接続で互いに接続される。それらのリソースには、例えば、ＥＭＣコーポレーションによって製造されるデータ・ストレージ・システム内に含まれるデータ・ストレージ・デバイスのような、データ・ストレージ・デバイスが含まれることが可能である。それらのデータ・ストレージ・システムは、１つまたは複数のホスト・プロセッサに結合されて、各ホスト・プロセッサにストレージ・サービスを提供することができる。１つまたは複数の異なるベンダからの複数のデータ・ストレージ・システムが、接続されることが可能であり、コンピュータ・システム内の１つまたは複数のホスト・プロセッサに、共通のデータ・ストレージを提供することが可能である。
【０００３】
様々なタスクが、データ・ストレージ・システムに関連して実行される。例えば、ソース・システムからのデータのミラー・コピーをターゲット・システムにおいて作成して、保持するための処理が、データ・ストレージ・システムにおいて実行される。ソース・システムにデータ変更を生じさせるファイル処理が実行されるにつれ、それらの変更が、記録され、次いで、そのデータのターゲット・システムのコピーに適用される。データ処理を実行することに関連して、データが、整合性のある状態にあるとき、データのコピーを、ターゲット・システム上で利用することが望ましい。ソース・システムまたはターゲット・システムは、例えば、すべての未処理のデータベース・トランザクションが、コミットされ、入ってくる、あらゆる新たなトランザクションが、保留され、つまり、「キューに入れられ」、あらゆるデータベース・バッファが、選択された時点に関してフラッシュされた時点で、整合性のある状態にあると特徴付けられることが可能である。しかし、ターゲット・システム上のデータのコピーがいつ、そのような整合性のある状態にあるかを確かめ、判定することは、困難である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このため、ソース・システムのデータ、およびソース・システム上のデータにアクセスするアプリケーションへの悪影響を最小限に抑えながら、ターゲット・システム上で整合性のあるデータ・コピーを提供するため、およびターゲット・システム上のデータのコピーが、整合性のある状態にある時点を判定するための効率的な技術を得ることが望ましい。
【発明を実施するための最良の形態】
【０００５】
本発明の特徴および利点は、添付の図面と併せて解釈される、本発明の例示的な諸実施形態の以下の詳細な説明から、より明白となろう。
次に、図１を参照すると、本明細書で説明する技術を実行することに関連して使用されるコンピュータ・システムの実施形態の実施例が、示されている。コンピュータ・システム１０は、通信媒体１８を介してホスト・システム１４ａ〜１４ｎに接続されたデータ・ストレージ・システム１２を含む。コンピュータ・システムのこの実施形態では、Ｎ個のホスト１４ａ〜１４ｎは、例えば、Ｉ／Ｏ（入力／出力）処理またはデータ要求を実行する際に、データ・ストレージ・システム１２にアクセスする。通信媒体１８は、当業者に知られている様々なネットワーク、または他のタイプの通信接続の任意の１つまたは複数である。通信媒体１８は、当業者に知られている配線、またはその他の接続などの、ネットワーク接続、バス、ファブリック、および／または他のタイプのデータ・リンクである。例えば、通信媒体１８は、ホスト・システム１４ａ〜１４ｎが、データ・ストレージ・システム１２にアクセスし、システム１２と通信し、また、コンピュータ・システム１０内に含まれるその他のシステムと通信する、インターネット、イントラネット、ネットワーク、または他の無線接続、もしくは他の有線接続である。
【０００６】
コンピュータ・システム１０内に含まれるホスト・システム１４ａ〜１４ｎのそれぞれ、およびデータ・ストレージ・システム１２は、通信媒体１８のタイプに応じて提供され、サポートされる、様々な接続のいずれか１つによって通信媒体１８に接続される。ホスト・コンピュータ・システム１４ａ〜１４ｎ内に含まれるプロセッサは、それぞれの特定の実施形態および応用例に応じてトラフィックをサポートするＩｎｔｅｌベースのプロセッサ、または他のタイプの市販のプロセッサなどの、様々な独自の、または市販のシングルプロセッサ・システムまたはマルチプロセッサ・システムのいずれか１つである。
【０００７】
データ・ストレージ・システム１２内に含まれるハードウェアおよびソフトウェアの特定の例は、本明細書でより詳細に説明され、それぞれの特定の実施形態とともに異なることが可能であることに留意されたい。ホスト・コンピュータ１４ａ〜１４ｎのそれぞれ、およびデータ・ストレージ・システムはすべて、同一の物理サイトに配置されるか、あるいは、代替として、異なる物理ロケーションに配置されてもよい。ホスト・コンピュータ・システム群と、コンピュータ・システム１０のデータ・ストレージ・システムの間における様々なタイプの通信を提供するのに使用される通信媒体の例は、ＳＣＳＩ、ファイバー・チャンネル、ｉＳＣＳＩなどの、様々な異なる通信プロトコルを使用することが可能である。ホスト、管理構成要素、およびデータ・ストレージ・システムが、通信媒体に接続されることが可能な接続のいくつか、またはすべては、Ｃｏｎｎｅｃｔｒｉｘのような、他の通信デバイス、または電話線、中継器、マルチプレクサ、またはさらには衛星などの、存在することが可能な他のスイッチング機器を経由してもよい。
【０００８】
ホスト・コンピュータ・システムのそれぞれは、様々なタイプのタスクに応じて、様々なタイプのデータ処理を実行する。図１の実施形態では、ホスト・コンピュータ１４ａ〜１４ｎのいずれか１つが、データ処理を実行するよう、データ・ストレージ・システム１２にデータ要求を発行する。例えば、ホスト・コンピュータ１４ａ〜１４ｎのいずれかの上で実行されるアプリケーションが、読み取り処理または書き込み処理を実行して、データ・ストレージ・システム１２に対する１つまたは複数のデータ要求をもたらす。
【０００９】
次に、図２Ａを参照すると、図１のコンピュータ・システム１０内に含まれるデータ・ストレージ・システム１２の実施形態の実施例が、示されている。図２Ａのデータ・ストレージ・システム１２内に含まれるのが、１つまたは複数の異なるベンダによって製造される、１つまたは複数のデータ・ストレージ・システム２０ａ〜２０ｎである。データ・ストレージ・システム２０ａ〜２０ｎのそれぞれは、互いに接続される（図示せず）。さらに、データ・ストレージ・システムは、それぞれの特定の実施形態、および特定の実施形態において使用される様々なプロトコルに応じたデバイスとともに異なる任意の１つまたは複数の通信接続３１を介して、ホスト・システム群に接続される。使用される通信接続のタイプは、例えば、データ・ストレージ・システム１２に対して、ホスト・コンピュータ・システムによって発行されるＩ／Ｏ要求のレートに応じて要求される、帯域幅およびスループットと関係するシステム・パラメータおよびシステム要件などの、いくつかのシステム・パラメータおよびシステム要件とともに異なる。後段で詳細に説明する、この例では、要素２０ａの、より詳細な図を参照する。同様のより詳細な説明が、２０ｎのような、その他の要素の任意の１つまたは複数にも当てはまるが、説明を簡明にするために省略されていることに留意されたい。また、或る実施形態は、１つまたは複数のベンダからのデータ・ストレージ・システムを含むことが可能であることにも留意されたい。２０ａ〜２０ｎのそれぞれは、例えば、ホスト・コンピュータ・システムにストレージ・サービスを提供するように、図１のコンピュータ・システム１０の実施形態に含められたリソースである。データ・ストレージ・システム１２は、独立して動作してもよいし、あるいは、例えば、他の構成要素を含むＳＡＮ（ストレージ・エリア・ネットワーク）の一部として含まれてもよいことに留意されたい。
【００１０】
２０ａなどのデータ・ストレージ・システムのそれぞれは、ｎ個のディスク・ロウまたはボリューム・ロウ２４ａ〜２４ｎから成る構成２４などの、複数のディスク・デバイスまたはボリュームを含むことが可能である。その構成では、各ディスク・ロウまたは各ボリューム・ロウは、それらのディスクまたはボリューム２４の一部に対する、またはその一部からの処理のバックエンド管理を担うＤＡ（「ディスク・アダプタ」）またはダイレクタに接続されることが可能である。システム２０ａ内で、２３ａなどの単一のＤＡが、ロウ２４などの、ディスク・ロウまたはボリューム・ロウの管理を担う。
【００１１】
また、システム２０ａは、１つまたは複数のＨＡ（「ホスト・アダプタ」）またはダイレクタ２１ａ〜２１ｎも含む。それらのＨＡのそれぞれは、１つまたは複数のホスト・システムと、グローバル・メモリとの間における通信およびデータ処理を管理するために使用される。或る実施形態では、ＨＡは、ファイバー・チャンネル・アダプタ、またはホスト通信を円滑にする他のアダプタである。
【００１２】
１つまたは複数の内部論理通信パスが、ＤＡ、ＲＡ、ＨＡ、およびメモリ２６の間で存在する。例えば、或る実施形態は、１つまたは複数の内部バスおよび／または通信モジュールを使用する。例えば、グローバル・メモリ部分２５ｂを使用して、データ・ストレージ・システム内のＤＡ、ＨＡ、およびＲＡの間におけるデータ転送、およびその他の通信を円滑にする。１実施形態ではＤＡ２３ａ〜２３ｎは、例えば他のディスク・アダプタまたはダイレクタ、およびシステム２０ａの他の構成要素と通信している、グローバル・メモリ２５ｂ内に含まれるキャッシュを使用して、データ処理を実行する。他方の部分２５ａは、各実施形態に応じて異なることが可能な他の指定に関連して使用されるメモリの部分である。
【００１３】
この実施形態で説明される特定のデータ・ストレージ・システム、またはディスクなど、そのシステムの特定のデバイスは、限定として解釈されてはならない。他のタイプの市販のデータ・ストレージ・システム、およびプロセッサ、ならびにそれらの特定のデバイスへのアクセスを制御するハードウェアも、或る実施形態に含まれる。
【００１４】
ストレージ・システム２０ａ内に示されているのが、ＲＡ、つまり、リモート・アダプタ４０である。ＲＡは、同一のタイプの、または異なるタイプのデータ・ストレージ・システムの２つの間などの、データ・ストレージ・システム間の通信を円滑にするのに使用されるプロセッサを含むハードウェアである。
【００１５】
ホスト・システム群は、ストレージ・システム群へのチャネルを介してデータおよびアクセス制御情報を提供し、ストレージ・システム群も、やはり、それらのチャネルを介して、ホスト・システム群にデータを提供する。ホスト・システム群は、ストレージ・システム群のディスク・ドライブを直接にアドレス指定せず、むしろ、データへのアクセスは、ホスト・システム群が、複数の論理デバイスまたはＬＶ（論理ボリューム）として見る物から、１つまたは複数のホスト・システムに与えられる。それらのＬＶは、実際のディスク・ドライブに対応しても、対応しなくてもよい。例えば、１つまたは複数のＬＶが、単一の物理ディスク・ドライブ上に存在する。単一のストレージ・システムの中のデータに、複数のホストによってアクセスが行われて、ホストが、そのシステムの中に存在するデータを共有することができる。ＨＡは、データ・ストレージ・システムとホスト・システムの間の通信に関連して使用される。ＲＡは、２つのデータ・ストレージ・システム間の通信を円滑にするのに使用されることが可能である。ＤＡは、関連するディスク・ドライブ、およびディスク・ドライブ上に存在するＬＶに対する通信を円滑にすることに関連して使用される。
【００１６】
ＤＡは、ディスク・ドライブ上のＩ／Ｏ処理を実行する。以下の説明では、他のダイレクタが生じさせるＩ／Ｏ処理に関連するデータ要求の後に、ＤＡによって、ＬＶ上に存在するデータにアクセスが行われる。
【００１７】
次に、図２Ｂを参照すると、示されているのは、データ・ストレージ・システム内に含まれるダイレクタとメモリの間の論理内部通信の図である。図２Ｂに含まれるのは、メモリ２６に結合された複数のダイレクタ３７ａ〜３７ｎである。ダイレクタ３７ａ〜３７ｎのそれぞれは、データ・ストレージ・システム内に含まれるＨＡ、ＲＡ、またはＤＡのいずれかを表す。本明細書で開示する或る実施形態では、メモリ２６に結合された１６個までのダイレクタが存在することが可能である。他の諸実施形態は、異なる、より高い、またはより低い最大数のダイレクタを含む。
【００１８】
また、図２Ｂの図は、ダイレクタ３７ａ〜３７ｎの間における代替の通信パスを提供するオプションのＣＭ（通信モジュール）３８も含む。ダイレクタ３７ａ〜３７ｎのそれぞれが、ＣＭ３８に結合され、したがって、ダイレクタ３７ａ〜３７ｎのいずれのダイレクタも、メモリ２６を経由する必要なしに、ダイレクタ３７ａ〜３７ｎの任意の他のダイレクタにメッセージおよび／またはデータを送信することができる。ＣＭ３８は、ダイレクタ３７ａ〜３７ｎの送信側ダイレクタが、適切なアドレスを提供して、ダイレクタ３７ａ〜３７ｎの、意図される受信側ダイレクタによってメッセージおよび／またはデータが、受信されるようにする、従来のＭＵＸ／ルータ技術を使用して実施される。さらに、ダイレクタ３７ａ〜３７ｎの送信側ダイレクタは、その他のダイレクタ３７ａ〜３７ｎのすべてに同時にメッセージをブロードキャストすることができる。
【００１９】
次に、図３を参照すると、示されているのは、本明細書で説明する技術を実行することに関連して使用されるシステム１０の構成要素の実施例である。実施例１００は、他の図に関連して前述したとおり、ホスト１４ａおよびデータ・ストレージ・システム１２を含む。ホスト１４ａは、ホスト１４ａ上で実行されるデータベース・アプリケーション１０２を含む。データベース・アプリケーション１０２は、例えば、ホスト１４ａのローカルなデータ・ストレージ・デバイス１０４からデータを読み取り、且つデータを書き込む。例えば、バックアップ処理などの、いくつかの処理を実行することに関連して、デバイス１０４などの、ホストにローカルなデバイスからのデータが、データ・ストレージ・システム１２上のデバイス１０６などの、別の中央ロケーションにコピーされる。次に、データ・ストレージ・システム１２のデバイス１０６が、他のデータ・ストレージ・デバイス上にバックアップされる。データベース・アプリケーション１０は、デバイス１０４の中に含まれるファイルを処理することに関連して、読み取る、書き込む、切り捨てるといったファイル処理などの、ファイル・ベースのコマンドを実行する。また、バックアップ処理は、或る特定の実施形態のファイル・システムおよび構造に応じて、バックアップされるべき、指定された要素が存在するシステム・レベルにおける、例えば、特定のファイル、ディレクトリなどにおけるデータに対して実行されることも可能である。バックアップ処理の対象であるデータは、デバイス１０６の中に含まれるデータの一部分である。
【００２０】
１０４などのソース・デバイスからのソース・データのコピーを獲得して、保持することの一環として、初期同期処理が、実行される。同期処理は、デバイス１０６の中に含まれるターゲット・データなどの、ターゲットにソース・データのファイルを最初にコピーする。同期の後、ソース・データ・コピーとターゲット・データ・コピーは、同一である。次いで、ソース・データのその後の更新または変更が、ソース・データに対して実行されるファイル処理をミラーリングすることにより、ターゲット・データ上に非同期で複製される。つまり、特定のファイル処理が、ソース・データの改変または変更をもたらす場合、そのファイル処理が記録され、その後、ターゲット・データに適用される。ターゲット・データに対してバックアップ処理を実行する際、ターゲット・データは、或る時点におけるソース・データの整合性のあるコピーとして特徴付けられる。本明細書で説明するとおり、ソース・データのコピーは、或る時点で、例えば、すべての未処理のデータベース・トランザクションが、コミットされ、入ってくる、あらゆる新たなトランザクションが、保留され、つまり、「キューに入れられ」、あらゆるデータベース・バッファ、または他のキャッシュされたデータが、選択された時点に関してフラッシュされた時点で、整合性のある状態にある。
【００２１】
本明細書で説明するのは、デバイス１０４からのソース・データの整合性のあるコピーを、データ・ストレージ・システム１２のデバイス１０６などのターゲット上で獲得することに関連して使用される技術である。すると、ターゲット・データは、そのデータが、ソース・データの整合性のあるコピーである時点で、例えば、バックアップ処理などの他の処理およびタスクを実行することに関連して使用される。
【００２２】
実施例１００は、単一のホスト１４ａだけを示しているが、システム１０内に含まれる、その他のホストの任意のホストも、本明細書で説明する技術に関連して使用されることに留意されたい。ホスト１４ａ、データベース・アプリケーション１０２などの特定のアプリケーション、およびバックアップ処理を実行することに関連したストレージ・デバイス１０６上に含まれるターゲット・データの使用は、本明細書で説明する技術を例示する目的で選択されている。データベース・アプリケーション以外の他のアプリケーションが、ターゲット・データ・ストレージ・デバイスに複製されるソース・データ・デバイスに対して処理を実行することに関連して使用される。さらに、ターゲット・データ・ストレージ・デバイスは、バックアップ処理以外の様々な異なる処理のいずれの処理に関連して使用される。
【００２３】
図３に含まれる構成要素は、或る実施形態に実際に含まれる構成要素の一部だけを表す。図３の特定の構成要素は、説明および例として含められている。様々な構成が、本明細書の他の箇所で説明されている。例えば、一実施形態は、本明細書で説明する技術を実施することに関連して、ホスト間通信、データ・ストレージ・システム‐ホスト間通信、またはデータ・ストレージ・システム間通信を使用する。
【００２４】
以下で、最初に説明するのは、ターゲット上でソース・データを複製する際に使用されることが可能な技術である。その後に続いて説明するのは、ターゲット・データが、ソース・データの整合性のあるコピーとして特徴付けられる時点の判定を円滑にする、複製技術のさらなる要素である。
【００２５】
次に説明するのは、ソース・デバイス１０４からのデータなどのソース・データを、デバイス１０６などのターゲット・デバイスに複製することに関連して使用される技術である。本明細書で説明する複製技術は、ファイル・システム・レベル・コマンドに応じたファイル・システム・レベルで実行される。図４に関連して説明する１つの技術によれば、様々なファイル・システム・レベル・コマンドが、ファイル処理が適用されるにつれ、リアルタイムでキャプチャされて、ソース・デバイス１０４に格納される。それらのファイル処理が、キャプチャされて、ホスト１４ａなどのソース・システム上のキューまたはストレージ・ロケーションの中に記録されると、キャプチャされた処理は、ターゲット・デバイス１０６の中に含まれるターゲット・データに適用するために、ターゲット・システムまたはサーバに転送される。
【００２６】
非同期複製を使用する特定の複製技術を、本明細書でより詳細に説明するが、本明細書で説明する技術は、例えば、様々なモードの同期複製などの、当業者に知られている他の複製技術に関連して、使用されることに留意されたい。
【００２７】
次に、図４を参照すると、示されているのは、ターゲット・デバイス１０６上で、ソース・デバイス１０４の中に含まれるソース・データのミラー・コピーを保持するために、ファイル処理のリアルタイムの複製に関連して使用される構成要素の実施例２００である。実施例２００に含まれるのは、ソース・システム２３０およびターゲット・システム２４０である。ソース・システム２３０は、例えば、図３に関連して前段で説明したホスト１４ａである。ターゲット・システム２４０は、例えば、データ・ストレージ・システム１２内に含まれる、またはシステム１２に接続されたサーバである。アプリケーション１０２は、例えば、ソース・データの変更を生じさせるファイル書き込み処理、またはその他の処理などの、ファイル処理を実行する。アプリケーション１０２の実行中、アプリケーション１０２によって発行された、それらのファイル処理が（工程１）、１つまたは複数の構成要素を使用してキャプチャされる。構成要素のいくつかは、カーネル空間２０２において実行される。カーネル空間２０２において実行される構成要素には、Ｉ／Ｏマネージャ２０４、ミラーリング・ドライバ２０６、およびファイル・システム２０８が含まれる。或る実施形態は、この実施例に関連して説明する以外の構成要素を含んでもよいことに留意されたい。例えば、或る実施形態は、ディスク、または他のデバイス１０４とインタフェースをとることに関連して、ファイル・システム２０８の下に、１つまたは複数の他のドライバを含む。ミラーリング・ドライバ２０６は、コール・チェーンを再び上に行く過程で、関心対象のファイル処理をキャプチャし（工程２）、関心対象のそれらのファイル処理をカーネル・キャッシュ２１０の中に記録する（工程３）ファイル・ドライバとして特徴付けられる。カーネル・キャッシュ２１０が、一杯になった、またはそれ以外でオーバーフローした場合、ミラーリング・ドライバ２０６は、オーバーフロー・ロケーション２１２の中でキャプチャされたデータ処理を記録する（工程４）。カーネル・キャッシュおよび／またはオーバーフロー・ロケーション２１２の中に含まれるキャプチャ・データ処理のコンシューマまたはリーダは、ユーザ・モード・プロセスである複製サービス２１４である。複製サービス２１４は、カーネル・キャッシュ２１０からのキャプチャされたデータ処理を読み取り（工程５）、オーバーフロー・ロケーション２１２からのキャプチャされたデータ処理を読み取る（工程６）。ミラーリング・ドライバ２０６は、複製サービスが、カーネル・キャッシュから十分な量のキャプチャされたファイル処理を処理するまで、オーバーフロー・ロケーション２１２に書き込みつづけることに留意されたい。以上のことが生じると、ミラーリング・ドライバは、次に、カーネル・キャッシュ２１０に書き込むことを再開する。ミラーリング・ドライバが、カーネル処理をカーネル・キャッシュ２１０またはオーバーフロー・ロケーション２１２の中でキューに入れると、複製サービス２１４が、次に、カーネル・キャッシュまたはオーバーフロー・ロケーション２１２からファイル処理を読み取る。複製サービス２１４は、２１０および／または２１２から読み取られたファイル処理（工程７）を、サーバ２４０などの適切なターゲット・システムに送信する。ターゲット・サーバ上に置かれているコードには、例えば、ソース・システム２３０のサービス２１４から送信された、受信されたファイル処理（工程８）を処理する複製サービス２１６が含まれる。ターゲット上の複製サービス２１６は、次に、ターゲット・ストレージ・デバイス１０６の中に含まれるターゲット・データのファイルに、受信されたファイル処理を適用することにとりかかり（工程９）、ソース・システムに確認応答を送り返す（工程１０）。複製・サービス２１６が、或るファイル処理を実行すること、または適用することをブロックされた場合、そのファイル処理は、ブロック・データ・コンテナ２２０の中に記録される（工程１１）ことに留意されたい。ファイル処理をファイルに適用することは、例えば、ディスクが一杯である場合、ファイルが使用中である場合などにブロックされることに留意されたい。ファイルに、処理がブロックされているというラベルが付けられると、その特定のファイルに対するすべての後続のファイル処理は、そのファイルが、そうではなく、ブロックされていないファイル処理の状態に関連付けられるまで、ブロック・データ・コンテナ２２０の中に保存される。定期的に、複製サービス２１６は、ブロック・データ・コンテナ２２０の中に含まれるファイル処理を再適用しようと試みる（工程１２）。
【００２８】
前述したとおり、ミラーリングは、ソース・データに適用されたファイル処理のリアルタイムのミラーリングとして特徴付けられる。ミラーリングは、ミラーリング・ドライバ２０６およびサービス２１４を使用して円滑にされる。ミラーリングは、データベース・アプリケーション１０２などのアプリケーションのファイル処理によってトリガされる。また、アプリケーションは、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄなどの他の任意のユーザ・モード・プロセスであってもよい。また、ファイル処理は、例えば、マップされたドライブを介してソースに接続されたリモート・クライアント・コンピュータによって生じる。図４の実施例２００に関連して前述した処理は、ファイル処理が、カーネル内でキャプチャされ、ターゲットに送信されるようにキューに入れられるミラーリングを含め、３つの異なる段階を有するものとして特徴付けられる。第２の段階は、ファイル処理が、ソースからターゲットに転送される、転送として特徴付けられる。第３の段階は、ファイル処理が、ターゲット・データに適用される更新として特徴付けられる。ソース・システム２３０とターゲット・システム２４０は、同一のコンピュータ・システム内に配置されても、異なるコンピュータ・システム内に配置されてもよいことに留意されたい。つまり、２３０が、第１のコンピュータ・システム内に含まれ、２４０が、第２の異なるコンピュータ・システム内に含まれる。代替として、要素２３０と要素２４０は、同一のコンピュータ・システム内に含まれる。要素２３０と要素２４０は、物理的に近接して配置されても、地理的に異なるロケーションに配置されてもよい。実施例２００の以上、およびその他のバリエーションは、当業者によって直ちに理解されよう。
【００２９】
ミラーリング・ドライバ２０６は、例えば、２０２内に含まれる諸要素のリターン・コール・チェーンを上に行く矢印によって示されるような、各要求のリターン・ステータスによって示される、ファイル処理が完了した時点で、ファイル処理をキャプチャして、記録することが可能である。ファイル処理の完了後、ミラーリング・ドライバ２０６は、その特定のファイル処理をキャプチャすべきかどうかについての判定を行う。この実施例では、ファイル処理は、その処理が、例えば、ファイル作成、ファイル書き込み処理、ファイル切り捨て処理などに関連するなどの、ファイルの変更をもたらす場合、関心対象である。他の条件は、例えば、ファイル処理の成功ステータスを含め、特定のファイル処理が、関心対象であるかどうかを定義することに関連することに留意されたい。或る実施形態において指定されることが可能な１つまたは複数の基準に従って、その特定のファイル処理が関心対象であるとミラーリング・ドライバ２０６が判定した場合、そのデータ処理は、キャプチャされて、カーネル・キャッシュ２１０の中に格納される。この例では、カーネル・キャッシュは、ミラーリングされるすべてのファイル処理に関するキューの役割をする共有メモリの領域として特徴付けられることに留意されたい。カーネル・キャッシュは、固定サイズである。カーネル・キャッシュが、一杯である場合、ファイル処理は、オーバーフロー領域２１２の中に記録される。この例では、ソース上の複製サービス２１４、およびターゲット上の複製サービス２１６は、ユーザ・モード・アプリケーションとして特徴付けられ、カーネル・モード２０２のような特権モードで実行されることを要さない。
【００３０】
関心対象のファイル処理を記録することに関連して、ミラーリング・ドライバ２０６は、ターゲット・デバイス１０６の中に含まれるターゲット・データに適用されるべきファイル処理のストリームとして特徴付けられる物を生じさせる。以上は、ソース・データに対するさらなるデータ処理が、続けられことが許されるのに先立って、システム変更が、ターゲットにコミットされない、非同期のデータ移動について説明した。むしろ、ソース・システムは、データ・複製処理と並行に、通常どおりに動作することを許される。以上において使用される非同期複製は、ソース・データのあらゆる変更を即時にキャプチャすることを可能にし、それらの変更が、次に、ソース・システム上にキャッシュされる。次に、変更は、ネットワーク、およびその他のリソースが許すと、ターゲット・システムまたはサーバに転送される。
【００３１】
次に説明するのは、記録されたファイル処理の以上のストリームに、さらなる整合性ポイント・マーカを挿入することに関連して、使用される技術である。整合性ポイント・マーカは、ターゲット・データにおいて複製され、ソース・データのコピーに整合性がある、様々な時点を示す。つまり、整合性ポイント・マーカは、マーキング・ポイントの役割をするようにファイル処理のストリームに挿入され、その特定のマーカまでのデータ処理が、ターゲット・デバイスに適用された場合に、ターゲット・デバイスが、ソース・データの整合性のある時点のコピーとして特徴付けられるようにする。図４の構成要素に関連して本明細書で説明する１実施形態では、複製サービス２１４の変形されたバージョンも、ターゲット・データ・コピーに適用されるべきファイル処理のストリームまたはキューに整合性ポイント・マーカを挿入することに関連して、使用される。
【００３２】
ＲｅｐｌｉＳｔｏｒは、本明細書で説明するデータ・複製およびミラーリングに関連して使用するための、ＥＭＣコーポレーションによる市販の製品であることに留意されたい。市販のＲｅｐｌｉＳｔｏｒ製品は、複製・サービス２１４および２１６、ならびに、例えば、図４の実施形態２００に関連して説明するとおり動作する、ミラーリング・ドライバを含む。次に説明するのは、図４に示した構成要素の変形されたバージョンが、ターゲット上でソース・データの整合性のある時点のコピーを獲得することに関連して使用される、１実施形態である。ターゲットの中に含まれるソース・データのコピーは、当分野の技術者には理解されるとおり、他の処理を実行することに関連して使用される。
【００３３】
次に、図５を参照すると、示されているのは、ソース・システム上でキャプチャされたファイル処理のストリームに整合性ポイント・マーカを挿入することに関連して使用されるフレームワークに含まれる構成要素の実施例３００である。実施例３００の中に含まれるのは、ライタ３０２、プロバイダ３０４、およびリクエスタ３０６である。実施例３００にさらに含まれるのが、構成要素ＶＳＳ３１０である。この実施例では、ＶＳＳ３１０は、マイクロソフト・コーポレーションによるＶＳＳ（Ｖｏｌｕｍｅ  Ｓｈａｄｏｗ  Ｃｏｐｙ  Ｓｅｒｖｉｃｅ）である。ＶＳＳは、整合性のある時点のデータ・コピーを作成することに関連して使用されるＡＰＩ（アプリケーション・プログラミング・インタフェース）を有するフレームワークを提供するものとして特徴付けられる、市販の製品である。より一般的に使用される場合、ＶＳＳは、システム管理者が、ネットワーク・リソースとして共有されるファイルのボリュームのスナップショットまたはシャドウ・コピーを作成する。ＶＳＳは、特定のデータ・セットに関して、ライタ３０２、プロバイダ３０４、およびリクエスタ３０６として異なるクラスに入るように特徴付けられる、異なる構成要素と通信して、データの或る時点のコピーが作成されるようにする。ライタ３０２は、図４のソース・システム２３０の中に含まれるソース・データなどの、データのコピーを書き込む第１の構成要素セットとして特徴付けられる。ライタは、例えば、図３および図４に関連して示されるデータベース・アプリケーション１０２、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｈａｎｇｅサーバ、またはその他のアプリケーションである。一般に、ライタ３０２は、更新、またはその他のタイプの処理を実行して、データ・セットの変更を生じさせる。プロバイダ３０４は、例えば、基礎をなすストレージ・システムなどの、データ・セットを提供するソフトウェア構成要素および／またはハードウェア構成要素として特徴付けられる。データ・セットのプロバイダには、例えば、ＥＭＣコーポレーションによるＳｙｍｍｅｔｒｉｘデータ・ストレージ・システムなどのデータ・ストレージ・システム、またはその他のデータ・ストレージ・システムが含まれる。プロバイダ３０４は、一般に、ライタ３０２によってアクセスされるリソースまたはデータ・セットを提供する。リクエスタ３０６は、或る時点のコピーを獲得することを求める要求を行う構成要素として特徴付けられる。一般的な用途において、リクエスタには、例えば、プロバイダ３０４の１つによって提供されるデータのバックアップ・コピーを実行することを求める要求を行うことに関連するバックアップ・ソフトウェア・アプリケーションが含まれる。動作の際、リクエスタ３０６は、或るデータ・セットの或る時点のコピーを獲得する要求をＶＳＳ構成要素に発行する。すると、ＶＳＳ３１０は、新たなトランザクションを一時停止し、現在のトランザクションを終え、キャッシュされたデータをディスクにフラッシュするよう、そのデータ・セットのライタ３０２に通信する。ライタ３０２が、要求されたデータ・セットに関連して、この処理セットを完了すると、ＶＳＳ構成要素３１０は、要求されたデータ・セットに関���てシャドウ・コピー・プロセスを開始するよう、適切なプロバイダ３０４に通信する。シャドウ・コピーが作成されると、バックアップ・ソフトウェア（例えば、この実例では、リクエスタ）は、その特定のデータ・セットのライタを関与させることなしに、そのシャドウ・コピーからのデータを、例えば、テープにコピーする。このため、ＶＳＳは、或る時点のデータ・コピーを獲得するために、ライタ３０２、プロバイダ３０４、およびリクエスタ３０６の間の通信を円滑にするためのフレームワークの役割をする。
【００３４】
以上のフレームワークは、ソース・データの整合性のある時点のコピーを獲得することに関連して使用される。本明細書で説明する技術に関連して、図４の実施例２００の複製サービス２１４のようなホスト・ベースのユーザ・モード・プロセスが、ソース・データなどをデータ・セットのプロバイダ３０４の１つとして登録する。このため、図４のフレームワークを使用して、複製・サービス２１４は、プロバイダとして登録して、要求のデータ・セット（例えば、ソース・データ）が整合性のある状態にある場合、ＶＳＳ３１０によって通知される。或るプロセスが、整合性ポイント・マーカの生成が所望される場合に、ＡＰＩ（アプリケーション・プログラミング・インタフェース）を使用して、リクエスタ３０６の１つとして、要求を開始する。その整合性ポイント・マーカ生成に関して、リクエスタの役割をするプロセスまたは構成要素と、プロバイダの役割をするプロセスまたは構成要素は、同一のプロセスまたは構成要素であることも、異なるプロセスまたは構成要素であることも可能であることに留意されたい。ＡＰＩは、ＶＳＳ、およびその他の構成要素などの、特定の実施形態に応じて指定される。
【００３５】
例として、或るスケジューラが、ソース・システムにおいて実行されて、ソース・データに関するリクエスタ３０６として、要求を行うプロセスである。複製サービス２１４が、そのソース・データに関するプロバイダ３０４として登録されている。ＶＳＳ３１０は、既存のトランザクションを完了させ、新たなトランザクションを開始せず、キャッシュされたソース・データをフラッシュして、ソース・データが整合性のある状態にあるようにするよう、データベース・アプリケーション、およびソース・データの他のライタ３０２に通信する。次に、ＶＳＳ３１０は、ソース・データの、登録されたプロバイダ３０４に通知し、これにより、ソース・データが、現在、整合性のある状態にあるという通知が、サービス２１４に送信されるようになる。ソース・データに対する、あらゆるさらなる処理は、所定の短い期間にわたって一時停止される。サービス２１４は、次に、ソース・データに関するキャプチャされたファイル処理のストリームの中の次の要素として、整合性ポイント・マーカを生成することができる。ソース・データの様々なライタ３０２が、次に、ソース・データに関連する通常の処理を再開する。
【００３６】
次に、図６を参照すると、示されているのは、例えば、カーネル・キャッシュ２１０の中に格納される、キャプチャされたファイル処理のストリームの実施形態の実施例である。実施例４００に含まれるのは、レコードのリストである。各レコードは、レコード４０４の場合にそうであるように、キャプチャされた特定のファイル処理に対応するか、またはレコード４０２のように、整合性ポイント・マーカに対応する。それぞれのキャプチャされたファイル処理レコード４０４の中に含まれるデータは、例えば、その特定のファイル処理に応じて、特定のファイル名、ロケーション、データ値などを含む。整合性ポイント・マーカ・レコード４０２は、ファイル処理のストリームに書き込まれる特別なレコードである。整合性ポイント・マーカ４０２の中に含まれるデータ要素の実施形態の実施例を、後段でより詳細に説明する。
【００３７】
次に、図７を参照すると、示されているのは、整合性ポイント・マーカ・レコード４０２の中に含まれる要素の実施例である。図７の実施例４０２では、整合性ポイント・マーカ・レコードは、転送一時停止フラグ４０４と、更新一時停止フラグ４０６と、ソース・スクリプトの識別子４０８と、ターゲット・スクリプトの識別子４１０と、その他のデータ４１２とを含む。１実施形態では、フィールド４０４および４０８は、ソース・システム上で整合性ポイント・マーカを処理することに関連して使用され、フィールド４０６および４１０は、ターゲット・システム上で整合性ポイント・マーカを処理することに関連して使用される。
【００３８】
ソース・システム上のサービス２１４は、カーネル・キャッシュの中の特定のレコードに応じて、処理を検査し、実行する。レコードが、整合性ポイント・マーカに対応する場合、フィールド４０４の値、およびフィールド４０８の値を使用して、特別な処理が、実行される。フィールド４０８は、整合性ポイント・マーカ・レコード４０２が検出された際にソース・システム上で実行されるスクリプトを指定する。そのスクリプトは、転送一時停止フラグ４０４の値に応じて、処理を検査し、実行する処理工程を含む。転送一時停止フラグ４０４は、ソース・システム上で、キャプチャされたファイル処理のストリームを処理することに関連して使用されるバイナリ値である。１実施形態では、転送一時停止フラグ４０４が、設定されている（例えば、＝１）場合、フラグ４０４は、キャプチャされたファイル処理に対応するレコードが、ソース・システムからターゲット・システムに送信されてはならないことを示し、例えば、ターゲット・システム上ではなく、ソース・システム上に格納されるべきファイル処理のバックログを生じさせる。転送一時停止フラグ４０４が、オフである（例えば、＝０）場合、フラグ４０４は、キャプチャされたファイル処理に対応するレコードが、ソース・システムからターゲット・システムに転送されて、データのバックログまたはデータの構築が、ソース・システム上ではなく、ターゲット・システム上に生じるようにしなければならないことを示す。転送一時停止フラグ４０４は、フィールド４０８によって示されるソース・スクリプトによって処理工程において使用される。ソース・スクリプト・フィールド４０８は、レコード４０２のインスタンスに関して、値が指定されていないという点で、選択肢であり、指定されていない場合、スクリプトは、全く実行されず、転送一時停止フラグ値は、無視されてもよいことに留意されたい。その場合、ファイル処理は、実際上、あたかもフラグ４０２が、０という値を有するかのように、ターゲット・システムに転送される。１実施形態では、フラグ４０４は、レコードが、所定の期間にわたってソース・システム上でキューに入るようにさせる。その所定の期間の後、次いで、複製サービス２１４は、レコードを処理して、ターゲット・システムに転送することを再開する。別の実施形態では、スクリプトは、ターゲット・システムへのレコードの転送が、或る特定のイベントが生じるまで、止まるようにさせる処理工程を含む。その特定のイベントが生じると、サービス２１４は、レコードの処理を再開するように通知される。
【００３９】
また、処理は、ソース・システムから転送された４００の受信されたレコードに関して、サービス２１６によってターゲット・システム上で実行される。整合性ポイント・マーカに対応するレコードを検出すると、フィールド４０６の値、およびフィールド４１０の値を使用することが可能な特別な処理が、実行される。更新一時停止フラグ４０６は、キャプチャされたファイル処理の適用が、一時停止されるべき場合、またはターゲット・システム上のデータのターゲット・コピーに適用されない場合、１という値を有するバイナリ値である。そうではなく、０という値を有する更新一時停止フラグは、４００の送信されたレコードによって示される、キャプチャされたファイル処理が、データのターゲット・コピーに適用されるべきことを示す。フラグ４０６が、フィールド４１０によって示されるターゲット・システム・スクリプトによって実行される処理に関連して使用される。フィールド４１０は、選択肢として、ターゲット・システム上で実行されるべきスクリプトを識別する。また、特定の整合性ポイント・マーカに関するレコードは、指定されておらず、その場合、フラグ４０６の値は、ターゲット・システム処理に関連して無視される。フィールド４０８およびフィールド４１０は、例えば、それぞれのソース・システムまたはターゲット・システムの上で実行されるべきスクリプトを含むディレクトリ・ロケーションおよびファイル名などの、識別子を含む。
【００４０】
或る実施形態は、ソース・システムおよび／またはターゲット・システム上でレコードを処理することに関連して使用される、さらなるフィールドを含むことに留意されたい。
１実施形態では、ソース・システムの複製サービス２１４は、レコード４０２の各インスタンスを作成し、それに相応して、レコード４０２のフィールドを初期設定する。例として、ターゲット・データのコピーを使用して、毎日、バックアップが実行されるべき場合、ソース・システム上のスケジューラ・プロセスが、各２４時間間隔で整合性ポイント・マーカを生成する要求を開始する。対応する整合性ポイント・マーカ・レコードの特定の値は、その処理に関するスクリプトを指す。ソース・データのバックアップ処理整合性コピーに関するマーカの生成に加えて、マーカ生成を求めるさらなる要求が、所定の時間間隔で、または他の処理に関連する或るイベントが生じると実行される。このため、整合性ポイント・マーカに関するレコードを作成するサービスは、それぞれの処理に関する特定のスクリプトを使用して、スクリプト・フィールド４０８および４１０などのフィールドを、それに相応して初期設定する。同様に、レコード４０２を生成するサービス２１４が、実行されるべき特定の処理に応じて、各レコード・インスタンスのその他のフィールドを初期設定する。
【００４１】
次に、図８を参照すると、示されているのは、ソース・データが整合性のある状態にある時点を判定することに関連して、或る実施形態において実行される処理工程の流れ図５００である。５００の工程は、例えば、図５に関連して、以上に説明した処理を要約する。工程５０２で、ソース・データの整合性のあるコピーを獲得する要求が、行われる。そのような要求は、例えば、スケジューラ・タスクなどによる定期的バックアップ処理を実行することに関連して行われる。工程５０４で、ＶＳＳ構成要素が、新たなトランザクションを一時停止し、現在のトランザクションを終え、すべてのキャッシュされたデータをディスクにフラッシュするよう、ソース・データへのライタに通信する。ライタは、所定の期間にあたって、その状態に一時停止する。次に、ＶＳＳは、データが整合性のある状態にあることを、ソース・データの登録されたプロバイダに通信する。この実施例では、プロバイダは、例えば、図４の複製サービス２１４である。工程５０８で、登録されたプロバイダが、整合性ポイント・マーカに対応するレコードを、ターゲット・システムへの転送のために処理される、記録された処理のキューに書き込む。
【００４２】
次に、図９を参照すると、示されているのは、ターゲット・システムに転送されるべきレコードの発信キューからのレコードを処理することに関連して、ソース・システムによって、或る実施形態において実行される処理工程の流れ図である。図４の要素に関連して本明細書の別の箇所で説明したとおり、それらのレコードは、カーネル・キャッシュおよび／またはオーバーフロー・ロケーションの中に格納される。工程５５２で、発信キューの中の次のレコードが読み取られる。工程５５４で、そのレコードが、整合性ポイント・マーカに対応するかどうかについての判定が行われる。対応しない場合、制御は工程５５６に進み、他の処理を実行する。工程５５６のその他の処理は、本明細書の別の箇所で説明するとおり、レコードをターゲット・システムに転送する工程を含むことに留意されたい。さらに、或る実施形態は、各レコードの中に含まれる、本明細書で説明したのとは異なるファイル処理、および他のフィールドに応じて、他の処理工程を実行する。制御は、次に、工程５５２に進み、次のレコードを読み取る。工程５５４が、「はい」と評価された場合、制御は工程５５８に進み、現在のレコードのフィールドが読み取られる。ソース・スクリプトが指定されているかどうかについての判定が、工程５６０で行われる。指定されていない場合、制御は工程５５２に進み、次のレコードに関して処理を続ける。工程５６０が、ソース・スクリプトが指定されていることを示す「はい」と評価された場合、ソース・スクリプトは、工程５６１で獲得され、スクリプトの実行が行われる。ソース・スクリプトのこの実施例に含まれるのが、転送一時停止フラグを使用し、そのフラグの値に基づいて処理工程を条件付きで実行するステートメントである。つまり、この実施例では、ソース・スクリプトは、工程５６２、５６４、および５６６を実行するためのステートメントを含む。工程５６２で、転送一時停止フラグが設定されているかどうかについての判定が、行われる。設定されている場合、制御は工程５６４に進み、ソース・システムは、ターゲット・システムへの、発信キューの中のレコードのさらなる送信を一時停止する。工程５６２が、「いいえ」と評価された場合、発信キューからのさらなるレコードをターゲット・システムに転送することに関連して、一時停止は、全く行われない。制御は、工程５６６に進み、その他の処理工程が、ソース・スクリプトに応じて実行されることが可能である。この実施例では、ソース・スクリプトは、発信キューからのレコードの転送が、前に一時停止されている場合、再開されてもよいことを指定する。また、以上のバリエーションが、スクリプトの中で指定されてもよいことにも留意されたい。制御は、発信キューの中の次のレコードの処理で、工程５５２に進む。流れ図の以上の工程は、ソース・システムの複製サービス２１４、およびソース・システム・スクリプトによって実行される。
【００４３】
次に、図１０を参照すると、示されているのは、ソース・システムから受信されたレコードを処理することに関連して、ターゲット・システムによって或る実施形態において実行される処理工程の流れ図である。工程６０２で、着信キューの中の次のレコードが読み取られる。工程６０４で、そのレコードが、整合性ポイント・マーカに対応するかどうかについての判定が行われる。対応しない場合、制御は工程６１０に進み、そのレコードが、ブロックされた状態に既に入っているファイルに適用されるべきファイル処理であるかどうかを判定する。そうではない場合、制御は工程６０６に進み、ターゲット・データにその処理を適用する。工程６０６の後、制御は工程６０２に進み、着信キューの中の次のレコードを処理する。そうではなく、ファイル処理が、ブロックされた状態にあるファイルに適用されるべき場合、制御は工程６１２に進み、そのレコードを、図４の要素２２０などの、保存されたブロック・ファイルの中に保存する。本明細書の別の箇所で説明するとおり、その特定のファイルが、もはやブロックされた状態にない、何らかの後の時点で、そのブロックされたファイル処理が、ターゲット・データに適用されることが可能である。工程６１２の後、制御は、工程６０２に進み、着信キューの中の次のレコードを処理する。現在のレコードが整合性ポイント・マーカに対応すると工程６０４が判定した場合、制御は工程６０８に進み、現在のレコードのフィールドを読み取る。工程６１４で、ターゲット・スクリプトが指定されているかどうかについての判定が行われる。指定されていない場合、制御は工程６０２に進む。指定されている場合、制御は工程６１６に進んで、スクリプトを読み取り、スクリプトの実行を開始する。ターゲット・スクリプトのこの実施例に含まれるのが、更新適用一時停止フラグを使用し、そのフラグの値に基づいて処理工程を条件付きで実行するステートメントである。つまり、この実施例では、ターゲット・スクリプトは、工程６１８、６２０、および６２４を実行するためのステートメントを含む。工程６１８で、更新適用一時停止フラグが設定されているかどうかについての判定が行われる。設定されていない場合、制御は工程６２４に進む。設定されている場合、制御は工程６２０に進み、着信キューの中のさらなるレコードを処理することを一時停止し、これにより、レコードによって示される、さらなるファイル処理を適用することを一時停止する。工程６２４で、スクリプトに応じて、さらなる処理が実行され、スクリプトは、着信キューの中のレコードの処理が、工程６２０で前に一時停止されている場合、再開するようにさせる。スクリプトに応じた、工程６２４における処理は、例えば、ターゲット・システムが、ターゲット・データへのさらなる更新の適用を、現在、一時停止している間に、ターゲット・データのバックアップを実行すること、またはターゲット・データの分割を実行することを含む。その後、バックアップ、またはその他の処理が実行された後、ターゲット・システムは、着信キューの中のレコードの処理を再開する。また、以上のバリエーションが、スクリプトの中で指定されてもよいことにも留意されたい。制御は、工程６０２に進み、次のレコードを処理する。流れ図６００の以上の工程は、ターゲット・システムの複製サービス２１６、およびターゲット・システム・スクリプトによって実行される。
【００４４】
以上では、ＶＳＳを使用する実施形態について説明した。しかし、或る実施形態は、ＶＳＳを使用することなしに、特定のデータ・セットにアクセスする構成要素間の通信を調整することに関連して、他の技術を使用する。例えば、或る実施形態は、ＶＳＳの代替として、スクリプトおよび／または他のプログラミング技術を使用する。
【００４５】
整合性ポイント・マーカを獲得して、利用するための機能を含むように変更された、図４の構成要素が、様々な異なる構成のいずれの構成にも含められることに留意されたい。例えば、第１の構成は、ホスト上のソース２３０の構成要素を含む。ソースの複製サービス２１４は、ホストの中に存在して、実行される。データ・ソースであるデバイス１０４は、ホストにローカルに接続されている、またはそれ以外でホストに接続されている。ターゲット２４０の１構成は、複製サービス２１６が存在して、実行されるターゲット・ホストを含む。ターゲット・デバイス１０６は、ターゲット・ホストにローカルに接続されているか、またはそれ以外でターゲット・ホストに接続されている。以上は、ホスト・ツー・ホスト・ベースの通信システムとして特徴付けられ、複製サービス、ミラーリング・ドライバ、および本明細書で説明する技術に関連して使用されるその他の構成要素は、ホスト・システム上に存在する。また、本明細書で説明する技術に関連して使用される構成要素の一部は、データ・ストレージ・システム内に存在して、実行される。例えば、ターゲット・システム２４０の或る実施形態は、複製サービス２１６が存在して、実行される、Ｓｙｍｍｅｔｒｉｘデータ・ストレージ・システムまたはＣｌａｒｉｏｎデータ・ストレージ・システムなどの、ターゲット・データ・ストレージ・システムを含む。ソース・システム２３０は、適切な通信接続を使用してターゲット・データ・ストレージ・システムと通信するホストを含む。別の実施形態では、ソース・システム２３０は、ソース・ホストを含み、このホスト上で、アプリケーション１０２が実行され、ミラーリング・ドライバ２０６が実行される。また、ソース・システム２３０は、ソース・データ・ストレージ・システムも含み、このソース・データ・ストレージ・システム上で、複製・サービス２１４が実行され、ソース・ホストと通信して、２１０および２１２から、記録されたファイル処理、およびマーカを獲得する。２３０のソース・データ・ストレージ・システムは、本明細書で説明する技術に関連してターゲット２４０と（ターゲット２４０に適切なホスト・ベースの、またはデータ・ストレージ・ベースの通信を使用して）通信する。次に説明するのは、以上の技術に関連して使用される、様々な構成のいくつかの実施例である。
【００４６】
次に、図１１を参照すると、示されているのは、本明細書で説明する構成要素および技術が使用される構成を示す実施例１０００である。実施例１０００は、２つのソース・ホスト１０１４ａ〜ｂに接続されたソース・データ・ストレージ・システム１０１２を含む。２つのホスト１０１４ａ〜ｂは、通信媒体１０２０を使用してターゲット・ホスト１０１４ｃ〜ｄと通信する。２つのソース・ホスト１０１４ａ〜ｂは、通信媒体１０１８ａを介して、互いに通信し、ソース・データ・ストレージ・システム１０１２と通信する。同様に、ターゲット・ホスト１０１４ｃ〜ｄは、通信媒体１０１８ｂを介して、互いに通信し、ターゲット・データ・ストレージ・システム１０１２ａと通信する。以上は、本明細書で説明する処理工程を実行するのに使用されるソース２３０およびターゲット２４０の構成要素が、それぞれのソース・ホスト・システムおよびターゲット・ホスト・システムの上に存在して、実行される、本明細書で説明する技術を使用するホスト・ツー・ホスト・ベースの通信として特徴付けられる。また、以上の実施例１０００は、或る実施形態においても存在する、データ・ストレージ・システムの分散性も示す。ソース・データ・ストレージ・システムおよびターゲット・データ・ストレージ・システムは、例えば、図２に関連して説明したとおりである。
【００４７】
次に、図１２を参照すると、示されているのは、本明細書で説明する構成要素および技術が使用される別の構成を示す実施例１１００である。実施例１１００では、ソース・ホスト１１０２が、ターゲット・データ・ストレージ・システム１０１２ａと通信する。ターゲット・データ・ストレージ・システム１０１２ａは、ソース・ホスト１１０２が、１０２０を介して通信する相手である、Ｓｙｍｍｅｔｒｉｘデータ・ストレージ・システムまたはＣｌａｒｉｏｎデータ・ストレージ・システムなどの、１つまたは複数のデータ・ストレージ・システムを含む。ソース・ホスト１１０２は、ソース・データ・ストレージ・システム１０１２からソースを獲得する。ソース・データ・ストレージ・システム１０１２は、例えば、図２に関連して説明したとおりである。
【００４８】
次に、図１３を参照すると、示されているのは、ソース・データ・ストレージ・システム内、および／またはターゲット・データ・ストレージ・システム内に含まれる構成要素の別の構成を示す実施例１２００である。特に、実施例１２００は、図１２のターゲット・データ・ストレージ・システムに関する構成である。実施例１２００は、共通ポイントを介して１つまたは複数のデータ・ストレージ・システム２０ａ〜２０ｎへの通信、および／またはシステム２０ａ〜２０ｎからの通信を円滑にするのに使用されるフロントエンド・プロセッサまたはフロントエンド・コンピュータとして特徴付けられる。構成要素１０５０は、例えば、ＳＡＮ（ストレージ・エリア・ネットワーク）内に含まれることが可能なサーバ・システム、または構成要素２０ａ〜２０ｎとの通信を円滑にするのに使用される他のプロセッサである。整合性マーカを使用する、本明細書で説明する技術に応じて変更される、図４の構成要素に関連して、実施例１２００が、ターゲット・システムである或る実施形態では、複製サービス２１６は、構成要素１０５０上に存在して、実行される。
【００４９】
図１１〜図１３は、本明細書で説明する技術を使用する或る実施形態に含まれることが可能な様々な構成を示すように選択された、いくつかの実施例である。本明細書で説明する技術を使用する、ホスト・ツー・ホスト・ベースの通信、データ・ストレージ・ツー・ホスト・ベースの通信、およびホスト・ツー・データ・ストレージ・ベースの通信に関連して、他のバリエーションが、当業者には理解されよう。
【００５０】
以上は、データが、ソース・システムのソース・データからターゲット・システムのターゲット・データに自動的に複製される、ソース・システムからターゲット・システムに整合性ポイント・マーカを送るための技術について説明した。ソース・データは、ファイル、ディレクトリなどの、ファイル・システム・ベースの要素である。以上に説明した１実施形態は、マイクロソフトのＶＳＳ（Ｖｏｌｕｍｅ  Ｓｈａｄｏｗ  ｃｏｐｙ  Ｓｅｒｖｉｃｅ）フレームワークを使用して、定義された時間間隔で、または整合性ポイントで、ソース・データの整合性のある「スナップショット」を獲得し、ターゲットの中のコピーに適用されるべきキャプチャされたファイル処理のキューの中の関連する整合性ポイント・マーカを書き出す。様々な構成要素は、定義されたＡＰＩ（アプリケーション・プログラミング・インタフェース）を使用して通信する。キャプチャされたファイル処理、および整合性ポイント・マーカのキューは、ターゲット・システムに絶えず送られ、ターゲット・システムにおいて、キャプチャされたファイル処理は、読み取られ、整合性ポイント・マーカに達するまで、ターゲット・データ・コピーに適用される。整合性ポイント・マーカに達した時点で、ターゲット・システムは、ターゲット・データが、ソース・データのスナップショットに対して整合性のある状態にあることを知る。キューからの、さらなるキャプチャされたファイル処理をターゲット・データに適用する前に、ターゲット・システムは、バックアップ処理、整合性のある分割処理などの様々なタスクの任意の処理を実行することに関連して、ターゲット・データにおいて反映されたソース・データの整合性のあるコピーを使用する。やはり本明細書で説明するのが、ソース・システムとターゲット・システムの間で伝送される、キューの中のキャプチャされたファイル処理のストリームを制御する際に使用される特徴である。ソース・システムの進行中のキューの中に含まれるファイル処理および整合性ポイント・マーカが、ターゲット・システムに送信されるフロー速度を制御する（例えば、さらなる更新／書き込みをターゲット・システムに送信しないように転送を一時停止する）スクリプトが、ソース・システム上で実行される。また、さらなるキャプチャされたファイル処理をターゲット・データに適用することを一時停止するスクリプトが、ターゲット・システム上で実行される。このため、ソース・データの整合性のある時点のコピーを表すターゲット・データは、他の処理（例えば、バックアップ処理、分割処理など）が実行されるように、或る長さの時間にわたって、その整合性のある状態に凍結される。ＶＳＳフレームワークを使用するのではなく、代替の実施形態は、データ・ソースの整合性のあるスナップショットを獲得するため、およびデータ複製の一環として、ターゲット・データに適用されるべきファイル処理のレコードのキューに整合性ポイント・マーカを挿入するために、すべての登録されたデータ・ライタ（例えば、データベース・アプリケーション）、プロバイダ（例えば、Ｓｙｍｍｅｔｒｉｘデータ・ストレージ・システムなどのデータ・ストレージ・システム）、およびリクエスタの間の調整を制御するスクリプト、または他のプログラミング技術を使用してもよい。様々な構成要素が、当業者によって理解される様々な構成、およびその他の構成に応じて、本明細書でやはり説明されるホスト上、および／またはデータ・ストレージ・システム上に存在して、実行される。
【００５１】
本発明は、図示し、詳細に説明した好ましい諸実施形態に関連して開示してきたが、それらの実施形態の変形および改良が、当業者には直ちに明白となろう。したがって、本発明の趣旨および範囲は、添付の特許請求の範囲によってだけ限定されるべきである。
【図面の簡単な説明】
【００５２】
【図１】本明細書で説明する技術を利用するコンピュータ・システムの実施形態の実施例を示す図。
【図２Ａ】データ・ストレージ・システムの実施形態の実施例を示す図。
【図２Ｂ】図２Ａのデータ・ストレージ・システムの１実施形態に含まれるダイレクタとメモリの間の論理内部通信を示す図。
【図３】ターゲット上で整合性のあるデータ・コピーを獲得するための、本明細書の技術を実行することに関連して使用される構成要素の実施例を示す図。
【図４】ソース・データのミラー・コピーを保持するために、ファイル処理のリアルタイムの複製に関連して使用される構成要素の実施例を示す図。
【図５】キャプチャされたファイル処理のストリームに整合性ポイント・マーカを挿入することに関連して使用されるフレームワークに含まれる構成要素の実施例を示す図。
【図６】キャプチャされたファイル処理のストリームの実施例を示す図。
【図７】整合性ポイント・マーカ・レコードの中に含まれる要素の実施例を示す図。
【図８】ソース・データが整合性のある状態にある時点を判定することに関連して実行される処理工程の流れ図。
【図９】ターゲット・システムに転送される、キャプチャされたファイル処理、および整合性ポイント・マーカに対応するレコードを処理することに関連して、ソース・システムによって実行される処理工程の流れ図。
【図１０】ソース・システムから受信された、キャプチャされたファイル処理、および整合性ポイント・マーカに対応するレコードを処理することに関連して、ターゲット・システムによって実行される処理工程を示す流れ図。
【図１１】本明細書で説明する技術および構成要素が利用される他の構成を示す実施例を示す図。
【図１２】本明細書で説明する技術および構成要素が利用される他の構成を示す実施例を示す図。
【図１３】本明細書で説明する技術に関連して使用されるデータ・ストレージ・システム構成をより詳細に示す実施例を示す図。
【図１】
2008536202.tif 000002
【図２Ａ】
2008536202.tif 000003
【図２Ｂ】
2008536202.tif 000004
【図３】
2008536202.tif 000005
【図４】
2008536202.tif 000006
【図５】
2008536202.tif 000007
【図６】
2008536202.tif 000008
【図７】
2008536202.tif 000009
【図８】
2008536202.tif 000010
【図９】
2008536202.tif 000011
【図１０】
2008536202.tif 000012
【図１１】
2008536202.tif 000013
【図１２】
2008536202.tif 000014
【図１３】
2008536202.tif 000015