(57)【特許請求の範囲】
【請求項１】
第１及び第２のバックアップ・コンポーネントを含む複数のバックアップ・コンポーネントを使用して１次ソースから２次サイトへデータを転送する方法であり、
データの指定された部分に関するデータ更新を前記１次ソースから前記２次サイトへ転送する責務を負うバックアップ・コンポーネントとして、前記データの部分に対し第１のバックアップ・コンポーネントを割り当てるステップと、
前記データの部分に関するデータ更新を前記１次ソースから前記第１のバックアップ・コンポーネントで受け取った場合、前記第１のバックアップ・コンポーネントが前記データの部分に対し前記責務を負うバックアップ・コンポーネントとして割り当てられていない第２のバックアップ・コンポーネントに前記データ更新をミラーリングするステップと、
を有する、各々が１つまたは複数の１次ソースから１つまたは複数の２次サイトへデータの指定された各部分に関するデータ更新を転送する責務を負い、通信パスを介して互いに通信する能力を有する複数のバックアップ・コンポーネントを使用してデータを転送するための方法。
【請求項２】
前記データの部分に関するデータ更新を、前記１次ソースから前記データの部分に対し前記責務を負うバックアップ・コンポーネントとして割り当てられていない前記第２のバックアップ・コンポーネントで受け取った場合、前記第２のバックアップ・コンポーネントが前記データ更新を前記第１のバックアップ・コンポーネントに転送するステップをさらに有する、請求項１に記載の方法。
【請求項３】
前記データの部分に関するデータ更新を、前記データの部分に対し前記責務を負うバックアップ・コンポーネントとして割り当てられていない前記第２のバックアップ・コンポーネントから前記第１のバックアップ・コンポーネントへ転送した場合、前記第１のバックアップ・コンポーネントが前記データ更新にシーケンス番号を割り当てるステップと、
前記第１のバックアップ・コンポーネントが前記第２のバックアップ・コンポーネントに前記シーケンス番号を送信することによって、前記データ更新の受信に肯定応答するステップと、
をさらに有する、請求項１に記載の方法。
【請求項４】
前記データの部分に関するデータ更新を、前記データの部分に対し前記責務を負わない前記第２のバックアップ・コンポーネントで受け取った場合、前記第２のバックアップ・コンポーネントが前記データ更新を格納するステップ
をさらに有する、請求項１に記載の方法。
【請求項５】
前記第１のバックアップ・コンポーネントおよび前記第２のバックアップ・コンポーネントが第１の通信パスを介して互いに通信し、前記第１のバックアップ・コンポーネントおよび前記第２のバックアップ・コンポーネントがそれぞれ第２の通信パスを介して前記１次ソースと通信するものである、請求項１に記載の方法。
【請求項６】
前記第１のバックアップ・コンポーネントと、前記第２のバックアップ・コンポーネントと、前記１次ソースとが、互いに１つの通信パスを介して通信するものである、請求項１に記載の方法。
【請求項７】
さらに前記複数のバックアップ・コンポーネントのそれぞれが、データの特定部分にどのバックアップ・コンポーネントが割り当てられているかについてのマッピングを維持するものである、請求項１に記載の方法。
【請求項８】
前記複数のバックアップ・コンポーネントのうちの１つが前記データ更新を他のバックアップ・コンポーネントにミラーリングする場合、
前記ミラーリングされたデータ更新と共にシーケンス識別子を送信するステップと、
どのバックアップ・コンポーネントにデータ更新が送られたかを追跡するステップと、
をさらに有する、請求項１に記載の方法。
【請求項９】
前記複数のバックアップ・コンポーネントのうちの１つが他のバックアップ・コンポーネントからミラーリングされたデータ更新を受け取る場合、
前記ミラーリングされたデータ更新と共にシーケンス識別子を受信するステップと、
いずれのどのバックアップ・コンポーネントがデータ更新を送信したかを追跡するステップと、
をさらに有する、請求項１に記載の方法。
【請求項１０】
整合性のとれた状態に保つ必要がある関連するデータの集まりに対し前記責務を負う複数のバックアップ・コンポーネントからなるグループ外の他の新しいバックアップ・コンポーネントがアクティブであるかどうかを判別するステップと、
前記関連するデータに対するデータ更新の集まりであるトランザクション・セットの形成期間終了前に、データの１つまたは複数の部分に対し前記責務を負うバックアップ・コンポーネントとして、前記グループ内の各バックアップ・コンポーネントと前記他の新しいバックアップ・コンポーネントとを割り当てるステップと、
次の整合性のあるトランザクション・セットの形成期間中に、前記グループ内の各バックアップ・コンポーネントおよび前記新しい他のバックアップ・コンポーネントを使用してデータ更新を処理するステップと、
をさらに有する、請求項１に記載の方法。
【請求項１１】
前記新しい他のバックアップ・コンポーネントが前記バックアップ・コンポーネントのグループの一部となるステップを有する、請求項１０に記載の方法。
【請求項１２】
整合性のとれた状態に保つ必要がある関連するデータの集まりに対し前記責務を負う複数のバックアップ・コンポーネントからなるグループ内の第１のバックアップ・コンポーネントが使用可能でないかどうかを判別するステップと、
前記第１のバックアップ・コンポーネントが割り当てられていたデータの部分に対し、前記グループ内の他のバックアップ・コンポーネントを割り当てるステップと、
をさらに有する、請求項１に記載の方法。
【請求項１３】
前記第１のバックアップ・コンポーネントに関するデータ更新をミラーリングしていた前記グループ内の前記バックアップ・コンポーネントのそれぞれが、前記データ更新が実行された前記データの部分に対し前記責務を負う前記バックアップ・コンポーネントに対して前記データ更新をミラーリングするステップを有する、請求項１２に記載の方法。
【請求項１４】
前記データの部分に対し割り当てられ、前記データの部分に関するデータ更新を有する、前記バックアップ・コンポーネントのそれぞれが、他のバックアップ・コンポーネントに対して前記データ更新をミラーリングするステップを有する、請求項１２に記載の方法。
【請求項１５】
前記第１のバックアップ・コンポーネントに対してデータをミラーリングした前記グループ内の前記バックアップ・コンポーネントのそれぞれが、他のバックアップ・コンポーネントに対してデータ更新をミラーリングするステップを有する、請求項１２に記載の方法。
【請求項１６】
複数のバックアップ・コンポーネントを使用してコンピュータに１次ソースから２次サイトへデータを転送する処理を実行させるためのコンピュータ・プログラムであって、
前記コンピュータに、
データの指定された部分に関するデータ更新を前記１次ソースから前記２次サイトへ転送する責務を負うバックアップ・コンポーネントとして、前記データの部分に対し第１のバックアップ・コンポーネントを割り当てるステップと、
前記データの部分に関するデータ更新を前記１次ソースから前記第１のバックアップ・コンポーネントで受け取った場合、前記データの部分に対し前記責務を負うバックアップ・コンポーネントとして割り当てられていない第２のバックアップ・コンポーネントに前記データ更新をミラーリングするステップと、
を実行させる、各々が１つまたは複数の１次ソースから１つまたは複数の２次サイトへデータの指定された各部分に関するデータ更新を転送する責務を負い、通信パスを介して互いに通信する能力を有する複数のバックアップ・コンポーネントを使用してデータを転送する処理を実行させるためのコンピュータ・プログラム。
【請求項１７】
第１及び第２のバックアップ・コンポーネントを含む複数のバックアップ・コンポーネントを使用して１次ソースから２次サイトへデータを転送するシステムであり、
データの指定された部分に関するデータ更新を前記１次ソースから前記２次サイトへ転送する責務を負うバックアップ・コンポーネントとして、前記データの部分に対し第１のバックアップ・コンポーネントを割り当てるための手段と、
前記データの部分に関するデータ更新を前記１次ソースから前記第１のバックアップ・コンポーネントで受け取った場合、前記データの部分に対し前記責務を負うバックアップ・コンポーネントとして割り当てられていない第２のバックアップ・コンポーネントに前記データ更新をミラーリングするための手段と、
を有する、各々が１つまたは複数の１次ソースから１つまたは複数の２次サイトへデータの指定された各部分に関するデータ更新を転送する責務を負い、通信パスを介して互いに通信する能力を有する複数のバックアップ・コンポーネントを使用してデータを転送するためのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、任意数のバックアップ・コンポーネント用のシステム・アーキテクチャに関する。
【背景技術】
【０００２】
災害時リカバリ・システムは、通常、ある一時点での突然の壊滅破局的障害、または経時的なデータ損失という、２種類の障害に対処するものである。２番目の種類の漸進的災害の場合、ボリュームへのデータ更新が失われる可能性がある。データ更新のリカバリを支援するために、データのコピーをリモート位置で提供する場合がある。こうした二重または影シャドウイングのコピーは、通常、アプリケーション・システムが新しいデータを１次ストレージ・デバイスに書き込んでいる際に作成される。本特許出願の譲受人であるＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎ（ＩＢＭ）は、２次ストレージ・デバイスでデータのリモート・コピーを維持するために、拡張リモート・コピー（ＸＲＣ）およびピアツーピア・リモート・コピー（ＰＰＲＣ）という２つのシステムを提供している。
【０００３】
これらのシステムは、最新の安全なバックアップとシステム障害との間のデータの更新を回復するための方法を提供するものである。こうしたデータのシャドーイング・システムは、リモート・サイトでのローカル・アクセスなどのリカバリ以外の目的で追加のリモート・コピーを提供することもできる。ＩＢＭ（登録商標）ＸＲＣおよびＰＰＲＣシステムについては、ＩＢＭの出版物であるＩＢＭ文書番号ＳＣ３５−０１６９−０２「リモート・コピー：管理者の手引きと参照」（ＩＢＭ著作権１９９４、１９９６年）に記載されており、本出版物は参照によりその全文が本明細書に組み込まれている。
【０００４】
こうしたバックアップ・システムでは、データはボリューム・ペアで維持される。ボリューム・ペアは、１次ストレージ・デバイス内のボリュームと、１次ボリューム内で維持されるデータと整合性のあるコピーを含む２次ストレージ・デバイス内の対応するボリュームとからなる。通常、ペアの１次ボリュームは１次ダイレクト・アクセス・デバイス（ＤＡＳＤ）内で維持され、ペアの２次ボリュームは、１次ＤＡＳＤ上のデータをシャドーイングする２次ＤＡＳＤ内で維持される。１次ＤＡＳＤへのアクセスを制御するために１次ストレージ・コントローラを提供することが可能であり、２次ＤＡＳＤへのアクセスを制御するために２次ストレージ・コントローラを提供することが可能である。
【０００５】
ＩＢＭ（登録商標）ＸＲＣ環境では、１次ボリュームにデータを書き込むアプリケーション・システムには、時刻（ＴＯＤ）値をタイム・スタンプとしてデータ書き込みに提供するシスプレックス・タイマーが含まれる。アプリケーション・システムは、１次ＤＡＳＤ内のボリュームにデータ・セットを書き込む際に、こうしたデータ・セットにタイム・スタンプを押す。データ更新の保全性は、ボリューム・ペア内の２次ボリュームで実行されるデータ更新が、１次ボリュームで実行されたものと確実に同じ順序であることに関連する。ＸＲＣおよび他の従来技術のシステムでは、アプリケーション・プログラムによって提供されるタイム・スタンプがデータ更新の論理シーケンスを決定する。データベース・システムなどの多くのアプリケーション・プログラムでは、一定の書き込みはそれ以前の前の書き込みが実行されない限り実行不可能であり、そうでなければデータの保全性が脅かされることになる。保全性が前のデータ書き込みの実行に依存するというこうしたデータ書き込みは、依存書き込みと呼ばれる。たとえばある顧客が口座を開設して＄４００を預金し、その後＄３００を引き出した場合、システムに対するその引き出しの更新は、その他の書き込み、すなわち口座の開設および預け入れに依存するものである。こうした依存トランザクションが１次ボリュームから２次ボリュームへとコピーされる場合、依存書き込み操作の保全性を維持するために、トランザクションの順序が維持されなければならない。
【０００６】
１次および２次ＤＡＳＤ内のボリュームは、すべての書き込みがその論理順序で転送された場合、すなわち、すべての依存書き込みがそれに依存している書き込みより前に転送された場合に整合性を保つものである。これは銀行業務の例では、預け入れが引き出しの前に２次ボリュームに書き込まれることを意味する。整合性グループとは、整合性の取れた状態に保つ必要のある関連ボリュームの集まりのことである。整合性のあるトランザクション・セットとは、依存書き込みが整合性の取れた状態で守られるような１次ボリュームに対するデータ更新の集まりのことである。たとえば銀行業務の例では、引き出しトランザクションは整合性を維持するために預け入れと同じ整合性のあるトランザクション・セットにあるか、またはその後の整合性のあるトランザクション・セットにあるものとする必要があり、引き出しが以前の整合性のあるトランザクション・セット内にある可能性はない。整合性グループは、ボリューム間をまたがってデータの整合性を維持する。たとえば障害が発生した場合、預け入れは引き出しの前に２次ボリュームに書き込まれることになる。したがって２次ボリュームからデータが回復される場合、回復されたデータは整合性が取れていることになる。
【０００７】
整合性時間とは、アプリケーション・システムのデータ・セットへのタイム・スタンプからシステムが導出する時間のことである。整合性グループは、整合性タイム・スタンプと同じかまたはこれよりも早いタイム・スタンプを有する整合性グループ内のすべてのデータ書込みについて、整合性の取れた時間を有する。ＩＢＭ（登録商標）ＸＲＣ環境では、整合性時間とは、２次ボリュームへのデータ更新が整合性の取れたものであることをシステムが保証する最新時間である。アプリケーション・プログラムが１次ボリュームにデータを書き込んでいる限り、整合性時間は増加する。しかしながら、データ更新のアクティビティが終了すると、他の整合性グループに時間参照を提供するためのタイム・スタンプを伴うデータ・セットがないために、整合性時間は変化しない。整合性グループ内のすべてのレコードが２次ボリュームに書き込まれると、報告された整合性時間は整合性グループ内のすべてのレコードの最新のタイム・スタンプを反映することになる。データ書込みの順次整合性を維持するための方法、ならびに１次ＤＡＳＤと２次ＤＡＳＤとの間でのデータ転送における順次整合性を維持するために整合性グループを形成するための方法については、本特許出願の譲受人であるＩＢＭに譲渡され、参照によりその全文が本明細書に組み込まれた、米国特許出願第５６１５３２９号および第５５０４８６１号に記載されている。
【０００８】
通常、１次ストレージ・デバイスが更新される時間と２次ストレージ・デバイスが更新される時間との間にはタイムラグがある。たとえば、銀行の顧客が普通預金口座から借入金勘定への支払を行う場合がある。このトランザクションには、普通預金口座からの引き出しと借入金勘定への支払いという、２つの部分がある。このトランザクションの２つの部分は原子的に不可分に実行およびアーカイブすべきである。問題を避けるために、この２つの部分の順序（すなわち支払いの後に引き出し）も維持すべきである。場合によっては、トランザクションの実行中に１次ストレージ・デバイスが障害を起こす可能性がある。たとえば、普通預金口座からの支払いに関するデータが２次ストレージに送信される一方で、システム障害が原因で引き出しデータが送信されない可能性がある。この場合、１次ストレージ・デバイスは引き出しと支払いの両方を反映し、２次ストレージ・デバイスは支払いしか反映しないことになる。したがって災害および回復の後、トランザクションの一部のみが２次ストレージ・デバイスから１次ストレージ・デバイスに適用され、その結果、回復したアカウント・レコードは借入金勘定における支払いは反映するが、普通預金口座からの引き出しは反映しない。この例では、銀行は普通預金口座からの引き出し金額を失い、この金額は顧客の勘定に残ることとなる。銀行は金銭的な損害を蒙るため、このような回復を望ましく思わない。を失うことから、災害回復を喜ばないことになる。
【０００９】
加えて、バックアップ・デバイスまたはコンピュータは１次ストレージ・コントローラからインバウンド・データ書き込みを受け取り、そのデータ書き込みを２次ストレージ・コントローラにアウトバウンド(outbound)で送る場合もある。こうしたシステムが適切な性能を備えるためには、１次ストレージ・コントローラから２次ストレージ・コントローラへデータを転送するために共に働くいくつかのバックアップ・デバイスまたはコンピュータを有することが望ましい。加えて、２次ストレージ・デバイスから復元されたデータは顧客に価値を与えるために整合性の取れたものである必要があるため、転送されたデータは整合性のあるコピーを作成しなければならない。
【特許文献１】米国特許出願第５６１５３２９号
【特許文献２】米国特許出願第５５０４８６１号
【非特許文献１】ＩＢＭ文書番号ＳＣ３５−０１６９−０２「リモート・コピー：管理者の手引きと参照」（ＩＢＭ著作権１９９４、１９９６年）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、複数のバックアップ・デバイスまたはコンピュータを使用してデータを転送する改善された技術が求められている。
【課題を解決するための手段】
【００１１】
複数のバックアップ・コンポーネントを使用してデータを転送するための方法、システム、およびプログラムが提供される。データの一部分に対する責務が第１のバックアップ・コンポーネントに割り当てられる。１次ソースからのデータのその部分に関するデータ更新が第１のバックアップ・コンポーネントで受け取られると、データ更新は、データのその部分に対する責務が割り当てられていない第２のバックアップ・コンポーネントにミラーリングされる。
【００１２】
バックアップ・コンポーネントのグループを使用してデータ更新を処理するための方法、システム、およびプログラムも提供される。新しいバックアップ・コンポーネントがアクティブであることが判別される。整合性のあるトランザクション・セット形成期間の終わり近くに、データの１つまたは複数の部分に対する責務が、グループ内の各バックアップ・コンポーネントおよび新しいバックアップ・コンポーネントに割り当てられる。次の整合性のあるトランザクション・セット形成期間中に、グループ内の各バックアップ・コンポーネントおよび新しいバックアップ・コンポーネントを使用してデータ更新が処理される。
【００１３】
さらに、バックアップ・コンポーネントのグループを使用してデータ更新を処理するための方法、システム、およびプログラムが提供される。グループ内の第１のバックアップ・コンポーネントがもはや使用可能でないことが判別される。第１のバックアップ・コンポーネントが責務を割り当てられているデータの部分が、グループ内の他のバックアップ・コンポーネントそれぞれに再度割り当てられる。
【００１４】
次に図面を参照すると、図面全体を通じて同じ参照番号は対応する部分を表すものである。
【発明を実施するための最良の形態】
【００１５】
以下の説明では、本明細書の一部を形成し本発明のいくつかの実施を示す形態を示す添付の図面を参照する。本発明の範囲を逸脱することなしにく、他の実施態様をを使用採用することが可能であり、構造上および操作上の変更が可能であることを理解されよう。
【００１６】
本発明の実施では、任意数（「ｎ」）の協働可能なバックアップ・コンポーネント用のシステム・アーキテクチャを提供する。各バックアップ・コンポーネントは１つまたは複数の１次ソースから（たとえばストレージ・サーバからＰＰＲＣを介して、またはホストからフォーク書き込み（ｆｏｒｋｅｄ  ｗｒｉｔｅ）を介して）、データ更新を受け取ることができる。各バックアップ・コンポーネントは、入ってくるデータ更新を少なくとも１つの他のバックアップ・コンポーネントにミラーリングして、単一の障害点を避ける。「ミラーリング」という用語は、データ更新のコピーを他のバックアップ・コンポーネントに送信する場合として説明することができる。本明細書の実施態様例では、例示のためにデータ更新を１つのバックアップ・コンポーネントのみにミラーリングすることに言及しているが、本発明の他の実施では、１つのバックアップ・コンポーネントが複数のバックアップ・コンポーネントにデータ更新をミラーリングすることができる。
【００１７】
バックアップ・コンポーネントのグループは、データの一部分（たとえば、１つまたは複数のボリューム）に対して整合性のあるトランザクション・セットを協働可能なように形成する。し、この整合性のあるトランザクション・セットは、グループ内のすべてのバックアップ・コンポーネントにまたがって有効である。「整合性のあるトランザクション・セット」とは、２次サイトで適用されたときに、複製に含まれるボリュームに関して１次サイトのポイント・イン・タイム整合性コピーを形成するものであり、複製の開始時に１次サイトと２次サイトとが同一であったと想定する、トランザクションのグループとして説明することができる。その後バックアップ・コンポーネントは、そのデータ更新を２次サイトに転送する。
【００１８】
したがってバックアップ・コンポーネントは協働して、１次ソースからデータ更新を受け取り、可用性を上げる向上させるためにデータ更新をミラーリングし、その更新を２次サイトに転送する。システム・アーキテクチャ内には任意数のバックアップ・コンポーネントが存在し、この数は、バックアップ・コンポーネントが失敗するか、あるいは追加または削除された場合にいつでも変更することができる。各バックアップ・コンポーネントは、通信パスを介して（たとえば高速データ・リンクを介して）他のすべての他のバックアップ・コンポーネントと通信する機能を有する。ある一定の実施実施態様では、この通信パスは１次ソースおよび２次サイトと通信するために使用される通信パスとは別のものである。本発明の実施では、バックアップ・コンポーネントが追加、削除、または失敗した場合でも、いかなるデータ更新も失うことなく、また２次サイトとの間でのデータ更新の受信および送信タスクを完了することができる。
【００１９】
ある一定の実施実施態様では、１次サイトと２次サイトとの間でリンクされている同一ボリュームのペアがある。したがって、１次サイトでボリュームが更新されると、対応するボリュームが２次サイトで更新される。このデータ更新は、バックアップ・コンポーネントを介して伝搬される。
【００２０】
ある一定の実施実施態様では、適切な性能を維持しながらデータの保全性を保持するために、特定のボリュームに関するすべてのデータ更新が単一のバックアップ・コンポーネントによって２次サイトに転送される。すなわち、データ更新がバックアップ・コンポーネントに着信する前に、各バックアップ・コンポーネントにボリューム・セット（１つまたは複数のボリュームを含む）に対する責務(responsibility)が割り当てられる。ボリューム・セットに対する責務を負うバックアップ・コンポーネントは、それらのボリュームに関するデータ更新を２次サイトに送る。
【００２１】
しかしながら、任意のバックアップ・コンポーネントが任意のボリュームに関するデータ更新を１次ソースから受け取ることが可能であるが、ボリュームに対する責務が割り当てられていないバックアップ・コンポーネントは、そのボリュームに関するデータ更新を２次サイトに送らない。その代わりに、ボリュームに対する責務は割り当てられていないがそのボリュームへのデータ更新を受け取ったバックアップは、そのボリュームに対する責務が割り当てられているバックアップ・コンポーネントにそのデータ更新をミラーリングする。ある一定の実施実施態様では、バックアップ・コンポーネントが責務を負っているボリュームにそれらをマッピングする情報と、どのバックアップ・コンポーネントがこのバックアップ・コンポーネントにデータ更新をミラーリングしたかを識別する情報と、どのバックアップ・コンポーネントがこのバックアップ・コンポーネントからデータ更新を送られたかを識別する情報とを、各バックアップ・コンポーネントが維持する。
【００２２】
図１は、本発明のある一定の実施実施態様に従ったコンピューティング環境を示すブロック図である。１次制御ユニット１１０、１３０、および１５０（たとえば１次ストレージ・コントローラ）は、１つまたは複数のホスト・コンピュータ１１４、１３４、または１５４それぞれに、１次ＤＡＳＤ１１２、１３２、および１５２それぞれへのアクセスを提供する。本明細書の例ではＤＡＳＤに言及しているが、本発明の実施は様々なストレージ・デバイスで使用することが可能であり、ＤＡＳＤを使用することに限定されることを意図するものではない。１次制御ユニット１１０、１３０、および１５０は１次キャッシュ（図示せず）を有することも可能であり、その場合１次ＤＡＳＤ１１２、１３２、および１５２内のトラックへのデータ更新は、それぞれ１次ＤＡＳＤ１１２、１３２、および１５２にデステージ(destage)されるまで維持される。１次ＤＡＳＤ１１２、１３２、および１５２のボリュームのすべてまたはサブセットのバックアップ・コピーは、それぞれ２次ＤＡＳＤ１１８、１３８、および１５８で維持することができる。なお、本明細書の例ではＤＡＳＤに言及しているが、本発明の実施は様々なストレージ・デバイスで使用することが可能であり、ＤＡＳＤを使用することに限定されることを意図するものではない。
【００２３】
１次サイトは、１次制御ユニット１１０、１３０、および１５０と、１次ＤＡＳＤ１１２、１３２、および１５２と、ホスト・コンピュータ１１４、１３４、および１５４を含むことができる。２次サイトは、２次制御ユニット１１６、１３６、および１５６（たとえば２次ストレージ・コントローラ）と、２次ＤＡＳＤ１１８、１３８、および１５８とを含み得るむことができる。
【００２４】
ある一定の実施実施態様では、「ボリューム・ペア」は、１次ＤＡＳＤ内のボリュームと、ボリューム・ペア内の１次ボリュームでデータのバックアップ・コピーを維持する２次ＤＡＳＤ内のそのボリュームのシャドーとして、説明することができる。ある一定の実施実施態様では、それぞれの１次ボリュームについて整合性のあるコンテンツを備えた対応する２次ボリュームがあり、これがボリューム・ペアである。たとえば、１次ＤＡＳＤ１１２へのデータ更新は、２次ＤＡＳＤ１１８に格納するために２次制御ユニット１１６に転送される。
【００２５】
１次制御ユニット１１０、１３０、および１５０は、更新の不揮発性コピーを維持するために、バッテリ・バックアップ付き揮発性メモリなどの不揮発性ストレージ・ユニット（図示せず）をさらに含むことができる。１次制御ユニット１１０、１３０、および１５０と、２次制御ユニット１１６、１３６、および１５６とは、ＩＢＭ（登録商標）３９９０、モデル６ストレージ・コントローラ、Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ（登録商標）（ＥＳＳ）、または当分野で知られた任意の他の制御ユニットからなるものとすることができる。
【００２６】
バックアップ・コンポーネント１００、１０２、および１０４は、１次ソースからデータ更新を受け取る。たとえば図１の例では、バックアップ・コンポーネント１００、１０２、および１０４は、１次ＤＡＳＤ１１２、１３２、および１５２に対して実行されたデータ更新を、バックアップ・コンポーネント１６０、１６２、および１６４を介して２次制御ユニット１１６、１３６、および１５６に転送する。「バックアップ・コンポーネント」という用語は、たとえばデバイスまたはコンピュータとして説明することができる。３つのバックアップ・コンポーネント１００、１０２、および１０４が１次制御ユニット１１０、１３０、および１５０と通信しているように示されているが、これに限定されることなく、「ｎ」個のバックアップ・コンポーネントが可能である。また、３つのバックアップ・コンポーネント１６０、１６２、および１６４が２次制御ユニット１１６、１３６、および１５６と通信しているように示されているが、これも「ｎ」個のバックアップ・コンポーネントが可能である。
【００２７】
バックアップ・コンポーネント１００、１０２、および１０４はそれぞれ、１次制御ユニット１１０、１３０、および１５０からバックアップ・コンポーネント１６０、１６２、および１６４それぞれへデータ更新を転送するためのプロセッサ、バッファ、およびコンピュータ・プログラムを含むことができる。バックアップ・コンポーネント１６０、１６２、および１６４はそれぞれ、２次制御ユニット１１６、１３６、および１５６それぞれへデータ更新を転送するためのコンピュータ・プログラムを含むことができる。たとえば、バックアップ・コンポーネント１００、１０２、および１０４内のデータ更新を転送するためのコンピュータ・プログラムは、ＩＢＭ（登録商標）ＸＲＣシステムに含まれるＳＤＭプログラムなどの、システム・データ・ムーバ（ＳＤＭ）プログラムとすることができる。したがってデータ更新は、１次１１０、１３０、および１５０と２次１１６、１３６、および１５６の制御ユニット間で、バックアップ・コンポーネント１００、１０２、１０４、１６０、１６２、および１６４を介して転送される。
【００２８】
バックアップ・コンポーネント１００、１０２、および１０４はそれぞれ、任意の１次制御ユニット１１０、１３０、および１５０からデータ更新を転送することができる。また、バックアップ・コンポーネント１００、１０２、および１０４はそれぞれ相互に通信することもできる。ある一定の実施実施態様では、１次制御ユニット１１０、１３０、および１５０とバックアップ・コンポーネント１００、１０２、および１０４との間の通信パスは、バックアップ・コンポーネント１００、１０２、および１０４自体の間の通信パスとは異なる。
【００２９】
複製されている各１次ＤＡＳＤからの各ボリュームは、２次ＤＡＳＤ上のボリュームに対応する。たとえば、１次ＤＡＳＤ１１２上の第１のボリュームは２次ＤＡＳＤ１３８上のボリュームにバックアップされ、１次ＤＡＳＤ１１２上の第２のボリュームは２次ＤＡＳＤ１５８上のボリュームにバックアップされる。ある一定の実施実施態様では、１つまたは複数のボリュームはバックアップされない。
【００３０】
ある一定の実施実施態様では、バックアップ・コンポーネント１００、１０２、および１０４は１次制御ユニット１１０、１３０、および１５０からデータ更新を受け取る。ある一定の実施実施態様では、バックアップ・コンポーネント１００、１０２、および１０４は１次ＤＡＳＤ１１２、１３２、および１５２へのデータ更新をインターセプトすることができる。
【００３１】
１次ＤＡＳＤ１１２、１３２、および１５２および２次ＤＡＳＤ１１８、１３８、および１５８はボリュームを含む。ある一定の実施実施態様では、１つのバックアップ・コンポーネント１００、１０２、または１０４が、１つまたは複数の指定されたボリュームに関するデータ更新を処理する責務を負う。たとえば、バックアップ・コンポーネント１０２は１次ＤＡＳＤ１１２上のボリューム１およびボリューム６に関する更新情報を使用してすべてのデータ更新を処理することが可能であり、バックアップ・コンポーネント１０４は１次ＤＡＳＤ１１２上のボリューム２に関する更新情報を使用してすべてのデータ更新を処理することが可能である。あるボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４は、そのボリュームに関するデータ更新をバックアップ・コンポーネント１６０、１６２、および１６４に転送する責務を負う。
【００３２】
ある一定の実施実施態様では、バックアップ・コンポーネント１００、１０２、１０４、１６０、１６２、および１６４、１次制御ユニット１１０、１３０、および１５０、ならびに２次制御ユニット１１６、１３６、および１５６は、直接高速伝送回線（たとえばＥｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍ  Ｃｏｎｎｅｃｔｉｏｎ（ＥＳＣＯＮ（登録商標））リンク）などの通信パスを介して通信する。ただし通信パスは、ネットワーク伝送回線、光ファイバー・ケーブルなどを含む当分野で知られた任意の他の通信手段からなるものとすることができる。
【００３３】
図２は、本発明の代替の実施に従ったコンピューティング環境を示すブロック図である。具体的に言えば、特別バックアップ・コンポーネント１０８は、処理を継続することができない（たとえば失敗したかまたは修理のために除去された）バックアップ・コンポーネント１００、１０２、または１０４に関する処理を引き継ぐことができる場合がある。
【００３４】
図３は、本発明の代替の実施他の実施態様に従ったコンピューティング環境を示すブロック図である。具体的に言えば、１次制御ユニット１１０、１３０、および１５０よりもバックアップ・コンポーネント１００および１０２の方が数が少ないものとすることができる。１次制御ユニット１１０、１３０、および１５０はそれぞれ、１つまたは複数のバックアップ・コンポーネント１００または１０２にリンクされるものとすることができる。
【００３５】
図４は、本発明のある一定の実施実施態様に従ったコンピューティング環境を示すブロック図である。「ｎ」個のバックアップ・コンポーネントがあるものとすることが可能であり、省略符号で表されている。１次サイトとバックアップ・コンポーネント１００、１０２、および１０４との間の通信は、短い距離にわたって同期的とすることができる。バックアップ・コンポーネント１００、１０２、および１０４とバックアップ・コンポーネント１６０、１６２、および１６４との間の通信は、インターネット・プロトコル（ＩＰ）リンクを備えた仮想私設網（ＶＰＮ）を介して長距離にわたって非同期的とすることができる。バックアップ・コンポーネント１６０、１６２、および１６４の間の通信は、ＤＡＳＤへの直接Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）書き込みとすることができる。
【００３６】
本発明の実施では、バックアップ・コンポーネント１００、１０２、および１０４はインバウンド・トランザクションを受け取り、そのインバウンド・トランザクションを第１の識別子に関連付ける（すなわち、同じ識別子に関連付けられたすべてのトランザクションが整合性のあるトランザクション・セットを形成する）。バックアップ・コンポーネント１００、１０２、または１０４の外に転送されるインバウンド・トランザクションを「アウトバウンド」トランザクションと呼ぶことができる。ある一定の実施実施態様では、あるボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４は、該当するバックアップ・コンポーネント１６０、１６２、または１６４に対してアウトバウンド・トランザクションを転送する。ある一定の実施実施態様では、複数のボリュームに対する責務を負うバックアップ・コンポーネント（たとえば１００）は、バックアップ・コンポーネントのうちの１つ（たとえば１６０）に対して複数のボリュームに関するアウトバウンド・トランザクションを転送する。ある一定の代替の実施他の実施態様では、複数のボリュームに対する責務を負うバックアップ・コンポーネント（たとえば１００）は、複数のボリュームに関するアウトバウンド・トランザクションを異なるバックアップ・コンポーネント１６０、１６２、または１６４に転送することができる。バックアップ・コンポーネント１００、１０２、および１０４は、各セットが異なる識別子に関連付けられた複数セットのトランザクションを格納することができる。
【００３７】
さらに、バックアップ・コンポーネント１６０、１６２、および１６４が２次制御ユニット１１６、１３６、および１５６へトランザクションを転送すると、バックアップ・コンポーネント１００、１０２、および１０４も１次制御ユニット１１０、１３０、および１５０から追加のトランザクションを受け取る。
【００３８】
本発明のある一定の実施実施態様では、トランザクション・セットに関して２次サイトでデータの整合性コピーを作成する。トランザクション・セットには識別子が関連付けられる。たとえば識別子は、色（たとえば緑、青、赤、または黄色）、整数、英数文字列、または他の識別子とすることができる。ある一定の実施実施態様では、各トランザクション・セットが、指定された期間中に受け取られたトランザクションの代表である。期間は様々なユーザ向けにカスタマイズすることができる。たとえば、１人のユーザは毎分ごとに整合性コピーを作成するように希望し、他のユーザは２０秒ごとに整合性コピーを作成するように希望することができる。この期間は、数日などのより長い期間とすることもできる。ある一定の実施実施態様では、識別子は異なるトランザクション・セットに固有のものである。
【００３９】
本発明の実施では、バックアップ・コンポーネント１００、１０２、１０４は第１の識別子に関連付けられたアウトバウンド・トランザクション（すなわち整合性のあるトランザクション・セット）を、バックアップ・コンポーネント１６０、１６２、１６４に送信する。各バックアップ・コンポーネント１００、１０２、および１０４が第１の識別子に関連付けられたすべてのアウトバウンド・トランザクションの送信を完了すると、バックアップ・コンポーネント１６０、１６２、１６４は、それらのアウトバウンド・トランザクション内のデータを受信およびミラーリングしたことをバックアップ・コンポーネント１００、１０２、および１０４に確認する。その後バックアップ・コンポーネント１００、１０２、および１０４は、他の（たとえば第２の）識別子に関連付けられたトランザクションの送信を自由に開始することができる。バックアップ・コンポーネント１６０、１６２、および１６４は、第１の識別子に関連付けられたデータ・トランザクションを該当する第２の制御ユニット１１６、１３６、および１５６に送信する。すべてのバックアップ・コンポーネント１６０、１６２、および１６４が第１の識別子に関連付けられたすべてのアウトバウンド・データ・トランザクションの送信を完了すると、バックアップ・コンポーネント１６０、１６２、および１６４は、他の識別子に関連付けられたデータ・トランザクションを第２の制御ユニット１１６、１３６、および１５６へ自由に送信できるようになる。バックアップ・コンポーネント１６０、１６２、および１６４は、第２の制御ユニット１１６、１３６、および１５６へデータ・トランザクションを転送している間に、バックアップ・コンポーネント１００、１０２、および１０４からデータ・トランザクションを受信することができる。
【００４０】
したがって、ある識別子に関連付けられたすべてのＩ／Ｏトランザクションは、他の（たとえば他の色、数字、記号、文字などの）識別子に関連付けられた任意のＩ／Ｏトランザクションの前に２次サイトに書き込まれて格納される。この方法では、関連付けられた識別子を有するトランザクション・セットが２次サイトで完全にアーカイブされた場合、２次データはその識別子に関連付けられたトランザクションが処理されたときの１次データを反映する。したがって、所与の識別子に関するすべてのＩ／Ｏトランザクションが２次サイトの２次データに送られた場合、その２次データのグループは所望の整合性状態にある。この時点で２次データは、１次サイトで整合性のあるトランザクション・セットが形成された時点での１次サイトでの１次データの正確なコピーであり、２次サイトは２次データからコピーを作成することができる。これらのコピーは、特定のトランザクション・セットが２次サイトで２次データに適用された後の１次サイトでの１次データを反映する「整合性のある」コピーである。
【００４１】
図５および６は、本発明のある一定の実施実施態様に従った、各バックアップ・コンポーネント１００、１０２、および１０４によって維持されるデータを示す図である。図５では、テーブル２００は、バックアップ・コンポーネントが責務を負うボリュームにバックアップ・コンポーネントをマッピングするものである。図６では、テーブル２１０は各更新に関して、関連付けられたシーケンス識別子、データ更新の受信元であるボリューム（すなわち「ソース」ボリューム）、データ更新の送信先であるボリューム（すなわち「ターゲット」ボリューム）、データ更新のミラーリング先であるバックアップ・コンポーネント、およびデータ更新のミラーリング元であるバックアップ・コンポーネントを識別する。
【００４２】
図７および８は、本発明のある一定の実施実施態様に従った、バックアップ・コンポーネント１００、１０２、または１０４で受け取ったデータ更新を処理するためにバックアップ・コンポーネント１００、１０２、または１０４内で実施される論理を示す図である。制御はブロック３００で、バックアップ・コンポーネント１００、１０２、または１０４がボリュームに関するデータ更新を受け取ることで開始される。ブロック３０２で、バックアップ・コンポーネント１００、１０２、または１０４は、データ更新が１次ソース（たとえば１次制御ユニット１１０、１３０、または１５０）から受け取られたかどうかを判別する。受け取られたそうであれば場合には処理はブロック３０４へ進み、受け取られなかったそうでない場合には、データ更新は他のバックアップ・コンポーネント１００、１０２、または１０４から受け取られたものであり、処理はブロック３２０へ進む。
【００４３】
ブロック３０４で、データ更新を受け取ったバックアップ・コンポーネント１００、１０２、または１０４は、データ更新の受信元であるボリュームに対する責務を自分が負っているかどうかを判別する。負っている場合処理はブロック３０６へ進み、負っていないそうでない場合には処理はブロック３１２へ進む。
【００４４】
ブロック３０６で、バックアップ・コンポーネント１００、１０２、または１０４はデータ更新を受け入れ、そのデータ更新にシーケンス識別子を割り当てる。ある一定の実施実施態様では、シーケンス識別子はボリュームに関連付けられた実行中の番号リストからのものである。これらの実施態様では、各ボリュームが（たとえばシステム障害の後に）トランザクションを順番に並べやすいように一連の増加番号を有する。ある一定の代替の実施他の実施態様では、シーケンス番号の１つの大規模なリストがボリュームを横切って使用される。ブロック３０８で、バックアップ・コンポーネント１００、１０２、または１０４は、それに関するデータ更新が受け取られたボリュームに対する責務を負わない他のバックアップ・コンポーネント１００、１０２、または１０４に対して、データ更新およびシーケンス識別子をミラーリングする。ブロック３１０で、バックアップ・コンポーネント１００、１０２、または１０４は、どのバックアップ・コンポーネント１００、１０２、または１０４にデータ更新が送られたかを追跡する。すなわち、あるボリュームに関するデータ更新が、１次ソースからそのボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４に着信すると、そのバックアップ・コンポーネント１００、１０２、または１０４はその更新を受け入れ、シーケンス識別子を割り当て、そのデータ更新を他のバックアップ・コンポーネント１００、１０２、または１０４のうちの１つにミラーリングする。
【００４５】
ブロック３１２で、それに関するデータ更新が受け取られたボリュームに対する責務を負わないバックアップ・コンポーネント１００、１０２、または１０４はデータ更新を受け入れる。ブロック３１４で、バックアップ・コンポーネント１００、１０２、または１０４は、それに関するデータ更新が受け取られたボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４に対してデータ更新をミラーリングする。ブロック３１６で、バックアップ・コンポーネント１００、１０２、または１０４はボリュームに対して責務を負うバックアップ・コンポーネント１００、１０２、または１０４からシーケンス識別子を受け取り、その識別子とどのバックアップ・コンポーネント１００、１０２、または１０４にデータ更新が送られたかとの両方を追跡する。すなわち、あるボリュームに関するデータ更新が、１次ソースからそのボリュームに対する責務を負わないバックアップ・コンポーネント１００、１０２、または１０４に着信すると、そのバックアップ・コンポーネント１００、１０２、または１０４はその更新を受け入れ、そのボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４にそのデータ更新をミラーリングする。
【００４６】
ブロック３２０（図８）で、バックアップ・コンポーネント１００、１０２、または１０４は他のバックアップ・コンポーネント１００、１０２、または１０４からデータ更新を受け取っており、これがボリュームに対して責務を負うものであるかどうかを判別する。責務を負うものであれば処理はブロック３２２へ進み、そうでなければ処理はブロック３２８へ進む。
【００４７】
ブロック３２２で、バックアップ・コンポーネント１００、１０２、または１０４は更新を受け入れ、シーケンス識別子を割り当てる。ブロック３２４で、バックアップ・コンポーネント１００、１０２、または１０４は、どのバックアップ・コンポーネント１００、１０２、または１０４がデータ更新を送ったかを追跡する。ブロック３２６で、バックアップ・コンポーネント１００、１０２、または１０４は、更新をミラーリングしたバックアップ・コンポーネント１００、１０２、または１０４に、シーケンス識別子を含む肯定応答を送る。すなわち、あるボリュームに関するデータ更新が、そのボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４に他のバックアップ・コンポーネント１００、１０２、または１０４から着信した場合、ミラーリングされたデータ更新を受け取るバックアップ・コンポーネント１００、１０２、または１０４はそのデータ更新を受け入れ、そのデータ更新にシーケンス識別子を割り当て、どのバックアップ・コンポーネント１００、１０２、または１０４がその更新を送信したかを追跡し、そのシーケンス識別子を含む肯定応答を送信する。
【００４８】
ある一定の実施実施態様では、ブロック３２８で、バックアップ・コンポーネント１００、１０２、または１０４は、更新が適用されたボリュームに対する責務を負うバックアップ・コンポーネント１００、１０２、または１０４からの更新であるかどうかを判別する。１０４からの更新である場合にはそうであれば処理はブロック３３０へ進み、１０４からの更新でない場合にはそうでなければ処理はブロック３３４へと進む。ブロック３３０で、バックアップ・コンポーネント１００、１０２、または１０４は更新およびシーケンス識別子を受け入れる。ブロック３３２で、バックアップ・コンポーネント１００、１０２、または１０４は、どのバックアップ・コンポーネント１００、１０２、または１０４が更新を送ったかを追跡する。ブロック３３４で、バックアップ・コンポーネント１００、１０２、または１０４は更新を拒否し、オプションでエラー処理が実行される。
【００４９】
ある一定の代替の実施他の実施態様では、１次ソースからデータ更新を受け取るバックアップ・コンポーネント１００、１０２、または１０４それぞれが、（シーケンス番号を割り当てる代わりに、またはこれに加えて）更新にタイム・スタンプを押す。こうした実施態様では、すべてのバックアップ・コンポーネント１００、１０２、または１０４の内部クロックがネットワーク・タイム・プロトコル（ＮＴＰ）メカニズムを介して同期を維持することが可能であり、その結果としてタイム・スタンプはデータ更新の順序付けに対して有効となる。さらに他の実施態様では、すべてのバックアップ・コンポーネント１００、１０２、または１０４に対して共通のタイマーを使用することでタイム・スタンプが正確であることを保証し、この場合バックアップ・コンポーネント１００、１０２、または１０４は、必要に応じて共通のタイマーからタイム・スタンプを要求することになる。
【００５０】
ある一定の実施実施態様では、データ更新が常駐するボリュームに対する責務を負っているバックアップ・コンポーネント１００、１０２、または１０４からデータ更新をミラーリングするときに、任意のバックアップ・コンポーネント１００、１０２、または１０４から任意の１００、１０２、または１０４にデータ更新をミラーリングすることができる。ある一定の実施実施態様では、バックアップ・コンポーネント１００、１０２、または１０４それぞれが、バックアップ・コンポーネント１００、１０２、または１０４の更新のミラーリング先であるデフォルトのバックアップ・コンポーネント１００、１０２、または１０４を有する。
【００５１】
図９は、本発明のある一定の実施実施態様に従った、整合性のあるトランザクション・セット形成期間について各バックアップ・コンポーネント１００、１０２、または１０４内で実施される論理を示す図である。制御はブロック４００で、各バックアップ・コンポーネント１００、１０２、１０４が整合性のあるトランザクション・セットを形成するためにデータ更新を受け取って処理することで開始される。
【００５２】
ブロック４０２で、整合性のあるトランザクション・セット形成期間の終わり近くにバックアップ・コンポーネント１００、１０２、および１０４は、次の形成期間についてどのバックアップ・コンポーネント１００、１０２、または１０４がどのボリュームに対して責務を負うかを判別する。たとえばこれは、ラウンド・ロビン方式で実行することができる。別の方法として、より複雑な公式または技法に基づいて割り当てることができる。「整合性のあるトランザクション・セット形成期間」とは、バックアップ・コンポーネント１００、１０２、１０４のセットがデータ更新を受け取り、そのデータ更新を整合性のあるトランザクション・セット内に配置する間の期間として説明することができる。整合性のあるトランザクション・セット形成期間の終わりに、整合性のあるトランザクション・セットは完了する。
【００５３】
バックアップ・コンポーネント１００、１０２、および１０４内でのボリュームの再割り当てにより、各バックアップ・コンポーネント１００、１０２、および１０４に送られるデータ更新量のバランスを取る。ある一定の実施実施態様では、各形成期間で再割り当てが実行され、ある形成期間から次の形成期間へと条件が変化するのに応じて適切なバランスを取ることが保証される。ある一定の実施実施態様では、これが形成期間の終わり近くに実行され、その結果、後続の形成期間についての更新が着信する前に割り当てが完了する。ある一定の実施実施態様では、バックアップ・コンポーネント１００、１０２、および１０４がデータ更新を最初に受け入れるとき（すなわち、任意の形成期間の前）に、バックアップ・コンポーネント１００、１０２、および１０４はそれらの間で特定ボリュームに対する責務を割り当てる。ボリュームの再割り当てについては、同時係属中かつ本願の所有者が所有する、参照によりその全文が本明細書に組み込まれた、整理番号ＴＵＣ９２００３０１２０ＵＳ１のｘｘｘによりｘｘｘに出願された「ｘｘｘ」という名称の米国特許出願第１０ｘｘ／ｘｘｘｘｘｘ６４６６４８号に記載されている。さらにある一定の実施実施態様では、（たとえば、ボリュームの方がバックアップ・コンポーネントよりも少ないことが原因で）使用可能なすべてのバックアップ・コンポーネント１００、１０２、および１０４よりも少ないものに対して、ボリュームを再割り当てすることができる。
【００５４】
ブロック４０４で、整合性のあるトランザクション・セット形成期間の終わりに（すなわち、バックアップ・コンポーネント１００、１０２、および１０４それぞれで整合性のあるトランザクション・セットが形成された後）、各バックアップ・コンポーネント１００、１０２、および１０４は責務が割り当てられたボリュームに関するデータ更新を、バックアップ・コンポーネント１６０、１６２、および１６４を介して２次制御ユニット１１６、１３６、および１５６に転送する。ブロック４０６で、他のバックアップ・コンポーネント１００、１０２、または１０４に対してデータ更新がミラーリングされた各バックアップ・コンポーネント１００、１０２、または１０４は、ミラーリングされたデータ更新がバックアップ・コンポーネント１６０、１６２、および１６４に首尾よく送られたかどうかを判別し、首尾よく送られた場合はそのミラーリング済みのデータ更新を廃棄する。ある一定の実施実施態様では、バックアップ・コンポーネント１６０、１６２、および１６４は、データ更新が首尾よく受け取られたことを、２次制御ユニット１１６、１３６、および１５６のボリュームに対して責務のあるバックアップ・コンポーネント１００、１０２、または１０４に通知し、通知を受けたバックアップ・コンポーネント１００、１０２、または１０４は、データ更新がミラーリングされたバックアップ・コンポーネント１００、１０２、または１０４にその通知を送る。
【００５５】
図１０は、本発明のある一定の実施実施態様に従った、新しいバックアップ・コンポーネントがオンラインの場合の論理を示す図である。制御はブロック５００で、新しいバックアップ・コンポーネントが追加されたときに開始される。ブロック５０２で、整合性のあるトランザクション・セット形成期間の終わり近くに、ボリューム割り当てが実行されると新しいバックアップ・コンポーネントが含められる。すなわち新しいバックアップ・コンポーネントには、１つまたは複数のボリュームに対する責務が割り当てられる可能性がある。ブロック５０４で、次の整合性のあるトランザクション・セット形成期間中に、新しいバックアップ・コンポーネントは１次ソースからのデータ更新の受け入れおよび転送を開始する。
【００５６】
図１１および１２は、本発明のある一定の実施実施態様に従った、バックアップ・コンポーネント１００、１０２、または１０４が失敗するかまたは除去された（すなわち、もはや使用可能でない）場合の論理を示す図である。制御はブロック６００で、整合性のあるトランザクション・セット形成期間中にバックアップ・コンポーネント１００、１０２、または１０４が失敗するかまたは除去されることによって開始される。このような場合、他のバックアップ・コンポーネント１００、１０２、および／または１０４は、失敗または除去されたバックアップ・コンポーネント１００、１０２、および／または１０４のデータ更新を再構築し、いかなるデータ更新も失うことなく整合性のあるトランザクション・セットの形成を続行する。ブロック６０２で、バックアップ・コンポーネント１００、１０２、または１０４が失敗したかまたは除去された旨を通知すると、その失敗したかまたは除去されたバックアップ・コンポーネント１００、１０２、または１０４に割り当てられたボリュームは、残りのバックアップ・コンポーネント１００、１０２、および／または１０４に再度割り当てられる。ある一定の代替の実施他の実施態様では、特別バックアップ・コンポーネント（たとえば図２の１０８）が使用できる場合があり（すなわちＮ＋１システム・アーキテクチャで、Ｎはアクティブなバックアップ・コンポーネントの数を表す）、失敗したかまたは除去されたバックアップ・コンポーネント１００、１０２、または１０４のすべてのボリュームが、この特別バックアップ・コンポーネント１０８に割り当てられる。
【００５７】
失敗したバックアップ・コンポーネント１００、１０２、または１０４上にあった現在の整合性のあるトランザクション・セットに関するデータ更新も、他のバックアップ・コンポーネント１００、１０２、または１０４にミラーリングされたため、新しく割り当てられた１つまたは複数のバックアップ・コンポーネント１００、１０２、または１０４上でデータ更新を再構築することが可能である。ブロック６０４（図１２）で、バックアップ・コンポーネント１００、１０２、または１０４が責務を負わないボリュームに関するデータ更新をミラーリングする各バックアップ・コンポーネント１００、１０２、または１０４は、そのボリュームに対する責務を負う新しく割り当てられたバックアップ・コンポーネント１００、１０２、または１０４にデータ更新を送る。新しく割り当てられたバックアップ・コンポーネントは、データ更新のシーケンス識別子を使用してデータ更新を適切に順序付ける。
【００５８】
さらに、新しく割り当てられたバックアップ・コンポーネント１００、１０２、または１０４は、このバックアップ・コンポーネント１００、１０２、または１０４が失敗したかまたは除去されたバックアップ・コンポーネント１００、１０２、または１０４用のミラー・サイトであったことから、バックアップ・コンポーネント１００、１０２、または１０４が割り当てられたボリュームに関するデータ更新のうちの少なくとも一部をすでに含んでいる可能性がある。ブロック６０６で、失敗したかまたは除去されたバックアップ・コンポーネント１００、１０２、または１０４に関する何らかのデータ更新をすでに含むこれらの新しく割り当てられた各バックアップ・コンポーネント１００、１０２、または１０４は、他のバックアップ・コンポーネント１００、１０２、または１０４に対してデータ更新をミラーリングする。そこで、データ更新は再度２箇所に存在することになる。
【００５９】
失敗したかまたは除去されたバックアップ・コンポーネント１００、１０２、または１０４は、システム・アーキテクチャ内の他のバックアップ・コンポーネント１００、１０２、または１０４に割り当てられたボリュームに関するデータ更新用のミラー・サイトとしても働いていた。したがって、バックアップ・コンポーネント１００、１０２、または１０４は、失敗したかまたは除去されたバックアップ・コンポーネント１００、１０２、または１０４にミラーリングされたデータ更新がもはや第２のコピーを有していないことを認識し、各バックアップ・コンポーネント１００、１０２、または１０４は他のバックアップ・コンポーネント１００、１０２、または１０４に対してデータ更新を再度ミラーリングする（ブロック６０８）。ボリュームの所有権を移行した後、処理は通常通りに続行される。
【００６０】
ある一定の代替の実施他の実施態様では、各バックアップ・コンポーネント１００、１０２、または１０４は、どのデータがミラーリングされたかを記述するデータおよび／またはメタデータをミラーリングすることができる。したがってある一定の実施実施態様では、メタデータのみがミラーリングされる。これらの代替の実施では、メタデータがミラーリングされたときに障害が発生した場合、そのメタデータは、ミラーリング済みデータの再分配について説明したのと同じ方法で再分配されることになる。メタデータが再分配された後、メタデータを有する新しい責務のあるバックアップ・コンポーネント１００、１０２、または１０４は、メタデータに対応するデータを含む該当する１次制御ユニット１１０、１３０、または１５０から実際のデータを要求することになる。加えて、１次ソースからデータ更新を受け取るバックアップ・コンポーネント１００、１０２、または１０４に、データが常駐するボリュームに対する責務が割り当てられていない場合、そのバックアップ・コンポーネント１００、１０２、１０４はデータ（およびオプションでメタデータ）を転送することになるため、結果としてデータが常駐するボリュームに対する責務が割り当てられているバックアップ・コンポーネント１００、１０２、１０４がデータを有することになる。
【００６１】
したがって、本発明の実施によって提供されるシステム・アーキテクチャはスケーラビリティを備えることが可能である。本発明の実施は、システム・アーキテクチャに整合性のあるトランザクション・セットを形成する任意数のバックアップ・コンポーネントを提供する。さらにバックアップ・コンポーネントはいつでも、バックアップ・コンポーネントのグループと結合するかまたはグループから離脱することができる。
【００６２】
これらの特徴は、バックアップ・コンポーネントをオンデマンドで追加または削除することが望ましいグリッド・コンピューティングから見て有用である。また、こうしたシステム・アーキテクチャは、システムがいかなるデータも失うことなしに、個々のバックアップ・コンポーネントの障害を許容することができるものでもある。
【００６３】
特定のボリュームが特定のバックアップ・コンポーネントに割り当てられるが、そのボリュームに関するデータ更新は１次ソースから任意のバックアップ・コンポーネントに送ることが可能であるため、データ更新が適用されることになるボリュームが割り当てられたバックアップ・コンポーネントに対してデータ更新がミラーリングされる。バックアップ・コンポーネントが失敗または除去された場合、その失敗したかまたは除去されたバックアップ・コンポーネントに割り当てられたボリュームは、残りのバックアップ・コンポーネントに再度割り当てられ、このバックアップ・コンポーネントはシーケンス識別子を使用してデータ更新を順序付けする。またボリュームの割り当ては、整合性のあるトランザクション・セット形成間で動的に変更することもできる。さらに、最も小さなバックアップ・コンポーネントの単位は個々のバックアップ・コンポーネントである。
【００６４】
ＩＢＭ、Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ、およびＥＳＣＯＮは、米国および／または他の国でのＩｎｔｅｒｎａｔｉｏｎａｌ  Ｂｕｓｉｎｅｓｓ  Ｍａｃｈｉｎｅｓ  Ｃｏｒｐｏｒａｔｉｏｎの登録商標またはよく知られた法的な商標である。
【００６５】
追加の実施の詳細
任意数のバックアップ・コンポーネント用のシステム・アーキテクチャに関して記載された技法は、標準的なプログラミングおよび／またはエンジニアリング技法を使用してソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組み合わせを生産する製造の方法、装置、またはコンピュータ・プログラム品物（ａｒｔｉｃｌｅ）として実施することができる。本明細書で使用される「製造品コンピュータ・プログラム」とは、ハードウェア論理で実施されるコードまたは論理（たとえば、集積回路チップ、プログラム可能ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）、あるいは、磁気記憶媒体（たとえばハード・ディスク・ドライブ、フロッピィ・ディスク、テープなど）、光記憶媒体（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性および不揮発性メモリ・デバイス（たとえばＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、ファームウェア、プログラム可能論理など）などの、コンピュータ読取り可能媒体を意味するに格納することができる。コンピュータ読取り可能媒体内のコンピュータ・プログラムのコードは、プロセッサによってアクセスおよび実行される。様々な実施形態が実施されるコードには、伝送媒体を介してまたはファイル・サーバからネットワークを介してもアクセスすることができる。このような場合には、コードが実施される対象製造品は、ネットワーク伝送回線、無線伝送媒体、空間を伝搬する信号、電波、赤外線信号などの、伝送媒体を備えることができる。したがって「製造品」は、コードが具体化される媒体を備えることができる。加えて「製造品」は、コードが具体化、処理、および実行されるハードウェアおよびソフトウェア・コンポーネントの組み合わせを備えることができる。もちろん当業者であれば、本発明の範囲を逸脱することなくこの構成に多くの修正を行うことが可能であること、および製造品が当分野で知られた任意の情報伝達媒体を備えることが可能であることを理解されよう。
【００６６】
図７、８、９、１０、１１、および１２の論理は、特定の順序で発生する特定の操作を記載するものである。代替の実施では、ある一定の論理操作を異なる順序で実行する、修正する、または除去することが可能である。さらに、前述の論理に操作を追加し、依然として前述の実施に準拠することも可能である。また本明細書に記載された操作を順次実行すること、ある一定の操作を平行して処理すること、あるいは単一のプロセスによって実行するように記載された操作を分散プロセスによって実行することも可能である。
【００６７】
図７、８、９、１０、１１、および１２に例示された論理は、ソフトウェア、ハードウェア、プログラム可能およびプログラム不能なゲート・アレイ論理で、あるいはハードウェア、ソフトウェア、またはゲート・アレイ論理の何らかの組み合わせで、実施することができる。
【００６８】
図１３は、本発明のある一定の実施実施態様に従って使用可能なコンピュータ・システムのアーキテクチャを示す図である。たとえば、１次制御ユニット、２次制御ユニット、および／またはバックアップ・コンポーネントがコンピュータ・アーキテクチャ７００を実施することができる。コンピュータ・アーキテクチャ７００は、プロセッサ７０２（たとえばマイクロプロセッサ）、メモリ７０４（たとえば揮発性メモリ・デバイス）、およびストレージ７１０（たとえば、磁気ディスク・ドライブ、光ディスク・ドライブ、テープ・ドライブなどの、不揮発性ストレージ領域）を実施することができる。メモリ７０４は、１つまたは複数のバッファ（図示せず）を含むことができる。オペレーティング・システム７０５はメモリ７０４内で実行することができる。ストレージ７１０は、内部ストレージ・デバイスあるいは接続されているかまたはネットワーク・アクセス可能なストレージを備えることができる。ストレージ７１０内のコンピュータ・プログラム７０６をメモリ７０４にロードし、当分野で知られた方法でプロセッサ７０２によって実行することが可能である。さらにアーキテクチャは、１つまたは複数のネットワーク・カード７０８（たとえば、他のコンポーネントおよび／またはコンピュータと通信するためのファイバー・チャネル、インターネット・プロトコルなど）を含み、たとえばネットワークを介して他のコンポーネントおよび／またはコンピュータと通信できるようにすることもできる。入力デバイス７１２はプロセッサ７０２にユーザ入力を提供するために使用され、キーボード、マウス、ペン・スタイラス、マイクロフォン、タッチ・センシティブ・ディスプレイ画面、あるいは、当分野で知られた任意の他のアクティブ化または入力メカニズムを含むことができる。出力デバイス７１４またはディスプレイ・モニタ、プリンタ、ストレージなどの他のコンポーネントは、プロセッサ７０２からの情報をレンダリングすることができる。コンピュータ・システムのコンピュータ・アーキテクチャ７００は、図示されたよりも少ないコンポーネント、本明細書には示されていない追加のコンポーネント、あるいは図示されたコンポーネントと追加のコンポーネントとの何らかの組み合わせを含むことができる。
【００６９】
コンピュータ・アーキテクチャ７００は、メインフレーム、サーバ、パーソナル・コンピュータ、ワークステーション、ラップトップ、ハンドヘルド・コンピュータ、電話デバイス、ネットワーク・アプライアンス、仮想化デバイス、ストレージ・コントローラ、その他などの、当分野で知られた任意のコンピューティング・デバイスを備えることができる。当分野で知られた任意のプロセッサ７０２およびオペレーティング・システム７０５を使用することができる。
【００７０】
以上、前述の本発明の実施についての記述は、例示および説明の目的で提示したものである。本発明を網羅するか、または開示された精密な形に限定することを意図するものではない。上記の教示に照らして、多くの修正形態および変形形態が可能である。本発明の範囲は、本書の発明を実施するための最良の形態によって限定されるのではなく、添付の特許請求の範囲によって限定されるものであることが意図されている。上記明細書、例、およびデータは、本発明の組成物の製造および使用に関する完全な説明を提供するものである。本発明の多くの実施が本発明の趣旨および範囲を逸脱することなく実行可能であるため、本発明は添付の特許請求の範囲内にあるものとされる。
【図面の簡単な説明】
【００７１】
【図１】本発明のある一定の実施実施態様に従ったコンピューティング環境を示すブロック図である。
【図２】本発明のある一定の実施実施態様に従ったコンピューティング環境を示すブロック図である。
【図３】本発明のある一定の実施実施態様に従ったコンピューティング環境を示すブロック図である。
【図４】本発明のある一定の実施実施態様に従ったコンピューティング環境を示すブロック図である。
【図５】本発明のある一定の実施実施態様に従った、各バックアップ・コンポーネントによって維持されるデータを示す図である。
【図６】本発明のある一定の実施実施態様に従った、各バックアップ・コンポーネントによって維持されるデータを示す図である。
【図７】本発明のある一定の実施実施態様に従った、受け取ったデータ更新を処理するためにバックアップ・コンポーネント内で実施される論理を示す図である。
【図８】本発明のある一定の実施実施態様に従った、受け取ったデータ更新を処理するためにバックアップ・コンポーネント内で実施される論理を示す図である。
【図９】本発明のある一定の実施実施態様に従った、整合性のあるトランザクション・セット形成期間について各バックアップ・コンポーネント内で実施される論理を示す図である。
【図１０】本発明のある一定の実施実施態様に従った、新しいバックアップ・コンポーネントがオンラインの場合の論理を示す図である。
【図１１】本発明のある一定の実施実施態様に従った、バックアップ・コンポーネントが失敗するかまたは除去された場合の論理を示す図である。
【図１２】本発明のある一定の実施実施態様に従った、バックアップ・コンポーネントが失敗するかまたは除去された場合の論理を示す図である。
【図１３】本発明のある一定の実施実施態様に従って使用可能なコンピュータ・システムのアーキテクチャを示す図である。
【符号の説明】
【００７２】
１００    バックアップ・コンポーネント
１０２    バックアップ・コンポーネント
１０４    バックアップ・コンポーネント
１１０    １次制御ユニット
１１２    １次ＤＡＳＤ
１１４    ホスト
１１６    ２次制御ユニット
１１８    ２次ＤＡＳＤ
１３０    １次制御ユニット
１３２    １次ＤＡＳＤ
１３４    ホスト
１３６    ２次制御ユニット
１３８    ２次ＤＡＳＤ
１５０    １次制御ユニット
１５２    １次ＤＡＳＤ
１５４    ホスト
１５６    ２次制御ユニット
１５８    ２次ＤＡＳＤ
１６０    バックアップ・コンポーネント
１６２    バックアップ・コンポーネント
１６４    バックアップ・コンポーネント
【図１】
0004791051.tif 000002
【図２】
0004791051.tif 000003
【図３】
0004791051.tif 000004
【図４】
0004791051.tif 000005
【図５】
0004791051.tif 000006
【図６】
0004791051.tif 000007
【図７】
0004791051.tif 000008
【図８】
0004791051.tif 000009
【図９】
0004791051.tif 000010
【図１０】
0004791051.tif 000011
【図１１】
0004791051.tif 000012
【図１２】
0004791051.tif 000013
【図１３】
0004791051.tif 000014