(57)【特許請求の範囲】
【請求項１】
コンピュータによりコピー・オペレーションを実行する方法であって、
前記コンピュータが、
オリジナル・ソースからオリジナル・ターゲットに、瞬間仮想コピー・オペレーションを実行するステップであって、前記瞬間仮想コピー・オペレーションは、前記オリジナル・ソースから前記オリジナル・ターゲットに、データのブロックをコピーする第１のバックグランド・コピーを実行するステップと、
前記第１のバックグランド・コピーが完了する前に新しいソースと新しいターゲットを示す高速逆リストア・コマンドを受信するステップであって、前記新しいソースが前記オリジナル・ターゲットであり、前記新しいターゲットが前記オリジナル・ソースであり、前記高速逆リストア・コマンドは、前記瞬間仮想コピー・オペレーションが前記第１のバックグランド・コピーを完了する前に、前記瞬間仮想コピー・オペレーションによって前記オリジナル・ソースから前記オリジナル・ターゲットにコピーされていた元のデータを復元するものであるステップと、
前記新しいターゲット上で同期スキャンを実行するステップと、
前記新しいソースに関連付けられた新しいソース構造を用いて、前記新しいターゲットに関連付けられた新しいターゲット構造を更新するステップであって、前記新しいターゲット構造を更新するステップはさらに、前記新しいソース構造内でインジケータを反転するステップと、前記反転されたインジケータを前記ターゲット構造にコピーするステップを含むステップと、
前記更新された新しいターゲット構造を用いて、前記新しいソースから前記新しいターゲットに第２のバックグランド・コピーを実行するステップを実行する、
方法。
【請求項２】
前記同期スキャンが、前記新しいターゲットにおけるキャッシュ中のデータのブロックと、瞬間仮想コピー関係が前記オリジナル・ソースから前記オリジナル・ターゲットまでに作成された時点で存在するデータのブロックが物理ストレージに移動されるように実行される、請求項１に記載の方法。
【請求項３】
前記同期スキャンを実行するステップが、
前記瞬間仮想コピー関係に属するデータのブロックについて、該データのブロックを前記新しいターゲットのために前記物理ストレージにデステージするステップと、
前記瞬間仮想コピー・オペレーションの後に更新されたデータのブロックについて、前記新しいターゲットのための前記物理ストレージ上の該更新されたデータのブロックの元の内容を、前記新しいソースのために前記物理ストレージにコピーするステップと、
前記新しいソース構造においてコピーされた各データのブロックに対応するインジケータをセットすることにより該データのブロックがコピー済みであることを示すステップをさらに含む、
請求項２に記載の方法。
【請求項４】
キャッシュ中の新しいターゲットのデータのブロックを破棄するステップをさらに有する、請求項３に記載の方法。
【請求項５】
前記新規ターゲットがリモート・ミラーリング関係にあるかどうかを判別するステップと、
前記新規ターゲットがリモート・ミラーリング関係にある場合、前記新規ターゲット構造内の値に基づいて前記新規ターゲットに関連付けられた同期外れ構造を更新するステップと、
をさらに有する、請求項１に記載の方法。
【請求項６】
前記高速逆リストア・コマンドの受信に応答して、前記新規ターゲットに関する書き込み禁止を設定するステップと、
前記高速逆リストア・コマンドの実行に応答して、前記新規ターゲットに関する書き込み禁止をリセットするステップと、
をさらに有する、請求項１に記載の方法。
【請求項７】
前記高速逆リストア・コマンドの受信に応答して、前記新規ソースおよび前記新規ターゲット上での入力／出力（Ｉ／Ｏ）オペレーションを静止するステップと、
前記高速逆リストア・コマンドの実行に応答して、前記新規ソースおよび前記新規ターゲット上でのＩ／Ｏオペレーションの静止を解除するステップと、
をさらに有する、請求項１に記載の方法。
【請求項８】
前記新規ターゲットから前記新規ソースへの瞬間仮想コピー・オペレーションを実行するステップをさらに有する、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施は、高速逆リストア・オペレーションに関する。
【背景技術】
【０００２】
コンピューティング・システムは、しばしば、データを処理するためおよびアプリケーション・プログラムを実行するための１つまたは複数のホスト・コンピュータ（「ホスト」）と、データを格納するための直接アクセス・ストレージ・デバイス（ＤＡＳＤ）と、ホストとＤＡＳＤとの間でデータの転送を制御するためのストレージ・コントローラとを含む。ストレージ・コントローラはコントロール・ユニットまたはストレージ・ディレクタとも呼ばれ、普通であれば直接アクセス・ストレージ・デバイス（ＤＡＳＤ）と呼ばれる多数のハード・ディスク・ドライブからなるストレージ・スペースへのアクセスを管理する。ホストは、このストレージ・コントローラを介して入力／出力（Ｉ／Ｏ）要求をストレージ・スペースへ送ることができる。
【０００３】
災害回復システムの中には、ある期間にわたってデータ損失に対処するものがあり、その場合、データ・ストレージ上のボリュームへの書き込みが失われる可能性がある。書き込みではデータを更新する、新規データを書き込む、または同じデータを再度書き込むことができる。データ書き込みの回復を支援するために、リモート位置でデータのコピーを提供することができる。こうしたコピーは、二重コピーまたはシャドー・コピーと呼ばれることもある。本特許出願の譲受人であるインターナショナル・ビジネス・マシンズ・コーポレーション（ＩＢＭ）は、エンタープライズ・ストレージ・サーバ（登録商標）（ＥＳＳ）システムの、対等遠隔コピー（ＰＰＲＣ）サービス（たとえば、ＰＰＲＣ拡張距離サービスまたは同期ＰＰＲＣサービス）および拡張遠隔コピー（ＸＲＣ）サービスを含む、リモート・ミラーリング・システムを提供する。
【０００４】
リモート・ミラーリング・システムは、システム障害後の回復を容易にするために、データをミラーリングするための技法を提供する。こうしたデータ・シャドーイング・システムは、リモート・サイトでのローカル・アクセスなどの、非回復目的の追加のリモート・コピーを提供することもできる。
【０００５】
リモート・ミラーリング・システムでは、データはボリューム・ペア内に維持される。ボリューム・ペアは、１次ストレージ・デバイス内のボリュームと、１次ボリューム内に維持されるデータのコピーを含む２次ストレージ・デバイス内の対応するボリュームからなる。通常、ペアの１次ボリュームは１次直接アクセス・ストレージ・デバイス（ＤＡＳＤ）内に維持され、ペアの２次ボリュームは１次ＤＡＳＤ上でデータをシャドーイングする２次ＤＡＳＤ内に維持される。１次ストレージ・コントローラは１次ＤＡＳＤへのアクセスを制御するために提供し、２次ストレージ・コントローラは２次ＤＡＳＤへのアクセスを制御するために提供することができる。
【０００６】
２次ＤＡＳＤ内のボリュームは、すべての書き込みがその論理順に転送された場合、すなわちすべての従属書き込みが最初に転送され、その後それに従属する書き込みが転送された場合に、整合性を持つ。これは銀行業務の例では、２次ボリュームに預金が書き込また後に引き出しが書き込まれることを意味する。整合性グループとは、整合状態に維持される必要のある関連するボリュームの集まりである。整合性トランザクション・セットとは、従属書き込みが整合性のある形で守られるような１次ボリュームへの更新の集まりである。整合性グループは、ボリュームをまたがってデータの整合性を維持する。
【０００７】
多くのシステムでは、ＤＡＳＤなどの１つのストレージ・デバイス上のデータを同じかまたは別のストレージ・デバイスにコピーすることができるため、２つの異なるデバイスからデータ・ボリュームにアクセスすることが可能である。ポイント・イン・タイム・コピーとは、ソース・ボリュームからターゲット・ボリュームへすべてのデータを物理的にコピーすることを含むものであるため、ターゲット・ボリュームはある特定時点でのデータのコピーを有する。ポイント・イン・タイム・コピーは、データのコピーを論理的に作成し、その後必要なときにのみデータをコピーすることによっても実行可能であり、事実上、物理コピーとは異なる。この論理コピー動作は、ターゲットおよびソースのボリュームにアクセスできない時間を最小限にするために実行される。
【０００８】
いくつかの直接アクセス・ストレージ・デバイス（ＤＡＳＤ）サブシステムは、「高速複製機能」とも呼ばれる「瞬間（ｉｎｓｔａｎｔ）仮想コピー」オペレーションを実行することができる。瞬間仮想コピー・オペレーションは、ソース・データ・オブジェクトをオリジナルとコピーの両方として扱うために、関係テーブルまたはポインタなどの構造内のメタデータを修正することによって働く。ストレージ・サブシステムは、データのいかなる物理コピーも作成されておらずに、ホストのコピー要求に応答して即時にコピーの作成を報告する。「仮想」コピーのみが作成されており、追加の物理コピーがないことはホストにはまったく知らされていない。
【０００９】
その後、ストレージ・システムがオリジナルまたはコピーへの更新を受け取ると、その更新は別々に格納され、更新されたデータ・オブジェクトに対してのみ相互参照される。この時点で、オリジナルおよびコピーのデータ・オブジェクトは分岐（ｄｉｖｅｒｇｅ）を開始する。初期の恩恵は、瞬間仮想コピーがほとんど瞬時に行われ、通常の物理コピー・オペレーションよりもかなり速く完了することである。これによって、ホストおよびストレージ・サブシステムは他のタスクを自由に実行できるようになる。ホストまたはストレージ・サブシステムは、背景処理中または他の時間に、オリジナル・データ・オブジェクトの実際の物理コピーの作成を進めることも可能である。
【００１０】
こうした瞬間仮想コピー・オペレーションの１つが、ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションとして知られている。ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションには、同じかまたは異なるデバイス上のソースとターゲットのボリューム間に、論理ポイント・イン・タイム関係を確立することが含まれる。ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションは、ＦｌａｓｈＣｏｐｙ（登録商標）関係におけるトラックが、ターゲット・ディスク上のその場所に固化（ｈａｒｄｅｎ）されるまで、トラックがソース・ディスク上に常駐することを保証する。関係テーブルは、サブシステム内のすべての既存のＦｌａｓｈＣｏｐｙ（登録商標）関係に関する情報を維持するために使用される。ＦｌａｓｈＣｏｐｙ（登録商標）関係の確立段階中に、確立中のＦｌａｓｈＣｏｐｙ（登録商標）に関与するソースおよびターゲット用のソースおよびターゲットの関係テーブルに、１つのエントリが記録される。追加される各エントリは、ＦｌａｓｈＣｏｐｙ（登録商標）関係に関する必要なすべての情報を維持する。ソース・エクステントからのすべてのＦｌａｓｈＣｏｐｙ（登録商標）トラックがターゲット・エクステントに物理的にコピーされた場合、または撤回（ｗｉｔｈｄｒａｗ）コマンドが受け取られた場合、関係に関するどちらのエントリも関係テーブルから除去される。あるケースでは、たとえすべてのトラックがソース・エクステントからターゲット・エクステントにコピーされた場合であっても、関係は持続する。
【００１１】
さらにターゲット関係テーブルは、ＦｌａｓｈＣｏｐｙ（登録商標）関係に含まれるどのトラックがまだコピーされていないか、および保護されたトラックであるかを識別する、ビットマップを含む。ターゲット・デバイス内の各トラックは、ビットマップ中の１ビットで表される。対応するトラックがＦｌａｓｈＣｏｐｙ（登録商標）関係のターゲット・トラックとして確立された場合、ターゲット・ビットが（たとえば論理的または物理的のいずれかで）設定される。ターゲット・ビットは、対応するトラックがソース位置からコピーされた場合にリセットされ、ソースまたはターゲットのデバイス上での書き込み、またはバックグランド・コピー・タスクのためにターゲット・デバイスにデステージ（ｄｅｓｔａｇｅ）される。
【００１２】
ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションの詳細は、本出願人に譲渡された、２００３年８月２６日発行の「ある特定時点での電子データを維持するための方法、システム、およびプログラム」という名称の米国特許第６６１１９０１号に記載されている。
【００１３】
論理関係がいったん確立されると、ホストは、ソースおよびターゲットのボリューム上のデータに即時にアクセスすることが可能であり、データは背景オペレーションの一部としてコピーすることが可能である。ＦｌａｓｈＣｏｐｙ（登録商標）関係にありキャッシュにはないターゲットであるトラックへの読み出しによってステージ・インターセプトが起動し、これにより、ソース・トラックがまだコピーされていない場合、およびターゲット・キャッシュからトラックへアクセスが提供される前に、要求されたターゲット・トラックに対応するソース・トラックがターゲット・キャッシュにステージ（ｓｔａｇｅ）される。これによって、ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションのある特定時点に存在したソースからのコピーをターゲットが有することが保証される。さらに、コピーされていないソース・デバイス上のトラックへの任意のデステージがデステージ・インターセプトを起動し、これによってソース・デバイス上のトラックがターゲット・デバイスにコピーされることになる。
【００１４】
瞬間仮想コピー技法は、少なくとも部分的に、前景処理を中断または低速化させることなくデータの重複コピーを即時に作成するために開発されてきた。ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションなどの瞬間仮想コピー技法は、ポイント・イン・タイム・コピー・ツールを提供する。瞬間仮想コピー技法は、たとえばデータ・バックアップ、データ・マイグレーション、データ・マイニング、テストなどを含む、様々なアプリケーションに使用することができる。たとえば瞬間仮想コピー技法は、災害回復に役立つソース・データの物理的な「バックアップ」コピーの作成に使用することができる。
【特許文献１】米国特許第６６１１９０１号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１５】
ＦｌａｓｈＣｏｐｙ（登録商標）オペレーションなどの瞬間仮想コピー技法はデータのコピーには有用であるが、従来の瞬間仮想コピー技法を改善することができる。
【課題を解決するための手段】
【００１６】
コピー・オペレーションを実行するための製品、システム、および方法が提供される。新規ソースおよび新規ターゲットを示す高速逆リストア・コマンドが受信され、新規ソースはオリジナル・ターゲットであり、新規ターゲットはオリジナル・ソースである。新規ターゲット上で同期スキャンが実行される。新規ターゲットに関連付けられた新規ターゲット構造は、新規ソースに関連付けられた新規ソース構造を使用して更新される。
【００１７】
新規ターゲットから新規ソースへの瞬間仮想コピーが実行された後に高速逆リストア・コマンドが受信され、この高速逆リストア・コマンドは瞬間仮想コピーによってバックグランド・コピーが実行される前に実行される、コピー・オペレーションを実行するためのプログラム、システム、および方法も提供される。
【００１８】
次に図面を参照すると、全体を通じて同じ参照番号は対応する部分を表す。
【発明を実施するための最良の形態】
【００１９】
以下の説明では、本明細書の一部を形成し本発明のいくつかの実施を図示した添付の図面を参照する。他の実施が利用可能であり、本発明の実施範囲を逸脱することなく構造上および動作上の変更が可能であることを理解されよう。
【００２０】
図１は、本発明の特定の実施に従ったコンピューティング環境を示すブロック図である。第１のコントロール・ユニット１００は、１つまたは複数のホスト・コンピュータ１１４にストレージＡ１１２へのアクセスを提供する。ホスト・コンピュータ１１４は、それぞれが、オペレーティング・システム（図示せず）の制御の下で中央処理ユニット（ＣＰＵ）（図示せず）上で実行される、１つまたは複数のプログラム１１５を実行することができる。第１のコントロール・ユニット１００は、１つまたは複数のホスト・コンピュータ１１４で（たとえばネットワークを介して）、ボリューム（たとえば論理ユニット番号、論理デバイスなど）１１２ａ、ｂ、．．．ｍを有するように構成されたストレージＡ１１２に向けて送られた１つまたは複数のプログラム１１５からの入力／出力（Ｉ／Ｏ）要求を受信する。ここでｍは任意数のボリュームが存在可能であることを表す。
【００２１】
図２は、本発明の特定の実施に従ったストレージのブロックを示す図である。ストレージＡ１１２は、データのブロックを含むストレージのブロック２５０（図２）に分割することが可能であり、さらにストレージのブロック２５０はデータのサブブロックを含むストレージのサブブロック（２５０ａ〜２５０ｐ、ｐは任意数のサブブロックが存在可能であることを表す）に分割される。特定の実施では、データのブロックはトラックのコンテンツであり、データのサブブロックはトラックのセクタのコンテンツである。
【００２２】
第１のコントロール・ユニット１００は、ストレージＡ１１２内のデータのブロックへの更新がストレージＡ１１２に書き込まれるまで維持される（すなわち、データのブロックがデステージされる）、キャッシュ１１６を含む。システム・メモリ１０１は、キャッシュ１１６とは別のメモリ・デバイス内にあるか、またはキャッシュ１１６とメモリ・デバイスを共有することができる。
【００２３】
さらに、第１のコントロール・ユニット１００は不揮発性キャッシュ１１８を含む。不揮発性キャッシュ１１８は、たとえば、データの更新および他の情報の不揮発性コピーを維持するためのバッテリ・バックアップ式揮発性メモリとすることができる。
【００２４】
第１のコントロール・ユニット１００は、データを読み取るための読み取りプロセス１０２とデータを書き込むための書き込みプロセス１０４とが常駐する、システム・メモリ１０１を含む。システム・メモリ１０１は、第１のコントロール・ユニット１００から第２のコントロール・ユニット１２０にあるストレージなどのリモート・ストレージへデータを転送するための、リモート・ミラーリング・プロセス１０６も含む。すなわち、リモート・ミラーリング・プロセス１０６は、ＰＰＲＣコピー・オペレーションなどのリモート・ミラーリング・コピー・オペレーションを実行する。リモート・ミラーリング・コピー・オペレーションが２つのストレージ間で実行される場合、その２つのストレージは「リモート・ミラーリング関係」にあると言うことができる。２つのストレージ間で瞬間仮想コピー・オペレーションが実行されている場合、この２つのストレージは「瞬間仮想コピー関係」にあると言うことが可能であり、これはポイント・イン・タイム・コピー関係の一種である。
【００２５】
第２のコントロール・ユニット１２０は、データを読み取るための読み取りプロセス１２２とデータを書き込むための書き込みプロセス１２４とが常駐する、システム・メモリ１２１を含む。システム・メモリ１２１は、瞬間仮想コピー・プロセス１２６および高速逆リストア・プロセス１２８も含む。高速逆リストア・プロセス１２８は、ポイント・イン・タイム・コピーを逆にする（すなわち、瞬間仮想コピー・オペレーションでオリジナル・ソースからオリジナル・ターゲットにコピーされたオリジナル・データをリストアする）。高速逆リストア・コマンドは瞬間仮想コピーが実行された後に受信され、高速逆リストア・コマンドは瞬間仮想コピーがバックグランド・コピーを完了する前に実行可能である。
【００２６】
高速逆リストア・プロセス１２８は、オリジナル・ターゲットからオリジナル・ソースへデータを転送して、オリジナル・ソースのデータをオリジナル・ソースからオリジナル・ターゲットへの最後の瞬間仮想コピー時点でのデータにリストアする、逆リストア・オペレーションを実行する。本発明の特定の実施では、複数の逆リストア・プロセスが存在する場合がある。本発明の特定の実施では、この逆リストア・プロセスを、ストレージ・コントローラ１２０で実行する代わりに、あるいはストレージ・コントローラ１２０での実行に加えて、ストレージ・コントローラ１２０に接続された別のストレージ・コントローラで実行することができる。
【００２７】
第２のコントロール・ユニット１２０は、１つまたは複数のホスト・コンピュータ１３０に、ストレージＡ１１２のボリュームのすべてまたはサブセットのバックアップ・コピーを維持するストレージＢ１５４、およびストレージＣ１６４などの、ストレージへのアクセスを提供する。ホスト・コンピュータ１３０は、それぞれが、オペレーティング・システム（図示せず）の制御の下で中央処理ユニット（ＣＰＵ）（図示せず）上で実行される、１つまたは複数のプログラム１３１を実行することができる。ホスト・コンピュータ１３０はホスト・コンピュータ１１４と同じである、ホスト・コンピュータ１１４とは異なる、またはホスト・コンピュータ１１４のサブセットを形成することができる。
【００２８】
第２のコントロール・ユニット１２０は、ストレージＢ１５４内のデータのブロックへの更新がストレージＢ１５４に書き込まれるまで維持される（すなわち、データのブロックがデステージされる）ことが可能なキャッシュ１４０と、ストレージＣ１６４内のデータのブロックへの更新がストレージＣ１６４に書き込まれるまで維持されることが可能なキャッシュ１４２とをさらに含む。キャッシュ１４０およびキャッシュ１４２は、別のメモリ・デバイスまたは同じメモリ・デバイスの異なるセクションを有することができる。キャッシュ１４０およびキャッシュ１４２を使用して、ホスト１１４、１３０、ストレージＢ１５４、およびストレージＣ１６４の間で伝送される読み取りおよび書き込みデータをバッファリングすることができる。さらにキャッシュ１４０およびキャッシュ１４２は、ソースまたはターゲットのデータのブロックをポイント・イン・タイム・コピー関係（たとえば、瞬間仮想コピー関係）で保持するためのソースおよびターゲットのキャッシュと呼ぶことが可能であり、キャッシュ１４０およびキャッシュ１４２は、異なるポイント・イン・タイム・コピー関係のソースおよびターゲットのデータのブロックを同時に格納することができる。
【００２９】
システム・メモリ１２１は、キャッシュ１４０および１４２とは別のメモリ・デバイス内にあるか、またはキャッシュ１４０および１４２のうちの１つかまたはその両方とメモリ・デバイスを共有することができる。
【００３０】
加えて、第２のコントロール・ユニット１２０は不揮発性キャッシュ１４４を含む。不揮発性キャッシュ１４４は、たとえば、データの更新および他の情報の不揮発性コピーを維持するためのバッテリ・バックアップ式揮発性メモリとすることができる。
【００３１】
ストレージＢ１５４は、ストレージＡ１１２のボリューム１１２ａ、ｂ、．．．ｍのすべてまたはそのサブセットのコピーを維持する。加えてストレージＢ１５４は、たとえばそれぞれ１つまたは複数のホスト・コンピュータ１１４、１３０にある１つまたは複数のプログラム１１５、１３１によって更新することができる。ストレージＢ１５４は、ボリューム（たとえば論理ユニット番号、論理デバイスなど）１５４ａ、ｂ、．．．ｎを有するように構成され、ここでｎは任意数のボリュームが存在可能であることを表す。ボリューム１５４ａ、ｂ、．．．ｎはデータのブロックを含むストレージ２５０のブロック（図２）に分割可能であり、ストレージ２５０のブロックはさらに、データのサブブロックを含むストレージのサブブロック（２５０ａ〜２５０ｐ、ｐは任意の整数値とすることができる）に分割される。ボリュームはストレージの任意の論理または物理要素とすることができる。特定の実施では、データのブロックはトラックのコンテンツであり、データのサブブロックはトラックのセクタのコンテンツである。
【００３２】
ストレージＣ１６４は、ストレージＢ１５４のボリューム１５４ａ、ｂ、．．．ｎのすべてまたはそのサブセットのコピーを維持する。加えてストレージＣ１６４は、たとえばそれぞれ１つまたは複数のホスト・コンピュータ１１４、１３０にある１つまたは複数のプログラム１１５、１３１によって更新することができる。ストレージＣ１６４は、ボリューム（たとえば論理ユニット番号、論理デバイスなど）１６４ａ、ｂ、．．．ｏを有するように構成され、ここでｏは任意数のボリュームが存在可能であることを表す。ボリューム１６４ａ、ｂ、．．．ｏはデータのブロックを含むストレージ２５０のブロック（図２）に分割可能であり、ストレージ２５０のブロックはさらに、データのサブブロックを含むストレージのサブブロック（２５０ａ〜２５０ｐ、ｐは任意の整数値とすることができる）に分割される。ボリュームはストレージの任意の論理または物理要素とすることができる。特定の実施では、データのブロックはトラックのコンテンツであり、データのサブブロックはトラックのセクタのコンテンツである。
【００３３】
特定の実施では、（ストレージＢ１５４などのリモート・ストレージの代わりに、またはこれに加えて）取り外し可能ストレージを使用して、ストレージＡ１１２のすべてまたはサブセットのバックアップ・コピーを維持することが可能であり、本発明の技法は、データをリモート・ストレージではなく取り外し可能ストレージに転送する。取り外し可能ストレージは第１のコントロール・ユニット１００に常駐することができる。
【００３４】
特定の実施では、第１のコントロール・ユニット１００および第２のコントロール・ユニット１２０は、ＩＢＭ３９９０、Ｍｏｄｅｌ  ６ストレージ・コントローラ、エンタープライズ・ストレージ・サーバ（登録商標）、または当分野で知られた任意の他のコントロール・ユニットからなるものとすることができる。
【００３５】
特定の実施では、ホスト・コンピュータ１１４、ホスト・コンピュータ１３０、第１のコントロール・ユニット１００、あるいは第２のコントロール・ユニット１２０またはそれらすべては、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話デバイス、ネットワーク機器、仮想化デバイス、ストレージ・コントローラ、その他などの、当分野で知られた任意のコンピューティング・デバイスを有することができる。
【００３６】
１次サイトは、複数の第１のコントロール・ユニット、ストレージ、およびホスト・コンピュータを含むことができる。２次サイトは、複数の第２のコントロール・ユニット、回復システム、およびストレージを含むことができる。
【００３７】
本発明の特定の実施では、データはボリューム・ペア内に維持される。ボリューム・ペアは、第１のストレージ・デバイス（たとえばストレージＡ１１２）内の第１のボリュームと、第１のボリューム内で維持されるデータの整合コピーを含む第２のストレージ・デバイス（たとえばストレージＢ１５４）内の対応するボリュームからなる。たとえば、ストレージＡ１１２のボリューム１１２ａはストレージＢ１５４のボリューム１５４ａに対応することができる。
【００３８】
特定の実施では、第１のコントロール・ユニット１００および第２のコントロール・ユニット１２０は、直接高速伝送回線（たとえば、エンタープライズ・システム接続（ＥＳＣＯＮ（登録商標）））リンクなどの通信パスを介して通信する。しかしながらこの通信パスは、ネットワーク伝送回線、光ファイバ・ケーブル、その他を含む、当分野で知られた任意の他の通信手段からなるものとすることができる。
【００３９】
ストレージ１１２、１５４、および１６４について、ｍ、ｎ、およびｏの値は同じかまたは異なるものとすることができる。ストレージ１１２、１５４、および１６４はそれぞれ、直接アクセス・ストレージ・デバイス（ＤＡＳＤ）、単純ディスク束（ＪＢＯＤ）、新磁気ディスク制御機構（ＲＡＩＤ）、仮想化デバイス、その他などの、ストレージ・デバイスの配列を有することができる。
【００４０】
参照しやすいように、本明細書ではトラックおよびセクタという用語をデータのブロックおよびデータのサブブロックの例として使用することができるが、これらの用語を使用することが本発明の技法をトラックおよびセクタに限定することを意味するものではない。本発明の技法は、任意のタイプのストレージ、ストレージのブロック、または任意の方法で分割されたデータのブロックに適用可能である。
【００４１】
本発明の実施は、任意の２つのストレージ媒体間でのデータの転送に適用可能であり、本明細書ではこれらを参照しやすいように、ソース・ストレージおよびターゲット・ストレージ、または第１のストレージおよび第２のストレージと呼ぶ場合がある。たとえば本発明の特定の実施は、図１に示されたような単一のストレージ・コントローラ１２０に配置された２つのストレージ媒体で使用することができる。さらに本発明の特定の代替実施は、異なるストレージ・コントローラ、異なる物理サイトなどに配置された、２つのストレージ媒体で使用することもできる。さらに参照しやすいように、ソース・ストレージ内のデータのブロックを「データのソース・ブロック」と呼び、ターゲット・ストレージ内のデータのブロックを「データのターゲット・ブロック」と呼ぶ場合がある。
【００４２】
どのストレージをソースとし、どのストレージをターゲットとするかの指示が逆の場合、参照しやすいように、「オリジナル・ソース」を「新規ターゲット」と呼び、「オリジナル・ターゲット」を「新規ソース」と呼び、「オリジナルのデータのソース・ブロック」を「新規データのターゲット・ブロック」と呼び、「オリジナルのデータのターゲット・ブロック」を「新規データのソース・ブロック」と呼ぶ場合がある。
【００４３】
図３は、本発明の特定の実施に従った構造３１０を示す図である。キャッシュ１１６または不揮発性キャッシュ１１８は、１つまたは複数の同期外れ（ｏｕｔ  ｏｆ  ｓｙｎｃ）構造３１０を含むことができる。同期外れ構造３１０は、ストレージのブロックの特定の更新されたサブブロック（たとえばセクタ）に関係なく、１つのストレージから他のストレージへの最後の転送以降、どのストレージのブロック（たとえばトラック）が更新されたかを特定するために使用される。インジケータが第１の値（たとえば１）に設定された場合、この設定値は、最後の転送以降（たとえばＰＰＲＣコピー・オペレーションによって）データのブロックが更新されたことを示す。インジケータが第２の値（たとえば０）に設定された場合、この設定値は、最後の転送以降（たとえばＰＰＲＣコピー・オペレーションによって）データのブロックが更新されていないことを示す。たとえば同期外れ構造３１０は、ストレージＡ１１２がストレージＢ１５４とリモート・ミラーリング関係にあった場合、ストレージＡ１１２用に維持されることになる。
【００４４】
図４は、本発明の特定の実施に従った様々な構造４１０、４２０、および４３０を示す図である。ストレージＢ構造４１０は、ソース・ストレージの一部とターゲット・ストレージの一部との間に瞬間仮想コピー関係が確立された、ストレージＢ１５４のデータの一部内でのデータのブロックへの更新を監視するために使用される。特定の実施では、ストレージＢ１５４上の各ボリュームに対してストレージＢ構造４１０が存在する。ストレージＢ構造４１０は、瞬間仮想コピー関係の一部である、ソース・ストレージ内の各データのブロックに関するインジケータ（たとえばビット）を含む。インジケータが第１の値（たとえば１）に設定された場合、この設定値は、データのブロックがソース・ストレージの一部からターゲット・ストレージにコピーされなかったことを示す。インジケータが第２の値（たとえば０）に設定された場合、この設定値は、データのブロックがソース・ストレージの一部からターゲット・ストレージの一部へコピーされたことを示す。
【００４５】
ストレージＣ構造４２０は、ソース・ストレージの一部とターゲット・ストレージの一部の間に瞬間仮想コピー関係が確立された後、ターゲットＣ１６４のデータの一部内でのデータのブロックへの更新を監視するために使用される。特定の実施では、ストレージＣ１６４上の各ボリュームに対してストレージＣ構造４２０が存在する。ストレージＣ構造４２０は、瞬間仮想コピー関係の一部である、ソース・ストレージ内の各データのブロックに関するインジケータ（たとえばビット）を含む。インジケータが第１の値（たとえば１）に設定された場合、この設定値は、データのブロックがソース・ストレージの一部からターゲット・ストレージにコピーされなかったことを示す。インジケータが第２の値（たとえば０）に設定された場合、この設定値は、データのブロックがソース・ストレージの一部からターゲット・ストレージの一部へコピーされたことを示す。
【００４６】
構造４１０、４２０は、それぞれの関連するストレージ１５４、１６４がコピー・オペレーションのソースまたはターゲットのいずれとして扱われているかに依存して、それぞれソース構造またはターゲット構造のいずれかとみなすことができる。
【００４７】
同期外れ構造４３０は、ストレージのブロックの特定の更新されたサブブロック（たとえばセクタ）に関係なく、１つのストレージから他のストレージへの最後の転送以降、どのストレージのブロック（たとえばトラック）が更新されたかを特定するために使用される。インジケータが第１の値（たとえば１）に設定された場合、この設定値は、最後の転送以降（たとえばＰＰＲＣコピー・オペレーションによって）データのブロックが更新されたことを示す。インジケータが第２の値（たとえば０）に設定された場合、この設定値は、最後の転送以降（たとえばＰＰＲＣコピー・オペレーションによって）データのブロックが更新されていないことを示す。たとえば同期外れ構造４３０は、ストレージＢ１５４がストレージＡ１１２とリモート・ミラーリング関係にあった場合、ストレージＢ１５４用に維持されることになる。
【００４８】
本発明の特定の実施では、各構造３００、３１０、４００、４１０、および４２０はビットマップを有し、各インジケータはビットを有する。各構造３００、３１０、４００、４１０、および４２０では、ｎ番目のインジケータがｎ番目のデータのブロックに対応する（たとえば、各構造４００、４１０、および４２０内の第１のインジケータが第１のデータ・ブロックに対応する）。構造３００、３１０、ならびに構造４００、４１０、および４２０は３つの別々の構造として図示されているが、構造３００、３１０は本発明の範囲から逸脱することなく任意の形で組み合わせることが可能であり、構造４００、４１０、および４２０は本発明の範囲から逸脱することなく任意の形で組み合わせることが可能である。本発明の特定の実施では、各ボリュームについて各構造のコピーが存在する。本発明の特定の代替実施では、すべてのボリュームについて各構造の単一コピーが存在する。
【００４９】
図５は、本発明の特定の実施に従った逆リストア・プロセスで実施される論理を示す図である。図示しやすいように、ストレージＢ１５４のボリューム１５４ａをオリジナル・ソースとして扱い、ストレージＣ１６４のボリューム１６４ａをオリジナル・ターゲットとして扱うことができる。その後、高速逆リストア・コマンドが、ストレージＣ１６４のボリューム１６４ａが新規ソースとして扱われるように、およびストレージＢ１５４のボリューム１５４ａが新規ターゲットとして扱われるように指定する。
【００５０】
本発明の特定の実施では、高速逆リストア・プロセス１２８の実行に先立って、オリジナル・ターゲット（たとえばボリューム１６４ａ）に対して瞬間仮想コピー・オペレーションが実行されて以降、オリジナル・ソース（たとえばボリューム１５４ａ）に対して実行された更新は、キャッシュ１４０、不揮発性キャッシュ１４４、あるいはストレージＢ１５４、またはそのすべてのいずれかにおけるものとすることができる。これらの更新がストレージＢ１５４にデステージされた場合、その後そのデステージに先立って、オリジナル・データのコピーはボリューム１５４ａからボリューム１６４ａに対して実行されることになる。
【００５１】
加えて、瞬間仮想コピー関係が作成された時点で存在したボリューム１５４ａに関して、キャッシュ１４０あるいは不揮発性キャッシュ１４４またはその両方にいくつかのデータのブロックが存在する場合がある。これらのデータのブロックは、オリジナルの瞬間仮想コピー関係の一部である。
【００５２】
さらに、ボリューム１５４ａからボリューム１６４ａにコピーされるそれぞれのデータのブロックについて、（ボリューム１６４ａに関連付けられた）ストレージＣ構造４２０はデータのブロックがボリューム１５４ａからボリューム１６４ａにコピーされたことを示すようにリセットされる。
【００５３】
ボリューム１６４ａは、ポイント・イン・タイム・コピーを保護するために書き込みが禁止されている。すなわち、ホスト・コンピュータ１１４、１３０のプログラム１１５、１３１は、瞬間仮想コピー・オペレーションによって作成された保護されたポイント・イン・タイム・コピーへ書き込むことができない。
【００５４】
図５では、ブロック５００で、新規ソース（たとえばボリューム１６４ａ）および新規ターゲット（たとえばボリューム１５４ａ）を示す高速逆リストア・コマンドを受け取ることによって、コントロールが開始される。ブロック５０２では、高速逆リストア・プロセス１２８が新規ターゲット（ボリューム１５４ａ）で同期スキャンを実行する。具体的には、同期スキャンを使用して、オリジナル・ソース（すなわち新規ターゲット）からオリジナル・ターゲット（すなわち新規ソース）への（たとえばボリューム１５４ａからボリューム１６４ａへの）瞬間仮想コピー関係が作成された時点で存在した、新規ターゲット（ボリューム１５４ａ）のキャッシュ１４０内にあるデータのブロックが、物理ストレージに移動される。具体的には、瞬間仮想コピー関係に属するデータのブロックは、新規ターゲット（ボリューム１５４ａ）用の物理ストレージにデステージされるが、新規ソース（ボリューム１６４ａ）にはコピーされない。また、瞬間仮想コピー・オペレーション後に更新されたデータのブロックの場合、新規ターゲット（ボリューム１５４ａ）用の物理ストレージ上にあるデータのブロックのオリジナル・コンテンツが新規ソース（ボリューム１６４ａ）用の物理ストレージにコピーされ、コピーされたデータのブロックに関する対応するインジケータは、新規ソース（ボリューム１６４ａ）に関連付けられるので新規ソース構造と呼ばれることもある構造４２０内で、データのブロックがコピーされたことを示すようにリセットされる。ブロック５０４では、高速逆リストア・プロセス１２８が新規ソース（ボリューム１６４ａ）上および新規ターゲット（ボリューム１５４ａ）上でのＩ／Ｏを静止（ｑｕｉｅｓｃｅ）する。特定の実施では、Ｉ／Ｏはブロック５０２の同期スキャンを実行する前に静止され、新規ターゲットに関する追加のデータのブロックの更新は行われない。ブロック５０６では、高速逆リストア・プロセス１２８がオプションで新規ターゲット（ボリューム１５４ａ）を書き込み禁止として設定する。
【００５５】
ブロック５０８では、高速逆リストア・プロセス１２８が、新規ソース構造４２０内の値を反転させること、および新規ターゲット（ボリューム１５４ａ）に関連付けられるので新規ターゲット構造と呼ばれることもある構造４１０にこれらの値をコピーすることによって、構造４１０を更新する。特定の実施では、ブロック５０６のスキャンが完了するとブロック５０８の処理が実行される。新規ソース構造内のインジケータが１および０である特定の実施では、値の反転とは０を１に、１を０に変換することである。その後、新規ターゲット構造４１０は、新規ソース（ボリューム１６４ａ）から新規ターゲット（ボリューム１５４ａ）へ物理的にコピー・バックされることになるデータのブロックを表す。処理はブロック５０８からブロック５１４へと進む。
【００５６】
ブロック５１４では新規ターゲット（ボリューム１５４ａ）のキャッシュ１４０内にあるデータが以前に処理された（たとえば必要に応じて新規ソース（ボリューム１６４ａ）にコピーされた）ものであるため、高速逆リストア・プロセス１２８はこれらのブロックを廃棄する。ブロック５１６では、高速逆リストア・プロセス１２８がオプションで、新規ソース（ボリューム１６４ａ）から新規ターゲット（ボリューム１５４ａ）へのバックグランド・コピー（すなわち物理コピーの一種）を開始する。バックグランド・コピー・オペレーションは、ストレージＢ構造４１０にインジケータが設定されているデータのブロックを、ボリューム１６４ａからボリューム１５４ａへコピーする。特定の実施では、物理的なバックグランド・コピーを実行するのではなく論理コピーが実行される。ブロック５１８では、ブロック５０６で書き込み禁止が設定された場合、高速逆リストア・プロセス１２８が新規ターゲット（ボリューム１５４ａ）に関する書き込み禁止をリセットする。ブロック５２０では、高速逆リストア・プロセス１２８が新規ソース（ボリューム１６４ａ）および新規ターゲット（１５４ａ）上でのＩ／Ｏを静止解除（ｕｎｑｕｉｅｓｃｅ）する。
【００５７】
加えて、高速逆リストア・プロセス１２８は、オプションで新規ターゲット（ボリューム１５４ａ）から１つまたは複数のストレージへの（たとえばボリューム１６４ａまたは他のストレージへの）コピーを実行することができる。新規ターゲット（ボリューム１６４ａ）からのコピーを実行する場合、新規ターゲットを「ソース」と呼ぶことができる。具体的には、バックグランド・コピーが完了する（特に、高速逆リストア・コマンドが発行される直前に瞬間仮想コピー・オペレーションが実行された非同期ＰＰＲＣコピー・オペレーションの場合は、かなり迅速なはずである）と、新規ターゲット（ボリューム１５４ａ）は物理的にリストアされたコピーであり、新規ソース（１６４ａ）と新規ターゲット（１５４ａ）との間の瞬間仮想コピー関係は終了する。更新されたボリューム１５４ａは、その後、新規の瞬間仮想コピー・オペレーションを使用してボリューム１６４ａに再度コピーすることが可能であり、このコピーはボリューム１５４ａ上のデータの整合コピーがボリューム１６４ａ上に常駐するように実行することができる。特定の実施では、更新されたボリューム１５４ａは１つまたは複数の論理コピーを作成するために１１までの追加のボリュームにコピーすることができる。
【００５８】
図６は、本発明の特定の代替実施に従った逆リストア・プロセス３１０で実施される論理を示す図である。図６は図５の処理を含むが、ブロック５０８はブロック５１４ではなくブロック５１０へと続く。図６でも、ブロック５１０または５１２は（ブロック５１０での処理の結果に応じて）ブロック５１４へと続く。ブロック５１０では、高速逆リストア・プロセス１２８は、新規ターゲットがリモート・ミラーリング関係にあるかどうかを判別する。たとえば高速逆リストア・プロセス１２８は、新規ターゲット（ボリューム１５４ａ）がリモート・ミラーリング関係にある１次ミラーリング・ボリュームでもあるかどうか（たとえば、非同期ＰＰＲＣコピー・オペレーションに関するものであるか、またはリモート・ミラーリング・フェイルオーバ・コマンドが発行された後であるか）を判別する。１次ミラーリング・ボリュームはリモート・ミラーリング・コピー・オペレーションのソースであるボリュームとして説明可能であり、２次ミラーリング・ボリュームはリモート・ミラーリング・コピー・オペレーションのターゲットであるボリュームとして説明可能である。リモート・ミラーリング・フェイルオーバ・コマンドは、処理が１つのストレージ（たとえばストレージＡ１１２）から他のストレージ（たとえばストレージＢ１５４）にフェイルオーバすべきであることを示す。新規ターゲットがリモート・ミラーリング関係にある場合、処理はブロック５１２に進み、そうでない場合、処理はブロック５１４に進む。ブロック５１２では、新規ターゲット（ボリューム１５４ａ）に関連付けられた同期外れ構造４３０が新規ターゲット構造４１０内の値に基づいて更新される。特定の実施では、更新は、新規ターゲット構造４１０と同期外れ構造４３０との間でＯＲオペレーションを実行する。その後、結果として生じる更新された新しい同期外れ構造４３０は、新規ターゲット（ボリューム１５４ａ）からリモート・ミラーリング関係にあるストレージ（たとえばボリューム１１２ｂ）へとコピーされることになるターゲット構造４１０で識別されたデータのブロックを含む。
【００５９】
本発明の実施をさらに例示するために、図７〜１０を使用して本発明の実施例を説明する。本発明の実施は、瞬間仮想コピーがソースからターゲットへと実行され、データがソース側でリストアされることになるシナリオに適用可能である。こうしたシナリオには、ＰＰＲＣコピー・オペレーションが実行されないシナリオが含まれる。たとえば瞬間仮想コピーがソースＡからターゲットＢへと実行され、その後何らかのエラー（たとえばソフトウェアの破損など）によってソースＡが破損された場合、高速逆リストア・コマンドを使用して、ソースＡのコンテンツを瞬間仮想コピー時点の状態にリストアする。
【００６０】
図７は、本発明の特定の実施に従った初期のコンピューティング環境を示すブロック図である。１次コントロール・ユニット６００は２次コントロール・ユニット６２０に接続される。１次コントロール・ユニット６００は、同期外れ構造６０６が維持されるストレージＡ６０２を含む。２次コントロール・ユニット６２０は、ストレージＢ構造６２４が維持されるストレージＢ６２２を含む。２次コントロール・ユニット６２０は、ストレージＣ構造６３２が維持されるストレージＣ６３０も含まれる。リモート・ミラーリング・コピー・オペレーション（たとえばＰＰＲＣコピー・オペレーション）は、ストレージＡ６０２からストレージＢ６２２へと実行されている。また、瞬間仮想コピー・オペレーション（たとえば、ＦｌａｓｈＣｏｐｙ（登録商標）オペレーション）は、ストレージＢ６２２からストレージＣ６３０へと実行されている。
【００６１】
特定の実施では、図７のコンピューティング環境はＰＰＲＣ拡張距離コピー・オペレーションが実行されている非同期ＰＰＲＣ環境である。ホストＩ／Ｏは、ストレージＡ６０２上の１つまたは複数のボリュームに書き込まれている。また、ストレージＡ６０２とストレージＢ６２２との間に、非同期ＰＰＲＣ関係（すなわち、一種のリモート・ミラーリング・コピー関係）が存在する。ストレージＢ６２２とストレージＣ６３０との間には、ターゲット書き込み禁止（すなわち、ストレージＣ６３０の書き込み禁止）のフル・ボリュームのＦｌａｓｈＣｏｐｙ（登録商標）関係（すなわち、一種の瞬間仮想コピー関係）が存在する。初期には、ストレージＢ６２２はＦｌａｓｈＣｏｐｙ（登録商標）関係のソースであり、ストレージＣ６３０はＦｌａｓｈＣｏｐｙ（登録商標）関係のターゲット・ボリュームである。
【００６２】
特定のシナリオでは、ストレージＡ６０２とストレージＢ６２２との間で非同期ＰＰＲＣコピー・オペレーション（すなわち、一種のリモート・ミラーリング・コピー・オペレーション）が実行されている間、およびストレージＢ６２２とストレージＣ６３０との間でＦｌａｓｈＣｏｐｙ（登録商標）オペレーション（すなわち、一種の瞬間仮想コピー・オペレーション）が実行されている間に、１次コントロール・ユニット６００が障害を起こす可能性がある。こうしたシナリオでは、１次コントロール・ユニット６００の障害が発生すると、もはや非同期ＰＰＲＣコピー・オペレーションでは１次コントロール・ユニット６００からの更新を含む整合性グループを形成することはできない。
【００６３】
図８は、本発明の特定の実施に従ったフェイルオーバ処理を示すブロック図である。リカバリ・プログラムはＢストレージ６２２上のボリュームにフェイルオーバ・コマンドを発行して、ストレージＡ６０２からストレージＢ６２２へのリモート・ミラーリング関係を強制的に終了させ、ストレージＢ６２２からストレージＡ６０２へのリモート・ミラーリング関係を確立する（たとえば、図８のリモート・ミラーリング関係の方向を参照のこと）。新規のリモート・コピー関係で、ストレージＢ６２２上のボリュームに対して同期外れ構造７００が維持される。特定の実施では、ストレージＢ６２２上のボリュームは、さらなるリカバリ処理が実行される前にフェイルオーバ・コマンドを受け取り、首尾よく処理することが予想される。
【００６４】
図９は、本発明の特定の実施に従った高速逆リストア処理を示すブロック図である。１次コントロール・ユニット６００のフェイルオーバ時に、ストレージＣ６３０はデータの整合コピーを有し、ストレージＣ６３０上に整合コピーが作成されたことから、ストレージＢ６２２はデータの特定の追加更新を有することが可能である。ストレージＣ６３０がデータの整合コピーを有するので、データは高速逆リストア・コマンドを介してストレージＣ６３０からストレージＢ６２２へとコピーされる。その後、リモート・ミラーリング・コピー・オペレーションは、データの整合コピーをストレージＢ６２２からストレージＡ６０２へと転送することができる。このオペレーションは、後で（たとえば、１つのストレージから他のストレージへと戻って処理がフェイルオーバするはずであることを示すフェイルバック・コマンドに応答して）行うことが可能である。代替の実施では、データを他の方式でストレージＢ６２２からストレージＡ６０２へコピーすることができる。
【００６５】
特定の実施では、リカバリ・プログラムが、ストレージＢ６２２対ストレージＣ６３０の瞬間仮想コピー関係に対して、バックグランド・コピーが開始されることになること、ターゲット・ボリュームをＰＰＲＣコピー・オペレーションの１次ミラーリング・ボリュームとすることが可能であること、および瞬間仮想コピー関係が持続しない（すなわち、瞬間仮想コピー・オペレーションが完了すると瞬間仮想コピー関係は終了する）ことを示す高速逆リストア・コマンドを発行する。
【００６６】
高速逆リストア・コマンドは、高速逆リストアの実行に先立って、瞬間仮想コピー関係に関与するすべてのデータのブロックをソース（ストレージＢ６２２）からターゲット（ストレージＣ６３０）へと物理的にコピーするように要求するものではない。したがってストレージＣ構造６３２は、インジケータの一部を、高速逆リストア・コマンドが発行されたときにデータのブロックが依然としてストレージＢ６２２からコピーされることを示すように設定することができる。高速逆リストア・コマンドは、最後の瞬間仮想コピー・オペレーション以降に修正されたストレージＢ６２２上のボリュームについて、データがストレージＣ６３０からストレージＢ６２２へと戻ってコピーされる前に、オリジナル・データの物理コピーがストレージＢ６２２からストレージＣ６３０へと転送されることを保証する。また高速逆リストア・コマンドは、ソース（ストレージＢ６２２）が、最後の瞬間仮想コピー（たとえば、ストレージＢ６２２からストレージＣ６３０へ）の時点で存在した状態のデータに物理的にリストアされることも保証する。
【００６７】
高速逆リストア・コマンドの実行後、ストレージＣ６３０上のボリュームは使用不可能である。たとえば、瞬間仮想コピー・オペレーションは論理オペレーションであることから、コピー・オペレーションに関連するデータのブロックはすべてが物理的にストレージＢ６２２からストレージＣ６３０へとコピーされていない可能性がある。こうした場合、他の瞬間仮想コピー・オペレーションを発行して、ストレージＢ６２２からストレージＣ６３０へとデータのブロックをコピーすることができる。
【００６８】
さらに高速逆リストア・コマンドは、新規ターゲット・ボリュームがＰＰＲＣコピー関係に対する１次ミラーリング・ボリュームであるかどうかを検出する。新規ターゲット・ボリュームがＰＰＲＣコピー関係に対する１次ミラーリング・ボリュームである場合、高速逆リストア・コマンドは、ストレージＢ６２２の同期外れ構造７００をストレージＢ構造６２４で更新する。
【００６９】
高速逆リストア・コマンドは、ポイント・イン・タイム・コピー（たとえば瞬間仮想コピー）のオリジナル・データがストレージＣ６３０に確実に移動されるように、ストレージＢ上のボリュームで同期スキャンを開始することによって実行される。同期スキャンは、ストレージＢ６２２用のキャッシュ内にあるすべてのデータをデステージする。キャッシュ内のデータがポイント・イン・タイム関係に属する場合、データはストレージＢ６２２からストレージＣ６３０へコピーされない。ポイント・イン・タイム・コピーの後でデータが更新された場合、このデステージはストレージＢ６２２からストレージＣ６３０へのオリジナル・データのコピーを強制することになる。また、反転されたストレージＣ構造６３２はストレージＢ構造６２４にコピーされる。加えて、ストレージＢ６２２のボリューム用のキャッシュ内にあるデータのブロックが廃棄される。その後、バックグランド・コピーが開始され、ストレージＣのターゲットの書き込み禁止がリセットされる。また、この間の、ストレージＢ６２２およびストレージＣ６３０上のボリュームへのＩ／Ｏはない。
【００７０】
リカバリ・プログラムは、ストレージＢ６２２上のボリュームでバックグランド・コピーが完了するまで待機する。その後リカバリ・プログラムは照会を発行し、ストレージＢ６２２上のボリュームでバックグランド・コピーが完了したかどうかをチェックする。これが実行された場合、整合性グループはストレージＢ６２２上のボリュームで「固化」されている。バックグランド・コピーが完了すると、ストレージＣ６３０からストレージＢ６２２への瞬間仮想コピー関係は終了する。
【００７１】
図１０は、本発明の特定の実施に従った追加の処理を示すブロック図である。リカバリ・プログラムは、変更の記録を開始すること、あるいはターゲットのＦｌａｓｈＣｏｐｙ（登録商標）オペレーションが書き込み禁止であること、またはその両方を、オプションで指定する新規の瞬間仮想コピー・オペレーション（たとえばＦｌａｓｈＣｏｐｙ（登録商標）オペレーション）を発行することができる。この新規の瞬間仮想コピー・オペレーションは、ストレージＢ６２２上のデータからストレージＣ６３０上に整合性グループのバックアップ・コピーを作成する。加えて、ストレージＢ６２２からテスト・ストレージＤ９００へ瞬間仮想コピー・オペレーションを発行することによって、たとえばテスト・ストレージＤ９００（図１０）上に、整合性グループのテスト・コピーを生成することもできる。
【００７２】
ホスト・コンピュータは２次コントロール・ユニット６２０上で活動化される（たとえば、ホスト・コンピュータはリカバリ・プログラムによって活動化することができる）。リカバリ整合性グループはストレージＣ６３０上のボリュームに保存される。２次コントロール・ユニット６２０上でホスト・コンピュータによる活動によって実行された変更は、ストレージＢ６２２およびストレージＢ６２２に関連付けられた同期外れ構造７００のボリュームに記録される。
【００７３】
ＦｌａｓｈＣｏｐｙ、ＩＢＭ、エンタープライズ・ストレージ・サーバ、およびＥＳＣＯＮは、米国あるいはその他の国またはその両方におけるインターナショナル・ビジネス・マシンズ・コーポレーションの登録商標またはコモン・ロー・マーク（ｃｏｍｍｏｎ  ｌａｗ  ｍａｒｋ）である。
【００７４】
追加の実施の詳細
記載された実施形態は、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せを生成するために、プログラミングあるいはエンジニアリングまたはその両方の技法を使用する方法、装置、または製品として実施することができる。本明細書で使用される「製品（ａｒｔｉｃｌｅ  ｏｆ  ｍａｎｕｆａｃｔｕｒｅ）」および「回路」という用語は、ハードウェア論理（たとえば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）または磁気ストレージ媒体（たとえばハード・ディスク・ドライブ、フロッピィ・ディスク、テープなど）、光ストレージ（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（たとえばＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能論理など）などのコンピュータ読取り可能媒体で実施される、状態マシン、コードまたは論理、を言い表すものである。コンピュータ読取り可能媒体内のコードはプロセッサによってアクセスおよび実行される。コードまたは論理がプロセッサによって実行される場合、回路は、コードまたは論理を含む媒体、ならびに媒体からロードされたコードを実行するプロセッサを含むことができる。実施形態が実施されるコードは、伝送媒体を介して、またはネットワークを介してファイル・サーバから、アクセスすることもできる。こうしたケースでは、コードが実施される製品は、ネットワーク伝送回線などの伝送媒体、無線伝送媒体、空中、電波、赤外線などを介して伝搬される信号などの、伝送媒体を有することができる。したがって「製品」は、コードが具体化される媒体を有することができる。加えて「製品」は、コードが具体化、処理、および実行される、ハードウェア構成要素とソフトウェア構成要素との組合せを有することもできる。もちろん当業者であれば、この構成に対して多くの修正が実行可能であること、および製品が当分野で知られた任意の情報伝達媒体を含むことができることを理解されよう。
【００７５】
図５および６に示された論理は、特定の順序で発生する特定のオペレーションを説明している。代替の実施では、特定の論理オペレーションを異なる順序で実行、更新、または除去することができる。さらにオペレーションを上記の論理に追加し、依然として記載された実施に合致させることができる。また、本明細書に記載されたオペレーションは逐次実行することが可能であり、あるいは特定のオペレーションを並行して処理するか、または単一のプロセスによって実行されるように記載されたオペレーションを分散処理で実行することもできる。
【００７６】
図５および６に示された論理は、ソフトウェア、ハードウェア、プログラム可能またはプログラム不能ゲート・アレイ論理、あるいは、ハードウェア、ソフトウェア、またはゲート・アレイ論理の何らかの組合せで実施可能である。
【００７７】
図１１は、本発明の特定の実施に従って使用可能なコンピュータ・システムのアーキテクチャを示す図である。ホスト・コンピュータ１１４、ホスト・コンピュータ１３０、第１のコントロール・ユニット１００、あるいは第２のコントロール・ユニット１２０、またはそれらすべてが、コンピュータ・アーキテクチャ１０００を実施することができる。コンピュータ・アーキテクチャ１０００は、プロセッサ１００２（たとえばマイクロプロセッサ）、メモリ１００４（たとえば揮発性メモリ・デバイス）、およびストレージ１０１０（たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの不揮発性ストレージ領域）を実施することができる。オペレーティング・システム１００５は、メモリ１００４内で実行可能である。ストレージ１０１０は、内蔵型ストレージ・デバイスあるいは取り付け型またはネットワーク・アクセス可能型ストレージを有することができる。ストレージ１０１０内のコンピュータ・プログラム１００６をメモリ１００４にロードし、当分野で知られた方式でプロセッサ１００２が実行することができる。アーキテクチャは、ネットワークとの通信を可能にするためのネットワーク・カード１００８をさらに含む。入力デバイス１０１２はプロセッサ１００２へユーザ入力を提供するために使用され、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ・センシティブ・ディスプレイ・スクリーン、あるいは当分野で知られた任意の他の活動化または入力メカニズムを含むことができる。出力デバイス１０１４は、プロセッサ１００２から、またはディスプレイ・モニタ、プリンタ、ストレージなどの他の構成要素からの情報をレンダリングすることができる。コンピュータ・システムのコンピュータ・アーキテクチャ１０００は、図示されたよりも少ない構成要素、本明細書に図示されていない追加の構成要素、または図示された構成要素と追加の構成要素との何らかの組合せを含むことができる。
【００７８】
コンピュータ・アーキテクチャ１０００は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話デバイス、ネットワーク機器、仮想化デバイス、ストレージ・コントローラなどの、当分野で知られた任意のコンピューティング・デバイスを有することができる。当分野で知られた任意のプロセッサ１００２およびオペレーティング・システム１００５を使用することができる。
【００７９】
前述の本発明の実施の説明は、例示および説明の目的で提示したものである。本発明を網羅すること、または本発明の実施を開示した精密な形に限定することを意図するものではない。上記の教示に照らして、多くの修正形態および変形形態が可能である。本発明の実施の範囲はこの詳細な説明によって限定されるものではなく、本明細書に添付された特許請求の範囲によって限定されることを意図している。上記の明細書、例、およびデータは、本発明の実施の組成の製造および使用に関する完全な説明を提供する。本発明の多くの実施は本発明の実施の趣旨および範囲から逸脱することなく実行可能であることから、本発明の実施は添付の特許請求の範囲、または任意の引き続き出願された特許請求の範囲、およびそれらに相当する範囲内にある。
【図面の簡単な説明】
【００８０】
【図１】本発明の特定の実施に従ったコンピューティング環境を示すブロック図である。
【図２】本発明の特定の実施に従ったストレージのブロックを示す図である。
【図３】本発明の特定の実施に従った構造を示す図である。
【図４】本発明の特定の実施に従った様々な構造を示す図である。
【図５】本発明の特定の実施に従った逆リストア・プロセスで実施される論理を示す図である。
【図６】本発明の特定の代替実施に従った逆リストア・プロセスで実施される論理を示す図である。
【図７】本発明の特定の実施に従った初期のコンピューティング環境を示すブロック図である。
【図８】本発明の特定の実施に従ったフェイルオーバ処理を示すブロック図である。
【図９】本発明の特定の実施に従った高速逆リストア処理を示すブロック図である。
【図１０】本発明の特定の実施に従った追加の処理を示すブロック図である。
【図１１】本発明の特定の実施に従って使用可能なコンピュータ・システムのアーキテクチャを示す図である。
【符号の説明】
【００８１】
１００    第１のコントロール・ユニット
１０１    システム・メモリ
１０２    読み取りプロセス
１０４    書き込みプロセス
１０６    リモート・ミラーリング・プロセス
１１２    ストレージＡ
１１２ａ    ボリューム
１１２ｂ    ボリューム
１１２ｍ    ボリューム
１１４    ホスト・コンピュータ
１１５    プログラム
１１６    キャッシュ
１１８    不揮発性キャッシュ
１２０    第２のコントロール・ユニット
１２１    システム・メモリ
１２２    読み取りプロセス
１２４    書き込みプロセス
１２６    瞬間仮想コピー・プロセス
１２８    高速逆リストア・プロセス
１３０    ホスト・コンピュータ
１３１    プログラム
１４０    キャッシュ
１４２    キャッシュ
１４４    不揮発性キャッシュ
１５４    ストレージＢ
１５４ａ    ボリューム
１５４ｂ    ボリューム
１５４ｎ    ボリューム
１６４    ストレージＣ
１６４ａ    ボリューム
１６４ｂ    ボリューム
１６４ｏ    ボリューム
【図１】
0004701007.tif 000002
【図２】
0004701007.tif 000003
【図３】
0004701007.tif 000004
【図４】
0004701007.tif 000005
【図５】
0004701007.tif 000006
【図６】
0004701007.tif 000007
【図７】
0004701007.tif 000008
【図８】
0004701007.tif 000009
【図９】
0004701007.tif 000010
【図１０】
0004701007.tif 000011
【図１１】
0004701007.tif 000012