(57)【要約】  本明細書に説明される例の実施態様は、アプリケーションの性能を維持しつつ、選択的に異なる環境の間でのデータの複製を対象とする。データの複製は、ビジネスに不可欠なアプリケーションを実行しているデータセンタから、分析アプリケーションを実行している別のデータセンタへデータを複製するために使用されてよい。例の実施態様では、ストレージ管理プログラムは、データベーステーブルのＩＤをストレージ位置に変換し、ストレージ管理プログラムは、ストレージシステムにそれらのストレージ位置を別のストレージシステムにコピーするように要求する。
2019509553.tif 000002
【特許請求の範囲】
【請求項１】
ストレージシステムであって、
複数のストレージボリュームと、前記複数のストレージボリュームのそれぞれは複数の領域から構成され、
メモリと、
プロセッサと、を有し、
前記プロセッサは、
第２のストレージシステムの第２のボリュームに前記複数のストレージボリュームの第１のボリュームを複製するコマンドの受信し、
前記メモリに、前記コマンドを発行したサーバによって構成される複製情報を記憶し、前記複製情報が、前記第１のボリュームの前記複数の領域のそれぞれについて、前記複数の領域のそれぞれが前記第２のボリュームに複製可能であるのか、それとも前記第２のボリュームに複製可能ではないのかを示し、
前記第２のボリュームに、前記複製情報によって前記第２のボリュームに複製可能として示される前記第１のボリュームの前記複数の領域のうちの第１の領域を複製する、よう構成されているストレージシステム。
【請求項２】
前記メモリが、前記第１のボリューム及び前記第２のボリュームの前記複数の領域間の相違点を示す相違点情報を記憶するように構成され、
前記プロセッサが、前記第２のボリュームに、前記相違点情報によって異なっているとして示される前記第１のボリュームの前記複数の領域のうちの第２の領域を複製するように構成される、請求項１に記載のストレージシステム。
【請求項３】
前記ストレージシステムが、サーバに通信可能に接続され、
デバイス識別子及びアドレス範囲から前記ストレージシステムの前記複数のストレージボリュームの１つ以上についてボリューム識別子を決定し、
前記ボリューム識別子に基づいて、前記複数のストレージボリュームの前記１つ以上に対応する前記ストレージシステムに複製情報更新要求を送信し、
前記プロセッサが、前記複製情報更新要求に応えて前記複数のストレージボリュームの前記１つ以上について前記複製情報を更新するように構成される、
請求項１に記載のストレージシステム。
【請求項４】
前記メモリが、前記第１のボリューム及び前記第２のボリュームのペア状態を記憶するように構成され、前記ペア状態が、前記第１のボリューム及び前記第２のボリュームが、データが複製されていない複製ペアとして定義されることを示す第１の状態と、前記第１のボリューム及び前記第２のボリュームが同期中であることを示す第２の状態と、前記第１のボリューム及び前記第２のボリュームが同期していることを示す第３の状態と、前記第１のボリューム及び前記第２のボリュームが一時停止していることを示す第４の状態を含むグループから選択される、請求項１に記載のストレージシステム。
【請求項５】
前記プロセッサが、前記第２のボリュームに対して行われた読取り要求に対して、
前記第１の状態、前記第２の状態、又は前記第３の状態である前記ペア状態の場合、エラーメッセージを返し、
前記第４の状態である前記ペア状態の場合、
前記複製情報が、データが前記第２のボリュームに複製されることを示す場合、前記読取り要求に応えて前記第２のボリュームからデータを返し、
前記複製情報が、データが前記第２のボリュームに複製されないことを示す場合、エラーメッセージを返す
ようにさらに構成される、請求項４に記載のストレージシステム。
【請求項６】
前記プロセッサが、前記第１のボリュームに対して行われた書込み要求に対し、
前記第１のボリュームにデータを書き込み、
前記ペア状態が前記第２の状態又は前記第３の状態である場合、前記データが前記第２のボリュームに複製されることを示す前記複製情報に対し前記第２のボリュームに前記データをコピーし、
前記ペア状態が前記第４の状態である場合、前記データが前記第１のボリュームと前記第２のボリュームとの間で異なることを示すために相違点情報を修正する
ようにさらに構成される、請求項４に記載のストレージシステム。
【請求項７】
前記プロセッサが、さらに、
前記メモリに、前記サーバから構成された許可情報を記憶し、前記許可情報が、前記第１のボリュームの前記複数の領域のそれぞれについて、前記複数の領域の前記それぞれが複製されるのを許可されているのか、それとも複製されるのを許可されていないのかを示すように構成され、
前記第２のストレージシステムの第２のボリュームに前記複数のストレージボリュームの前記第１のボリュームを複製する前記コマンドの受信に対し、前記プロセッサが、複製されるのを許可されているとして示される前記複数の前記第１のボリュームの前記第１のボリュームだけを複製するように構成される、
請求項１に記載のストレージシステム。
【請求項８】
システムであって、
第１のストレージシステム及び第２のストレージシステムに通信可能に接続されたサーバは、
複製要求と関連付けられたデバイス識別子及びアドレス範囲から前記第１のストレージシステムの第１の複数のストレージボリュームのためのボリューム識別子を決定し、
前記ボリューム識別子から、前記第２のストレージシステムの第２の複数のストレージボリュームの第２のボリュームに複製される前記第１のストレージシステムの前記第１の複数のストレージボリュームから第１のボリュームを識別し、
前記第２のボリュームに前記第１のボリュームを複製するコマンドを前記第１のストレージシステムに発行するよう構成され、
前記第１の複数のストレージボリュームは、複数のストレージボリュームと、前記複数のストレージボリュームのそれぞれは複数の領域を構成し、
メモリと、
プロセッサと、を有し、
前記プロセッサは、
前記メモリに前記サーバによって構成された複製情報を記憶し、前記複製情報が、前記第１のボリュームの前記複数の領域のそれぞれについて、前記複数の領域の前記それぞれが前記第２のボリュームに複製可能であるのか、それとも前記第２のボリュームに複製可能ではないのかを示し、
前記第２のボリュームに、前記複製情報によって前記第２のボリュームに複製可能として示される前記第１のボリュームの前記複数の領域のうちの第１の領域を複製する
ように構成されている前記第１のストレージシステム
を備えるシステム。
【請求項９】
前記メモリが、前記第１のボリューム及び前記第２のボリュームの前記複数の領域間の相違点を示す相違点情報を記憶するように構成され、
前記プロセッサが、前記第２のボリュームに、前記相違点情報によって異なっているとして示される前記第１のボリュームの前記複数の領域のうちの第２の領域を複製するように構成される、
請求項８に記載のシステム。
【請求項１０】
前記サーバが、
前記ボリューム識別子に基づく前記１つ以上の前記第１の複数のストレージボリュームに対応する前記第１のストレージシステムに複製情報更新要求を送信する
ように構成され、
前記プロセッサが、前記複製情報更新要求に応えて、前記第１の複数のストレージボリュームの前記１つ以上について前記複製情報を更新するように構成される、
請求項８に記載のシステム。
【請求項１１】
前記メモリが、前記第１のボリューム及び前記第２のボリュームのペア状態を記憶するように構成され、前記ペア状態が、前記第１のボリューム及び前記第２のボリュームが、データが複製されていない複製ペアとして定義されることを示す第１の状態と、前記第１のボリューム及び前記第２のボリュームが同期中であることを示す第２の状態と、前記第１のボリューム及び前記第２のボリュームが同期していることを示す第３の状態と、前記第１のボリューム及び前記第２のボリュームが一時停止していることを示す第４の状態を含むグループから選択される、請求項８に記載のシステム。
【請求項１２】
前記プロセッサが、前記サーバによって前記第２のボリュームに対して行われた読取り要求に対し、
前記第１の状態、前記第２の状態、又は前記第３の状態である前記ペア状態の場合、エラーメッセージを返し、
前記第４の状態である前記ペア状態の場合、
前記複製情報が、データが前記第２のボリュームに複製されることを示す場合、前記読取り要求に応えて前記第２のボリュームからデータを返し、
前記複製情報が、データが前記第２のボリュームに複製されないことを示すの場合、エラーメッセージを返す
ようにさらに構成される、請求項１１に記載のシステム。
【請求項１３】
前記プロセッサが、前記サーバによって前記第１のボリュームに対して行われた書込み要求に対し、
前記第１のボリュームにデータを書き込み、
前記ペア状態が前記第２の状態又は前記第３の状態である場合、前記データが前記第２のボリュームに複製されることを示す前記複製情報のために前記第２のボリュームに前記データを複製し、
前記ペア状態が前記第４の状態である場合、前記データが前記第１のボリュームと前記第２のボリュームとの間で異なることを示すために相違点情報を修正する
ようにさらに構成される、請求項１１に記載のシステム。
【請求項１４】
前記プロセッサが、
前記メモリに、前記サーバから構成された許可情報を記憶し、前記許可情報が、前記第１のボリュームの前記複数の領域のそれぞれについて、前記複数の領域の前記それぞれが複製されることを許可されているのか、それとも複製されることを許可されていないのかを示すようにさらに構成され、
前記第２のストレージシステムの第２のボリュームに前記複数のストレージボリュームの前記第１のボリュームを複製するコマンドの受信に対し、前記プロセッサが、複製されるのを許可されているとして示される前記複数の前記第１のボリュームの前記第１のボリュームだけを複製するように構成される
請求項８に記載のシステム。
【請求項１５】
前記サーバが、
前記第１の複数のストレージボリュームに記憶される１つ以上のデータベーステーブルに対する前記複製要求を処理し、
前記第１の複数のストレージボリュームの前記１つ以上のデータベーステーブルの位置に基づいて前記デバイス識別子及び前記アドレス範囲を決定する
ように構成される、請求項８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してストレージシステムに関し、より詳細にはストレージシステム間のデータ複製に関する。
【背景技術】
【０００２】
関連技術においては、インターネットオブシングス（IｏＴ）データ、ソーシャルネットワーキングサービス（ＳＮＳ）データ、及びオープンデータ等の他のデータとともにビジネスに不可欠なアプリケーションによって作成されるデータを使用することによって、分析アプリケーションが非常に高度な分析を実行できる。ビジネスにとって不可欠なアプリケーション及び分析アプリケーションは、多くの場合異なる環境で実行する。例えば、ビジネスにとって不可欠なアプリケーションは、あるデータセンタで実行してよく、一方分析アプリケーションは、別のデータセンタ又はパブリッククラウドで実行してよい。
【０００３】
関連技術においては、ビジネスにとって不可欠な環境から分析環境にビジネスにとって不可欠なアプリケーションのデータをコピーするためにリモート複製対（リプリケーションペア）技術を使用できる。リモート複製対（リプリケーションペア）は、アプリケーションを実行するサーバで又はデータを記憶するストレージシステムでのどちらかで実行できる。
【０００４】
関連技術においては、データベーステーブルがどこで記憶されるのかについての情報を、次いで情報を使用してデータ階層化を管理するアプリケーションから取得するように構成されたストレージシステムを含む場合があるオブジェクトベースの層を管理するための方法及び装置がある。例の関連技術の実施形態は、すべての目的のためにその全体として参照により本明細書に援用される米国特許第８，４６４，００３号に記載されている。
【０００５】
関連技術においては、より高い可用性のために別のストレージシステムにデータを複製するように構成されたストレージシステムがある。例の関連技術の実施形態は、すべての目的のためにその全体として参照により本明細書に援用される米国特許第８，９４３，２８６号に記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第８，４６４，００３号
【特許文献２】米国特許第８，９４３，２８６号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ユーザは複製されるデータベースのテーブルを指定し、ストレージ管理プログラムは該テーブルのＩＤを記憶場所に変換し、ストレージ管理プログラムは、ストレージシステムにそれらの記憶場所を別のストレージシステムに複製するように要求する。
【課題を解決するための手段】
【０００８】
本開示の態様は、複数のストレージボリュームを含む場合があるストレージシステムを含み、複数のストレージボリュームのそれぞれは、複数の領域と、メモリと、第２のストレージシステムの第２のボリュームに複数のストレージボリュームの第１のボリュームを複製するコマンドの受信のために、コマンドを発行したサーバによって構成された複製情報をメモリに記憶するように構成されたプロセッサであって、複製情報は、第１のボリュームの複数の領域のそれぞれについて、複数の領域のそれぞれが第２のボリュームに複製可能であるのか、それとも第２のボリュームに複製可能でないのかを示し、第２のボリュームに、複製情報によって第２のボリュームに複製可能として示される第１のボリュームの複数の領域のうちの第１の領域を複製するように構成されたプロセッサとを有する。
【０００９】
本開示の追加の態様は、第１のストレージシステム及び第２のストレージシステムに通信により結合されたサーバを含む場合があるシステムを含む場合があり、サーバは、複製要求と関連付けられたデバイス識別子及びアドレス範囲から、第１のストレージシステムの第１の複数のストレージボリュームのボリューム識別子を決定し、ボリューム識別子から、第２のストレージシステムの第２の複数のストレージボリュームの第２のボリュームに複製される第１のストレージシステムの第１の複数のストレージボリュームから第１のボリュームを識別し、第２のボリュームに第１のボリュームを複製するコマンドを第１のストレージシステムに発行するように構成される。システムは、第１の複数のストレージボリュームを含む場合がある第１のストレージシステムを含んでよく、第１の複数のストレージボリュームのそれぞれは、複数の領域と、メモリと、第１のボリュームを第２のボリュームに複製するコマンドの受信のために、メモリにサーバによって構成された複製情報を記憶するように構成されたプロセッサであって、複製情報が、第１のボリュームの複数の領域のそれぞれについて、複数の領域のそれぞれが第２のボリュームに複製可能であるのか、それとも複製可能ではないのかを示し、第２のボリュームに、複製情報によって第２のボリュームに複製可能として示される第１のボリュームの複数の領域のうちの第１の領域を複製するように構成されたプロセッサとを有する。
【００１０】
本開示の態様は、複数のストレージボリュームを含む場合があり、複数のストレージボリュームのそれぞれが複数の領域を有し、第２のストレージシステムの第２のボリュームに複数のストレージボリュームの第１のボリュームを複製するコマンドの受信のために、コマンドを発行したサーバによって構成された複製情報を管理することであって、複製情報が、第１のボリュームの複数の領域のそれぞれについて、複数の領域のそれぞれが第２のボリュームに複製可能であるか、それとも第２のボリュームに複製可能ではないのかを示す、管理することと、第２のボリュームに、複製情報によって第２のボリュームに複製可能として示される第１のボリュームの複数の領域のうちの第１の領域を複製することを含む。方法は、プロセッサによる実行のためのコンピュータ命令の形で記憶されてよい。コンピュータ命令は、非一過性のコンピュータ可読媒体に記憶されてよい。
【図面の簡単な説明】
【００１１】
【図１】実施形態の方法及び装置が適用され得るシステムの物理構成の例を示す図である。
【図２】実施形態の方法及び装置が適用され得るシステムの代替構成を示す図である。
【図３】実施形態に係る、論理メモリレイアウトを示す図である。
【図４】実施形態に係る、データフロー概要を示す図である。
【図５】実施形態に係る、装置／ボリューム変換テーブルの論理レイアウトを示す図である。
【図６】実施形態に係る、対(ペア）管理テーブルの論理レイアウトを示す図である。
【図７】実施形態に係る、複製管理プログラムによる対(ペア）作成のフローチャートである。
【図８】実施形態に係る、ストレージ管理プログラムによる複製構成のフローチャートである。
【図９】実施形態に係る、複製管理プログラムによる複製ビットマップ構成のフローチャートである。
【図１０】実施形態に係る、複製管理プログラムによる対(ペア）同期のフローチャートである。
【図１１】実施形態に係る、複製管理プログラムによるデータコピーのフローチャートである。
【図１２】実施形態に係る、複製管理プログラムによる対(ペア）一時停止のフローチャートである。
【図１３】本実施形態に係る、Ｉ／Ｏ処理プログラムによる読取り要求処理のフローチャートである。
【図１４】実施形態に係る、Ｉ／Ｏ処理プログラム２２０Ａ及び２２０Ｂによる書込み要求処理のフローチャートである。
【図１５】実施形態に係る、対(ペア）管理テーブルの論理レイアウトを示す図である。
【図１６】実施形態に係る、複製管理プログラムによる対(ペア）作成のフローチャートである。
【図１７】実施形態に係る、ストレージ管理プログラムによる許可構成のフローチャートである。
【図１８】実施形態に係る、複製管理プログラムによる許可ビットマップ構成のフローチャートである。
【図１９】実施形態に係る、複製管理プログラムによる複製ビットマップ構成のフローチャートである。
【図２０】実施形態に係る、メモリの論理レイアウトを示す図である。
【図２１】実施形態に係る、ストレージ管理プログラムによる複製構成のフローチャートである。
【図２２】実施形態に係る、ストレージ管理プログラム１２２Ａによる対(ペア）一時停止のフローチャートである。
【図２３】実施形態に係る、ストレージ管理プログラムによる複製ビットマップ更新のフローチャートである。
【図２４】実施形態に係る、複製管理プログラムによる複製ビットマップ更新のためのフローチャートである。
【図２５】実施形態に係る、対(ペア）管理テーブルの論理レイアウトを示す図である。
【図２６】実施形態に係る、ストレージ管理プログラムによる複製構成のフローチャートである。
【図２７】実施形態に係る、複製管理プログラムによる複製ビット構成のフローチャートである。
【発明を実施するための形態】
【００１２】
以下の発明を実施するための形態は、本願の図及び実施形態の追加の詳細を示す。参照番号及び図の間で冗長な要素の説明は、明確にするために省略されている。説明を通して使用される用語は例として示され、制限的となることを意図していない。例えば、用語「自動的な」の使用は、完全に自動的な実施形態、又は本願の実施形態を実施する当業者の所望される実施に応じて、ユーザ若しくは管理者の実施形態の特定の態様に対する制御を必要とする半自動的な実施形態を含む場合がある。また、用語「要求」及び「動作」は交互に用いられてよい。
【００１３】
ビジネスに不可欠な環境から分析環境にデータを複製することは長い時間を要する。さらに、ビジネスに不可欠なアプリケーションによって作成されるデータは、多くの場合、ビジネスに不可欠な環境を離れてはならない機密情報を含む。サーバ側のリモート複製対（リプリケーションペア）の場合、複製はビジネスに不可欠なアプリケーションの性能に影響を与える。実施形態は、異なる環境の間で選択的に及びアプリケーションの性能に影響を与えることなく、データを複製できるようにする方法及び装置を提供することを対象とする。
【００１４】
実施形態は、１つ以上のボリュームの領域のサブセットを別のストレージシステムに複製するストレージシステムを提供することによって関連技術の解決策の問題に対応する。実施形態は、１つ以上のボリュームの領域のどのサブセットが別のストレージシステムに複製されるのを許可されているのかを管理するストレージシステムをさらに助長する。実施形態は、１つ以上のボリュームの領域のサブセットの一貫した遠隔スナップショットを作成するストレージシステムをさらに含み、１つ以上のボリュームのサブセットを別のストレージシステムに複製するストレージシステムを含む。
【００１５】
第１の実施形態では、ストレージシステムは、ユーザによって指定されるデータベーステーブルの識別子（ＩＤ）に基づいて別のストレージシステムに１つ以上のボリュームの領域のサブセットを複製する。
【００１６】
図１は、実施形態の方法及び装置が適用され得るシステムの物理構成の例を示す。
【００１７】
１つ以上のサーバ１Ａ及び１つのストレージシステム２Ａは、ストレージエリアネットワーク（ＳＡＮ）３Ａを介して互いに接続される。１つ以上のサーバ１Ｂ及び１つのストレージシステム２Ｂは、ＳＡＮ  ３Ｂを介して互いに接続される。ストレージシステム２Ａ及びストレージシステム２Ｂは、ＳＡＮ  ３Ｃを介して互いに接続される。システムのある考えられる構成では、サーバ１Ａ及びストレージシステム２Ａは１つのデータセンタにある。一方、サーバ１Ｂ及びストレージシステム２Ｂは別のデータセンタにある。システムの別の考えられる構成では、サーバ１Ａ及びストレージシステム２Ａはデータセンタの一部分にある。一方、サーバ１Ｂ及びストレージシステム２Ｂは同じデータセンタの別の部分にある。
【００１８】
サーバ１Ａ、ストレージシステム２Ａ、サーバ１Ｂ、及びストレージシステム２Ｂは、ローカルエリアネットワーク（ＬＡＮ）４を介して互いに通信で接続される。代わりに、サーバ１Ａ及びストレージシステムは、ＬＡＮを介して互いに接続され、サーバ１Ｂ及びストレージシステム２Ｂは、異なるＬＡＮを介して互いに接続される。
【００１９】
サーバ１Ａは、１つ以上の中央演算処理装置（ＣＰＵ）１１Ａ、メモリ１２Ａ、１つ以上のストレージデバイス１３Ａ、１つ以上のＳＡＮポート１４Ａ、及び１つ以上のＬＡＮポート１５Ａを含む場合がある。ＣＰＵは、１つ以上の物理プロセッサの形をとる場合がある。ＣＰＵ１１Ａはストレージシステム２Ａにデータを記憶し、メモリ１２Ａをワーキングメモリとして使用する１つ以上のアプリケーションプログラムを実行する。メモリ１２Ａは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、不揮発性メモリ（ＮＶＭ）、又は任意の他のランダムアクセスメモリデバイスであってよい。ストレージデバイス１３Ａは、ハードディスクドライブ（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、又は任意の他の固定ストレージデバイスであってよい。ＳＡＮポート１４Ａは、ＳＡＮ  ３Ａにサーバ１Ａを接続する。ＬＡＮポート１５Ａは、ＬＡＮ４にサーバ１Ａを接続する。ＣＰＵ１１Ａは、ストレージシステム２Ａのストレージボリュームに記憶される１つ以上のデータベーステーブルに対するユーザからの複製要求を処理し、例えば、図８に示されるように、ストレージシステム２Ａのストレージボリュームの１つ以上のデータベーステーブルの位置に基づいてデバイス識別子及びアドレス範囲を決定するように構成されてよい。
【００２０】
ＣＰＵ１１Ａは、デバイス識別子からストレージシステム１Ａのストレージボリュームのボリューム識別子を決定し、ボリューム識別子から、ストレージシステム２Ｂの複数のストレージボリュームの第２のターゲットボリュームに複製されるストレージシステム２Ａのストレージボリュームから第１のソースボリュームを識別し、図８に示されるように、第２のボリュームに第１のボリュームを複製するコマンドを第１のストレージシステムに発行する。また、ＣＰＵ１１Ａは、図９及び図２３に示されるように、ストレージシステム１Ａにストレージシステム１Ａのストレージボリュームの１つ以上に対応する複製情報更新要求を送信するように構成される。
【００２１】
サーバ１Ｂは、１つ以上のＣＰＵ１１Ｂ、メモリ１２Ｂ、１つ以上のストレージデバイス１３Ｂ、１つ以上のＳＡＮポート１４Ｂ、及び１つ以上のＬＡＮポート１５Ｂを含む場合がある。ＣＰＵ１１Ｂは、ストレージシステム２Ｂにデータを記憶し、ワーキングメモリとしてメモリ１２Ｂを使用する１つ以上のアプリケーションプログラムを実行する。メモリ１２Ｂは、ＤＲＡＭ、ＮＶＭ、又は任意の他のランダムアクセスメモリデバイスであってよい。ストレージデバイス１３Ｂは、ＨＤＤ、ＳＳＤ、又は任意の他の固定ストレージデバイスであってよい。ＳＡＮポート１４Ｂは、ＳＡＮ３Ｂにサーバ１Ｂを接続する。ＬＡＮポート１５Ｂは、ＬＡＮ４にサーバ１Ｂを接続する。
【００２２】
ストレージシステム２Ａは、１つ以上のＣＰＵ２１Ａ、メモリ２２Ａ、１つ以上のストレージデバイス２３Ａ、１つ以上のＳＡＮポート２４Ａ、及び１つ以上のＬＡＮポート２５Ａを含む場合がある。ＣＰＵ２１Ａは、ワーキングメモリとしてメモリ２２Ａの一部を使用し、サーバ１Ａから受信されるＩ／Ｏ要求を処理する１つ以上のプログラムを実行し、１つ以上の物理プロセッサの形をとる場合がある。メモリ２２Ａは、ＤＲＡＭ、ＮＶＭ、又は任意の他のランダムアクセスメモリデバイスであってよい。ストレージデバイス２３Ａは、ＨＤＤ、ＳＳＤ、又は任意の他の固定ストレージデバイスであってよい。ＳＡＮポート２４Ａは、ＳＡＮ３Ａにストレージシステム２Ａを接続する。ＬＡＮポート２５Ａは、ＬＡＮ４にストレージシステム２Ａを接続する。ストレージシステム２Ａは、それぞれが複数の領域を含む複数のストレージボリュームを管理してよい。ＣＰＵ２１Ａは、第２のソースボリュームに第１のソースボリュームを複製するコマンドの受信のために、メモリ２２Ａにサーバ１Ａによって構成された複製情報を記憶するように構成されてよく、複製情報は、第１のソースボリュームの複数の領域のそれぞれについて、例えば図６に示されるように、複数の領域のそれぞれが第２のターゲットボリュームに複製可能であるか、それとも第２のボリュームに複製可能ではないかを示し、ＣＰＵ２１Ａは、例えば図１１に示されるように、第２のターゲットボリュームに、複製情報によって第２のボリュームに複製可能として示される第１のソースボリュームの複数の領域のうちの第１の領域を複製するように構成されてよい。実施形態では、複数の領域のそれぞれが、図１５に示されるように複製されることを許可されているのか、それとも複製されることを許可されていないのかの許可情報が提供されてもよく、複製されることを許可されている領域だけが、図１９に従って複製可能となるように構成できる。
【００２３】
また、ＣＰＵ２１Ａは、例えば図９及び図２４において示されるように、サーバ１Ａからの複製情報更新要求に応えてストレージボリュームの１つ以上について複製情報を更新するように構成されてもよい。
【００２４】
メモリ２２Ａは、図６に示されるように、第１のソースボリュームの複数の領域と第２のターゲットボリュームとの間の相違点を示す相違点情報を記憶するように構成できる。ＣＰＵ２１Ａは、図１１に示されるように、第２のターゲットボリュームに相違点情報によって異なっているとして示されている第１のソースボリュームの複数の領域のうちの第２の領域を複製するように構成できる。
【００２５】
ストレージシステム２Ｂは、１つ以上のＣＰＵ２１Ｂ、メモリ２２Ｂ、１つ以上のストレージデバイス２３Ｂ、１つ以上のＳＡＮポート２４Ｂ、及び１つ以上のＬＡＮポート２５Ｂを含む場合がある。ストレージシステム２Ｂは、２つの相違点を除き、ストレージシステム２Ａと同じように機能する。一方の相違点は、ＣＰＵ２１Ｂが、サーバ１Ａからの代わりに、サーバ１Ｂから受信される入出力（Ｉ／Ｏ）要求を処理するプログラムを実行する点である。他方の相違点は、ＳＡＮポート２４Ｂが、ＳＡＮ３Ａに対しての代わりにＳＡＮ３Ｂに対してストレージシステム２Ｂを接続する点である。
【００２６】
ＳＡＮ３Ａ、ＳＡＮ３Ｂ、及びＳＡＮ３Ｃのそれぞれは、イーサネットネットワーク、ファイバチャネルネットワーク、又はＩ／Ｏ要求を送信するために使用できる任意の他のネットワークである。サーバ１Ａは、ストレージシステム２ＡにＩ／Ｏ要求を送信するためにＳＡＮ３Ａを使用する。サーバ１Ｂは、ストレージシステム２ＢにＩ／Ｏ要求を送信するためにＳＡＮ３Ｂを使用する。Ｉ／Ｏ要求は、読取り要求及び書込み要求を含む。ストレージシステム２Ａは、ストレージシステム２Ｂにデータを複製するためにＳＡＮ３Ｃを使用する。
【００２７】
ＬＡＮ４は、イーサネットネットワーク又は管理要求を送信するために使用できる任意の他のネットワークである。サーバ１Ａは、ストレージシステム２Ａに管理要求を送信するためにＬＡＮ４を使用する。サーバ１Ｂは、ストレージシステム２Ａに及びストレージシステム２Ｂに管理要求を送信するためにＬＡＮ４を使用する。管理要求は、ストレージシステム２Ａとストレージシステム２Ｂとの間でデータ複製を管理するための要求を含む。
【００２８】
図２は、実施形態の方法及び装置が適用され得るシステムの代替構成を示す。物理構成はストレージシステム２Ｂが１つ以上のサーバ１Ｃによって置換されることを除き、基本的に図１の物理構成と同じである。
【００２９】
サーバ１Ａは、１つ以上のアプリケーションバーチャルマシン（ＶＭ）５Ａを実行する。アプリケーションＶＭ５Ａは、プログラムを実行するためにサーバ１Ａのリソースの一部を使用するバーチャルマシンである。アプリケーションＶＭ５Ａは、図１のサーバ１Ａと同じように論理的に機能し、ストレージシステム２Ａにデータを記憶する１つ以上のアプリケーションプログラムを実行する。
【００３０】
サーバ１Ｂは、１つ以上のアプリケーションＶＭ５Ｂを実行する。アプリケーションＶＭ  ５Ｂは、プログラムを実行するためにサーバ１Ｂのリソースの一部を使用するバーチャルマシンである。アプリケーションＶＭ５Ｂは、図１のサーバ１Ｂと同じように論理的に機能し、ストレージシステム２Ｂにデータを記憶する１つ以上のアプリケーションプログラムを実行する。
【００３１】
サーバ１Ｃは、サーバ１Ａと同じ物理構成を有する。サーバ１Ｂは、１つ以上のストレージＶＭ５Ｃを実行する。ストレージＶＭ５Ｃは、図１のストレージシステム２Ｂと同じように論理的に機能し、アプリケーションＶＭ５Ｂから受信されるＩ／Ｏ要求を処理する。１つのサーバ１Ｃで又は複数のサーバ１Ｃで実行中の複数のストレージＶＭ５Ｃは、図１のストレージシステム２Ｂと同じように集合的に機能してよい。
【００３２】
別の代替構成では、ストレージシステム２Ａは、１つ以上のバーチャルマシンを実行する１つ以上のサーバによって置換される。１つ以上のバーチャルマシンは、アプリケーションＶＭ  ５Ａから受信されるＩ／Ｏ要求を処理する図１のストレージシステム２Ａと同じように論理的に機能する。
【００３３】
さらに別の代替構成では、アプリケーションＶＭ５Ｂは、サーバ１Ｂの代わりにサーバ１Ｃを実行する。この構成では、アプリケーションＶＭ５Ｂは、ＳＡＮ３Ｂの代わりにサーバ１Ｃの内部ネットワークを使用し、ストレージＶＭ５ＣにＩ／Ｏ要求を送信する。
【００３４】
図３は、実施形態に係るメモリ１２Ａ、メモリ１２Ｂ、メモリ２２Ａ、及びメモリ２２Ｂの論理レイアウトを示す。メモリ１２Ａは、アプリケーションプログラム１２０Ａ、データベース管理プログラム１２１Ａ、ストレージ管理プログラム１２２Ａ、及びデバイス／ボリューム変換テーブル１２３Ａを含む。データベース管理プログラム１２１Ａは、アプリケーションプログラム１２０Ａにトランザクションデータベースを提供する。アプリケーションプログラム１２０Ａは、データベース管理プログラム１２１Ａによって提供されるテーブルからデータをロードし、該テーブルにデータを記憶する。データベース管理プログラム１２１Ａは、ストレージシステム２Ａに読取り要求及び書込み要求を送信することによって、ストレージシステム２Ａからテーブルデータをロードし、ストレージシステム２Ａにテーブルデータを記憶する。
【００３５】
ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａを管理する。ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａとして同じサーバ１Ａで、又はデータベース管理プログラム１２１Ａとして異なるサーバ１Ａで実行してよい。メモリ１２Ｂは、アプリケーションプログラム１２０Ｂ、データベース管理プログラム１２１Ｂ、ストレージ管理プログラム１２２Ｂ、及びデバイス／ボリューム変換テーブル１２３Ｂを含む。データベース管理プログラム１２１Ｂは、アプリケーションプログラム１２０Ｂにトランザクションデータベースを提供する。アプリケーションプログラム１２０Ｂは、データベース管理プログラム１２１Ｂによって提供されるテーブルからデータをロードし、該テーブルにデータを記憶する。データベース管理プログラム１２１Ｂは、ストレージシステム２Ｂに読取り要求及び書込み要求を送信することによって、ストレージシステム２Ｂからテーブルデータをロードし、ストレージシステム２Ｂにデータを記憶する。
【００３６】
ストレージ管理プログラム１２２Ｂは、ストレージシステム２Ａ及びストレージシステム２Ｂを管理する。ストレージ管理プログラム１２２Ｂは、データベース管理プログラム１２１Ｂとしてデータベース管理プログラム１２１Ｂで又はデータベース管理プログラム１２１Ｂとして異なるサーバ１Ｂで実行してよい。メモリ２２Ａは、Ｉ／Ｏ処理プログラム２２０Ａ、複製管理プログラム２２１Ａ、対(ペア）管理テーブル２２２Ａ、及びキャッシュ領域２２３Ａを含む。Ｉ／Ｏ処理プログラム２２０Ａは、ストレージシステム２Ａがサーバ１ＡからＩ／Ｏ要求を受信するとき、ＣＰＵ  ２１Ａによって実行される。キャッシュ領域２２３Ａは、ストレージデバイス２３Ａから読み取られている又はストレージデバイス２３Ａに書き込まれているデータを一時的に記憶するために、Ｉ／Ｏ処理プログラム２２０Ａによって使用される。複製管理プログラム２２２Ａは、ストレージシステム２Ａが、サーバ１Ａ又はサーバ１Ｂから複製管理要求を受信するとき、ＣＰＵ２１Ａによって実行される。
【００３７】
メモリ２２Ｂは、Ｉ／Ｏ処理プログラム２２０Ｂ、複製管理プログラム２２１Ｂ、対(ペア）管理テーブル２２２Ｂ、及びキャッシュ領域２２３Ｂを含む。Ｉ／Ｏ処理プログラム２２０Ｂは、ストレージシステム２Ｂがサーバ１ＢからＩ／Ｏ要求を受信するとき、ＣＰＵ２１Ｂによって実行される。キャッシュ領域２２３Ｂは、ストレージデバイス２３Ｂから読み取られる又はストレージデバイス２３Ｂに書き込まれるデータを一時的に記憶するために、Ｉ／Ｏ処理プログラムによって使用される。複製管理プログラム２２１Ｂは、ストレージシステム２Ｂがサーバ１Ｂから複製管理要求を受信するとき、ＣＰＵ２１Ｂによって実行される。
【００３８】
図４は、実施形態に係るデータフロー概要を示す。データベース管理プログラム１２１Ａは、ストレージシステム１Ａによって提供される１つ以上のシステムデータボリューム２６０Ａ、１つ以上のメタデータボリューム２６１Ａ、及び１つ以上のテーブルデータボリューム２６２Ａに記憶されたデータを使用する。ストレージシステム１Ａは、ストレージデバイス２３Ａにシステムデータボリューム２６０Ａ、テーブルデータボリューム２６１Ａ、及びメタデータボリューム２６２Ａに書き込まれたデータを記憶する。データベース管理プログラム１２１Ａは、システムデータボリューム２６０Ａにシステムデータを記憶する。システムデータは、データベースへのログインのためのユーザＩＤ及びパスワード、データベースのサイズを制御するためのパラメータ、及びデータベースの性能を制御するためのパラメータ等の情報を含む。
【００３９】
データベース管理プログラム１２１Ａは、テーブルデータボリューム２６１Ａにそのテーブルデータを記憶する。各テーブルデータボリューム２６１Ａは、１つのテーブルのための又は複数のテーブルのためのデータを保持してよい。１つのテーブルのためのデータは、複数のテーブルデータボリューム２６１Ａにわたって分散されてよい。データベース管理プログラム１２１Ａは、テーブルデータボリューム２６１Ａに記憶されるテーブルデータのためのメタデータをメタデータボリューム２６２Ａに記憶する。メタデータは、例えばテーブルデータボリューム２６１Ａの中の各テーブルの位置を含む。
【００４０】
テーブルデータ及びメタデータに別々のボリュームを使用する代わりに、データベース管理プログラム１２１Ａは、テーブルデータボリューム２６１Ａにテーブルデータとメタデータの両方を記憶してよい。データベース管理プログラム１２１Ａは、データベースのトランザクションログデータを記憶するために、ストレージシステム１Ａによって提供される１つ以上の追加のボリュームを使用してよい。データベース管理プログラム１２１Ａは、トランザクションをロールバック又はロールフォワードするためにトランザクションを使用する。データベース管理プログラム１２１Ａは、トランザクションログデータのために追加のボリュームを使用する代わりに、テーブルデータボリューム２６１Ａ又はメタデータボリューム２６２Ａにトランザクションログデータを記憶してよい。
【００４１】
データベース管理プログラム１２１Ａは、ストレージシステム１Ａの代わりにストレージデバイス１３Ａにシステムデータを記憶してよい。データベース管理プログラム１２１Ｂは、ストレージシステム１Ｂによって提供される、１つ以上のシステムデータボリューム２６０Ｂ、１つ以上のメタデータボリューム２６１Ｂ、及び１つ以上のテーブルデータボリューム２６２Ｂに記憶されたデータを使用する。ストレージシステム１Ｂは、ストレージデバイス２３Ｂにシステムデータボリューム２６０Ｂ、テーブルデータボリューム２６１Ｂ、及びメタデータボリューム２６２Ｂに書き込まれたデータを記憶する。
【００４２】
データベース管理プログラム１２Ｂは、システムデータボリューム２６０Ｂにそのシステムデータを記憶する。システムデータは、システムデータボリューム２６０Ａに記憶されるシステムデータと同種の情報を含む。しかしながら、システムデータボリューム２６０Ａに及びシステムデータボリューム２６０Ｂに記憶された情報は異なる場合がある。例えば、データベース管理プログラム１２１Ａ及びデータベース管理プログラム１２１Ｂが異なるユーザによって使用され、異なるユーザのユーザＩＤ及びパスワードが、システムデータボリューム２６０Ａ及びシステムデータボリューム２６０Ｂに記憶されることになる。
【００４３】
データベース管理プログラム１２１Ｂは、テーブルデータボリューム２６１Ｂにそのテーブルデータを記憶する。ストレージシステム２Ａ及びストレージシステム２Ｂでのデータ複製機能は、テーブルデータボリューム２６１Ａからテーブルデータボリューム２６１Ｂにデータを複製し、テーブルデータボリューム２６１Ａに記憶されるデータのすべて又は一部をテーブルデータボリューム２６１Ｂで利用できるようにする。ストレージシステム２Ｂは、オンデマンドでストレージデバイス２３Ｂからテーブルデータボリューム２６１Ｂに容量を割り当ててよい。オンデマンドで容量を割り当てることによって、ストレージデバイス２３Ｂで使用される容量は、テーブルデータボリューム２６１Ａからテーブルデータボリューム２６１Ｂに複製されるデータのサイズに制限される。
【００４４】
データベース管理プログラム１２１Ｂは、メタデータボリューム２６２Ｂに、テーブルデータボリューム２６１Ｂに記憶されたテーブルデータのためのメタデータを記憶する。ストレージシステム２Ａ及びストレージシステム２Ｂでのデータ複製機能は、メタデータボリューム２６２Ａからメタデータボリューム２６２Ｂにデータを複製し、メタデータボリューム２６２Ａに記憶されるデータのすべて又は一部をメタデータボリューム２６２Ｂで利用できるようにする。
【００４５】
図５は、実施形態に従って、デバイス／ボリューム変換テーブル１２３Ａ及びデバイス／ボリューム変換テーブル１２３Ｂの論理レイアウトを示す。デバイス／ボリューム変換テーブル１２３Ａは、サーバ１Ａによって管理されるデバイスのＩＤをストレージシステム２Ａの対応するボリュームのＩＤに変換するためにストレージ管理プログラム１２２Ａによって使用される。デバイス／ボリューム変換テーブル１２３Ａは、それぞれがサーバ１Ａによって認識されたデバイスに対応する複数のエントリを含む場合がある。各エントリは、デバイスＩＤ１２３０Ａ、ストレージシステムＩＤ１２３１Ａ、及びボリュームＩＤ１２３２Ａを含む場合がある。デバイスＩＤ１２３０Ａは、サーバ１Ａによって管理されるデバイスを識別するために使用される。デバイスＩＤ１２３０Ａの例の値は「／ｄｅｖ／ｓｄａ」及び「／ｄｅｖ／ｓｄｂ」である。
【００４６】
ストレージシステムＩＤ１２３１Ａは、デバイスＩＤ１２３０Ａによって識別されるデバイスとしてサーバ１Ａによって認識されるボリュームを提供するストレージシステムを識別するために使用される。ストレージシステムＩＤ１２３１Ａの例の値は、０及び１である。ボリュームＩＤ１２３２Ａは、デバイスＩＤ１２３０Ａによって識別されるデバイスとしてサーバ１Ａによって認識され、ストレージシステムＩＤ１２３２Ａによって識別されるストレージシステムの中のボリュームを識別するために使用される。ボリュームＩＤ１２３２Ａの例の値は１００及び２００である。
【００４７】
デバイス／ボリューム変換テーブル１２３Ｂは、サーバ１Ｂによって管理されるデバイスのＩＤをストレージシステム２Ａ又はストレージシステム２Ｂの対応するボリュームのＩＤに変換するために、ストレージ管理プログラム１２２Ｂによって使用される。デバイス／ボリューム変換テーブル１２３Ｂの論理レイアウトは、デバイスＩＤ１２３０Ｂが、サーバ１Ａの代わりにサーバ１Ｂによって管理されるデバイスを識別するために使用されるのを除き、基本的にデバイス／ボリューム変換テーブル１２３Ａの論理レイアウトと同じである。
【００４８】
図６は、対(ペア）管理テーブル２２２Ａ及び対(ペア）管理テーブル２２２Ｂの論理レイアウトを示す。対(ペア）管理テーブル２２２Ａは、ストレージシステム２Ａによって提供されるソースボリュームからストレージシステム２Ｂによって提供される宛先（デスティネーション）ボリュームへの複製を管理し、制御するために複製管理プログラム２２１Ａによって使用される。対(ペア）管理テーブル２２２Ａは、それぞれが複製対（リプリケーションペア）に対応する複数のエントリを含む場合がある。複製対（リプリケーションペア）は、データがその間で複製されるボリュームの対(ペア）である。各エントリは、対(ペア）ＩＤ２２２０Ａ、ボリュームタイプ２２２１Ａ、リモートシステムＩＤ２２２２Ａ、ソースボリュームＩＤ２２２３Ａ、宛先（デスティネーション）ボリュームＩＤ２２２４Ａ、対(ペア）状態２２２５Ａ、複製ビットマップ２２２６Ａ、相違点ビットマップ２２２７Ａ、及び帯域幅制限２２２８Ａを含む場合がある。対(ペア）ＩＤ２２２０Ａは、ストレージシステム２Ａの中で複製対（リプリケーションペア）を内部で識別するために使用される。対(ペア）ＩＤ２２３１Ａの例の値は、０、１、２、及び３である。
【００４９】
ボリュームタイプ２２２１Ａは、ストレージシステム２Ａによって提供される複製対（リプリケーションペア）のボリュームが複製のソースであるのか、それとも宛先（デスティネーション）であるのかを識別するために使用される。ボリュームタイプ２２３２Ａの例の値は、「ソース」及び「宛先（デスティネーション）」である。「ソース」は、ボリュームがソースであることを示し、「宛先（デスティネーション）」は、ボリュームが宛先（デスティネーション）であることを示す。リモートシステムＩＤ２２２２Ａは、ストレージシステム２Ｂを識別するために使用される。リモートシステムＩＤ２２２２Ａの例の値は、０、１、及び２である。
【００５０】
ソースボリュームＩＤ２２２３Ａは、ソースストレージシステムの中で複製のソースボリュームを識別するために使用される。ソースボリュームＩＤ２２２３Ａの例の値は、１００、２００、３００、及び４００である。宛先（デスティネーション）ボリュームＩＤ２２２４Ａは、宛先（デスティネーション）記憶システムの中で複製の宛先（デスティネーション）ボリュームを識別するために使用される。宛先（デスティネーション）ボリュームＩＤの例の値は、１００及び２００である。対(ペア）状態２２２５Ａは、複製対（リプリケーションペア）の状態を管理し、Ｉ／Ｏ要求の処理を制御するために使用される。対(ペア）の状態２２３６Ａの例の値は、「ＳＭＰＬ」、「ＣＯＰＹ」、「ＰＡＩＲ」、及び「ＳＵＳＰ」である。「ＳＭＰＬ」は、複製対（リプリケーションペアが定義されているが、データがまだ複製されていないことを示す。「ＣＯＰＹ」は、複製対（リプリケーションペア）が同期する過程にあることを示す。「ＰＡＩＲ」は、複製対（リプリケーションペア）が同期することを示す。「ＳＵＳＰ」は、複製対（リプリケーションペア）が一時停止されることを示す。
【００５１】
複製ビットマップ２２２６Ａは、宛先（デスティネーション）ボリュームに複製されるソースボリュームの領域を管理するために使用される。複製ビットマップ２２３７Ａは、ソースボリュームの各領域のために情報を記憶する。各領域のサイズは、例えば、２５６キロバイト（ＫＢ）又は４２メガバイト（ＭＢ）である。各領域のために記憶された情報の例の値は、「オン」及び「オフ」である。「オン」は、領域が複製されることを示し、「オフ」は、領域が複製されないことを示す。
【００５２】
相違点ビットマップ２２２７Ａは、宛先（デスティネーション）ボリュームと同期していないソースボリュームの領域を管理するために使用される。相違点ビットマップ２２２７Ａは、ソースボリュームの各領域のための情報を記憶する。各領域のサイズは、例えば２５６ＫＢ又は４２ＭＢである。各領域のために記憶された情報の例の値は、「オン」及び「オフ」である。「オン」は、領域が同期していないことを示し、「オフ」は領域が同期していることを示す。
【００５３】
帯域幅制限２２２８Ａは、データがソースボリュームからターゲットボリュームに複製される速度を制限するために使用される。帯域幅制限２２２８Ａの例の値は、「なし」、「１０％」、「１ＭＢ／秒」、及び「１０ＭＢ／秒」である。「なし」は、制限がないことを示す。「１０％」は、制限が最大速度の１０％であることを示す。」１ＭＢ／秒」及び「１０ＭＢ／秒」は、制限がそれぞれ１ＭＢ／秒及び１０ＭＢ／秒であることを示す。
【００５４】
対(ペア）管理テーブル２２２Ｂは、ストレージシステム２Ａによって提供されるソースボリュームからストレージシステム２Ｂによって提供される宛先（デスティネーション）ボリュームへの複製を管理し、制御するために複製管理プログラム２２１Ｂによって使用される。対(ペア）管理テーブル２２２Ｂの論理レイアウトは、以下の相違点を除き、基本的に対(ペア）管理テーブル２２２Ａと同じである。つまり、対ＩＤ２２２０Ｂは、ストレージシステム２Ａの代わりにストレージシステム２Ｂの中で複製対（リプリケーションペア）を内部で識別するために使用される。ボリュームタイプ２２２１Ｂは、ストレージシステム２Ａの代わりにストレージシステム２Ｂによって提供される複製対（リプリケーションペア）のボリュームが複製のソースであるのか、それとも宛先（デスティネーション）であるのかを識別するために使用され、リモートシステムＩＤ２２２２Ｂは、ストレージシステム２Ｂの代わりにストレージシステム２Ａを識別するために使用される。
【００５５】
図７は、実施形態に係る、複製管理プログラム２２１Ａによる対(ペア）作成のフローチャートを示す。具体的には、図７は、ストレージシステム２Ａがストレージ管理プログラム１２２Ａから対(ペア）作成要求を受信するとき、複製管理プログラム２２１Ａによって実行される対(ペア）作成のフローを示す。対(ペア）作成要求は、宛先（デスティネーション）ストレージシステムのＩＤとしてストレージシステム２ＢのＩＤを、ソースボリュームのＩＤとしてテーブルデータボリューム２６１ＡのＩＤを、及び宛先（デスティネーション）ボリュームのＩＤとしてテーブルデータボリューム２６１ＢのＩＤを含む。また、対(ペア）作成要求は、複製の速度が制限されるべきかどうか、及び複製の速度がどの程度制限されるべきかを指定するパラメータを含んでもよい。
【００５６】
２つ以上のテーブルデータボリューム２６１Ａは、同数のテーブルデータボリューム２６１Ｂに複製されてよい。この場合、ストレージ管理プログラム１２２Ａは、テーブルデータボリューム２６１Ａ及び対応するテーブルデータボリューム２６１Ｂの各対(ペア）に対応する対(ペア）作成要求を送信し、複製管理プログラム２２１Ａは、対(ペア）作成要求ごとに図１０に示されるフローを実行する。
【００５７】
６０００で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａから対(ペア）作成要求を受信する。６００１で、複製管理プログラム２２１Ａは、対(ペア）作成要求から宛先（デスティネーション）ストレージシステムのＩＤ、ソースボリュームのＩＤ、及び宛先（デスティネーション）ボリュームのＩＤを抽出する。また、複製管理プログラム２２１Ａは、複製の速度が制限されるべきかどうか、及び複製の速度がどの程度制限されるべきかどうかを指定するパラメータを抽出してもよい。６００２で、複製管理プログラム２２１Ａは、対(ペア）管理テーブル２２２Ａで新しいエントリを作成する。複製管理プログラム２２１Ａは、新しいエントリの対(ペア）ＩＤ２２２０Ａを対(ペア）管理テーブル２２２Ａの任意の他のエンティティの対(ペア）ＩＤ２２２０Ａによって使用されていない値に設定する。複製管理プログラム２２１Ａは、新しいエントリのボリュームタイプ２２２１Ａを「ソース」に設定する。複製管理プログラム２２１Ａは、新しいエントリのリモートシステムＩＤ２２２Ａを６００１で抽出された宛先（デスティネーション）記憶システムのＩＤに設定する。複製管理プログラム２２１Ａは、新しいエントリのソースボリュームＩＤ２２２４Ａを６００１で抽出されたソースボリュームのＩＤに設定する。複製管理プログラム２２１Ａは、新しいエントリの宛先（デスティネーション）ボリュームＩＤ２２２４Ａを６００１で抽出された宛先（デスティネーション）ボリュームのＩＤに設定する。複製管理プログラム２２１Ａは、新しいエントリの帯域幅制限２２２８Ａを、複製の速度が制限され、６００１で抽出されるべきかどうか、及び複製の速度がどの程度、制限され、６００１で抽出されるべきかを指定するパラメータに設定する。
【００５８】
６００３で、複製管理プログラム２２１Ａは、６００２で作成された新しいエントリの対(ペア）状態２２２５Ａを「ＳＭＰＬ」に設定する。６００４で、複製管理プログラム２２１Ａは、各領域に対応する情報を「オフ」に設定することによって、６００２で作成された新しいエントリの複製ビットマップ２２２６Ａをクリアする。６００５で、複製管理プログラム２２１Ａは、各領域に対応する情報を「オン」に設定することによって、ステップ６００２で作成された新しいエントリの相違点ビットマップ２２２７Ａを設定する。
【００５９】
６００６で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに対(ペア）作成要求を送信する。複製管理プログラム２２１Ａは、対(ペア）作成要求の中に、ストレージシステム２ＡのＩＤ、ソースボリュームのＩＤ、及び宛先（デスティネーション）ボリュームのＩＤを含む。また、複製管理プログラム２２１Ａは、対(ペア）作成要求の中に、複製の速度が制限されるべきかどうか、及び複製の速度がどの程度制限されるべきかを指定するパラメータを含んでもよい。ストレージシステム２Ｂが対(ペア）作成要求を受信するとき、複製管理プログラム２２１Ｂは新しいエントリを作成することによって対(ペア）管理テーブル２２２Ｂを更新する。ストレージシステム２Ｂは、次いでストレージシステム２Ａに対(ペア）作成の完了を示す完了応答を送信する。
【００６０】
６００７で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂから対(ペア）作成の完了を示す完了応答を受信する。６００８で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａに対(ペア）作成の完了を示す完了応答を送信する。
【００６１】
図８は、実施形態に係る、ストレージ管理プログラム１２２Ａによる複製構成のフローチャートを示す。具体的には、図８は、サーバ１Ａがユーザ又はユーザによって作成されたプログラムから複製構成要求を受信するとき、ストレージ管理プログラム１２２Ａによって実行される複製構成のフローを示す。複製構成要求は、ストレージシステム２Ａからストレージシステム２Ｂに複製されるテーブルのＩＤを含む。
【００６２】
６０１０で、ストレージ管理プログラム１２２Ａは、ユーザから複製構成要求を受信する。６０１１で、ストレージ管理プログラム１２２Ａは、複製構成要求からテーブルＩＤを抽出する。６０１２で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａにテーブル位置要求を送信する。テーブル位置要求は、ステップ６０１１で抽出されたテーブルＩＤを含む。データベース管理プログラム１２１Ａがテーブル位置要求を受信するとき、データベース管理プログラム１２１Ａは、ストレージ管理プログラム１２２Ａにテーブル位置要求に対する応答を送信する。応答は、テーブル位置要求に含まれるＩＤに対応するテーブルの位置を含む。各位置は、例えばサーバ１Ａによって管理されるデバイスのＩＤ及びデバイスの中の領域を指定するアドレス範囲である。
【００６３】
６０１３で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａからテーブル位置要求に対する応答を受信する。６０１４で、ストレージ管理プログラム１２２Ａは、テーブル位置要求に対する応答からデバイスＩＤ及びアドレス範囲を抽出する。６０１５で、ストレージ管理プログラム１２２Ａは、デバイス／ボリューム変換テーブル１２３Ａを調べることによって、６０１４で抽出された各デバイスＩＤをストレージシステム２Ａの中でボリュームを識別するために使用されるＩＤに変換する。
【００６４】
６０１６で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａに複製ビットマップ構成要求を送信する。複製ビットマップ構成要求は、６０１５で得られたボリュームＩＤ及び６０１４で抽出されたアドレス範囲を含む。複製ビットマップ構成要求は、ボリュームＩＤの代わりに、ボリュームに適用された複製対（リプリケーションペア）のＩＤを含んでよい。アドレス範囲の代わりに、複製ビットマップ構成要求はビットマップを含んでよい。ビットマップは、ストレージ管理プログラム１２２Ａによって６０１４で抽出されたアドレス範囲から作成される。ビットマップ内の各ビットは、複製ビットマップ２２２６Ａのビットに相当する。ストレージシステム２Ａが複製ビットマップ構成要求を受信するとき、ストレージシステム２Ａは図９に示されるフローを実行する。
【００６５】
６０１７で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａから複製ビットマップ構成の完了を示す完了応答を受信する。６０１８で、ストレージ管理プログラム１２２Ａは、ユーザ又はユーザによって作成されたプログラムに複製構成の完了を示す完了応答を送信する。
【００６６】
図９は、実装に係る、複製管理プログラム２２１Ａによる複製ビットマップ構成のフローチャートを示す。具体的には、図９は、ストレージシステム２Ａが、６０１６でストレージ管理プログラム２２１Ａによって送信された複製ビットマップ構成要求を受信するとき、複製管理プログラム２２１Ａによって実行される複製ビットマップ構成のフローを示す。
【００６７】
６０２０で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａから複製ビットマップ構成要求を受信する。６０２１で、複製管理プログラム２２１Ａは、複製ビットマップ構成要求からボリュームＩＤ又は対(ペア）ＩＤ及びアドレス範囲又はビットマップを抽出する。６０２２で、複製管理プログラム２２１Ａは、６０２１で抽出された各ボリュームＩＤ又は対(ペア）ＩＤに対応する対(ペア）管理テーブル２２２Ａにエントリを位置付ける。各エントリを位置付けるために、複製管理プログラム２２１Ａは、ソースボリュームＩＤ２２２３Ａが抽出されたボリュームＩＤに等しい、又は対(ペア）ＩＤ２２２０Ａが抽出された対(ペア）ＩＤに等しいエントリがないか対(ペア）管理テーブル２２２Ａを検索する。
【００６８】
６０２３で複製管理プログラム２２１Ａは、６０２１で抽出されたアドレス範囲に対応する情報を「オン」に設定することによって、ステップ６０２２で位置付けられた各エントリの複製ビットマップ２２２６Ａを更新する。アドレス範囲の代わりにビットマップが６０２１で抽出された場合、複製管理プログラム２２１Ａは、６０２１で抽出されたビットマップを複製ビットマップ２２２６Ａにコピーすることによって、６０２２で位置付けられた各エントリの複製ビットマップ２２２６Ａを更新する。
【００６９】
６０２４で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに複製ビットマップ更新要求を送信する。６０２２で位置付けられたエントリごとに、複製ビットマップ更新要求は、位置付けられたエントリのソースボリュームＩＤ２２２３Ａ及び複製ビットマップ２２２６Ａを含む。ストレージシステム２Ｂが複製ビットマップ更新要求を受信するとき、複製管理プログラム２２１Ｂは、複製ビットマップ更新要求に含まれるソースボリュームのＩＤに対応するエントリを位置付け、位置付けられたエントリの複製ビットマップ２２２６Ｂを更新することによって対(ペア）管理テーブル２２２Ｂを更新する。複製管理プログラム２２１Ｂは、次いでストレージシステム２Ａに複製ビットマップ更新の完了を示す完了応答を送信する。
【００７０】
６０２５で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂから複製ビットマップ更新の完了を示す完了応答を受信する。６０２６で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａに複製ビットマップ構成の完了を示す完了応答を送信する。
【００７１】
図１０は、実施形態に係る、複製管理プログラム２２１Ａによる対(ペア）同期のフローチャートを示す。具体的には、図１０は、ストレージシステム２Ａがストレージ管理プログラム１２２Ａから対(ペア）同期要求を受信するとき、複製管理プログラム２２１Ａによって実行される対(ペア）同期のフローを示す。対(ペア）同期要求は、同期される複製対（リプリケーションペア）のソースボリュームのＩＤを含む。対(ペア）同期要求は、ソースボリュームのＩＤの代わりに同期される複製対（リプリケーションペア）のＩＤを含んでよい。ストレージ管理プログラム１２２Ａは、対(ペア）作成後に複製対（リプリケーションペア）の初期同期を実行するために、又は対(ペア）一時停止後に複製対（リプリケーションペアの再同期を実行するために対(ペア）同期要求を送信してよい。
【００７２】
６０３０で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａから対(ペア）同期要求を受信する。６０３１で、複製管理プログラム２２１Ａは、対(ペア）同期要求からボリュームＩＤ又は対(ペア）ＩＤを抽出する。６０３２で、複製管理プログラム２２１Ａは、６０３１で抽出されたボリュームＩＤ又は対(ペア）ＩＤに対応するエントリを対(ペア）管理テーブル２２２Ａに位置付ける。エントリを位置付けるために、複製管理プログラム２２１Ａは、ソースボリュームＩＤ２２２３Ａが抽出されたボリュームＩＤに等しい、又は対(ペア）ＩＤ２２２０Ａが抽出された対(ペア）ＩＤに等しいエントリがないか対(ペア）管理テーブル２２２Ａを検索する。
【００７３】
６０３３で、複製管理プログラム２２１Ａは、６０３２で位置付けられたエントリの対(ペア）状態２２２５Ａを「ＣＯＰＹ」に設定する。６０３４で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに対(ペア）状態変更要求を送信する。対(ペア）状態変更要求は、６０３２で位置付けられたエントリのソースボリュームＩＤ２２２３Ａを含む。ストレージシステム２Ｂが対(ペア）状態変更要求を受信するとき、複製管理プログラム２２１Ｂは、対(ペア）状態変更要求に含まれるソースボリュームのＩＤに対応するエントリを位置付け、エントリの対(ペア）状態２２２５Ｂを「ＣＯＰＹ」に変更することによって対(ペア）管理テーブル２２２Ｂを更新する。複数管理プログラム２２１Ｂは、次いでストレージシステム２Ａに対(ペア）状態変更の完了を示す完了応答を送信する。
【００７４】
６０３５で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂから対(ペア）状態変更の完了を示す完了応答を受信する。６０３６で、複製管理プログラム２２１Ａは、図１１に示されるフローを実行することによって、複製ビットマップ２２２６Ａ及び相違点ビットマップ２２２７Ａに基づいてストレージシステム２Ｂにデータをコピーする。６０３７で、複製管理プログラム２２１Ａは、６０３２で位置付けられたエントリの対(ペア）状態２２２５Ａを「ＰＡＩＲ」に設定する。
【００７５】
６０３８で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに対(ペア）状態変更要求を送信する。対(ペア）状態変更要求は、６０３２で位置付けられたエントリのソースボリュームＩＤ２２２３Ａを含む。ストレージシステム２Ｂが対(ペア）状態変更要求を受信するとき、複製管理プログラム２２１Ｂは対(ペア）状態変更要求に含まれるソースボリュームのＩＤに対応するエントリを位置付け、エントリの対(ペア）状態２２２５Ｂを「ＰＡＩＲ」に変更することによって、対(ペア）管理テーブル２２２Ｂを更新する。複製管理プログラム２２１Ｂは、次いでストレージシステム２Ａに対(ペア）状態変更の完了を示す完了応答を送信する。
【００７６】
６０３９で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂから対(ペア）状態変更の完了を示す完了応答を受信する。６０４０で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａに対(ペア）同期の完了を示す完了応答を送信する。
【００７７】
図１１は、実施形態に係る、複製管理プログラム２２１Ａによるデータコピーのフローチャートを示す。具体的には、図１１は、複製管理プログラム２２１Ａによって実行されるデータコピーのフローを示す。このフローは、図１０からのフロー６０３６に一致する。
【００７８】
６０５０で、複製管理プログラム２２１Ａは、６０３２でフローに位置付けられたエントリのソースボリュームＩＤ２２２３Ａによって識別されるボリュームの領域ごとに６０５１から６０５３へのフローを実行するループを開始する。６０５１で、複製管理プログラム２２１Ａは、領域がコピーされるかどうかを判断する。この判断を下すために、複製管理プログラム２２１Ａは、６０３２で位置付けられたエントリの複製ビットマップ２２２６Ａを参照し、領域に対応する情報が「オン」に等しいかどうかを判断する。等しい場合（はい）、フローは６０５２に進み、それ以外の場合（いいえ）、フローは６０５４に進む。
【００７９】
６０５２で、複製管理プログラム２２１Ａは、６０３２で位置付けられたエントリのソースボリュームＩＤ２２２３Ａ及び宛先（デスティネーション）ボリュームＩＤ２２２４Ａによって識別されるボリュームが、領域にとって異なるデータを有するかどうかを判断する。この判断を下すために、複製管理プログラム２２１Ａは、６０３２で位置付けられたエントリの相違点ビットマップ２２２７Ａを参照し、領域に対応する情報が「オン」に等しいかどうか判断する。等しい場合（はい）、フローは６０５３に進み、それ以外の場合（いいえ）、フローは６０５４に進む。
【００８０】
６０５３で、複製管理プログラム２２１Ａは、領域のデータを、６０３２で位置付けられたエントリの宛先（デスティネーション）ボリューム２２２４Ａによって識別されるボリュームにコピーする。６０５４で、複製管理プログラム２２１Ａは、６０５０のフローで開始されたループを終了する。
【００８１】
図１２は、実施形態に係る、複製管理プログラム２２１Ａによる対(ペア）一時停止のフローチャートを示す。具体的には、図１２は、ストレージシステム２Ａがストレージ管理プログラム１２２Ａから対(ペア）一時停止要求を受信するとき、複製管理プログラム２２１Ａによって実行される対(ペア）一時停止のフローを示す。対(ペア）一時停止要求は、一時停止される複製対（リプリケーションペア）のソースボリュームのＩＤを含む。対(ペア）一時停止要求は、ソースボリュームのＩＤの代わりに、一時停止される複製対（リプリケーションペア）のＩＤを含んでよい。ストレージシステム２Ａは、ストレージ管理プログラム１２２Ａからの代わりに、ストレージ管理プログラム１２２Ｂから又はストレージシステム２Ｂから対(ペア）一時停止要求を受信する。
【００８２】
６０６０で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａ、ストレージ管理プログラム１２２Ｂ、又はストレージシステム２Ｂから対(ペア）一時停止要求を受信する。６０６１で、複製管理プログラム２２１Ａは、対(ペア）一時停止要求からボリュームＩＤ又は対(ペア）ＩＤを抽出する。６０６２で、複製管理プログラム２２１Ａは、６０６１から抽出されたボリュームＩＤ又は対(ペア）ＩＤに対応するエントリを対(ペア）管理テーブル２２２Ａに位置付ける。エントリを位置付けるために、複製管理プログラム２２１Ａは、ソースボリュームＩＤ２２２３Ａが抽出されたボリュームＩＤに等しい又は対(ペア）ＩＤ２２２０Ａが抽出された対(ペア）ＩＤに等しいエントリがないか対(ペア）管理テーブル２２２Ａを検索する。６０６３で、複製管理プログラム２２１Ａは、ステップ６０６２で位置付けられたエントリの対(ペア）状態２２２５Ａを「ＳＵＳＰ」に設定する。６０６４で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに対(ペア）状態変更要求を送信する。対(ペア）状態変更要求は、６０６２で位置付けられたエントリのソースボリュームＩＤ２２２３Ａを含む。
【００８３】
ストレージシステム２Ｂが対(ペア）状態変更要求を受信するとき、複製管理プログラム２２１Ｂは、対(ペア）状態変更要求に含まれるソースボリュームのＩＤに対応するエントリを位置付け、エントリの対(ペア）状態２２２５Ｂを「ＳＵＳＰ」に変更することによって、対(ペア）管理テーブル２２２Ｂを更新する。複製管理プログラム２２１Ｂは、次いでストレージシステム２Ａに対(ペア）状態変化の完了を示す完了応答を送信する。
【００８４】
６０６５で、複製管理プログラム２２１Ａは、ストレージシステム２Ａから対(ペア）状態変更の完了を示す完了応答を受信する。６０６６で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａ、ストレージ管理プログラム１２２Ｂ、又はストレージシステム２Ｂに対(ペア）一時停止の完了を示す完了応答を送信する。
【００８５】
図１３は、実施形態に係る、Ｉ／Ｏ処理プログラム２２０Ａ及び２２０Ｂによる読取り要求処理のフローチャートを示す。具体的には、図１３は、ストレージシステム２ＡがサーバＩＡから読取り要求を受信するとき、Ｉ／Ｏ処理プログラム２２０Ａによって、又はストレージシステム２Ｂがサーバ１Ｂから読取り要求を受信するとき、Ｉ／Ｏ処理プログラム２２０Ｂによって実行される読取り要求処理のフローを示す。読取り要求は、要求されたデータが読み取られるボリューム及びボリュームの中の領域を識別するために使用される情報を含む。
【００８６】
６０７０で、Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、サーバ１Ａ又はサーバ１Ｂから読取り要求を受信する。６０７１で、Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、読取り要求のターゲットボリュームが複製対（リプリケーションペア）のソースボリュームであるのか、それとも宛先（デスティネーション）ボリュームであるのかを判断する。この判断を下すために、Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、要求されたデータが読取り要求から読み取られるボリュームを識別するために使用される情報を抽出し、そのボリュームに対応する対(ペア）管理テーブル２２２Ａ又は２２２Ｂにエントリを位置付ける。Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、次いで位置付けられたエントリのボリュームタイム２２２１Ａ又は２２２１Ｂを参照する。ボリュームタイプがソースボリューム（ソース）である場合、フローは６０７２に進み、それ以外の場合、ボリュームタイプは宛先（デスティネーション）ボリューム（宛先（デスティネーション））である場合、次いでフローは６０７５に進む。
【００８７】
６０７２で、Ｉ／Ｏ処理プログラム２２０Ａは、ストレージ装置２３Ａから要求されたデータを読み取り、キャッシュ領域２２３Ａにデータを書き込む。Ｉ／Ｏ処理プログラム２２０Ａは、どのデータがキャッシュ領域２２３Ａに記憶されるのかを追跡するためにメモリ２２Ａを使用し、要求されたデータがすでにキャッシュ領域２２３Ａに記憶されている場合、ストレージデバイス２３Ａから要求されたデータを読み取ることを省略してよい。６０７３で、Ｉ／Ｏ処理プログラム２２０Ａはキャッシュ領域２２３Ａからサーバ１Ａに要求されたデータを送信する。代わりに、Ｉ／Ｏ処理プログラム２２０Ａは６０７２のフローを省略し、ストレージ装置２３Ａからサーバ１Ａに直接的に要求されたデータを送信する。６０７４で、Ｉ／Ｏ処理プログラム２２０Ａは、サーバ１Ａに読取り要求処理の完了を示す完了応答を送信する。
【００８８】
６０７５で、Ｉ／Ｏ処理プログラム２２０Ｂは、ターゲットボリュームが属する複製対（リプリケーションペア）の対(ペア）状態が「ＳＭＰＬ」であるのか、「ＣＯＰＹ」であるのか、「ＰＡＩＲ」であるのか、それとも「ＳＵＳＰ」であるのかを判断する。
【００８９】
この判断を下すために、Ｉ／Ｏ処理プログラム２２０Ｂは、６０７１でフローに位置付けられたエントリの対(ペア）状態２２２５Ｂを参照する。対(ペア）状態が、複製対（リプリケーションペア）が定義されるほどであるが、まだデータが複製されていない場合（ＳＭＰＬ）、フローは６０７６に進む。複製対（リプリケーションペア）が同期の過程にある又は同期されている場合（ＣＯＰＹ、ＰＡＩＲ）、フローは６０７７に進む。それ以外の場合、複製対（リプリケーションペア）が一時停止される場合（ＳＵＳＰ）、フローは６０７８に進む。
【００９０】
６０７６で、Ｉ／Ｏ処理プログラム２２０Ｂは、複製対（リプリケーションペア）の初期同期がまだ実行されていないために要求されたデータを読み取ることができなかったことを示すエラー応答をサーバ１Ｂに送信する。６０７７で、Ｉ／Ｏ処理プログラム２２０Ｂは、複製対（リプリケーションペア）が一時停止されていないために要求されたデータを読み取ることができなかったことを示すエラー応答をサーバ１Ｂに送信する。
【００９１】
６０７８で、Ｉ／Ｏ処理プログラム２２０Ｂは、要求されたデータがストレージシステム２Ｂに複製されているかどうかを判断する。この判断を下すために、Ｉ／Ｏ処理プログラム２２０Ｂは、ステップ６０７１で位置付けられたエントリの複製ビットマップ２２２６Ｂを参照する。要求されたデータが記憶される領域に対応する複製ビットマップ２２２６Ｂの情報が「オン」に等しい場合、次いでＩ／Ｏ処理プログラム２２０Ｂは、要求されたデータが複製されていると判断する（はい）。それ以外の場合、Ｉ／Ｏ処理プログラム２２０Ｂは、要求されたデータが複製されていないと判断する（いいえ）。要求されたデータが、複製ビットマップ２２２６Ｂによって管理される複数の領域に及ぶ場合、Ｉ／Ｏ処理プログラム２２０Ｂは、領域のすべてに対応する情報が「オン」である場合（はい）、要求されたデータが複製されていると判断する。それ以外の場合、Ｉ／Ｏ処理プログラム２２０Ｂは、要求されたデータは複製されていないと判断する（いいえ）。
【００９２】
６０７９で、Ｉ／Ｏ処理プログラム２２０Ｂは、ストレージデバイス２３Ｂから要求されたデータを読み取り、それをキャッシュ領域２２３Ｂに記憶する。Ｉ／Ｏ処理プログラム２２０Ｂは、どのデータがキャッシュ領域２２３Ｂに記憶されるのかを追跡するためにメモリ２２Ｂを使用し、要求されたデータがキャッシュ領域２２３Ｂにすでに記憶されている場合、ストレージデバイス２３Ｂから要求されたデータを読み取るのを省略してよい。６０８０で、Ｉ／Ｏ処理プログラム２２０Ｂは、キャッシュ領域２２３Ｂからサーバ１Ｂに要求されたデータを送信する。代わりに、Ｉ／Ｏ処理プログラム２２０Ｂはステップ６０７２を省略し、ストレージデバイス２３Ｂからサーバ１Ｂに要求されたデータを直接的に送信する。６０８１で、Ｉ／Ｏ処理プログラム２２０Ｂは読取り要求処理の完了を示す完了応答をサーバ１Ｂに送信する。
【００９３】
６０８２で、Ｉ／Ｏ処理プログラム２２０Ｂは、要求されたデータが複製されていないために、要求されたデータを読み取ることができなかったことを示すエラー応答をサーバ１Ｂに送信する。
【００９４】
図１４は、実施形態に係る、Ｉ／Ｏ処理プログラム２２０Ａ及び２２０Ｂによる書込み要求処理のフローチャートを示す。具体的には、図１４は、ストレージシステム２Ａがサーバ１Ａから書込み要求を受信するとき、Ｉ／Ｏ処理プログラム２２０Ａによって、又はストレージシステム２Ｂがサーバ１Ｂから書込み要求を受信するとき、Ｉ／Ｏ処理プログラム２２０Ｂによって実行される書込み要求のフローを示す。書込み要求は、要求されたデータが書き込まれるボリューム及びボリュームの中の領域を識別するために使用される情報を含む。
【００９５】
６０９０で、Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、サーバ１Ａ又はサーバ１Ｂから書込み要求を受け取る。６０９１で、Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、書込み要求のターゲットボリュームが複製対（リプリケーションペア）のソースボリュームであるのか、それとも宛先（デスティネーション）ボリュームであるのかを判断する。この判断を下すために、Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、書込み要求から、要求されたデータが書き込まれるボリュームを識別するために使用される情報を抽出し、そのボリュームに対応する対(ペア）管理テーブル２２２Ａ又は２２２Ａにエントリを位置付ける。Ｉ／Ｏ処理プログラム２２０Ａ又は２２０Ｂは、次いで位置付けられたエントリのボリュームタイプ２２２１Ａ又は２２２１Ｂを参照する。書込み要求のターゲットボリュームがソースボリューム（ソース）である場合、次いでフローは６０９２に進み、それ以外の場合（宛先（デスティネーション））、フローは６０９９に進む。
【００９６】
６０９２で、Ｉ／Ｏ処理プログラム２２０Ａはサーバ１Ａから要求されたデータを受信し、キャッシュ領域２２３Ａにデータを書き込む。代わりに、Ｉ／Ｏ処理プログラム２２０Ａは、サーバ１Ａから要求されたデータを受信し、ストレージデバイス２３Ａにデータを直接的に書き込む。６０９３で、Ｉ／Ｏ処理プログラム２２０Ａはキャッシュ領域２２３Ａから要求されたデータを読み取り、ストレージデバイス２３Ａにデータを書き込む。代わりに、Ｉ／Ｏ処理プログラム２２０Ａは、６０９３でフローを省略し、所望される実施形態に応じて、書込み要求に非同期にストレージデバイス２３Ａにデータを書き込む。
【００９７】
６０９４で、Ｉ／Ｏ処理プログラム２２０Ａは、ターゲットボリュームが属する複製対（リプリケーションペア）の対(ペア）状態が「ＳＭＰＬ」であるのか、「ＣＯＰＹ」であるのか、「ＰＡＩＲ」であるのか、それとも「ＳＵＳＰ」であるのかを判断する。この判断を下すために、Ｉ／Ｏ処理プログラム２２０Ａは、６０９１からエントリの対(ペア）２２２５Ａを参照する。ターゲットボリュームがＳＭＰＬである場合、次いでフローは６０９５に進み、Ｉ／Ｏ処理プログラム２２０Ａは、サーバ１Ａに書込み要求処理の完了を示す完了応答を送信する。ターゲットボリュームが「ＣＯＰＹ」又は「ＰＡＩＲ」である場合、次いでフローは６０９６に進む。それ以外の場合、ターゲットボリュームが「ＳＵＳＰ」である場合、次いでフローは６０９８に進む。
【００９８】
６０９６で、Ｉ／Ｏ処理プログラム２２０Ａは、６０８２でサーバ１Ａから受信されたデータがストレージシステム２Ｂに複製されるかどうかを判断する。この判断を下すために、Ｉ／Ｏ処理プログラム２２０Ａは、６０９１からエントリの複製ビットマップ２２２６Ａを参照する。データが書き込まれる領域に対応する複製ビットマップ２２２６Ａの情報が「オン」に等しい場合、次いでＩ／Ｏ処理プログラム２２０Ａは、データが複製されると判断する（はい）。それ以外の場合（いいえ）、Ｉ／Ｏ処理プログラム２２０Ａは、データが複製されないと判断する。６０９７で、Ｉ／Ｏ処理プログラム２２０Ａは、６０９２でサーバ１Ａから受信されたデータを、６０９１で位置付けられたエントリの宛先（デスティネーション）ボリュームＩＤ２２２４Ａによって識別されたボリュームにコピーする。
【００９９】
データが複製ビットマップ２２２６Ａによって管理される複数の領域に及ぶ場合、Ｉ／Ｏ処理プログラム２２０Ａは、領域ごとに６０９６及び６０９７でフローを実行する。領域のいくつかに対応する複製ビットマップ２２２６Ａの情報が「オン」に等しい場合、次いでＩ／Ｏ処理プログラム２２０Ａはそれらの領域に対応するデータをコピーするにすぎない。
【０１００】
６０９８で、Ｉ／Ｏ処理プログラム２２０Ａは、６０９２でサーバ１Ａから受信されたデータに対応する相違点ビットマップ２２２７Ａの情報を「オン」に設定することによって、６０９１で位置付けられたエントリの相違点ビットマップ２２２７Ａを更新する。データが複製ビットマップ２２２７Ａによって管理される複数の領域に及ぶ場合、Ｉ／Ｏ処理プログラム２２０Ａは、各領域に対応する相違点ビットマップ２２２７Ａの情報を「オン」に設定する。
【０１０１】
６０９９で、Ｉ／Ｏ処理プログラム２２０Ｂは、サーバ１Ｂに、書込みが許可されていないために要求されたデータを書き込むことができなかったことを示すエラー応答を送信する。
【０１０２】
第２の実施形態では、１つ以上のボリュームの領域のどのサブセットが別のストレージシステムに複製されることを許可されているのかを管理する。システムの物理構成は、上記の第１の実施形態に説明されるのと同じである。システムの論理構成の相違点、及びシステムがどのようにして制御されるのかが以下に説明される。
【０１０３】
図１５は、実施形態に係る、対(ペア）管理テーブル２２２Ａ及び２２２Ｂの論理レイアウトを示す。具体的には、図１５は、第２の実施形態の対(ペア）管理テーブル２２２Ａ及び対(ペア）管理テーブル２２２Ｂの論理レイアウトを示す。対(ペア）管理テーブル２２２Ａの論理レイアウトは、基本的に第１の実施形態に説明されるのと同じであるが、管理テーブル２２２Ａの各エントリは、追加のフィールド、許可ビットマップ２２２９Ａを含む。許可ビットマップ２２２９Ａは、宛先（デスティネーション）ボリュームに複製されることが許可されているソースボリュームの領域を管理するために使用される。許可ビットマップ２２２９Ａは、ソースボリュームの領域ごとに情報を含む。各領域のサイズは、例えば２５６ＫＢ又は４２ＭＢである。各領域について記憶される情報の例の値は「オン」及び「オフ」である。「オン」は、領域が複製されることを許可されていることを示し、「オフ」は領域が複製されることを許可されていないことを示す。
【０１０４】
対(ペア）管理テーブル２２２Ｂの論理レイアウトは、基本的に第１の実施形態の場合と同じであるが、対(ペア）管理テーブル２２２Ｂの各エントリは追加フィールドである許可ビットマップ２２２９Ｂを含む。許可ビットマップ２２２９Ｂは、宛先（デスティネーション）ボリュームに複製されるのを許可されているソースボリュームの領域を管理するために使用される。許可ビットマップ２２２９Ｂは、ソースボリュームの各領域のための情報を含む。各領域のサイズは、例えば２５６ＫＢ又は４２ＭＢである。各領域について記憶される情報の各値は「オン」及び「オフ」である。「オン」は、領域が複写されることを許可されていることを示し、「オフ」は領域が複写されることを許可されていないことを示す。
【０１０５】
図１６は、実施形態に係る、複製管理プログラム２２１Ａによる対(ペア）作成のフローチャートを示す。具体的には、図１６は、第２の実施形態での対(ペア）作成のフローを示す。このフローは、ストレージシステム２Ａが、ストレージ管理プログラム１２２Ａから対(ペア）作成要求を受信するとき、複製管理プログラム２２１Ａによって実行される。
【０１０６】
対(ペア）作成のフローは、基本的に、図７に説明される第１の実施形態のフローと同じである。しかしながら、６００５と６００６のフローの間には６１００の追加のフローがある。６１００で、複製管理プログラム２２１Ａは、各領域に対応する情報を「オフ」に設定することによって、ステップ６００２で作成される新しいエントリの許可ビットマップ２２２９Ａをクリアする。
【０１０７】
図１７は、実施形態に係る、ストレージ管理プログラム１２２Ｂによる許可構成のフローチャートを示す。具体的には、図１７は、サーバ１Ａがユーザ又はユーザによって作成されたプログラムから許可構成要求を受信するとき、ストレージ管理プログラム１２２Ｂによって実行される許可構成のフローを示す。許可構成要求は、ストレージシステム２Ａからストレージシステム２Ｂに複製されるのを許可されているテーブルのＩＤを含む。
【０１０８】
６１１０で、ストレージ管理プログラム１２２Ｂは、ユーザから許可構成要求を受信する。６１１１で、ストレージ管理プログラム１２２Ｂは、許可構成要求からテーブルＩＤを抽出する。６１１２で、ストレージ管理プログラム１２２Ｂは、データベース管理プログラム１２１Ａにテーブル位置要求を送信する。テーブル位置要求は、６１０１で抽出されたテーブルのＩＤを含む。データベース管理プログラム１２１Ａがテーブル位置要求を受信するとき、データベース管理プログラム１２１Ａは、管理プログラム１２２Ｂにテーブル位置要求に対する応答を送信する。応答は、テーブル位置要求に含まれるＩＤに対応するテーブルの位置を含む。各位置は、例えば、サーバ１Ａによって管理されるデバイスのＩＤ、及びデバイスの中に領域を指定するアドレス範囲である。
【０１０９】
データベース管理プログラム１２１Ａにテーブル位置要求を送信する代わりに、ストレージ管理プログラム１２２Ｂはデータベース管理プログラム１２１Ｂにテーブル位置要求を送信してよい。
【０１１０】
６１１３で、ストレージ管理プログラム１２２Ｂは、データベース管理プログラム１２１Ａからテーブル位置要求に対する応答を受信する。６１１４で、ストレージ管理プログラム１２２Ｂは、ステップ６１１３で受信された応答からデバイスＩＤ及びアドレス範囲を抽出する。６１１５で、ストレージ管理プログラム１２２Ｂは、デバイス／ボリューム変換テーブル１２３Ｂを調べることによって、６１１４から抽出される各デバイスＩＤを、ストレージシステム２Ａの中でボリュームを識別するために使用されるＩＤに変換する。
【０１１１】
６１１６で、ストレージ管理プログラム１２２Ｂは、ストレージシステム２Ａに許可ビットマップ構成要求を送信する。許可ビットマップ構成要求は、ステップ６１１５で得られたボリュームＩＤ、及び６１１４で抽出されるアドレス範囲を含む。ストレージ管理プログラム１２２Ｂは、ストレージシステム２Ｂを介して又はストレージ管理プログラム１２２Ａを介してストレージシステム２Ａに許可ビットマップ構成要求を送信してよい。許可ビットマップ構成要求は、ボリュームＩＤの代わりに、ボリュームに適用される複製対（リプリケーションペア）のＩＤを含んでよい。
【０１１２】
アドレス範囲の代わりに、許可ビットマップ構成要求はビットマップを含んでよい。ビットマップは、６１１４から抽出されたアドレス範囲からストレージ管理プログラム１２２Ｂによって作成される。ビットマップの各ビットは、複製ビットマップ２２２６Ａのビットに相当する。ストレージシステム２Ａがビットマップ構成要求を受信するとき、ストレージシステム２Ａは、図１８に示されるフローを実行する。
【０１１３】
６１１７で、ストレージ管理プログラム１２２Ｂは、ストレージシステム２Ａから許可ビットマップ構成の完了を示す完了応答を受信する。６１１８で、ストレージ管理プログラム１２２Ｂは、ユーザ又はユーザによって作成されたプログラムに許可構成の完了を示す完了応答を送信する。
【０１１４】
図１８は、実施形態に係る、複製管理プログラム２２１Ａによる許可ビットマップ構成のフローチャートを示す。具体的には、図１８は、ストレージシステム２Ａが、６１１６でストレージ管理プログラム２２１Ｂによって送信された許可ビットマップ構成要求を受信するとき、複製管理プログラム２２１Ａによって実行される許可ビットマップ構成のフローを示す。
【０１１５】
６１２０で、複製管理プログラム２２１Ａはストレージ管理プログラム１２２Ｂから許可ビットマップ構成要求を受信する。６１２１で、複製管理プログラム２２１Ａは、許可ビットマップ構成要求からボリュームＩＤ又は対(ペア）ＩＤ及びアドレス範囲又はビットマップを抽出する。
【０１１６】
６１２２で、複製管理プログラム２２１Ａは、６１２１から抽出された各ボリュームＩＤ又は対(ペア）ＩＤに対応する対(ペア）管理テーブル２２２Ａにエントリを位置付ける。各エントリを位置付けるために、複製管理プログラム２２１Ａは、ソースボリュームＩＤ２２２３Ａが抽出されたボリュームＩＤに等しい、又は対(ペア）ＩＤ２２２０Ａが抽出された対(ペア）ＩＤに等しいエントリがないか対(ペア）管理テーブル２２２０Ａを検索する。
【０１１７】
６１２３で、複製管理プログラム２２１Ａは、ステップ６１２１で抽出されるアドレス範囲に対応する情報を「オン」に設定することによって、６１２２から位置付けられた各エントリの許可ビットマップ２２２９Ａを更新する。アドレス範囲の代わりにビットマップが６１２１から抽出された場合、複製管理プログラム２２１Ａは、６１２１から抽出されたビットマップを複製ビットマップ２２２９Ａにコピーすることによって、６１２２から位置付けられた各エントリの許可ビットマップ２２２９Ａを更新する。６１２４で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ｂに許可ビットマップ構成の完了を示す完了応答を送信する。
【０１１８】
図１９は、実施形態に係る、複製管理プログラム２２１Ａによる複製ビットマップ構成のフローチャートを示す。具体的には、図１９は、第２の実施形態のための複製ビットマップ構成のフローを示す。このフローは、ストレージシステム２Ａが、６０１６のフローからストレージ管理プログラム２２１Ａによって送信された複製ビットマップ構成要求を受信するとき、複製管理プログラム２２１Ａによって実行される。複製ビットマップ構成のフローは、基本的に図９に示される第１の実施形態のフローと同じである。しかしながら、６０２３のフローは、６１３０から６１３３へのフローによって置換される。
【０１１９】
６１３０で、複製管理プログラム２２１Ａは、６０２２のフローに位置付けられたエントリのソースボリュームＩＤ２２２３Ａによって識別されるボリュームの各領域について６１３１から６１３２へのフローを実行するループを開始する。６１３１で、複製管理プログラム２２１Ａは、６０２２のフローに位置付けられたエントリの許可ビットマップ２２２９Ａを参照し、領域に対応する情報が「オン」に等しいかどうかを判断する。領域に対応する許可ビットマップ２２２９Ａの情報が「オン」に設定される場合、フローは６１３２に進む。それ以外の場合、フローは６１３３に進む。
【０１２０】
６１３２で、複製管理プログラム２２１Ａは、領域に対応する情報を「オン」に設定することによって、６０２２でフローに位置付けられたエントリの複製ビットマップ２２２６Ａを更新する。６１３３で、複製管理プログラム２２１Ａは、６１３０のフローで開始されたループを終了する。
【０１２１】
第３の実施形態では、１つ以上のボリュームの領域のサブセットの一貫したリモートスナップショットを作成するストレージシステムがある。システムの物理構成は、第１の実施形態において同じである。システムの論理構成の相違点、及びシステムがどのようにして制御されるのかが以下に説明される。
【０１２２】
図２０は、実施形態に係る、メモリ１２Ａの論理レイアウトを示す。具体的には、図２０は、第３の実施形態でのメモリ１２Ａの論理レイアウトを示す。メモリ１２Ａのレイアウトは、基本的に実施形態に説明されるのと同じであるが、メモリ１２Ａは、アプリケーションプログラム１２０Ａ、データベース管理プログラム１２１Ａ、ストレージ管理プログラム１２２Ａ、及びデバイス／ボリューム変換テーブル１２３Ａに加えてテーブルＩＤリスト１２４Ａを含む。テーブルＩＤリスト１２４Ａは、ユーザからの複製構成要求に含まれるテーブルＩＤを思い出すためにストレージ管理プログラム１２２Ａによって使用されるテーブルＩＤのリストである。
【０１２３】
図２１は、実施形態に係る、ストレージ管理プログラム１２２Ａによる複製構成のフローチャートを示す。具体的には、図２１は、第３の実施形態の複製構成のフローを示す。このフローは、サーバ１Ａがユーザ又はユーザによって作成されたプログラムから複製構成要求を受信するとき、ストレージ管理プログラム１２２Ａによって実行される。複製構成のフローは、基本的に図８に示される第１の実施形態のフローと同じである。しかしながら、６０１１と６０１２のフローの間に６１４０の追加のフローがある。６１４０で、ストレージ管理プログラム１２２Ａは、テーブルＩＤリスト１２４Ａにステップ６０１１で抽出されたテーブルＩＤを保存する。
【０１２４】
図２２は、実施形態に係る、ストレージ管理プログラム１２２Ａによる対(ペア）一時停止のフローチャートを示す。図２２は、サーバ１Ａがユーザ又はユーザによって作成されたプログラムから対(ペア）一時停止要求を受信するとき、ストレージ管理プログラム１２２Ａによって実行される対(ペア）一時停止のフローを示す。対(ペア）一時停止要求は、一時停止される複製対（リプリケーションペア）のソースボリュームのＩＤを含む。対(ペア）一時停止要求は、ソースボリュームのＩＤの代わりに、一時停止される複製対（リプリケーションペア）のＩＤを含んでよい。
【０１２５】
６１５０で、ストレージ管理プログラム１２２Ａは、ユーザから対(ペア）一時停止要求を受信する。６１５１で、ストレージ管理プログラム１２２Ａは、対(ペア）一時停止要求からボリュームＩＤ又は対(ペア）ＩＤを抽出する。６１５２で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａにトランザクション凍結要求を送信する。
【０１２６】
データベース管理プログラム１２１Ａがトランザクション凍結要求を受信するとき、データベース管理プログラム１２１Ａは、新しいトランザクションを処理することを停止し、代わりに後の処理のために新しいトランザクションを待ち行列に入れる。データベース管理プログラム１２１Ａは、データベース管理プログラム１２１Ａが凍結要求を受信したときにすでに開始されていたトランザクションを処理し続ける。データベース管理プログラム１２１Ａが、データベース管理プログラム１２１Ａが凍結要求を受信したときにすでに開始されていたトランザクションのすべてを完了しているとき、データベース管理プログラム１２１Ａは、ストレージ管理プログラム１２２Ａにトランザクション凍結の完了を示す完了応答を送信する。
【０１２７】
６１５３で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａからトランザクション凍結の完了を示す完了応答を受信する。６１５４で、ストレージ管理プログラム１２２Ａは、図２３に示されるフローを実行することによってストレージシステム２Ａの複製ビットマップ２２２６Ａを更新する。６１５５で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａに対(ペア）一時停止要求を送信する。ストレージ管理プログラム１２２Ａは、６１５１から抽出されたボリュームＩＤ又は対(ペア）ＩＤを対(ペア）一時停止要求に含む。ストレージシステム２Ａが対(ペア）一時停止要求を受信するとき、複製管理プログラム２２１Ａは、図１２のフローを実行することによって、対(ペア）一時停止要求に含まれるボリュームＩＤによって識別されるボリュームを一時停止する。
【０１２８】
６１５６で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａから対(ペア）一時停止の完了を示す完了応答を受信する。６１５７で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａにトランザクション解凍要求を送信する。データベース管理プログラム１２１Ａがトランザクション解凍要求を受信するとき、データベース管理プログラム１２１Ａは、６１５２のフローで待ち行列に入れられたトランザクションを処理する。
【０１２９】
データベース管理プログラム１２１Ａが待ち行列に入れられたトランザクションのすべてを完了するとき、データベース管理プログラム１２１Ａは、新しいトランザクションの処理を再開し、ストレージ管理プログラム１２２Ａにトランザクション解凍の完了を示す完了応答を送信する。
【０１３０】
６１５８で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａからトランザクション解凍の完了を示す完了応答を受信する。６１５９で、ストレージ管理プログラム１２２Ａは、ユーザ又はユーザによって作成されたプログラムに対(ペア）一時停止の完了を示す完了応答を送信する。
【０１３１】
図２３は、実施形態に係る、ストレージ管理プログラム１２２Ａによる複製ビットマップ更新のフローチャートを示す。具体的には、図２３は、ストレージ管理プログラム１２２Ａによって実行される複製ビットマップ更新のフローを示す。このフローは、図２２の６１５４のフローに相当する。
【０１３２】
ストレージ管理プログラム１２２Ａは、図２２の６１５４でフローを実行することに加えて、このフローを周期的に実行してよい。ストレージ管理プログラム１２２Ａは、このフローを周期的に実行することによって、ストレージシステム２Ａの複製ビットマップ２２２６Ａを最新に保つことができる。このフローは、トランザクションがその間凍結される６１５２と６１５７のフロー間の時間を短縮できる。
【０１３３】
６１６０で、ストレージ管理プログラム１２２Ａは、テーブルＩＤリスト１２４Ａに保存されたテーブルＩＤを取り出す。６１６１で、ストレージ管理プログラム１２２Ａは、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａにテーブル位置要求を送信する。テーブル位置要求は、６０６０で取り出されたテーブルＩＤを含む。
【０１３４】
データベース管理プログラム１２１Ａがテーブル位置要求を受信するとき、データベース管理プログラム１２１Ａはストレージ管理プログラム１２２Ａにテーブル位置要求に対する応答を送信する。応答は、テーブル位置要求に含まれるＩＤに対応するテーブルの位置を含む。各位置は、例えばサーバ１Ａによって管理されるデバイスのＩＤ及びデバイスの中で領域を指定するアドレス範囲である。
【０１３５】
６１６２で、ストレージ管理プログラム１２２Ａは、データベース管理プログラム１２１Ａからテーブル位置要求に対する応答を受信する。６１６３で、ストレージ管理プログラム１２２Ａは、テーブル位置要求に対する応答からデバイスＩＤ及びアドレス範囲を抽出する。６１６４で、ストレージ管理プログラム１２２Ａは、デバイス／ボリューム変換テーブル１２３Ａを調べることによって、６１６３から抽出された各デバイスＩＤをストレージシステム２Ａの中でボリュームを識別するために使用されるＩＤに変換する。６１６５で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａに複製ビットマップ構成要求を送信する。複製ビットマップ構成要求は、６１６４から得られたボリュームＩＤ、及び６１６３から抽出されたアドレス範囲を含む。複製ビットマップ構成要求は、ボリュームＩＤの代わりに、ボリュームに適用された複製対（リプリケーションペア）のＩＤを含んでよい。
【０１３６】
アドレス範囲の代わりに、複製ビットマップ構成要求はビットマップを含んでよい。ビットマップは、６１６３から抽出されたアドレス範囲からストレージ管理プログラム１２２Ａによって作成される。ビットマップの各ビットは、複製ビットマップ２２２６Ａのビットに相当する。ストレージシステム２Ａが複製ビットマップ構成要求を受信するとき、ストレージシステム２Ａは、図２４Ａに示されるフローを実行する。６１６６で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａから複製ビットマップ構成の完了を示す完了応答を受信する。
【０１３７】
図２４は、実施形態に係る、複製管理プログラム２２１Ａによる複製ビットマップ更新のフローチャートを示す。具体的には、図２４は、ストレージシステム２Ａが６１６５のフローでストレージ管理プログラム２２１Ａによって送信される複製ビットマップ更新要求を受信するとき、複製管理プログラム２２１Ａによって実行される複製ビットマップ更新のフローを示す。
【０１３８】
６１７０で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａから複製ビットマップ更新要求を受信する。６１７１で、複製管理プログラム２２１Ａは、複製ビットマップ更新要求からボリュームＩＤ又は対(ペア）ＩＤ及びアドレス範囲又はビットマップを抽出する。６１７２で、複製管理プログラム２２１Ａは、６１７１から抽出された各ボリュームＩＤ又は対(ペア）ＩＤに対応する対(ペア）管理テーブル２２２Ａにエントリを位置付ける。各エントリを位置付けるために、複製管理プログラム２２１Ａは、ソースボリュームＩＤ２２２３Ａが抽出されたボリュームＩＤに等しい、又は対(ペア）ＩＤ２２２０Ａが抽出された対(ペア）ＩＤに等しいエントリがないか対(ペア）管理テーブル２２２Ａを検索する。
【０１３９】
６１７３で、複製管理プログラム２２１Ａは、６１７２から位置付けられた各エントリの複製ビットマップ２２２６Ａのための新しい「オン」ビットを計算する。複製管理プログラム２２１Ａは、６１７１のフローから抽出されたアドレス範囲に対応するが、「オフ」に等しい複製ビットマップ２２２６Ａのビットのすべてを決定することによって、各複製ビットマップ２２２６Ａにこの計算を実行する。アドレス範囲の代わりに、ビットマップが６１７１でフローから抽出された場合、複製管理プログラム２２１Ａは、抽出されたビットマップのオンビットに相当するが、「オフ」に等しい複製ビットマップ２２２６Ａのビットのすべてを決定する。
【０１４０】
６１７４で、複製管理プログラム２２１Ａは、ステップ６１７３で計算された新しい「オン」ビットに対応するデータのすべてをストレージシステム２Ｂにコピーする。６１７５で、複製管理プログラム２２１Ａは、６１７２のフローから各エントリの複製ビットマップ２２２６Ａのための新しい「オフ」ビットを計算する。複製管理プログラム２２１Ａは、６１７１から抽出されたアドレス範囲に対応しないが、「オン」に等しい複製ビットマップ２２２６Ａのビットのすべてを決定することによって、各複製ビットマップ２２２６Ａにこの計算を実行する。アドレス範囲の代わりにビットマップが６１７１から抽出された場合、複製管理プログラム２２１Ａは、抽出されたビットマップのオフビットに対応するが、「オン」に等しい複製ビットマップ２２２６Ａのビットのすべてを決定する。
【０１４１】
６１７６で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂにデータ削除要求を送信する。ステップ６１７２で位置付けられた各エントリについて、データ削除要求は、位置付けられたエントリの６１７５から計算されたソースボリュームＩＤ２２２３Ａ及び新しい「オフ」ビットを含む。ストレージシステム２Ｂがデータ削除要求を受信するとき、複製管理プログラム２２１Ｂは、データ削除要求に含まれるソースボリュームＩＤ２２２３Ａ及び「オフ」ビットに対応するデータを削除する。複製管理プログラム２２１Ｂは、次いでストレージシステム２Ａにデータ削除の完了を示す完了要求を送信する。
【０１４２】
６１７７で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂからデータ削除の完了を示す完了応答を受信する。６１７８で、複製管理プログラム２２１Ａは、６０２１のフローから抽出されたアドレス範囲に対応する情報を「オン」に設定することによって、６１７２のフローから位置付けられた各エントリの複製ビットマップ２２２６Ａを更新する。アドレス範囲の代わりにビットマップが６１７１のフローから抽出された場合、複製管理プログラム２２１Ａは、６１７１のフローから抽出されたビットマップを複製ビットマップ２２２６Ａにコピーすることによって、６１７２のフローから位置付けられた各エントリの複製ビットマップ２２２６Ａを更新する。
【０１４３】
６１７９で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに複製ビットマップ更新要求を送信する。６１７２から位置付けられた各エントリについて、複製ビットマップ更新要求は、位置付けられたエントリのソースボリュームＩＤ２２２３Ａ及び複製ビットマップ２２２６Ａを含む。ストレージシステム２Ｂが複製ビットマップ更新要求を受信するとき、複製管理プログラム２２１Ｂは、複製ビットマップ更新に含まれたソースボリュームのＩＤに対応するエントリを位置付け、位置付けられたエントリの複製ビットマップ２２２６Ｂを更新することによって、対(ペア）管理テーブル２２２Ｂを更新する。複製管理プログラム２２１Ｂは、次いでストレージシステム２Ａに複製ビットマップ更新の完了を示す完了応答を送信する。
【０１４４】
６１８０で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂから複製ビットマップ更新の完了を示す完了応答を受信する。６１８１で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａに複製ビットマップ更新の完了を示す完了応答を送信する。
【０１４５】
第４の実施形態では、ストレージシステムは、ユーザによって指定されたデータベーステーブルのＩＤに基づいて１つ以上のボリュームのサブセットを別のストレージシステムに複製する。システムの物理構成は、第１の実施形態に説明されたのと同じである。システムの論理構成の相違点、及びシステムがどのようにして制御されるのかが以下に説明される。
【０１４６】
図２５は、実施形態に係る、対(ペア）管理テーブル２２２Ａ及び２２２Ｂの論理レイアウトを示す。対(ペア）管理テーブル２２２Ａの論理レイアウトは、基本的に第１の実施形態に説明されるのと同じである。しかしながら、対(ペア）管理テーブル２２２Ａの各エントリは、複製ビットマップ２２２６Ａの代わりに複製ビット２２２６Ａ’を含む。複製ビット２２２６Ａ’は、ソースボリュームが宛先（デスティネーション）ボリュームに複製されるべきであるかどうかを管理するために使用される。複製ビット２２２６Ａ’の例の値は「オン」及び「オフ」である。「オン」は、ソースボリュームが複製されることを示し、「オフ」はソースボリュームが複製されないことを示す。
【０１４７】
対(ペア）管理テーブル２２２Ｂの論理レイアウトは、基本的に第１の実施形態に説明されるのと同じである。しかしながら、対(ペア）管理テーブル２２２Ｂの各エントリは、複製ビットマップ２２２６Ｂの代わりに複製ビット２２２６Ｂ’を含む。複製ビット２２２６Ｂ’は、ソースボリュームが宛先（デスティネーション）ボリュームに複製されるべきかどうかを管理するために使用される。複製ビット２２２６Ｂ’の例の値は「オン」及び「オフ」である。「オン」は、ソースボリュームが複製されることを示し、「オフ」は、ソースボリュームが複製されないことを示す。
【０１４８】
図２６は、実施形態に係る、ストレージ管理プログラム１２２Ａによる複製構成のフローチャートを示す。具体的には、図２６は、サーバ１Ａがユーザ又はユーザによって作成されたプログラムから複製構成要求を受信するとき、ストレージ管理プログラム１２２Ａによって実行される複製構成のフローを示す。複製構成のフローは、基本的に図８に説明されるフローと同じである。しかしながら、６０１４及び６０１６のフローは、６０１４’及び６０１６’のフローによって置換される。
【０１４９】
６０１４’で、ストレージ管理プログラム１２２Ａは、テーブル位置要求遺体する応答からデバイスＩＤを抽出する。６０１６’で、ストレージ管理プログラム１２２Ａは、ストレージシステム２Ａに複製ビット構成要求を送信する。複製ビット構成要求は、６０１５のフローから得られたボリュームＩＤを含む。複製ビットマップ構成要求は、ボリュームＩＤの代わりに、ボリュームに適用された複製対（リプリケーションペア）のＩＤを含んでよい。ストレージシステム２Ａが複製ビットマップ構成要求を受信するとき、ストレージシステム２Ａは図２７に示されるフローを実行する。
【０１５０】
図２７は、実施形態に係る、複製管理プログラム２２１Ａによる複製ビット構成のフローチャートを示す。具体的には、図２７は、ストレージシステム２Ａが、６０１６’のフローでストレージ管理プログラム２２１Ａによって送信される複製ビット構成要求を受信するとき、複製管理プログラム２２１Ａによって実行される複製ビット構成のフローを示す。
【０１５１】
６１９０で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａから複製ビット構成要求を受信する。６１９１で、複製管理プログラム２２１Ａは、複製ビット構成要求からボリュームＩＤ又は対(ペア）ＩＤを抽出する。６１９２で、複製管理プログラム２２１Ａは、６１９１のフローから抽出された各ボリュームＩＤ又は対(ペア）ＩＤに対応する対(ペア）管理テーブル２２２Ａにエントリを位置付ける。各エントリを位置付けるために、複製管理プログラム２２１Ａは、ソースボリュームＩＤ２２２３Ａが抽出されたボリュームＩＤに等しい又は対(ペア）ＩＤ２２２０Ａが抽出された対(ペア）ＩＤに等しいエントリがないか対(ペア）管理テーブル２２２Ａを検索する。
【０１５２】
６１９３で、複製管理プログラム２２１Ａは、６１９２のフローから位置付けられた各エントリの複製ビット２２２６Ａ’を設定する。６１９４で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂに複製ビット更新要求を送信する。６１９２のフローに位置付けられた各エントリについて、複製ビット更新要求は、位置付けられたエントリのソースボリュームＩＤ２２２３Ａ及び複製ビット２２２６Ａ’を含む。
【０１５３】
ストレージシステム２Ｂが複製ビット更新要求を受信するとき、複製管理プログラム２２１Ｂは、複製ビットマップ更新要求に含まれるソースボリュームのＩＤに対応するエントリを位置付け、位置付けられたエントリの複製ビット２２２６Ｂ’を更新することによって対(ペア）管理テーブル２２２Ｂを更新する。複製管理プログラム２２１Ｂは、次いでストレージシステム２Ａに複製ビット更新の完了を示す完了応答を送信する。
【０１５４】
６１９５で、複製管理プログラム２２１Ａは、ストレージシステム２Ｂから複製ビット更新の完了を示す完了応答を受信する。６１９６で、複製管理プログラム２２１Ａは、ストレージ管理プログラム１２２Ａに複製ビット構成の完了を示す完了応答を送信する。
【０１５５】
第１の実施形態においてのように、複製管理プログラム２２１Ａは、ストレージシステム２Ａがストレージ管理プログラム１２２Ａから対(ペア）同期要求を受信するとき、図１０に示されるフローを実行する。しかしながら、６０５１のフローでは、複製管理プログラム２２１Ａは、複製ビットマップ２２２６Ａの代わりに複製ビット２２２６Ａ’を参照することによって、領域がコピーされるかどうかを判断する。
【０１５６】
第１の実施形態においてのように、Ｉ／Ｏ処理プログラム２２０Ｂは、ストレージシステム２Ｂがサーバ２Ｂから読取り要求を受信するとき、図１３に示されるフローを実行する。しかしながら、６０７８のフローでは、Ｉ／Ｏ処理プログラム２２０Ｂは、複製ビットマップ２２２６Ｂの代わりに複製ビット２２２６Ｂ’を参照することによって、要求されたデータがストレージシステム２Ｂに複製されているかどうかを判断する。
【０１５７】
第１の実施形態においてのように、Ｉ／Ｏ処理プログラム２２０Ａは、ストレージシステム２Ａがサーバ１Ａから書込み要求を受信するとき、図１４に示されるフローを実行する。しかしながら、６０９６のフローでは、Ｉ／Ｏ処理プログラム２２０Ａは、複製ビットマップ２２２６Ａの代わりに複製ビット２２２６Ａ’を参照することによって、サーバ１Ａから受信されたデータがストレージシステム２Ｂに複製されるかどうかを判断する。
【０１５８】
発明を実施するための形態のいくつかの部分は、コンピュータの中の動作のアルゴリズム及び象徴的な表現の観点から提示されている。これらのアルゴリズムの説明及び象徴的な表現は、データ処理技術の当業者が他の当業者に対して自らの革新の本質を伝えるために使用する手段である。アルゴリズムは、所望される最終状態又は結果につながる一連の定められたステップである。実施形態では、実施されるステップは、具体的な成果を達成するために具体的な量の物理的な操作を必要とする。
【０１５９】
特に明記しない限り、説明から明らかであるように、明細書を通して、「処理する」「算出する」、「計算する」、「判断する」、「表示する」等の用語を活用する説明は、コンピュータシステム、又は該コンピュータシステムのレジスタ及びメモリの中で物理（電子）量として表されるデータを操作し、該コンピュータシステムのメモリ若しくはレジスタ又は他の情報ストレージデバイス、伝送装置、若しくは表示装置の中で物理量として同様に表される他のデータに変換する他の情報処理装置を含む場合があることが理解される。
【０１６０】
また、実施形態は、本明細書の動作を実行するための装置にも関してよい。この装置は、必要とされる目的のために特別に構築される場合もあれば、該装置は１つ以上のコンピュータプログラムによって選択的に活性化又は再構成される１つ以上の汎用コンピュータを含む場合もある。係るコンピュータプログラムは、コンピュータ可読記憶媒体又はコンピュータ可読信号媒体等のコンピュータ可読媒体に記憶されてよい。コンピュータ可読記憶媒体は、例えば磁気ディスク、読出し専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイス及びドライブ等の実態のある媒体、又は電子情報を記憶するために適した任意の他のタイプの実体のある媒体若しくは非一過性媒体を含んでよいが、これに限定されるものではない。コンピュータ可読信号媒体は、搬送波等の媒体を含んでよい。本明細書に提示されるアルゴリズム及びディスプレイは、本質的に、任意の特定のコンピュータ又は他の装置に関係していない。コンピュータプログラムは、所望される実施形態の動作を実行する命令を含む純粋なソフトウェア実施形態を含む場合がある。
【０１６１】
種々の汎用システムは、本明細書の例に係るプログラム及びモジュールとともに使用される場合もあれば、所望される方法ステップを実行するためにより専門的な装置を構築することが便利であることが判明する場合もある。さらに、実施形態は、任意の特定のプログラミング言語を参照して説明されていない。本明細書に説明される実施形態の教示を実施するために、さまざまなプログラミング言語が使用され得ることが理解される。プログラミング言語（複数可）の命令は、例えば、中央演算処理装置（ＣＰＵ）、プロセッサ、又はコントローラ等の１つ以上の処理装置によって実行されてよい。
【０１６２】
技術で既知であるように、上述された動作は、ハードウェア、ソフトウェア、又はソフトウェア及びハードウェアのなんらかの組み合わせによって実行できる。実施形態の種々の態様は、回路及び論理装置（ハードウェア）を使用し、実施され得る。一方、他の態様は、プロセッサによって実行されると、プロセッサに本願の実施形態を実施するための方法を実行させるであろう機械可読媒体（ソフトウェア）に記憶される命令を使用し、実施され得る。さらに、他の実施形態がソフトウェアにおいてのみ実行され得るのに対し、本願のいくつかの実施形態はハードウェアにおいてのみ実行され得る。さらに、説明される種々の機能は単一のユニットで実行できる、又は任意の数の方法でいくつかの構成要素にわたって拡散できる。方法は、ソフトウェアによって実行されるとき、コンピュータ可読媒体に記憶された命令に基づいて汎用コンピュータ等のプロセッサによって実行されてよい。所望される場合、命令は、圧縮されたフォーマット及び／又は符号化されたフォーマットで媒体に記憶できる。
【０１６３】
さらに、本願の他の実施形態は、明細書の検討及び本願の教示の実施から当業者に明らかになる。説明された実施形態の種々の態様及び／又は構成要素は、単独で又は任意の組合せで使用されてよい。明細書及び実施形態が例としてのみ見なされ、本願の真の範囲及び精神は以下の特許請求の範囲により示されることが意図される。
【図１】
2019509553.tif 000003
【図２】
2019509553.tif 000004
【図３】
2019509553.tif 000005
【図４】
2019509553.tif 000006
【図５】
2019509553.tif 000007
【図６】
2019509553.tif 000008
【図７】
2019509553.tif 000009
【図８】
2019509553.tif 000010
【図９】
2019509553.tif 000011
【図１０】
2019509553.tif 000012
【図１１】
2019509553.tif 000013
【図１２】
2019509553.tif 000014
【図１３】
2019509553.tif 000015
【図１４】
2019509553.tif 000016
【図１５】
2019509553.tif 000017
【図１６】
2019509553.tif 000018
【図１７】
2019509553.tif 000019
【図１８】
2019509553.tif 000020
【図１９】
2019509553.tif 000021
【図２０】
2019509553.tif 000022
【図２１】
2019509553.tif 000023
【図２２】
2019509553.tif 000024
【図２３】
2019509553.tif 000025
【図２４】
2019509553.tif 000026
【図２５】
2019509553.tif 000027
【図２６】
2019509553.tif 000028
【図２７】
2019509553.tif 000029
【国際調査報告】
2019509553.tif 000030