(57)【要約】一つまたは多数のデータオブジェクトを、一つまたは多数のローカル記憶装置（ＳＤＬ）から一つまたは多数のリモート記憶装置（ＳＤＲｘ）へと同時にミラーリングする方法およびシステムが開示されている。一つまたは多数のデータオブジェクトが、ミラーリング中に使用されうる。ミラーリング機能は、その適用例において、連続したミラーリングサイクルにて順に繰り返される一連の凍結およびコピーからなる。最新のローカル更新ミラーリングバージョンのみが、リモート記憶装置内に格納される。新規に更新された各バージョンが、以前のバージョンを上書きする。ミラーリングは、一連の離散データブロックを凍結およびコピーすることにより、非同期かつバックグラウンドで実行される。ミラーリング機能は、２つ以上のミラーリング動作を同時に実行したり、同時クロスミラーリングを実行したりするように動作することが可能である。
2005500603.tif 000002
【特許請求の範囲】
【請求項１】
選択されたデータオブジェクトを、少なくとも一つのローカル記憶装置（ＳＤＬ）から、少なくとも一つのリモート記憶装置（ＳＤＲｘ）へとミラーリングするように動作する方法において、
前記の少なくとも一つのローカル記憶装置は、第１の処理機構（ＨＬ）に対して接続され、前記の少なくとも一つのリモート記憶装置は、第２の処理機構（ＨＲ）に対して接続され、前記の少なくとも一つのローカル記憶装置と、前記の少なくとも一つのリモート記憶装置と、前記第１および第２の処理機構とは、複数のユーザ、複数の処理機構、および複数の記憶装置を含むネットワーク接続部に対して接続され、前記方法は、
前記第１および第２の処理機構にてミラーリング機能を実行するステップであって、前記ミラーリング機能は、
選択されたデータオブジェクトを凍結する凍結手順と、
凍結され選択されたデータオブジェクトを少なくとも一つのリモート記憶装置にコピーするためのコピー手順とを有するステップと、
ミラーリング機能の実行と並行して、選択されたデータオブジェクトの使用および更新を可能にするステップと、
ミラーリング中断コマンドを受信しない限り、選択されたデータオブジェクトに更新をコピーするためにミラーリング機能を繰り返し実行することを、デフォルトで命令するステップとを含み、
前記の少なくとも一つのローカル記憶装置内にある選択されたデータオブジェクトがコピーされ、前記の少なくとも一つのリモート記憶装置へ順に更新されることを特徴とする方法。
【請求項２】
前記ミラーリング機能は、
凍結手順を、ソースボリューム（ＳＶ）として選択されたデータオブジェクトに適用するステップと、
少なくとも一つのローカル補助ボリューム（ＡＶＬ）を作成するステップであって、該ローカル補助ボリュームに対して、選択されたデータオブジェクトへ向けられた更新がリダイレクトされ、選択されたデータオブジェクトのうちの各単独のデータオブジェクトは、少なくとも一つのローカル補助ボリュームのうちの一つのローカル補助ボリュームに対応しているステップと、
前記少なくとも一つのリモート記憶装置のうちの各リモート記憶装置内に、少なくとも一つのリモートボリュームを、作成された各ローカル補助ボリュームに対応させて作成するステップと、
凍結され選択されたデータオブジェクトおよび少なくとも一つのローカル補助ボリュームを含む少なくとも一つの結果としてのソースボリュームを、前記の少なくとも一つのローカル記憶装置内に形成するステップと、
凍結され選択されたデータオブジェクトを、前記の少なくとも一つの結果としてのボリュームから前記の少なくとも一つのリモート記憶装置へとコピーするためのコピー手順を適用するステップとを、さらに含むことを特徴とする請求項１記載の方法。
【請求項３】
２つ以上のデータオブジェクトに対して、ミラーリング機能を同時に適用するステップを、さらに含むことを特徴とする請求項１記載の方法。
【請求項４】
少なくとも一つのローカル記憶装置から少なくとも一つのリモート記憶装置へと、および、その逆の方向へと、同時にミラーリングするステップを、さらに含むことを特徴とする請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記ミラーリング機能は、
２つ以上のデータオブジェクトを同時に凍結させるための凍結手順を適用するステップを、さらに含むことを特徴とする請求項２記載の方法。
【請求項６】
前記ミラーリング機能は、
２つ以上の凍結された選択されたデータオブジェクトを同時にコピーするために、コピー手順を適用するステップを、さらに含むことを特徴とする請求項２記載の方法。
【請求項７】
一つのローカル記憶装置内にある一つの単独のデータオブジェクトを、２つ以上のリモート記憶装置へ同時にミラーリングするステップを、さらに含むことを特徴とする請求項１または２記載の方法。
【請求項８】
２つ以上の単独のデータオブジェクトを、一つのローカル記憶装置から一つのリモート記憶装置へと同時にミラーリングするステップを、さらに含むことを特徴とする請求項１または２記載の方法。
【請求項９】
複数の単独のデータオブジェクトであってそれぞれが同数のローカル記憶装置内にあるデータオブジェクトを、一つのリモート記憶装置へ同時にミラーリングするステップを、さらに含むことを特徴とする請求項１または２記載の方法。
【請求項１０】
一つのローカル記憶装置内にある複数の単独のデータオブジェクトを、それぞれ、同数のリモート記憶装置へ同時にミラーリングするステップを、さらに含むことを特徴とする請求項１または２記載の方法。
【請求項１１】
複数のローカル記憶装置のうちの各々のローカル記憶装置内にある一つの単独のデータオブジェクトを、一つのリモート記憶装置へ同時にミラーリングするステップを、さらに含むことを特徴とする請求項１または２記載の方法。
【請求項１２】
ミラーリングは、
選択された時点にて、
ミラーリングサイクルを開始するステップと、
選択されたデータオブジェクトを凍結するステップと、
少なくとも一つのローカル補助ボリューム（ＡＶＬ）を、少なくとも一つのローカル記憶装置（ＳＤＬ）内に作成すると共に、少なくとも一つのリモートボリューム（ＲＶ）を、少なくとも一つのリモート記憶装置（ＳＤＲｘ）内に作成するステップと、
凍結され選択されたデータオブジェクトおよびローカル補助ボリューム（ＡＶＬ）を含む少なくとも一つの結果としてのソースボリュームを形成するステップと、
前記選択された時点後に、
凍結され選択されたデータオブジェクトを、結果としてのソースボリュームから少なくとも一つのローカル補助ボリュームへと、コピーが完了するまでコピーするステップと、
選択されたデータオブジェクトへ向けられた更新を、ローカル補助ボリュームへリダイレクトするステップと、
結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用を可能にするステップと、
少なくとも一つのリモート記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルを繰り返すステップとを、さらに含むことを特徴とする請求項１記載の方法。
【請求項１３】
ミラーリングは、
少なくとも一つのリモート記憶装置へのコピー完了後、次の時点にて、次のミラーリングサイクルを開始するステップと、
結果としてのソースボリュームを凍結するステップと、
最終のローカル補助ボリュームを、前記ローカル記憶装置内に作成すると共に、最終のリモートボリュームを、前記の少なくとも一つのリモート記憶装置内に作成するステップと、
最後から２番目の結果としてのソースボリュームおよび最終のローカル補助ボリュームを含む、最終の結果としてのソースボリュームを形成するステップと、
前記次の時点後に、
最後から２番目のローカル補助ボリュームを、最終のリモートボリュームへコピーするステップと、
選択されたデータオブジェクトへと向けられた更新を、最終のローカル補助ボリュームへリダイレクトするステップと、
最終の結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用を可能にするステップと、
最終のリモートボリュームへのコピー完了後、
最後から２番目のローカル補助ボリュームを、凍結され選択されたデータオブジェクトに同期させるステップと、
前記第２の処理機構（ＨＲ）のコマンドにより、少なくとも一つの最終のリモートボリュームを、最後から２番目のリモートボリュームに同期させるステップと、
前記の少なくとも一つの第２の記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルを繰り返すステップとを、さらに含むことを特徴とする請求項１２記載の方法。
【請求項１４】
ミラーリングは、
最後から２番目のローカル補助ボリュームのコピー完了後に起こるさらに別の時点を選択するステップと、
結果としてのソースボリュームを凍結するステップと、
最終のローカル補助ボリュームを、前記ローカル記憶装置内に作成すると共に、最終のリモートボリュームを、前記の少なくとも一つのリモート記憶装置内に、作成するステップと、
最後から２番目の結果としてのソースボリュームおよび最終のローカル補助ボリュームを含む、最終の結果としてのソースボリュームを形成するステップと、
最後から２番目のローカル補助ボリュームを、少なくとも一つの最終のリモートボリュームへコピーするステップと、
選択されたデータオブジェクトへ向けられた更新を、最終のローカル補助ボリュームへとリダイレクトするステップと、
最終の結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用を可能にするステップと、
最後から２番目のローカル補助ボリュームを、選択されたデータオブジェクトに同期させるステップと、
少なくとも一つの最終のリモートボリュームを、最後から２番目のリモートボリュームに同期させるステップと、
前記の少なくとも一つの第２の記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルを繰り返すステップとを、さらに含むことを特徴とする請求項１３記載の方法。
【請求項１５】
ミラーリングは、
最後から２番目のローカル補助ボリュームより前のコピーが完了した時点にて入力された更新を含む選択されたデータオブジェクトの完全にミラーリングされたコピーを、前記の少なくとも一つのリモート記憶装置内に格納するステップを、さらに含むことを特徴とする請求項１４記載の方法。
【請求項１６】
ミラーリングは、データボリューム、仮想ボリューム、データファイル、システムファイル、アプリケーションプログラム、オペレーションシステム、データ構造、およびデータベースレコードからなるグループから選択されたデータオブジェクトに対して、適用可能であることを特徴とする請求項１記載の方法。
【請求項１７】
ミラーリングは、ローカルエリア・ネットワーク、ワイドエリア・ネットワーク、およびストレージエリア・ネットワークからなるグループから選択されたネットワーク接続部に対して、適用可能であることを特徴とする請求項１記載の方法。
【請求項１８】
ミラーリングは、
少なくとも最終のローカル補助ボリュームを最終のリモートボリュームへコピーする時間にわたって継続するものと規定された離散反復時間間隔で、ミラーリング機能の動作を繰り返すことを、さらに含むことを特徴とする請求項１記載の方法。
【請求項１９】
ミラーリングは、
更新を同期させて、選択されたデータオブジェクトを上書きし、
後のリモートボリュームを同期させて、最後から２番目の結果としての第１のリモートボリュームを上書きすることを、さらに含むことを特徴とする請求項１記載の方法。
【請求項２０】
選択されたデータオブジェクトは、コンテンツの一部、コンテンツの全部、および前記ローカル記憶装置のコンテンツよりも多くのコンテンツからなるコンテンツ範囲のグループから選択されたコンテンツ範囲を含むことを特徴とする請求項１記載の方法。
【請求項２１】
ミラーリングは、
前記ローカル記憶装置（ＳＤＬ）にて、時刻（ｔ）がｔ＝１の時点で、
カウンタをｓ＝１に設定し、ローカル補助ボリューム（ｓ）を作成するステップと、
選択されたデータオブジェクトを凍結し、ローカル補助ボリューム（ｓ）および選択されたデータオブジェクトを、結果としてのソースボリューム（ｓ）に含めるステップと、
結果としてのソースボリューム（ｓ）に関連してデータオブジェクトを使用することを可能にするステップと、
少なくとも一つのリモート記憶装置にて、
時刻（ｔ）にて、リモートボリューム（ｓ）を、少なくともデータオブジェクトと等しいサイズで作成するステップと、
時刻（ｔ）で開始して、
凍結されたデータオブジェクトを、結果としてのソースボリューム（ｓ）からリモートボリューム（ｓ）へと、コピーが完了するまでコピーするステップとを、さらに含み、
時刻（ｔ）にて凍結されたデータオブジェクトが、前記の少なくとも一つのリモート記憶装置にてミラーリングされることを特徴とする請求項１記載の方法。
【請求項２２】
ミラーリングは、
前記ローカル記憶装置にて、前記の少なくとも一つのリモート記憶装置へのコピー完了後に起こる時刻（ｔ）がｔ＝ｔ＋１の時点で、
ａ．カウンタをｓ＝ｓ＋１へと増加させるステップと、
ｂ．ローカル補助ボリューム（ｓ）を作成するステップと、
ｃ．結果としてのソースボリューム（ｓ−１）を凍結させ、ローカル補助ボリューム（ｓ）および結果としてのソースボリューム（ｓ−１）を、結果としての仮想ボリューム（ｓ）に含めるステップと、
ｄ．結果としてのローカルボリューム（ｓ）に関連してデータオブジェクトを使用することを可能にするステップと、
前記の少なくとも一つのリモート記憶装置にて、
ｅ．時刻（ｔ）にて、リモートボリューム（ｓ）を、少なくともソースボリュームと等しいサイズで作成するステップと、
時刻（ｔ）で開始して、
ｆ．ローカル補助ボリューム（ｓ−１）を、結果としてのソースボリューム（ｓ）からリモートボリューム（ｓ）へとコピーして、コピーを完了するステップと、
ｇ．リモートボリューム（ｓ）をリモートボリューム（ｓ−１）に上書きすることにより、前記第２の処理機構を同期のために動作させるステップと、
前記第１の記憶装置（ＳＤＬ）にて、
ｈ．リモートボリューム（ｓ）をローカル補助ボリューム（ｓ−１）に上書きすることにより、前記第１の処理機構を同期のために動作させるステップと、
前記のステップｆの完了後、ミラーリング中断コマンドがない限り、前記のステップａ〜ステップｈをデフォルトで繰り返すことにより、ミラーリングを繰り返すステップとを、さらに含むことを特徴とする請求項１５記載の方法。
【請求項２３】
ボリューム、仮想ボリュームまたは論理ボリューム、およびファイルからなるグループから、ボリュームが選択されることを特徴とする請求項２２記載の方法。
【請求項２４】
時刻（ｔ−２）にて入力された更新を含む選択されたデータオブジェクトの完全にミラーリングされたコピーを、前記の少なくとも一つのリモート記憶装置内に時刻（ｔ）にて格納することを、さらに含むことを特徴とする請求項２２記載の方法。
【請求項２５】
選択されたデータオブジェクトを、少なくとも一つのローカル記憶装置（ＳＤＬ）から、少なくとも一つのリモート記憶装置（ＳＤＲｘ）へとミラーリングするシステムにおいて、
前記の少なくとも一つのローカル記憶装置は、第１の処理機構（ＨＬ）に対して接続され、前記の少なくとも一つのリモート記憶装置は、第２の処理機構（ＨＲ）に対して接続され、前記の少なくとも一つのローカル記憶装置と、前記の少なくとも一つのリモート記憶装置と、前記第１および第２の処理機構とは、複数のユーザ、複数の処理機構、および複数の記憶装置を含むネットワーク接続部に対して接続され、前記システムは、
前記第１および第２の処理機構にて実行されるミラーリング機能を備え、
該ミラーリング機能は、選択されたデータオブジェクトを凍結する凍結手順と、
凍結された選択されたデータオブジェクトを少なくとも一つのリモート記憶装置にコピーするコピー手順とを含み、
選択されたデータオブジェクトは、ミラーリング機能の実行と並行して使用されかつ更新され、
ミラーリング機能は、ミラーリング中断コマンドを受信しない限り、選択されたデータオブジェクトに更新をコピーするために、デフォルトコマンドにより実行され、前記の少なくとも一つのローカル記憶装置内にある選択されたデータオブジェクトがコピーされ、前記の少なくとも一つのリモート記憶装置へ順に更新されることを特徴とするシステム。
【請求項２６】
前記ミラーリング機能は、
ソースボリューム（ＳＶ）として選択されたデータオブジェクトを凍結するために適用される凍結手順と、
少なくとも一つのローカル補助ボリューム（ＡＶＬ）であって、該ローカル補助ボリュームに対して、選択されたデータオブジェクトへ向けられた更新がリダイレクトされ、選択されたデータオブジェクトのうちの各単独のデータオブジェクトは、少なくとも一つのローカル補助ボリュームのうちの一つのローカル補助ボリュームに対応しているローカル補助ボリュームと、
作成された各ローカル補助ボリュームに対応させて、前記少なくとも一つのリモート記憶装置のうちの各リモート記憶装置内に作成される少なくとも一つのリモートボリュームと、
前記の少なくとも一つのローカル記憶装置内に形成されて、凍結され選択されたデータオブジェクトおよび少なくとも一つのローカル補助ボリュームを含む、結果としてのソースボリュームと、
凍結され選択されたデータオブジェクトを、前記の少なくとも一つの結果としてのボリュームから前記の少なくとも一つのリモート記憶装置へとコピーするために適用されるコピー手順とを、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項２７】
２つ以上のデータオブジェクトに対して同時に適用されるミラーリング機能を、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項２８】
少なくとも一つのローカル記憶装置から少なくとも一つのリモート記憶装置へと、および、その逆の方向へと、同時にミラーリングするように構成されたミラーリング機能を、さらに含むことを特徴とする請求項２５から２７のいずれか一項に記載のシステム。
【請求項２９】
２つ以上のデータオブジェクトを同時に凍結させるために適用される凍結手順を、さらに含むことを特徴とする請求項２６記載のシステム。
【請求項３０】
２つ以上の凍結された選択されたデータオブジェクトを同時にコピーするために適用されるコピー手順を、さらに含むことを特徴とする請求項２６記載のシステム。
【請求項３１】
前記ミラーリング機能は、
一つのローカル記憶装置内にある一つの単独のデータオブジェクトを、２つ以上のリモート記憶装置へ同時にミラーリングするための構成を、さらに含むことを特徴とする請求項２５または２６記載のシステム。
【請求項３２】
前記ミラーリング機能は、
２つ以上の単独のデータオブジェクトを、一つのローカル記憶装置から一つのリモート記憶装置へ同時にミラーリングするための構成を、さらに含むことを特徴とする請求項２５または２６記載のシステム。
【請求項３３】
前記ミラーリング機能は、
複数の単独のデータオブジェクトであってそれぞれが同数のローカル記憶装置内にあるデータオブジェクトを、一つのリモート記憶装置へ同時にミラーリングするための構成を、さらに含むことを特徴とする請求項２５または２６記載のシステム。
【請求項３４】
前記ミラーリング機能は、
一つのローカル記憶装置内にある複数の単独のデータオブジェクトを、それぞれ、同数のリモート記憶装置へ同時にミラーリングするための構成を、さらに含むことを特徴とする請求項２５または２６記載のシステム。
【請求項３５】
前記ミラーリング機能は、
複数のローカル記憶装置のうちの各々のローカル記憶装置内にある一つの単独のデータオブジェクトを、一つのリモート記憶装置へ同時にミラーリングするための構成を、さらに含むことを特徴とする請求項２５または２６記載のシステム。
【請求項３６】
ミラーリングは、
選択された時点にて、
ミラーリングサイクルが開始されることと、
選択されたデータオブジェクトが凍結されることと、
少なくとも一つのローカル補助ボリューム（ＡＶＬ）が、少なくとも一つのローカル記憶装置内に、少なくとも一つのリモートボリューム（ＲＶ）が、少なくとも一つのリモート記憶装置内に作成されることと、
凍結された選択されたデータオブジェクトおよびローカル補助ボリューム（ＡＶＬ）を含むように、少なくとも一つの結果としてのソースボリュームが形成されることと、
前記選択された時点後に、
凍結された選択されたデータオブジェクトが、結果としてのソースボリュームから少なくとも一つのリモートボリュームへと、コピーが完了するまでコピーされることと、
選択されたデータオブジェクトへと向けられた更新が、ローカル補助ボリュームへとリダイレクトされることと、
結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用が可能になることと、
少なくとも一つのリモート記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルが繰り返されることとを、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項３７】
ミラーリングは、
少なくとも一つのリモート記憶装置へのコピー完了後、次の時点にて、次のミラーリングサイクルが開始されることと、
結果としてのソースボリュームが凍結されることと、
最終のローカル補助ボリュームが、前記ローカル記憶装置内に作成されると共に、最終のリモートボリュームが、前記の少なくとも一つのリモート記憶装置内に作成されることと、
最後から２番目の結果としてのソースボリュームおよび最終のローカル補助ボリュームを含むように、最終の結果としてのソースボリュームが形成されることと、
前記次の時点後に、
最後から２番目のローカル補助ボリュームが、最終のリモートボリュームへコピーされることと、
選択されたデータオブジェクトへ向けられた更新が、最終の結果としてのソースボリューム内の最終のローカル補助ボリュームへリダイレクトされることと、
最終の結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用が可能になることと、
最終のリモートボリュームへのコピー完了後、
最後から２番目のローカル補助ボリュームが、凍結された選択されたデータオブジェクトに同期することと、
前記リモート処理機構（ＨＲ）のコマンドにより、少なくとも一つの最終のリモートボリュームが、最後から２番目のリモートボリュームに同期することと、
前記の少なくとも一つの第２の記憶装置（ＳＤＲ）へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルが繰り返されることとを、さらに含むことを特徴とする請求項３６記載のシステム。
【請求項３８】
ミラーリングは、
最後から２番目の補助ボリュームのコピー完了後に起こるさらに別の時点が選択されることと、
結果としてのソースボリュームが凍結されることと、
最終のローカル補助ボリュームが、前記ローカル記憶装置内に作成されると共に、最終のリモートボリュームが、前記の少なくとも一つの第２の記憶装置内に作成されることと、
最後から２番目の結果としてのソースボリュームおよび最終のローカル補助ボリュームを含む、最終の結果としてのソースボリュームが形成されることと、
最後から２番目のローカル補助ボリュームが、少なくとも一つの最終のリモートボリュームへとコピーされることと、
選択されたデータオブジェクトへ向けられた更新が、最終の結果としてのソースボリューム内の最終のローカル補助ボリュームへとリダイレクトされることと、
最終の結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用が可能になることと、
最後から２番目のローカル補助ボリュームが、選択されたデータオブジェクトに同期することと、
少なくとも一つの最終のリモートボリュームが、最後から２番目のリモートボリュームに同期するステップと、
前記の少なくとも一つの第２の記憶装置（ＳＤＲ）へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルが繰り返されることとを、さらに含むことを特徴とする請求項３７記載のシステム。
【請求項３９】
ミラーリングは、
前記の少なくとも一つのリモート記憶装置が、最後から２番目のローカル補助ボリュームより前のコピーが完了した時点にて入力された更新を含む選択されたデータオブジェクトの完全にミラーリングされたコピーを格納することを、さらに含むことを特徴とする請求項３８記載のシステム。
【請求項４０】
データボリューム、仮想ボリューム、データファイル、システムファイル、アプリケーションプログラム、オペレーションシステム、データ構造、およびデータベースレコードからなるグループから選択されたデータオブジェクトに対して適用可能なミラーリング機能を、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項４１】
ローカルエリア・ネットワーク、ワイドエリア・ネットワーク、およびストレージエリア・ネットワークからなるグループから選択されたネットワーク接続部に対して適用可能なミラーリング機能を、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項４２】
前記ミラーリング機能の動作は、少なくとも最終のローカル補助ボリュームを最終のリモートボリュームへコピーする時間にわたって継続するものと規定された離散反復時間間隔で繰り返されることを、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項４３】
更新が同期して、選択されたデータオブジェクトが上書きされ、
後のリモートボリュームが同期して、最後から２番目の結果としての第１のリモートボリュームが上書きされることを、さらに含むことを特徴とする請求項２５記載のシステム。
【請求項４４】
選択されたデータオブジェクトは、コンテンツの一部、コンテンツの全部、および前記ローカル記憶装置のコンテンツよりも多くのコンテンツからなるコンテンツ範囲のグループから選択されたコンテンツ範囲を含むことを特徴とする請求項２５記載のシステム。
【請求項４５】
前記ローカル記憶装置（ＳＤＬ）にて、時刻（ｔ）がｔ＝１の時点で、
ミラーリングサイクルカウンタがｓ＝１に設定され、ローカル補助ボリューム（ｓ）が作成されることと、
選択されたデータオブジェクトが凍結され、ローカル補助ボリューム（ｓ）、結果としてのソースボリューム（ｓ）、および選択されたデータオブジェクトが、結果としてのソースボリューム（ｓ）に含まれることと、
結果としてのソースボリューム（ｓ）に関連してデータオブジェクトの使用が可能になることと、
少なくとも一つのリモート記憶装置にて、
時刻（ｔ）にて、リモートボリューム（ｓ）が、少なくともデータオブジェクトと等しいサイズで作成されることと、
時刻（ｔ）で開始して、
凍結されたデータオブジェクトが、結果としてのソースボリューム（ｓ）からリモートボリューム（ｓ）へと、コピーが完了するまでコピーされることとを、さらに含み、
時刻（ｔ）にて凍結されたデータオブジェクトが、前記の少なくとも一つのリモート記憶装置にてミラーリングされることを特徴とする請求項２５記載のシステム。
【請求項４６】
前記ローカル記憶装置にて、前記の少なくとも一つのリモート記憶装置へのコピー完了後に起こる時刻（ｔ）がｔ＝ｔ＋１の時点で、
ａ．ミラーリングサイクルカウンタがｓ＝ｓ＋１へと増加することと、
ｂ．ローカル補助ボリューム（ｓ）が作成されることと、
ｃ．結果としてのソースボリューム（ｓ−１）が凍結され、ローカル補助ボリューム（ｓ）および結果としてのソースボリューム（ｓ−１）が、結果としての仮想ボリューム（ｓ）に含まれることと、
ｄ．結果としてのローカルボリューム（ｓ）に関連してデータオブジェクトの使用が可能になるステップと、
前記の少なくとも一つのリモート記憶装置にて、
ｅ．時刻（ｔ）にて、リモートボリューム（ｓ）が、少なくともソースボリュームと等しいサイズで作成されることと、
時刻（ｔ）で開始して、
ｆ．ローカル補助ボリューム（ｓ−１）が、結果としてのソースボリューム（ｓ）からリモートボリューム（ｓ）へと、コピーが完了するまでコピーされることと、
ｇ．リモートボリューム（ｓ）をリモートボリューム（ｓ−１）に上書きすることにより、前記第２の処理機構が同期のために動作することと、
前記第１の記憶装置（ＳＤＬ）にて、
ｈ．リモートボリューム（ｓ）をローカル補助ボリューム（ｓ−１）に上書きすることにより、前記第１の処理機構が同期のために動作することと、
前記のステップｆの完了後、ミラーリング中断コマンドがない限り、前記のステップａ〜ステップｈをデフォルトで繰り返すことにより、ミラーリングが繰り返されることとを、さらに含むことを特徴とする請求項４５記載のシステム。
【請求項４７】
ボリューム、仮想ボリュームまたは論理ボリューム、およびファイルからなるグループから、ボリュームが選択されることを特徴とする請求項４６記載のシステム。
【請求項４８】
時刻（ｔ−２）にて入力された更新を含む選択されたデータオブジェクトの完全にミラーリングされたコピーが、前記の少なくとも一つのリモート記憶装置内に時刻（ｔ）にて格納されることを、さらに含むことを特徴とする請求項４６記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ミラーリング、すなわち、データの複製の分野に関し、特に、ストレージエリア・ネットワーク（ＳＡＮ：Storage Area Network）または一般のネットワーク接続部に対して接続された複数の記憶装置間におけるデータオブジェクトの非同期ミラーリングに関する。
【０００２】
用語解説
選択されたデータオブジェクトは、単独のデータオブジェクト、または複数のデータオブジェクト、またはデータオブジェクトのグループである。
【０００３】
データオブジェクトは、ボリューム、論理ボリュームもしくは仮想ボリューム、データファイル、または任意のデータ構造である。データオブジェクトなる用語とボリュームなる用語とは、以下で、同義で用いられる。
【０００４】
「ローカル」なる用語は、ローカル記憶装置といったように、出力元を示すのに用いられる。
【０００５】
「リモート」なる用語は、リモート記憶装置といったように、出力先を示すのに用いられる。
【０００６】
記憶装置は、磁気ディスク、光ディスク、ＲＡＩＤＳ、およびＪＢＯＤＳである。
【０００７】
データオブジェクト用の記憶域は、記憶装置の一部のみ、または記憶装置の全域、または記憶装置の全域よりも多くの領域にわたる。
【０００８】
演算機構または処理機構は、コンピュータプロセッサ、ホスト、サーバ、ＰＣ、および、ストレージスイッチ（storage switch）もしくはネットワークスイッチ（network switch）、ストレージルータ（storage router）もしくはネットワークルータ（network router）、またはストレージコントローラである。演算機構は、コンピュータプログラムを実行するためのＲＡＭと共に動作するか、あるいは、メモリと磁気記憶手段または他の記憶手段に記憶されたコンピュータプログラムと共に動作する。
【０００９】
ネットワーク接続は、ローカルエリア・ネットワーク（ＬＡＮ）、ワイドエリア・ネットワーク（ＷＡＮ）、またはストレージエリア・ネットワーク（ＳＡＮ）である。
【背景技術】
【００１０】
ローカル記憶装置からリモート記憶装置へといったように、ある記憶装置から第２の記憶装置へのリモートミラーリングおよび記憶を実行するような従来技術の直接アクセス記憶システムは、処理をするのが難しい要件を規定しており、そのいくつかの例を以下に説明する。
【００１１】
例えば、あるシステムでは、ローカルおよびリモート記憶システムが同種のものであることが要求され、ローカル記憶サイトでのハードウェアとリモート記憶サイトでのハードウェアとが、同一の業者のものでなければならないということを意味している。他のシステムでは、リモート記憶装置への複製の前に、全ローカルデータが、ローカルシステムへ送信されることが要求されている。さらに他のシステムでは、ローカルボリュームが複数の記憶システムにわたる場合、リモートサイトにてデータの一貫性を保つために、同期システムが必要とされる。また別のシステムでは、ローカルサイトでのＩ／Ｏ要求をキューに入れる（queuing ）ことにより、あるサイトとリモートサイトとの間でデータ複製の一貫性が実現されている。これによって、大規模な記憶リソースの要求が課されるようになる。この理由として、書込コマンドの順序が保存されねばならないことが挙げられる。
【００１２】
Yanai et al. （ヤナイ他）の“Remote Data Mirroring（リモートデータ・ミラーリング）”なる名称の米国特許第５，７４２，７９２号（特許文献１）には、リモートのコピーデータの記憶を提供するシステムが開示されている。
【００１３】
しかしながら、そのシステムには、専用のデータ記憶システムコントローラが必要である。さらに、第１および第２データ記憶システム間のミラーリングには、データがコピーされる前に、これらのデータ記憶システムが同期している必要がある。
【００１４】
Micka et al.（ミッカ他）は、米国特許第５，６５７，４４０号（特許文献２）において、リモートデータコピーについて開示しているが、Micka et al.の開示内容では、特に、時間単位チェックポイント信号を周期的に同期させることを要するような順序の一貫性のある書込動作を提供する更新システムが必要とされている。
【００１５】
したがって、様々な形態で様々な業者から調達された異機種記憶装置ハードウェアの使用を可能にするデータ複製機能を提供するのは、有利なことである。連続的な複製は不必要であり、離散的な時刻にてなされた複製を保存することが望ましい。さらに、最新の複製のみを保存するだけで通常は充分であり、記憶ボリュームが節約されうる。そのうえ、専用のコントローラを必要としないようにすることが、最適であろう。
【００１６】
このような必要性は、以下の本発明の開示内容により解決される。
【００１７】
【特許文献１】
米国特許第５，７４２，７９２号
【特許文献２】
米国特許第５，６５７，４４０号
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本願の開示内容では、離散データブロックを順に凍結およびコピーすることにより、選択されたデータオブジェクトをローカル記憶装置からリモート記憶装置へとミラーリングすること、すなわち、複製することを実現するシステムとして実施される方法が提示される。ミラーリングがオペレーティングシステムに対してトランスペアレント（transparent ）であるため、ミラーリング中、選択されたデータオブジェクトは、途切れることなく使用されうる。一連の離散データブロックのコピーは、非同期かつバックグラウンドで実行される。
【００１９】
本発明の目的は、選択されたデータオブジェクトを、少なくとも一つのローカル記憶装置（ＳＤＬ）から、少なくとも一つのリモート記憶装置（ＳＤＲｘ）へとミラーリングするように動作する方法およびシステムを提供することにある。
【００２０】
少なくとも一つのローカル記憶装置は、第１の処理機構（ＨＬ）に対して接続され、少なくとも一つのリモート記憶装置は、第２の処理機構（ＨＲ）に対して接続されている。少なくとも一つのローカル記憶装置と、少なくとも一つのリモート記憶装置と、第１および第２の処理機構とは、複数のユーザ、複数の処理機構、および複数の記憶装置を含むネットワーク接続部に対して接続されている。
【課題を解決するための手段】
【００２１】
上記目的を達成するために、本発明の方法およびシステムは、
上記第１および第２の処理機構にてミラーリング機能を実行することであって、上記ミラーリング機能は、選択されたデータオブジェクトを凍結する凍結手順と、凍結され選択されたデータオブジェクトを少なくとも一つのリモート記憶装置にコピーするためのコピー手順とを有していることと、
ミラーリング機能の実行と並行して、選択されたデータオブジェクトの使用および更新を可能にすることと、
ミラーリング中断コマンドを受信しない限り、選択されたデータオブジェクトに更新をコピーするためにミラーリング機能を繰り返し実行することを、デフォルトで命令することとを含み、上記の少なくとも一つのローカル記憶装置内にある選択されたデータオブジェクトがコピーされ、上記の少なくとも一つのリモート記憶装置へ順に更新されることを特徴とする。
【００２２】
本発明のさらなる目的は、
凍結手順を、ソースボリューム（ＳＶ）として選択されたデータオブジェクトに適用し、
少なくとも一つのローカル補助ボリューム（ＡＶＬ）を作成し、当該ローカル補助ボリュームに対して、選択されたデータオブジェクトへ向けられた更新がリダイレクトされ、選択されたデータオブジェクトのうちの各単独のデータオブジェクトは、少なくとも一つの補助ボリュームのうちの一つのボリュームに対応しており、
上記少なくとも一つのリモート記憶装置のうちの各リモート記憶装置内に、少なくとも一つのリモートボリュームを、作成された各ローカル補助ボリュームに対応させて作成し、
凍結され選択されたデータオブジェクトおよび少なくとも一つのローカル補助ボリュームを含む少なくとも一つの結果としてのソースボリュームを、上記の少なくとも一つのローカル記憶装置内に形成し、
凍結され選択されたデータオブジェクトを、上記の少なくとも一つの結果としてのボリュームから上記の少なくとも一つのリモート記憶装置へとコピーするためのコピー手順を適用する方法および装置を提供することにある。
【００２３】
ミラーリング機能は、２つ以上のデータオブジェクトに対して同時に適用され、少なくとも一つのローカル記憶装置から少なくとも一つのリモート記憶装置へと、および、その逆の方向へと、同時に適用される。
【００２４】
本発明の他の目的は、
２つ以上のデータオブジェクトを同時に凍結させるための凍結手順を適用し、
２つ以上の凍結され選択されたデータオブジェクトを同時にコピーするために、コピー手順を適用し、
一つのローカル記憶装置内にある一つの単独のデータオブジェクトを、２つ以上のリモート記憶装置へ同時にミラーリングし、
複数の単独のデータオブジェクトであってそれぞれが同数のローカル記憶装置内にあるデータオブジェクトを、一つのリモート記憶装置へ同時にミラーリングし、
一つのローカル記憶装置内にある複数の単独のデータオブジェクトを、それぞれ、同数のリモート記憶装置へ同時にミラーリングし、
複数のローカル記憶装置のうちの各々のローカル記憶装置内にある一つの単独のデータオブジェクトを、一つのリモート記憶装置へ同時にミラーリングする方法およびシステムを提供することにある。
【００２５】
本発明のさらに他の目的は、
選択された時点にて、
ミラーリングサイクルを開始し、
選択されたデータオブジェクトを凍結し、
少なくとも一つのローカル補助ボリューム（ＡＶＬ）を、少なくとも一つのローカル記憶装置（ＳＤＬ）内に作成すると共に、少なくとも一つのリモートボリューム（ＲＶ）を、少なくとも一つのリモート記憶装置（ＳＤＲｘ）内に作成し、
凍結され選択されたデータオブジェクトおよびローカル補助ボリューム（ＡＶＬ）を含む少なくとも一つの結果としてのソースボリュームを形成し、
上記選択された時点後に、
凍結され選択されたデータオブジェクトを、結果としてのソースボリュームから少なくとも一つのリモートボリュームへと、コピーが完了するまでコピーし、
選択されたデータオブジェクトへ向けられた更新を、ローカル補助ボリュームへリダイレクトし、
結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用を可能にし、
少なくとも一つのリモート記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルを繰り返す方法およびシステムを提供することにある。
【００２６】
本発明のさらなる目的は、
少なくとも一つのリモート記憶装置へのコピー完了後、次の時点にて、次のミラーリングサイクルを開始し、
結果としてのソースボリュームを凍結し、
最終のローカル補助ボリュームを、上記ローカル記憶装置内に作成すると共に、最終のリモートボリュームを、上記の少なくとも一つのリモート記憶装置内に作成し、
最後から２番目の結果としてのソースボリュームおよび最終のローカル補助ボリュームを含む、最終の結果としてのソースボリュームを形成し、
上記次の時点後に、
最後から２番目のローカル補助ボリュームを、最終のリモートボリュームへコピーし、
選択されたデータオブジェクトへ向けられた更新を、最終のローカル補助ボリュームへリダイレクトし、
最終の結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用を可能にし、
最終のリモートボリュームへのコピー完了後、
最後から２番目のローカル補助ボリュームを、凍結され選択されたデータオブジェクトに同期させ、
上記第２の処理機構（ＨＲ）のコマンドにより、少なくとも一つの最終のリモートボリュームを、最後から２番目のリモートボリュームに同期させ、
上記の少なくとも一つの第２の記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルを繰り返す方法およびシステムを提供することにある。
【００２７】
本発明のさらなる目的は、
最後から２番目のローカル補助ボリュームのコピー完了後に起こるさらに別の時点を選択し、
結果としてのソースボリュームを凍結し、
最終のローカル補助ボリュームを、上記ローカル記憶装置内に作成すると共に、最終のリモートボリュームを、上記の少なくとも一つのリモート記憶装置内に作成し、
最後から２番目の結果としてのソースボリュームおよび最終のローカル補助ボリュームを含む、最終の結果としてのソースボリュームを形成し、
最後から２番目のローカル補助ボリュームを、少なくとも一つの最終のリモートボリュームへコピーし、
選択されたデータオブジェクトへ向けられた更新を、最終のローカル補助ボリュームへリダイレクトし、
最終の結果としてのソースボリュームとの連携動作により、ミラーリング中に、選択されたデータオブジェクトの使用を可能にし、
最後から２番目のローカル補助ボリュームを、選択されたデータオブジェクトに同期させ、
少なくとも一つの最終のリモートボリュームを、最後から２番目のリモートボリュームに同期させ、
上記の少なくとも一つの第２の記憶装置へのコピー完了後、ミラーリング中断コマンドを受信しない限り、デフォルトコマンドにより、次のミラーリングサイクルを繰り返す方法およびシステムを提供することにある。
【００２８】
本発明のさらに別の目的は、
最後から２番目のローカル補助ボリュームより前のコピーが完了した時点にて入力された更新を含む選択されたデータオブジェクトの完全にミラーリングされたコピーを、上記の少なくとも一つのリモート記憶装置内に格納する方法およびシステムを提供することにある。
【００２９】
本発明のさらに別の目的は、
少なくとも最終のローカル補助ボリュームを最終のリモートボリュームへコピーする時間にわたって継続するものと規定された離散反復時間間隔で、ミラーリング機能の動作を繰り返し、
更新を同期させて、選択されたデータオブジェクトを上書きし、
後のリモートボリュームを同期させて、最後から２番目の結果としての第１のリモートボリュームを上書きする方法およびシステムを提供することにある。
【発明を実施するための最良の形態】
【００３０】
本発明をよりよく説明するため、そして、それが実際にどのように実行可能になるかを示すために、添付の図面を参照する。
【００３１】
本発明は、離散的なデータブロックを順次凍結およびコピーすることにより、ローカル記憶装置からリモート記憶装置へと、選択されたデータオブジェクトをミラーリングすること、すなわち、複製することを実現している。ミラーリングがオペレーティングシステムに対してトランスペアレントであるため、ミラーリングの際、選択されたデータオブジェクトが途切れずに用いられうる。連続した離散的なデータブロックのコピーは、非同期かつバックグラウンドで実行される。
【００３２】
ミラーリングは、連続したミラーリングサイクルにて順次反復される一連の凍結およびコピー手順からなる。ローカル更新ミラーリングの最新バージョンのみが、リモート記憶装置内に格納される。新規の各更新バージョンは、以前のバージョンを上書きする。ミラーリングが第１のミラーリングサイクルｓ＝１で開始するときに存在する更新バージョンは、さらに２回のミラーリングサイクル後、ｓ＝３のときに安全に格納される。
【００３３】
説明に用いられる用語は、ストレージエリア・ネットワーク（ＳＡＮ）対応の仮想化に容易に関連づけられる。このような仮想化ＳＡＮの仮想ボリュームには、データオブジェクトのグループ、複数のローカル記憶装置、および複数のリモート記憶装置が、含まれてもよい。但し、本方法を容易に理解するために、単一のデータオブジェクト、単一のローカル記憶装置、および単一のリモート記憶装置のみを有するシステムを考えてもよい。
【００３４】
ミラーリング機能が実行される場合、選択されたデータオブジェクトが、例えばソースボリュームとして、凍結手順により凍結される。同時に、第１のローカル補助ボリュームが、ローカル記憶装置内に作成され、凍結されたソースボリュームと同じサイズの第１のリモートボリュームが、リモート記憶装置内に作成される。ソースボリュームは凍結されていると共に凍結されたままであるべきであるので、変更されてはならないが、コピー手順によりリモート記憶装置へコピーされてもよい。
【００３５】
選択されたデータオブジェクトは、ミラーリング中に使用されうる。凍結時に、オペレーティングシステムＯ．Ｓ．は、凍結された選択データオブジェクトおよび第１のローカル補助ボリュームの双方を含んだ結果としてのソースボリュームを作成する。結果としてのソースボリュームは、Ｉ／Ｏ書込動作およびＩ／Ｏ読取動作にアクセス可能である。明らかに、凍結ソースボリュームに対しては読取動作のみが許容されている一方で、選択されたデータオブジェクトに対する書込更新は、第１のローカル補助ボリュームへリダイレクトされる。
【００３６】
一旦、凍結ソースボリュームがリモート記憶装置へミラーリングされると、凍結およびコピー手順が繰り返される。結果としてのソースボリューム内の第１のローカル補助ボリュームが凍結され、同時に、第２のローカル補助ボリュームおよび第２のリモートボリュームが作成される。第２のローカル補助ボリュームは、以前に作成された結果としてのソースボリュームに対して追加されて、オペレーティングシステムＯ．Ｓ．により使用される、結果としての新規のソースボリュームが形成される。そして次に、凍結された第１のローカル補助ボリュームは、第２のリモートボリュームへコピーされる。同様に、データオブジェクトは、結果としての以前のソースボリュームと共に使用されてもよく、当該ソースボリュームに対して、最新の凍結ローカル補助ボリュームが追加されて、結果としての最新のソースボリュームが形成される。原則的に、ミラーリング機能は、連続した凍結およびコピー手順を実行して、一つのデータオブジェクトまたはデータオブジェクトのグループを、一つまたはそれ以上のローカル記憶装置から、一つまたはそれ以上の他の記憶装置すなわちリモート記憶装置へと複製する。単一の場合とは、単独のデータオブジェクトのみからなり、かつ、単一のローカル記憶装置内にあるような選択されたデータオブジェクトを、単一のリモート記憶装置へミラーリングすることに関係するものである。
【００３７】
ミラーリング機能は、２つ以上のミラーリング動作を同時に実行するように動作することが可能である。例えば、２つの異なるデータオブジェクト（各々が、例えば、異なるローカル記憶装置内の異なるボリュームにある）は、２つの異なるリモート記憶装置へミラーリングされることもある。明らかに、同時ミラーリングは、２つの選択されたデータオブジェクトに限られるわけではない。
【００３８】
また一方で、ミラーリング機能は、クロスミラーリングが可能である。クロスミラーリングは、最後の例と並行して、２つの異なるデータオブジェクト（一方は、ローカル記憶装置内にあり、他方は、リモート記憶装置内にある）を、それぞれ、リモート記憶装置へミラーリングすると共にローカル記憶装置へミラーリングする結果となる。クロスミラーリングは、２つの選択されたデータオブジェクトを同時にミラーリングすることに限定されるものではない。
【００３９】
一般に、ミラーリング機能は、双方向クロスミラーリングばかりでなく、データオブジェクトのグループを、いくつかのローカル記憶装置からいくつかのリモート記憶装置へとミラーリングすることを実現する。下記の〔表１〕のミラーリング概観テーブルに、直接ミラーリングについて、ミラーリングの選択肢Ｉ〜ＶＩを示す。これに対して、Ｉ〜ＶＩの全選択肢について、クロスミラーリングが追加される必要がある。
【００４０】
【表１】
2005500603.tif 000003
【００４１】
発明の実施の形態
“Storage Virtualization in a Storage Network （ストレージ・ネットワークにおけるストレージ仮想化）”なる名称の本願と同一出願人による同時継続中の特許出願ＰＣＴ／ＩＬ００／００３０９の図１を参照する。この特許出願は、その全体が一体に組み入れられ、以下、「‘３０９特許」として引用される。さらに、ネットワーク接続部ＮＥＴを示す本発明の図１を参照する。ネットワーク接続部ＮＥＴに対して接続されているものとして、複数のユーザＵと、ホスト、サーバＨ、またはプロセッサ等の演算機構と、ハードディスクＨＤ等の記憶装置ＳＤとがある。第１処理機構、すなわち、ローカル処理機構の制御下で、あるローカル記憶装置から、第２の処理機構、すなわち、リモート処理機構により制御されている他のリモート記憶装置へのミラーリングが開始する。例えば、ホストＨ４は、他の処理機構Ｈ３により制御されている記憶装置ＳＤＡから記憶装置ＳＤＢへのミラーリングを命令してもよい。また一方で、ホストＨ１は、第１のハードディスクＨＤ１から、プロセッサＨ２に接続される第２のハードディスクＨＤ２へのミラーリングを制御してもよい。同様に、ホストＨ２は、第１のハードディスクＨＤ２から第２のハードディスクＨＤ３または他のハードディスクＨ４へのミラーリングを命令してもよい。２つ以上の記憶装置内にある選択されたデータオブジェクトのミラーリングは、一つまたはそれ以上の記憶装置に対して実行されてもよい。最小限の要件は、２つの処理機構およびネットワーク接続部上の少なくとも２つの記憶装置（コピー元としてのローカル記憶装置、および、書込先としてのリモート記憶装置）についてのものである。
【００４２】
前述のように、データオブジェクトをある記憶装置から他の記憶装置へとミラーリングすることには、一連の凍結およびコピー手順を適用することが必要である。なお、ネットワーク接続の動作は、ミラーリング中に妨害されてはいけない。したがって、以下の説明では、まず、凍結手順が示され、次に、凍結手順実行中のシステムの動作が示され、最後にコピー手順が示される。
【００４３】
凍結手順
図２に、段階２ａ〜２ｄで、凍結手順を図示する。横軸ｔは時間を指し、ｔ＝０で開始する。
【００４４】
ミラーリング機能は、ネットワーク接続部ＮＥＴに接続される、第１および第２の処理機構（それぞれＨＬおよびＨＲ）等の少なくとも２つの処理機構上で実行されることが想定されている。第１の記憶装置ＳＤＬおよび少なくとも一つの第２の記憶装置ＳＤＲｘ（ここでｘは特定の記憶装置を示す）は、ローカル記憶装置および少なくとも一つのリモート記憶装置とそれぞれ称され、ネットワーク接続部ＮＥＴに接続されている。したがって、少なくとも一つのリモート記憶装置ＳＤＲｘは、第１のリモート記憶装置ＳＤＲ１、第２のリモート記憶装置（ＳＤＲ２）等からなる。
【００４５】
ローカルおよびリモートの指定は、記憶装置の物理的位置についての制約を全く含むことなく、出力元および出力先用に使用される。したがって、ローカルおよびリモート記憶装置は、例えば、同一の記憶装置内にあるか、あるいは、ＳＡＮまたはホストＨに接続される別々の記憶装置内にある。別々の記憶装置は、隣接していたり、地球の反対側にあったりする。コピーは、ローカル記憶装置から一つまたはそれ以上のリモート記憶装置へとなされる。任意の記憶装置が、いずれかの名前で指定されるが、そこからのミラーリング時には、単一のローカル記憶装置のみがある。
【００４６】
ミラーリング機能は、凍結手順およびコピー手順の双方を含んでおり、初めに、凍結されるべく選択されたデータオブジェクトの指定を受信する。図２の段階２ａに示すように、所定の時点、ｔ＝１にて、凍結手順は、選択されたデータオブジェクトをソースボリュームＳＶとして凍結するための要求を受信する。この結果、「凍結」されたソースボリュームＳＶは、「読取専用」に制限される。それにより、ソースボリュームの内容は変更されなくなる。そして、凍結されたソースボリュームＳＶは、以下に説明するようにコピーされることになる。
【００４７】
ミラーリング機能をＯ．Ｓ．に対してトランスペアレントに保つと共に、データオブジェクトの使用が可能になる。時刻ｔ＝１にて、ソースボリュームＳＶが凍結するのと同時に、凍結手順は、ローカル補助ボリューム１、すなわち、ＡＶＬ１として示す第１の補助（場合によって仮想）ローカルボリュームを作成する。これと共に、凍結されたソースボリュームＳＶおよびローカル補助ボリューム１は、結果としてのソースボリュームを形成する。オペレーティングシステムＯ．Ｓ．の観点からすると、結果としてのソースボリュームは、トランスペアレントに用いられる出力元の選択データオブジェクトに見える。
【００４８】
そして次に、ソースボリュームＳＶの凍結時から、ローカルの処理機構ＨＬにより凍結されたソースボリュームへ向けられた書込（WRITE ）動作は、ミラーリング機能により、結果としてのソースボリューム内にあるローカル補助ボリューム１・ＡＶＬ１へリダイレクトされる。したがって、凍結されたソースボリュームＳＶの内容における元々の非変更の部分に関する限り、読取（Read）動作が可能である。凍結されたソースボリュームＳＶに対する書込（Write ）動作は、ローカル補助ボリューム１へリダイレクトされる。そうでなければ、凍結されたソースボリュームＳＶの内容に対して変化がもたらされるためである。ミラーリング機能、したがって凍結手順は、ローカルおよびリモート処理機構の双方の中にあり、凍結されたデータオブジェクトへリダイレクトされたＩ／Ｏコマンドを、システムの動作に関して以下に説明するように、インターセプト（intercept ）することが可能になる。ローカル補助ボリューム１（ＡＶＬ１）へと方向変換した書込（WRITE ）動作は、更新として規定される。なお、ローカル補助ボリュームは、作成時から次の凍結がなされるときまで動作可能になっている。すなわち、次のローカル補助ボリュームが作成されるまでである。さらに、当の処理機構の性能は、ルーティング命令のみを処理する凍結機能によってのみわずかに影響される。すなわち、Ｉ／Ｏ読取（READ）またはＩ／Ｏ書込（WRITE ）命令のリダイレクトである。
【００４９】
図２の段階２ｂを参照すると、凍結されたソースボリュームＳＶがコピーされた後の時刻ｔ＝２にて、次の凍結が実行され、ローカル補助ボリューム１（ＡＶＬ１）へ適用される。同時に、ローカル補助ボリューム１（ＡＶＬ１）について説明したのと同様に、新規のローカル補助ボリューム２（ＡＶＬ２）が作成される。並行して、結果としての以前のソースボリュームをローカル補助ボリューム２（ＡＶＬ２）と共に含むように、結果としての新規のソースボリュームが作成される。そして、凍結されたローカル補助ボリューム１（ＡＶＬ１）内に格納されている更新は、以下に説明するようにコピーされうる。再度説明すれば、Ｏ．Ｓ．は、凍結動作がトランスペアレントであるので、結果としての最新のソースボリュームを、出力元のソースボリュームとみなす。
【００５０】
図２の段階２ｃでは、凍結されたローカル補助ボリューム１（ＡＶＬ１）がコピーされた後、ローカル補助ボリューム２（ＡＶＬ２）は、時刻ｔ＝３にて凍結され、ローカル補助ボリューム３（ＡＶＬ３）が作成される。そして、凍結されたローカル補助ボリューム２（ＡＶＬ２）へと以前に書き込まれた更新が、コピーされてもよい。同様に、最後に作成されたローカル補助ボリューム３（ＡＶＬ３）、すなわち、最終のローカル補助ボリューム３（ＡＶＬ３）は、結果としての以前のソースボリュームと共に、結果としての新規かつ最終のソースボリュームの一部となる。
【００５１】
したがって、結果としての第３のソースボリュームは、時刻ｔ＝１にて凍結された第１のソースボリュームＳＶ、凍結されたローカル補助ボリューム１および２（それぞれＡＶＬ１およびＡＶＬ２）、ならびに、最終のローカル補助ボリューム３（ＡＶＬ３）からなる。時刻ｔ＝３にて、第１の凍結ソースボリュームＳＶおよび凍結ローカル補助ボリューム１（ＡＶＬ１）が、既にミラーリングによりコピーされているという事実を利用して、これらの最新の２つのボリュームが同期されてもよい。図２の段階２ｄは、時刻ｔ＝３でのこの最新のステップを反映している。それにより、ローカル補助ボリューム１（ＡＶＬ１）内に含まれた更新は、第１の凍結ソースボリュームに同期される。ローカル補助ボリューム１（ＡＶＬ１）が削除されるので、記憶域が節約されると共に、結果としての最終のソースボリュームが不変に保たれる。そして、凍結手順を実行するミラーリング機能は、継続可能になるか、あるいは、自由に中断される。
【００５２】
ミラーリングが継続するように命令された場合、時刻ｔ＝４にて、図２には示されていないが、ローカル補助ボリューム２（ＡＶＬ２）のコピー完了後、新規のローカル補助ボリュームが、最終のローカル補助ボリュームとなるように開かれることとなる。同時に、最後から２番目のローカル補助ボリュームＡＶＬのコピー（この場合には、ローカル補助ボリューム３（ＡＶＬ３））が、開始することになる。同時に、最後から２番目より前のローカル補助ボリュームＡＶＬ内にある更新（ここではローカル補助ボリューム２（ＡＶＬ２））が、第１の凍結ソースボリュームＳＶに同期されることになる。そして、ローカル補助ボリューム２（ＡＶＬ２）は削除されてもよい。明らかに、データオブジェクトの使用は、結果としての最新のソースボリュームおよび最終のローカル補助ボリュームからなる結果としての最終のソースボリュームに関連して、継続可能である。
凍結のデータ構造
ソースボリュームＳＶの凍結が時刻ｔ＝１にて命令された場合、凍結ソースボリュームは、連続番号が付されたセグメントすなわち例えば１ＭＢのチャンク（chunk）へと任意に分割され、これらのチャンクは、凍結時にローカル補助ボリューム１（ＡＶＬ１）内に作成される下記の凍結テーブル１（〔表２〕）にリストアップされている。このように、凍結テーブル１内のエントリの合計数は、ＭＢで表示された凍結ソースボリュームＳＶの容量に等しい。除算の結果が整数でない場合、凍結テーブル内にリストアップされたチャンクの数は、次の整数へと切り上げられる。凍結テーブル１は、ローカル補助ボリューム１内にあって、Ｏ．Ｓ．によるデータオブジェクトへのＩ／Ｏ命令をリダイレクトするためのツールである。
【００５３】
ｔ＝１での凍結コマンドに始まり、データオブジェクトに向けられた全てのＩ／Ｏ書込（WRITE ）命令の更新が、ローカル補助ボリューム１へとルーティングされる。Ｉ／Ｏ読取（READ）命令は、２つの種類に分類される。第１種の読取命令は、ｔ＝１での凍結開始以来修正されずにソースボリュームＳＶ内に非変更で存在するデータに関するものである。第２種の読取命令は、書込コマンドによる更新（その更新は凍結後になされている）を経たデータを指しているので、ローカル補助ボリューム１へとルーティングされる。
【００５４】
凍結ソースボリュームＳＶとローカル補助ボリューム１とを対応させるため、マッピングテーブルが必要となる。例えば、Ｏ．Ｓ．がＩ／Ｏ読取命令を、凍結後に更新されたデータに対して指示する場合、そのデータのローカル補助ボリューム内でのアドレスが必要となる。
【００５５】
【表２】
2005500603.tif 000004
【００５６】
〔表２〕の凍結テーブル１を参照すると、ソースボリュームＳＶのチャンク番号が記載された第１の左列、および、各チャンクがマッピングされているアドレスを指定するインデックスが記載された第２の右列が示されている。凍結テーブル１における第１行左列内のチャンク番号０は、同第１行右列内に−１としてインデックスが付されている。慣行に従い、インデックス−１は、元々の状態、あるいは、最新の凍結以来非変更であることを示している。したがって、問題のチャンク（ここではチャンク０）は、時刻ｔ＝１の凍結以来、更新されていないので、関連データは、ソースボリュームＳＶ内にて検出される。−１以外のあらゆるインデックス番号、したがって０以上は、アドレスを示すと共に、このように付番された特定のチャンクが時刻ｔ＝１の凍結後に更新されたという事実を示している。−１以外のインデックスにより、Ｉ／Ｏ命令は、最終のローカル補助ボリューム内で検出される特定のアドレスへリダイレクトされる。
【００５７】
なお、Ｉ／Ｏ命令を凍結ソースボリュームＳＶおよびローカル補助ボリュームへとルーティングするための機構により、データオブジェクトを連続して制約なく使用することが可能になる。
【００５８】
凍結手順
凍結手順は、データオブジェクトへ向けられたＩ／Ｏ命令を、３つの異なる状態に応じてルーティングする。説明の用語を簡潔に保つために、第１の凍結のみを参照する。したがって、単一の凍結ソースボリュームＳＶおよび単一の第１のローカル補助ボリュームのみを参照する。
【００５９】
１．読取（READ）命令は、凍結以来変更されていない場合、ソースボリュームＳＶへ向けられ、それ以外の場合、ローカル補助ボリュームへ向けられる。
【００６０】
２．ｔ＝１にて開始した凍結後に変更されたチャンクのための書込（WRITE ）命令は、ローカル補助ボリュームへ向けられる。
【００６１】
３．ソースボリュームＳＶ内にある非変更のチャンクへの書込（WRITE ）命令は、そのチャンクをローカル補助ボリュームへコピーすることを要し、その後に、ローカル補助ボリューム内にてそこに書き込むことを要する。
【００６２】
Ｉ／Ｏ命令のパージング
前述の３つの状態に従ってＩ／Ｏ命令をパージングするシーケンスについて、以下に説明する。
【００６３】
図３を参照すると、ステップＤ１では、Ｏ．Ｓ．がＩ／Ｏ命令を待ち受け、このような命令が受信されると、ステップＤ２での検定により、読取（READ）命令と書込（WRITE ）命令とが区別される。読取（READ）命令、したがってｙｅｓ（Ｙ）については、後述する図４におけるステップＡ１によるさらなる処理のために、制御は、ステップＤ３へと分岐する。書込（WRITE ）命令についてのｎｏ（Ｎ）の場合、制御は、書込（WRITE ）命令を処理するステップＤ４を経て、ステップＤ５へと移行し、以前に更新がなされたかどうか、あるいは、これが凍結後最初の書込（WRITE ）であるかどうかが、判別される。以前に更新がなされている場合、制御は、ステップＤ６へと移行して、以下に説明する図５のステップＢ１により処理されることになる。以前に更新がなされていない場合、制御のフローは、ステップＤ７へと進む。このステップＤ７は、以前の更新のないＩ／Ｏ書込（WRITE ）命令を、以下のステップＣ１へと渡す。
【００６４】
読取（READ）命令
図４に、凍結開始後データオブジェクトへ送られたＩ／Ｏ読取命令の手順を示す。「Ｉ／Ｏを待ち受ける」最初のステップＡ１により受信された命令は、ステップＡ２へと渡される。このステップＡ２では、読取命令を求めてフィルタ処理がなされる。否定（Ｎ）である場合、書込命令は、図５のステップＢ１へと渡されるべく、ステップＡ３へと分岐する。ｙｅｓ（Ｙ）の肯定である場合、読取コマンドは、ステップＡ４へ送られる。
【００６５】
凍結ソースボリュームＳＶが１ＭＢのチャンクに分割されている場合、ステップＡ４にて、チャンク番号が算出され、凍結テーブル内のインデックスが検索される。１ＭＢによるアドレス番号の整数除算によって算出され、さらに５１２で除算されて、セクタ番号が求められる。したがって、１ＭＢ／５１２＝（１０２４バイト×１０２４バイト）／５１２である。この結果は、以下のステップＡ５へ送られる。場合により、データがチャンクの境界にわたるときには、アドレス内に見出された情報により指摘されるように（常に、Ｉ／Ｏ命令の開始位置および長さを示す）、２つ以上のチャンク番号が提供される。そして、Ｏ．Ｓ．は、凍結テーブル１内のアドレスを、算出されたチャンク番号にわたって検索する。
【００６６】
ステップＡ５では、凍結以来非変更のデータを示すインデックス−１と、他のインデックスとが区別される。ゼロおよび正の整数値は、ローカル補助ボリューム内にあるデータを示す。
【００６７】
ステップＡ５へ送られたチャンク番号が−１である場合、読取コマンドは、「ソースボリュームから読み取る」ためにステップＡ６へ送られる。それ以外の場合、読取コマンドは、凍結テーブル１内に見出されるように、Ａ７に従って、ローカル補助ボリューム内のアドレスへ向けられる。完了後、ステップＡ６およびステップＡ７の双方では、制御が、図３における最初のステップＤ１へ返される。
【００６８】
書込（WRITE）命令
図５に、ローカル補助ボリュームのチャンク（凍結後更新されたデータを含む）へのＩ／Ｏ書込コマンドの処理ステップを示す。
【００６９】
最初のステップＢ１では、本手順は、Ｉ／Ｏコマンドを受信すべく待ち受ける。そして、そのＩ／Ｏコマンドは、次のステップＢ２へ送られる。Ｂ２でのフィルタは、Ｉ／Ｏコマンドが読取コマンドであるか書込コマンドであるかが確認される。Ｉ／Ｏ読取コマンドは、ステップＢ３へとルーティングされて、図４のステップＡ１によりＩ／Ｏ読取コマンドとして処理されるが、Ｉ／Ｏ書込コマンドは、ステップＢ４へ向けられる。このステップＢ４では、凍結テーブル１にアクセスするために、チャンク番号が、前述のように除算により算出される。書込コマンドが２以上の単独のチャンクにわたってチャンクの境界にまたがるならば、２つ以上のチャンク番号が導出される。
【００７０】
一つまたはそれ以上のチャンク番号は、ステップＢ５へと渡される。このステップＢ５では、凍結テーブル１が参照されて、問題のチャンクに対応したインデックス番号が取得される。−１の値が得られた場合、制御はステップＢ６へ向けられて、ソースボリュームＳＶ内にある非変更データとして処理される。凍結テーブル１にてゼロまたは正のインデックス値が検出された場合、ステップＢ７により、命令は、特定のアドレスへの書込のために、ローカル補助ボリュームへ向けられる。ステップＢ６およびステップＢ７から、制御は、図３におけるＩ／Ｏ待ち受けステップＤ１へと戻される。
【００７１】
図６に、凍結時ｔ＝１以来非変更のデータについてのＩ／Ｏ書込命令のステップを示す。第１のステップＣ１は、「Ｉ／Ｏを待ち受ける」命令である。この命令は、一旦受信されると、「書込Ｉ／Ｏ」フィルタとして機能するステップＣ２に至る。受信されたＩ／Ｏ命令が「書込Ｉ／Ｏ」でない場合、制御は、ステップＣ３へと渡されて、図４のステップＡ１により「読取Ｉ／Ｏ」として処理される。それ以外の場合、書込命令については、ステップＣ４にてチャンク番号が算出される。また、チャンクの境界にわたるＩ／Ｏコマンドも処理されて、少なくとも２つのチャンク番号が得られる。
【００７２】
そしてまた、ステップＣ５では、算出されたチャンク番号が用いられて、凍結テーブルが検索され、非変更データと更新データとが区別される。後者の場合、制御はステップＣ６へと渡される。このステップＣ６では、Ｉ／Ｏは、以前に更新された書込Ｉ／Ｏコマンドとして、図５のステップＢ１により処理されるように仕向けられる。
【００７３】
非変更データについては、制御はステップＣ７へと進む。なお、補助ボリュームへデータを書き込む前に、凍結以来最初に更新されるべきチャンクについて、空いているメモリ位置を求める必要がある。したがって、ステップＣ７では、ローカル補助ボリューム内の第１の空きチャンクを求めて、検索がなされる。検出された場合、ステップＣ４にて算出されたチャンク番号と対向したインデックスが変更されて、以降は−１を示さずに、ローカル補助ボリューム内のアドレスを示すようになる。実際には、単一または複数のチャンクは、まず、ソースボリュームＳＶからローカル補助ボリュームへコピーされ、その後、書込命令による更新のために上書きされる。
【００７４】
書込（WRITE ）命令
次に、制御は、ステップＣ７からステップＣ８へと渡される。このステップＣ８では、ローカル補助ボリューム内にさらに記憶域が必要であるかどうか検査される。ＳＡＮ対応仮想化にてさらに記憶域が必要であれば、その要求は、仮想機器へと送られる。‘３０９特許の開示内容に従い、ローカル補助ボリュームに対する記憶域の拡張がなされるように、ステップＣ９にて、要求が仮想化装置へと送られる。他の環境について、ローカルホストＨＬのＯ．Ｓ．により実行される記憶域割当プログラムは、追加の記憶域を処理する。
【００７５】
その場合に応じて、制御は、追加の記憶域を要求しないステップＣ８か、あるいは、記憶域の拡張後のステップＣ９から、ステップＣ１０へと渡される。このステップＣ１０では、完全なチャンクがソースボリュームＳＶからローカル補助ボリュームへコピーされる。これが一旦完了すると、制御はステップＣ１１へと渡される。
【００７６】
最後のステップＣ１１では、凍結テーブル１は更新されて、ステップＣ４にて算出されたチャンク番号に対向して、−１の値に代わり、ローカル補助ボリューム内のアドレスが入力される。ステップＣ１１から、制御は、ステップＣ６を経て、図５のステップＢ１へと戻される。なお、ローカル補助ボリュームは、たかだか、ソースボリュームＳＶと同じチャンク番号を有する。この最後の場合は、ソースボリュームＳＶの全チャンクまたはセグメントが書き込まれたときに発生する。ソースボリュームＳＶの同一のチャンクに対するＩ／Ｏ書込命令の更新により、以前の書込命令が上書きされる。そして、以前の書込命令は失われる。
【００７７】
コピー手順
ソースボリュームＳＶの凍結に関する説明を参照すると、図２の段階２ａでは、凍結実行後に、ソースボリュームがコピーされると記述されている。したがって、ミラーリング機能により、凍結ソースボリュームＳＶを、元々それがある記憶装置（ローカル記憶装置として規定される）から、他の任意の記憶装置（リモート記憶装置と称される）へコピーする旨が命令される。リモート記憶装置は、場合によると、同一サイトもしくはリモートサイトにおける他の記憶装置であるか、または、複数のサイトにおけるいくつものリモート記憶装置からなる。さらに、リモート記憶装置としては、ソースボリュームＳＶが保存されている同一の記憶装置が選択されることもありうる。
【００７８】
ミラーリング機能は、連続して反復されてもよく、任意の凍結およびコピーサイクル後に停止してもよい。
【００７９】
凍結ソースボリュームＳＶからリモート記憶装置へのコピーにより、処理機構リソースに負荷がかかったり、通信が減速したり、あるいは、処理機構の動作に干渉したりすることはない。これは、凍結およびコピー手順が必要となるのみであるためである。
【００８０】
図７にミラーリング機能の概略機構を示すと共に、図８を参照してより詳細に説明する。
【００８１】
図７では、左列は、ローカル記憶装置ＳＤＬ（データオブジェクトがソースボリュームＳＶ内に存在）に対応しており、横軸は時間軸を示している。右列は、ローカル記憶装置内でのそれらと、並行して発生するイベントを示し、リモート記憶装置ＳＤＲｘでの処理を示している。ここで、ｘ［１，２，…，ｎ］は、少なくとも一つのｘの、利用可能な記憶装置から選択される。「リモート記憶装置ＳＤＲｘ」なる名称は、少なくとも一つの記憶装置の意味で、以下に用いられる。
【００８２】
図７における段階７Ａに、ミラーリング以前の状況を示す。左列にて、時刻ｔ＝０で作成されたソースボリュームＳＶにはデータオブジェクトが含まれており、ミラーリングサイクルカウンタｓは０である。右列にはイベントはない。
【００８３】
図７の段階７Ｂでは、左列にて、ミラーリングカウンタは１増加してｓ＝１となり、ソースボリュームの凍結が時刻ｔ＝１にて命令される。同時に、第１のローカル補助ボリューム１（ＡＶＬ１）がローカル記憶装置ＳＤＬ内に作成され、そこに対して、データへの更新が向けられるようになる。更新は、ローカル補助ボリュームへリダイレクトされる演算機構ＨＬからのＩ／Ｏ書込命令である。
【００８４】
ｔ＝１での凍結と同時に、第１のリモートボリュームＲＶｘ／ｓ（ここではＲｖｘ／１）が、リモート記憶装置ＳＤＲｘ内に、図７の右列にてソースボリュームＳＶと同じサイズで作成される。次に、凍結ソースボリュームＳＶが、バックグラウンドにてコピーされて、リモートボリュームＲＶｘ／１へ書き込まれる。
【００８５】
凍結手順により、凍結データオブジェクトが、例えば１ＭＢのチャンクへ分割されることが述べられている。ローカル補助ボリュームおよび結果としてのソースボリュームが作成されると、そこに凍結テーブルも作成されて、ソースボリュームと更新とが関連づけられる。凍結テーブルは、必要な場合に、Ｉ／Ｏ命令をデータオブジェクトからローカル補助ボリュームへリダイレクトする。
【００８６】
また一方で、Ｏ．Ｓ．は、ソースボリュームＳＶおよび第１のローカル補助ボリュームＡＶＬ１の双方と動作可能に関連したままとなっており、ともに、結果としてのソースボリュームを形成している。なお、ミラーリングは、バックグラウンドで、リモート記憶装置からのＩ／Ｏ命令を待つことなく実行される。そのため、ローカルプロセッサＨＬまたはネットワーク機構の動作速度が低下することはない。
【００８７】
図７の段階７Ｃでは、ミラーリングカウンタが１増加してｓ＝２となり、第２の凍結コマンドが時刻ｔ＝２にて受信され、ソースボリュームＳＶから第１のリモートボリュームＲＶｘ／１へのコピー動作完了時または完了後に実行される。同時に、第１のローカル補助ボリュームＡＶＬ１が凍結されて、第２のリモート補助ボリュームＲＶｘ／２がリモート記憶装置ＳＤＲｘ内に、右列にて第１のローカル補助ボリュームＡＶＬ１と同じサイズで作成される。第２のローカル補助ボリューム２（ＡＶＬ２）は、ローカル記憶装置ＳＤＬ内に作成され、そこに対して、データオブジェクトへの更新が向けられる。
【００８８】
凍結テーブルは、凍結手順により自動的に作成されて、各ローカル補助ボリューム内に存在することになり、Ｏ．Ｓ．に有用となる。第１のローカル補助ボリュームＡＶＬ１は、第２の演算機構ＨＲのための凍結テーブルを含むものであり、次に、コピーされて、第２のリモートボリュームＲＶｘ／２へ書き込まれる。
【００８９】
同時に、結果としての新規のソースボリュームが、新規の凍結テーブルと共に作成される。結果としての新規のソースボリュームは、結果としての以前のソースボリュームに対して第２のローカル補助ボリュームＡＶＬ２が追加されたものからなる。したがって、Ｏ．Ｓ．は、結果としての新規のソースボリュームと交信して、ミラーリングと並行してデータボリュームを使用しうる。
【００９０】
段階７Ｃの左列における時刻ｔ＝２にて、ローカル記憶装置ＳＤＬには、ソースボリュームＳＶ、第１のローカル補助ボリュームＡＶＬ１、および第２のローカル補助ボリュームＡＶＬ２が含まれている。同時に、右列にて、リモート記憶装置ＳＤＲｘには、第１のおよび第２のリモートボリュームが含まれている。
【００９１】
引き続きミラーリングカウンタはｓ＝２で、段階７Ｄにて、凍結されたボリューム、すなわち、ソースボリュームＳＶと第１のローカル補助ボリュームとが同期され、これにより、第１のローカル補助ボリュームＡＶＬ１へ以前に書き込まれた更新が、ソースボリュームＳＶへと入力される。第１のローカル補助ボリュームＡＶＬ１内にある凍結テーブルは、更新を正確に同期させるのに用いられる。第１のローカル補助ボリュームＡＶＬ１には、たかだかソースボリュームＳＶと同数のチャンクまたはセグメントが含まれている。この第１のローカル補助ボリュームＡＶＬ１がコピーされて、元々のサイズを保っているソースボリュームＳＶの内容を上書きする。そして、第１のローカル補助ボリュームＡＶＬ１は削除される。
【００９２】
第２のローカル補助ボリュームＡＶＬ２内にある凍結テーブルにおけるチャンク番号に対向したインデックスは、インデックス値が−１に設定されて、同期したボリュームの状態を反映する。並行して、第２のリモートボリュームＲＶｘ／２は、第１のボリュームＲＶｘ／１に同期する。第１のボリュームＲＶｘ／１は、ソースボリュームＳＶと同じサイズのままとなっている。リモート記憶装置での同期は、最後にコピーされたローカル補助ボリュームと共にそこにコピーされた凍結テーブルを用いて、第２の処理機構ＨＲにより実行される。そして、第２のリモートボリュームＲＶｘ／２は削除される。
【００９３】
同期がなされると、もはや不要となったローカル補助ボリュームおよびリモートボリュームが削除されることにより、ローカル記憶装置ＳＤＬおよびリモート記憶装置ＳＤＲｘの双方にて必要とされる記憶域が制限される。
【００９４】
段階７Ｅは、段階７Ｂおよび段階７Ｃと等価な、他の凍結段階である。第１の演算機構ＨＬでのミラーリングサイクルカウンタは１増加してｓ＝３となり、第２のローカル補助ボリュームＡＶＬ２における凍結は、時刻ｔ＝３にて実行される。さらに、第３のローカル補助ボリュームＡＶＬ３がローカル記憶装置ＳＤＬにて作成される。同時に、第３のリモートボリュームＲＶｘ／３が、リモート記憶装置ＳＤＲｘ内において、右列に、第２の補助ボリュームＡＶＬ２と同じサイズで作成される。そして、結果としての最終のソースボリュームには、結果としての以前のソースボリュームに加えて、最終のローカル補助ボリュームＡＶＬ３が含まれる。
【００９５】
以前と同様に、最新の凍結ローカル補助ボリューム（ここではＡＶＬ２）が、最後に作成されたリモートボリュームＲＶｘ／３へコピーされる。コピーの完了が第１の演算機構ＨＬへと通知された後、最新の凍結ローカル補助ボリュームＡＶＬ２をソースボリュームに同期させるために、コマンドが与えられる。
【００９６】
リモート記憶装置ＳＤＲｘにて、第２のリモートボリュームＲＶｘ／２は、第２の演算機構ＨＲの制御下で、第１のリモートボリュームＲＶｘ／１と同期される。なお、この第３のミラーリングサイクルｓ＝３にて、リモート記憶装置ＳＤＲｘには、第１のミラーリングサイクルｓ＝１にて存在していた結果としてのソースボリュームのコピーが含まれる。ミラーリングサイクルｓ＝Ｔにて、リモート記憶装置ＳＤＲｘ内に保存されているコピーは、常に、時刻ｓ＝Ｔ−２での結果としてのソースボリュームのコピーとなっている。リモート記憶装置にて最後に格納されたコピーと、ローカル記憶装置ＳＤＬ内の結果としての最終のソースボリュームとの間には、常に、ミラーリングサイクル２回分のずれがある。
【００９７】
次に、処理は上記説明と同様に継続する。
【００９８】
なお、リモート記憶装置ｘのＳＤＲｘなる名称は、同一のサイトまたはリモートサイトにて、ローカル記憶装置とは異なる記憶装置を指すのに用いられる名前である。したがって、ローカルＳＡＮＬ内にあるソースボリュームＳＶからのミラーリングは、ローカルサイトにおける記憶装置に対してのみでなく、リモートサイトに置かれた記憶装置に対しても実行可能である。同様に、クロスミラーリングや同時クロスミラーリングが実行可能である
ミラーリング制御フロー
図８に、あらゆるネットワーク接続に適用可能なミラーリング機能の一連のステップを示す。ストレージエリア・ネットワーク（すなわち、ＳＡＮ）について、そして、‘３０９特許出願のＳＡＮ仮想化機構を参照すると、ＳＡＮは、少なくとも、ローカルホストＨＬ、リモートホストＨＲ、ならびに、２つの別個の記憶装置（すなわち、ローカル記憶装置およびリモート記憶装置）からなる。図８には、これらが全て言及されているものの図示されてはいない。同様の最低条件である、単一のローカルホスト、および単一のリモートホスト、ならびに２つの記憶装置が、他のネットワーク接続のために必要である。前述のように、２つの記憶装置を区別するために、これらは、ローカル記憶装置ＳＤＬとリモート記憶装置ＳＤＬｘと称される。記憶装置に対して与えられた名称は、それらの位置には無関係である。
【００９９】
図８のステップ２０２では、選択されたソースボリュームＳＶをミラーリングするためにコマンドが与えられる。なお、選択されたソースボリュームＳＶは、ローカルホストＨＬに接続したローカル記憶装置ＳＤＬ内にある。上記のコマンドは、ユーザ、またはシステム管理者、またはオペレーティングシステム、またはソフトウェアコマンドによって入力される。なお、これらは図８には示されていない。ミラーリングは、リモート記憶装置ｘのＳＤＲｘ（ここでｘは１〜ｎの任意の整数）と称される一つまたはそれ以上の記憶装置へ向けられる。まず、制御は、ステップ２０４へと渡される。このステップ２０４では、ミラーリングサイクルカウンタｓは、ｓ＝１に設定されている。そして、制御はステップ２０６へと続く。
【０１００】
ステップ２０６では、凍結手順が適用されて、凍結ソースボリュームＳＶと、新規に作成された第１のローカル補助（仮想）ボリュームＡＶＬ／ｓとからなる、結果としてのソースボリュームが、ミラーリングサイクルｓ＝１にてローカル記憶装置ＳＤＬ内に作成される。並行して、制御はステップ２０８へと渡される。このステップ２０８では、リモート記憶装置ｘのＳＤＲｘ内に、第１のリモート仮想ボリュームＲＶｘ／ｓ（ここではＲＶｘ／１）を、ソースボリュームＳＶと同じサイズで作成する旨が命令される。ＳＡＮの場合、仮想ボリューム（単にボリュームと称される）の作成および管理は、Ｏ．Ｓ．に対してトランスペアレントであり、物理記憶装置へのデータの記憶は、同時継続中の‘３０９特許出願にて説明されるように処理される。他の非仮想化環境については、ローカルホストＨＬにより実行される記憶域割当プログラムが使用される。
【０１０１】
そして、制御はステップ２１０へと渡される。このステップ２１０では、第１のリモートボリュームＲＶｘ／ｓの利用可能性を保証するために、ステップ２０８からの完了通知が確認される。確認の結果が否定的である場合、ステップ２１０を通る新規の確認ループが開始する。それ以外の場合、ステップ２１０の検査に対する肯定的な応答についてのステップ２１２にて、コマンドにより、ソースボリュームＳＶを第１のリモート（仮想）ボリュームＲＶｘ／ｓにコピーすることが開始し、制御フローはステップ２１４へと渡される。
【０１０２】
ステップ２１２を補うステップ２１４により、ソースボリュームＳＶは、第１のリモートボリュームＲＶｘ／１へ書き込まれ、完了後、演算機構ＨＬに対して完了通知がなされる。そして、ステップ２１０と同様、ステップ２１６にて完了の確認が実行される。以前と同様に、否定的な応答により、ステップ２１６での完了の確認を通る再度のループが起動される。また一方で、肯定的な応答により、コマンドはステップ２１８へと渡される。このステップ２１８では、ミラーリングサイクルカウンタが１増加して、ｓ＝ｓ＋１となる（ここではｓ＝２）。
【０１０３】
そして、制御はステップ２２０へと渡されて、ミラーリングが継続する。ローカル記憶装置ＳＤＬでは、まず、最終のローカル補助ボリューム（ＡＶＬ／ｓと称される）が作成される。なお、ｓ＝２については、第２のローカル補助ボリュームＡＶＬ２となる。そして、最後から２番目のローカル補助ボリュームＡＶＬ／ｓ−１（ここではＡＶＬ１）が、凍結される。さらに、結果としての最終のソースボリュームも、上記説明と同様に作成される。
【０１０４】
そして、制御はリモート記憶装置ＳＤＲｘに向かって、ステップ２２２へと渡される。このステップ２２２では、第２のリモートボリューム（ＲＶｘ／ｓと称され、ここではＲＶｘ／２）が、最後から２番目のローカル補助ボリュームＡＶＬ１（ここではＡＶＬ／ｓ−１と称される）と同じサイズで作成される。完了通知がステップ２２４へと送られる。
【０１０５】
第２のリモート仮想ボリュームＲＶｘ／ｓの作成通知が、ステップ２２４の完了確認により受信された場合、制御はステップ２２６へと渡されるが、それ以外の場合、完了確認が繰り返される。
【０１０６】
ステップ２２６では、最後から２番目（ここでは第１）のローカル補助ボリュームＡＶＬ／ｓ−１を最終（ここでは第２）のリモートＲＶｘ／ｓにコピーするために、コマンドが与えられる。ステップ２２８では、第１のローカル補助ボリュームＡＶＬ／ｓ−１から第２のローカル補助ボリュームＡＶＬ／ｓへの書込動作が実行される。書込が完了すると、その旨がステップ２３０へと通知される。
【０１０７】
なお、この段階にて、ソースボリュームＳＶと第１のローカル補助ボリュームＡＶＬ１の双方が、実際に、ＲＶｘ／１およびＡＶＲｘ／２の双方内で、ＳＤＲｘへミラーリングされているものとして、通知される。また一方で、第２の凍結が、ローカルホストＨＬにて実行されており、新規の更新が、ローカル補助仮想ボリュームＡＶＬ２へリダイレクトされる。
【０１０８】
実際には、第１のローカル補助ボリュームＡＶＬ１、あるいは、第２のリモートボリュームＲＶｘ／２を個別に動作させるさらなる理由はないので、これらの（仮想）ボリュームは、それぞれ、ソースボリュームＳＶおよび第１のリモート仮想ボリュームＲＶｘ／１と同期されてもよい。このような同期および統合が、それぞれ、ステップ２３２およびステップ２３４にて実行されると、ソースボリュームＳＶおよび第１のリモート仮想ボリュームＲＶｘ／１のみが利用可能な状態で残される一方で、第１のローカル補助仮想ボリュームＡＶＬ１および第２のリモートボリュームＲＶｘ／２が削除される。要望があれば、ミラーリングループがステップ２３６にて中断されてステップ２３８にて終了するように命令され、そうでなければ、制御はステップ２１８へと渡されてミラーリングが続行する。
【０１０９】
ミラーリングループが中断しない場合、制御はステップ２１８へと戻される。このステップ２１８では、ミラーリングカウンタが再び１増加して、ｓ＝３となる。その手順により、ステップ２１８〜ステップ２３６のループが繰り返され、ミラーリングが継続するか、あるいは、命令があればミラーリングが終了する。
【０１１０】
前述の方法は、一つの記憶装置または複数の記憶装置から一つまたは複数のリモート記憶装置へとミラーリングされる一つの単独のデータオブジェクトまたは複数のデータオブジェクトの可能な組み合わせに対して、実行される。下記のテーブル２（〔表３〕）に、ローカル補助ボリュームおよびリモートボリュームに関するさまざまな可能性と見通しについて示す。
【０１１１】
【表３】
2005500603.tif 000005
【０１１２】
前述のミラーリング機能は、〔表３〕のテーブル２の行Ｉにより表される。これは、単一のデータオブジェクトを単一のローカル記憶装置から単一のリモート記憶装置へとミラーリングするための、最も簡潔で基本的なミラーリング実行方法である。各ミラーリングサイクルについて、単一の各ローカル補助ボリュームＡＶＬおよび単一のリモートボリュームＲＶｘが作成される。
【０１１３】
例えば、行ＩＩにて、単一のデータオブジェクトが、単一のローカル記憶装置ＳＤＬ内に、複数のリモート記憶装置ＳＤＲｘ（ここでｘには、特定の記憶装置の識別情報が入る）へとミラーリングするために格納されており、各ミラーリングサイクルについて、複数のリモート記憶装置の数に等しいリモートボリュームを作成することが必要とされることとなる。したがって、４つのリモート記憶装置ＳＤＲ１〜ＳＤＲ４のためにミラーリングが要求された場合、ミラーリング機能は凍結手順を行Ｉのように適用することになり、コピー手順が、各リモート記憶装置毎に１回、並行して４回実行されることになる。次のミラーリングサイクル、したがって、２回の連続したミラーリングサイクル同士の間隔は、４つの記憶装置の全てに対するコピーおよび書込が完了した後に開始する。各ミラーリングサイクルには、一つのローカル補助ボリュームおよび４つのリモートボリュームＲＶｘ（ｘは、例えば１〜４にわたる）が必要となる。各ミラーリングサイクル毎にミラーリング機能により作成されるローカル補助ボリュームおよびリモートボリュームの最低限の数が、〔表３〕のテーブル２の第３列および最終列に示されている。明らかに、リモート記憶装置の数は、整数で乗算されてもよい。これによって、８、１２、１６等の個数のリモート記憶装置に対するミラーリングが実現してもよい。
【０１１４】
テーブル２の行ＩＩＩは、単独のデータオブジェクト、したがってデータオブジェクトの一つのグループとして、ローカル記憶装置ＳＤＬ内にある選択されたデータオブジェクトを、一つのリモート記憶装置ＳＤＲｘへミラーリングすることに対応している。ミラーリング機能は、単独のデータオブジェクトの全てを同時に凍結させることにより、行Ｉのように適用される。例えば、選択されたデータオブジェクトが、単独のデータオブジェクトが３つ存在するグループである場合、これらの３つが同時に凍結されて、その各々がリモート記憶装置ＳＤＲｘへコピーされる。そして、記憶装置ＳＤＲｘへの書込完了後、次のミラーリングサイクルが開始しうる。
【０１１５】
行ＩＶは、例えば３つの別個のローカルボリュームＳＤＬｉ（ｉ＝１，２，および３）内にある３つの単独のデータオブジェクトからなる選択されたデータオブジェクトを、一つのリモート記憶装置ＳＤＲｘへミラーリングする事例を示している。ここでも、凍結手順は、３つの単独のデータオブジェクトについて同時に実行され、行Ｉの方法が、３つの単独のデータオブジェクトの各々に対して適用される。次のミラーリングサイクルは、出力先のリモート記憶装置ＳＤＲｘへの最後の書込動作が完了した後に、開始することになる。
【０１１６】
行Ｖは、行ＩＩＩの方法によるような、そして、行ＩＩに従って多くのリモート記憶装置へコピーするコピー手順によるような凍結手順に対応している。
【０１１７】
記憶装置のグループ内にある単独のデータオブジェクトのグループからなる選択されたデータオブジェクトをミラーリングする例を、行ＩＶに示す。なお、ここで、単独のデータオブジェクトの個数は、出力先のリモート記憶装置の個数と等しい。２つ以上のデータオブジェクトの同時凍結は、行ＩＩＩに適用された凍結手順と同様であり、コピー手順は、行ＩＩに対して適用されたものと同様である。
【０１１８】
なお、凍結手順は、凍結されるべき２つ以上のデータオブジェクトに対して、選択された同一のデータオブジェクトに属していても、２つ以上のローカル記憶装置内に格納されていても同時であることが、重要である。次のミラーリングサイクルへのサイクルタイムは、多くのリモート記憶装置へといったように複数のコピーが実行される場合、最後のコピーを完結するためのコピー手順に必要な時間により決められる。
【０１１９】
さらに、ローカル記憶装置からリモート記憶装置への同時クロスミラーリング、および。その逆の方向への同時クロスミラーリングもまた、行Ｉ〜ＶＩのミラーリング機能について利用可能である。行Ｉの方法についての簡潔な例として、ローカルホストＨＬおよびリモートホストＨＲの双方が、ミラーリング機能を実行し、各ホストは、他方のホストがリモートホストである場合にローカルホストとして機能する場合がある。
【０１２０】
なお、本発明は、特に図示されて前述されたことに限定されるものではないことが、当業者には理解されるであろう。例えば、選択されたデータオブジェクト、ローカル記憶装置およびリモート記憶装置のさらなる組み合わせが、考慮されてもよい。本発明の範囲は、添付の特許請求の範囲により規定され、前述の様々な特徴、および前記説明を読んで当業者が想到するであろう変形例および修正例の組み合わせおよび下位の組み合わせを含むべきである。
【図面の簡単な説明】
【０１２１】
【図１】ネットワーク接続部の例を示す図である。
【図２】凍結手順を説明するための図である。
【図３】様々なタイプのＩ／Ｏ読取命令およびＩ／Ｏ書込命令を分類するためのフローチャートである。
【図４】凍結手順開始後に、ソースボリュームＳＶへ向けられたＩ／Ｏ読取命令の手順を説明するための図である。
【図５】凍結コマンド後に更新されたデータを含むＩ／Ｏ書込コマンドの処理ステップを示す図である。
【図６】凍結時以来非変更のデータ用のＩ／Ｏ書込命令のステップを示す図である。
【図７】ミラーリング機能の機構の概略を示す図である。
【図８】ミラーリング機能の一連のステップの詳細を説明するための図である。
【図２】
2005500603.tif 000006
【図３】
2005500603.tif 000007
【図４】
2005500603.tif 000008
【図５】
2005500603.tif 000009
【図６】
2005500603.tif 000010
【図７】
2005500603.tif 000011
【図８】
2005500603.tif 000012
【国際公開パンフレット】
2005500603.tif 000013
2005500603.tif 000014
2005500603.tif 000015
2005500603.tif 000016
2005500603.tif 000017
2005500603.tif 000018
2005500603.tif 000019
2005500603.tif 000020
2005500603.tif 000021
2005500603.tif 000022
2005500603.tif 000023
2005500603.tif 000024
2005500603.tif 000025
2005500603.tif 000026
2005500603.tif 000027
2005500603.tif 000028
2005500603.tif 000029
2005500603.tif 000030
2005500603.tif 000031
2005500603.tif 000032
2005500603.tif 000033
2005500603.tif 000034
2005500603.tif 000035
2005500603.tif 000036
2005500603.tif 000037
2005500603.tif 000038
2005500603.tif 000039
2005500603.tif 000040
2005500603.tif 000041
2005500603.tif 000042
2005500603.tif 000043
2005500603.tif 000044
2005500603.tif 000045
2005500603.tif 000046
2005500603.tif 000047
2005500603.tif 000048
2005500603.tif 000049
2005500603.tif 000050
2005500603.tif 000051
2005500603.tif 000052
【国際公開パンフレット（コレクトバージョン）】
2005500603.tif 000053
2005500603.tif 000054
【国際調査報告】
2005500603.tif 000055
2005500603.tif 000056