(57)【特許請求の範囲】
【請求項１】
ネットワークを介して一つ以上のホストコンピュータに結合されるストレージシステムのためにデータを制御する方法であって、
前記ホストコンピュータが、
仮想計算機上で稼働するアプリケーションを特定するためのアプリケーションＩＤを含む書き込みＩ／Ｏコマンドを前記ストレージシステムに送信する第１のステップと、
前記ストレージシステムが、
前記書き込みＩ／Ｏコマンドを受信した場合、前記アプリケーションＩＤと、データを格納したボリューム内の領域との対応関係を記録する第２のステップと、
前記ボリューム内に格納されているデータをリモートコピー用の他のストレージシステムにコピーする場合、前記ボリューム内の領域のうち、リモートコピー機能を使用するＩＤとして事前に登録されているアプリケーションＩＤに対応付けられている領域に格納されているデータだけをコピーする第３のステップと
を備えることを特徴とする方法。
【請求項２】
前記第３のステップにおいて、
前記コピーは、データコピー、データミラーリング、データ復旧及びリモートコピーのうちの何れかの場合に実行される
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記アプリケーションＩＤは、
前記書き込みＩ／ＯコマンドのイニシエータのためのイニシエータポートのＷＷＰＮ（ワールドワイドポート名）又はＩＰアドレスのいずれかである
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記アプリケーションＩＤは、
前記書き込みＩ／Ｏコマンドを発行する前記ホストコンピュータ上の仮想マシンのＩＤである
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記第２のステップにおいて、
前記ストレージシステムが予め備えるデータ位置合わせテーブルに前記アプリケーションＩＤと、前記データを格納したボリューム内の領域とを対応付けて格納することにより、前記アプリケーションＩＤと、前記データを格納したボリューム内の領域との対応関係を記録し、
前記第３のステップにおいて、
前記ストレージシステムが予め備えるイニシエータフィルタテーブルにリモートコピー機能を使用するアプリケーションＩＤが事前に登録されており、前記イニシエータフィルタテーブル及び前記データ位置合わせテーブルを参照することにより、リモートコピー機能を使用するアプリケーションＩＤに対応付けられている領域をチェックし、対応付けられている領域に格納されているデータだけをコピーする
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記アプリケーションＩＤは、
前記ホストコンピュータ上で稼働する前記アプリケーションによるＳＣＳＩコマンドに含まれる
ことを特徴とする請求項１に記載の方法。
【請求項７】
前記第３のステップにおいて、
前記ボリュームの先頭アドレスとしてプログレスポインタを設定し、
前記イニシエータフィルタテーブル及び前記データ位置合わせテーブルを参照することにより、前記プログレスポインタが指し示しているアドレスの領域がリモートコピー機能を使用するアプリケーションＩＤに対応付けられているか否かをチェックし、
対応付けられている場合には当該領域に格納されているデータをコピーして前記プログレスポインタを次のアドレスとして設定し、対応付けられていない場合には前記プログレスポインタを次のアドレスとして設定し、
前記プログレスポインタが前記ボリュームの終端アドレスを超えるまで前記チェックを繰り返すことにより、前記対応付けられている領域に格納されているデータだけをコピーする
ことを特徴とする請求項５に記載の方法。
【請求項８】
ネットワークを介して一つ以上のホストコンピュータに結合されるストレージシステムにおいて、
前記ストレージシステムは、
仮想計算機上で稼働するアプリケーションを特定するためのアプリケーションＩＤを含む書き込みＩ／Ｏコマンドを前記ホストコンピュータから受信した場合、前記アプリケーションＩＤと、データを格納したボリューム内の領域との対応関係を記録するＩ／Ｏ制御部と、
前記ボリューム内に格納されているデータをリモートコピー用の他のストレージシステムにコピーする場合、前記ボリューム内の領域のうち、リモートコピー機能を使用するＩＤとして事前に登録されているアプリケーションＩＤに対応付けられている領域に格納されているデータだけをコピーするリモート初期コピー制御部と
を備えることを特徴とするストレージシステム。
【請求項９】
前記リモート初期コピー制御部は、
前記コピーをデータコピー、データミラーリング、データ復旧及びリモートコピーのうちの何れかの場合に実行する
ことを特徴とする請求項８に記載のストレージシステム。
【請求項１０】
前記アプリケーションＩＤは、
前記書き込みＩ／ＯコマンドのイニシエータのためのイニシエータポートのＷＷＰＮ（ワールドワイドポート名）又はＩＰアドレスのいずれかである
ことを特徴とする請求項８に記載のストレージシステム。
【請求項１１】
前記アプリケーションＩＤは、
前記書き込みＩ／Ｏコマンドを発行する前記ホストコンピュータ上の仮想マシンのＩＤである
ことを特徴とする請求項８に記載のストレージシステム。
【請求項１２】
前記Ｉ／Ｏ制御部は、
前記ストレージシステムが予め備えるデータ位置合わせテーブルに前記アプリケーションＩＤと、前記データを格納したボリューム内の領域とを格納することにより、前記アプリケーションＩＤと、前記データを格納したボリューム内の領域との対応関係を記録し、
前記リモート初期コピー制御部は、
前記ストレージシステムが予め備えるイニシエータフィルタテーブルにリモートコピー機能を使用するアプリケーションＩＤが事前に登録されており、前記イニシエータフィルタテーブル及び前記データ位置合わせテーブルを参照することにより、リモートコピー機能を使用するアプリケーションＩＤに対応付けられている領域をチェックし、対応付けられている領域に格納されているデータだけをコピーする
請求項８に記載のストレージシステム。
【請求項１３】
前記リモート初期コピー制御部は、
前記ボリュームの先頭アドレスとしてプログレスポインタを設定し、
前記イニシエータフィルタテーブル及び前記データ位置合わせテーブルを参照することにより、前記プログレスポインタが指し示しているアドレスの領域がリモートコピー機能を使用するアプリケーションＩＤに対応付けられているか否かをチェックし、
対応付けられている場合には当該領域に格納されているデータをコピーして前記プログレスポインタを次のアドレスとして設定し、
対応付けられていない場合には前記プログレスポインタを次のアドレスとして設定し、
前記プログレスポインタが前記ボリュームの終端アドレスを超えるまで前記チェックを繰り返すことにより、前記対応付けられている領域に格納されているデータだけをコピーする
ことを特徴とする請求項１２に記載のストレージシステム。
【請求項１４】
コンピュータに、
ホストコンピュータが、
仮想計算機上で稼働するアプリケーションを特定するためのアプリケーションＩＤを含む書き込みＩ／Ｏコマンドをネットワークを介して結合されるストレージシステムに送信する第１のステップと、
ストレージシステムが、
前記書き込みＩ／Ｏコマンドを受信した場合、前記アプリケーションＩＤと、データを格納したボリューム内の領域との対応関係を記録する第２のステップと、
前記ボリューム内に格納されているデータをリモートコピー用の他のストレージシステムにコピーする場合、前記ボリューム内の領域のうち、リモートコピー機能を使用するＩＤとして事前に登録されているアプリケーションＩＤに対応付けられている領域に格納されているデータだけをコピーする第３のステップと
を実行させるためのプログラムを記録したことを特徴とするコンピュータ可読記憶媒体。
【請求項１５】
前記アプリケーションＩＤは、
前記書き込みＩ／ＯコマンドのイニシエータのためのイニシエータポートのＷＷＰＮ（ワールドワイドポート名）又はＩＰアドレスのいずれかである
ことを特徴とする請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記アプリケーションＩＤは、
前記書き込みＩ／Ｏコマンドを発行する前記ホストコンピュータ上の仮想マシンのＩＤである
ことを特徴とする請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記第２のステップにおいて、
前記ストレージシステムが予め備えるデータ位置合わせテーブルに前記アプリケーションＩＤと、前記データを格納したボリューム内の領域とを対応付けて格納することにより、前記アプリケーションＩＤと、前記データを格納したボリューム内の領域との対応関係を記録し、
前記第３のステップにおいて、
前記ストレージシステムが予め備えるイニシエータフィルタテーブルにリモートコピー機能を使用するアプリケーションＩＤが事前に登録されており、前記イニシエータフィルタテーブル及び前記データ位置合わせテーブルを参照することにより、リモートコピー機能を使用するアプリケーションＩＤに対応付けられている領域をチェックし、対応付けられている領域に格納されているデータだけをコピーする
ことを特徴とする請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記第３のステップにおいて、
前記ボリュームの先頭アドレスとしてプログレスポインタを設定し、
前記イニシエータフィルタテーブル及び前記データ位置合わせテーブルを参照することにより、前記プログレスポインタが指し示しているアドレスの領域がリモートコピー機能を使用するアプリケーションＩＤに対応付けられているか否かをチェックし、
対応付けられている場合には当該領域に格納されているデータをコピーして前記プログレスポインタを次のアドレスとして設定し、
対応付けられていない場合には前記プログレスポインタを次のアドレスとして設定し、
前記プログレスポインタが前記ボリュームの終端アドレスを超えるまで前記チェックを繰り返すことにより、前記対応付けられている領域に格納されているデータだけをコピーする
ことを特徴とする請求項１７に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
０００１    本発明は概して、ストレージシステムに関し、特に、該当データの初期書き込み入出力（Ｉ／Ｏ）操作を超えて、リモートコピーなどのデータ転送機能をデータに適用する効率を改良するシステム及び方法に関する。
【背景技術】
【０００２】
０００２    最近の傾向では、リモートコピーの技術は、大規模な災害に対して事業活動を継続又は保護するための重要な技術の一つである。リモートコピー技術は、２種類、すなわち同期と非同期に大きく分類される。同期リモートコピーは、短距離でない距離だけ離れた複数のデータセンター間で使用される。非同期リモートコピーは、同期リモートコピーよりも長い距離だけ離れた複数のデータセンター間で使用される。例えば、米国特許第７，１５２，０７９は、ストレージシステム間のデータレプリケーション、特に非同期リモートコピーを開示している。
【０００３】
０００３    従来、リモートコピー技術は通常、データを転送するためにワイドブロードバンドネットワークを必要とする。データ転送は、書き込みＩ／Ｏのための初期コピー、フェイルバック操作、及びミラーリングで発生する。しかし、一般に、データセンター間のデータ転送のコストは高い。よって、リモートコピーのトラフィックを減らすことが望ましい。伝統的に、ユーザは、リモートコピー機能を適用するためにボリュームを選択し、選択されないボリュームにはリモートコピー機能は適用されない。ユーザは、一つのボリューム内に可変データを有してもよく、ボリュームの多くは、ユーザがリモートコピー機能を適用することを必要としない。  
【発明の概要】
【０００４】
０００４    本発明の例示的な実施形態は、該当データの初期書き込みＩ／Ｏ操作を超えてリモートコピー機能などのデータ転送機能を適用するためにデータを選択するためのシステム及び方法を提供する。ホストコンピュータ上で作動する各アプリケーションは、ＩＤ（識別子）を有する。ストレージシステムは、アプリケーションのＩＤとボリューム上のアクセスされる領域との関係をメモリに格納する。このようにして、ストレージシステムは、リモートストレージへの初期コピーのための位置合わせを識別することができる。ストレージシステムは、各書き込みＩ／Ｏについて、アプリケーションのＩＤをチェックし、かつ見つける。各書き込みＩ／ＯのためのアプリケーションのＩＤに基づいて、ストレージシステムは、リモートストレージにミラーリングする必要がある各書き込みＩ／Ｏを選択することができる。データ転送機能は選択されたデータのためにだけ実行されるので、システムは、ネットワーク効率を達成する。また、このアプローチは特に仮想マシン環境で便利であり、この環境において、ストレージＩ／Ｏのための独立したＷＷＰＮ（ワールドワイドポート名）及び／又はＩＰアドレスを各仮想マシンに割り当てることが一般的である。特定の実施形態では、このアプローチは、各書き込みＩ／Ｏについて、ＩＤ（ＷＷＰＮ又はＩＰアドレス）をチェックすることによって、さらなるデータ転送のアプリケーションを必要とするデータを見つけることにより、２つのデータセンター間のリモートコピートラフィックを減らし、かつ複数の仮想マシンが一つのボリュームでデータを共有かつ格納する環境でリモートコピートラフィックを減らすことができる。
【０００５】
０００５    本発明の一態様は、ネットワークを介して一つ以上のホストコンピュータに結合されるストレージシステムのためにデータを制御する方法を対象とする。この方法は、書き込みＩ／Ｏ要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションＩＤを含む、データの書き込み入出力（Ｉ／Ｏ）コマンドを前記ホストコンピュータから受信することと、前記書き込みＩ／Ｏコマンドの前記アプリケーションＩＤと、前記第１のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持することと、前記アプリケーションＩＤに基づいて、前記第１のボリュームと第２のストレージボリュームとの間のデータ転送機能が、前記第１のボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断することと、前記データ転送機能が前記データに対して実行される場合は、前記データに対して前記第２のボリュームへの前記データ転送機能を実行することとを含む。
【０００６】
０００６    いくつかの実施態様において、前記格納位置は、前記第１のボリュームと第２のストレージボリュームとの間の前記データ転送機能が実行されるか否かを判断するために使用される。前記データ転送機能は、前記データのデータコピー、前記データのデータミラーリング、前記データのデータ復旧、及び前記データのリモートコピーのうちの少なくとも一つを含む。前記アプリケーションＩＤは、前記書き込みＩ／ＯコマンドのイニシエータのためのイニシエータポートのＷＷＰＮ（ワールドワイドポート名）又はＩＰアドレスのいずれかである。前記アプリケーションＩＤは、前記書き込みＩ／Ｏコマンドを発行する前記ホストコンピュータ上の仮想マシンのＩＤである。前記書き込みＩ／Ｏコマンドの前記アプリケーションＩＤと、前記ストレージシステムのボリュームに書き込まれる前記データの格納位置との間の関係のレコードを維持することは、格納位置と、対応するアプリケーションＩＤとの間の関係を示すデータ位置合わせテーブルを維持し、かつアプリケーションＩＤと、データ転送ステータスとの間の関係を示すイニシエータフィルタテーブルを維持することとを含み、前記データ転送ステータスは、データ転送機能が前記アプリケーションＩＤに適用されるか否かを示す。
【０００７】
０００７    特定の実施態様では、前記方法は、前記書き込みＩ／Ｏコマンドに基づいて、前記第１のボリュームに書き込まれる前記データの前記格納位置を識別することをさらに含む。前記アプリケーションＩＤは、前記ホストコンピュータ上で稼働する前記アプリケーションによるＳＣＳＩコマンドに含まれる。前記データに対して前記第２のボリュームへの前記データ転送機能が実行されることを決定した後で、前記データ転送機能を実行することは、前記ストレージシステムにおいて前記データが書き込まれる先である前記第１のボリュームの先頭アドレスに、最初にプログレスポインタを設定することと、前記プログレスポインタが現在、前記データ転送機能が実行されることを示す対応するアプリケーションＩＤを有する格納位置を表すアドレスを指しているか否かを判断するために、前記関係について前記維持されるレコードをチェックし、ＹＥＳの場合は、前記プログレスポインタが現在指し示している前記アドレスのアドレス範囲内の前記データに対して、前記第２のボリュームへのデータ転送を実行することと、次のアドレスに前記プログレスポインタを設定し、前記プログレスポインタが前記第１のボリュームの終端アドレスに到達するまで前記チェックを繰り返すこととを含む。前記方法は、書き込まれる前記データの前記格納位置を有する前記ストレージシステムの前記第１のボリュームが、前記データ転送機能を使用するか否かを決定することと、前記ボリュームが前記データ転送機能を使用する場合にのみ、前記データに対して前記第２のボリュームへの前記データ転送機能を実行することとをさらに含む。
【０００８】
０００８    本発明の他の態様は、情報システム内でネットワークを介して第２のストレージシステムと一つ以上のホストコンピュータとに結合される第１のストレージシステムを対象とする。当該第１のストレージシステムは、プロセッサと、メモリと、書き込みＩ／Ｏ要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションＩＤを含む、データの書き込み入出力（Ｉ／Ｏ）コマンドを前記ホストコンピュータから受信し、前記書き込みＩ／Ｏコマンドの前記アプリケーションＩＤと、前記第１のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持し、かつ前記アプリケーションＩＤに基づいて、前記第２のストレージシステムへのデータ転送機能が、前記第１のストレージシステムの前記ボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断するように構成された、入出力（Ｉ／Ｏ）制御モジュールと、データ転送機能が前記データに対して実行される場合、前記データに対して前記第２のストレージシステムへの前記データ転送機能を実行するように構成された、データ転送制御モジュールとを含む。
【０００９】
０００９    本発明の他の態様は、ネットワークを介して第２のストレージシステムと一つ以上のホストコンピュータとに結合される第１のストレージシステムのためにデータ転送を管理するために、データプロセッサを制御するための複数の命令を格納するコンピュータ可読記憶媒体を対象とする。前記複数の命令は、前記データプロセッサをして、書き込みＩ／Ｏ要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションＩＤを含む、データの書き込み入出力（Ｉ／Ｏ）コマンドを前記ホストコンピュータから受信させる命令と、前記データプロセッサをして、前記書き込みＩ／Ｏコマンドの前記アプリケーションＩＤと、前記第１のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持させる命令と、前記データプロセッサをして、前記アプリケーションＩＤに基づいて、前記第２のストレージシステムへのデータ転送機能が、前記第１のストレージシステムの前記ボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断させる命令と、データ転送機能が前記データに対して実行される場合、前記データプロセッサをして、前記データに対して前記第２のストレージシステムへの前記データ転送機能を実行させる命令とを含む。
【００１０】
００１０    本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【００１１】
【図１】００１１    図１は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。
【図２】００１２    図２は、図１のストレージサブシステムのイニシエータフィルタテーブル１１２の一例を示す。
【図３】００１３    図３は、図１のローカルストレージシステムのデータ位置合わせテーブル１１３の一例を示す。
【図４】００１４    図４は、図１のローカルストレージサブシステムのＩ／Ｏ制御１２０のプロセスフローの一例を示す。
【図５】００１５    図５は、図１のローカルストレージサブシステムのリモート初期コピー制御のプロセスフローの一例を示す。
【図６】００１６    図６は、ホストコンピュータからの書き込みＩ／Ｏフレーム構造の一例を示す。
【図７】００１７    図７は、ホストコンピュータからの書き込みＩ／Ｏフレーム構造の他の例を示す。
【図８】００１８    図８は、ホストコンピュータからの書き込みＩ／Ｏフレーム構造のさらに他の例を示す。
【発明を実施するための形態】
【００１２】
００１９    以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として（但し限定ではない）示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する（以下に説明し、かつ図面で示される通り）が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ／又はブロック図において図示している場合もある。
【００１３】
００２０    さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は（必ずしもそうではないが）、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【００１４】
００２１    本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等（但し、これらに限定されない）のコンピュータ可読記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び（情報）提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置（ＣＰＵ）、プロセッサ、又はコントローラによって実行され得る。
【００１５】
００２２    以下により詳細に示す本発明の例示的実施形態は、該当データの初期書き込み入出力（Ｉ／Ｏ）操作を超えてリモートコピーなどのデータ転送機能をデータに適用する効率を改良するための装置、方法、及びコンピュータプログラムを提供する。
【００１６】
００２３    図１は、本発明の方法及び装置が適用できる情報システムのハードウェア構成の一例を示す。
【００１７】
００２４    ローカル（第１）ストレージサブシステム１００及びリモート（第２）ストレージサブシステム２００は、一つ以上のネットワーク４００、４０２、及び４０１を介して接続されている。ローカルストレージサブシステム１００は、ネットワーク４００を介して一つ以上のホストコンピュータ５００に接続されている。リモートストレージサブシステム２００は、ネットワーク４０１を介してホストコンピュータ６００に接続されている。ネットワーク４００、４０１、及び４０２は、ＦＣ（ファイバチャネル）、ＦＣｏＥ（Fibre Channel over Ethernet（登録商標））、又はＴＣＰ／ＩＰ（transmission control protocol / internet protocol）ネットワークであってもよい。ストレージサブシステム１００は、ホストコンピュータ５００からＩ／Ｏコマンドを受信し、ホストコンピュータ５００にストレージボリューム１３０を提供する。ストレージサブシステム２００は、ホストコンピュータ６００からＩ／Ｏコマンドを受信し、ホストコンピュータ６００にストレージボリューム２３０を提供する。ローカルストレージサブシステム１００は、リモートストレージサブシステム２００で連続的なリモートコピーを確立する。連続的なリモートコピーは、同期又は非同期で、ローカルストレージサブシステム１００からリモートストレージサブシステム２００にデータをミラーリングする。
【００１８】
００２５    ホストコンピュータ５００は各々、ＣＰＵと、メモリと、インタフェースとを含む。ＣＰＵは、メモリに格納されたプログラムを読み出し、プログラムを実行する。プログラムは、アプリケーション（ＡＰ）５０３、オペレーティングシステム（ＯＳ）、仮想マシン（ＶＭ）５０２、及びハイパーバイザ５０１を含む。仮想マシンは、複数のアプリケーションを実行してよく、これらのアプリケーション間では１対１の対応はないかもしれない。ホストコンピュータ６００は、ハイパーバイザ６０１を有する。ハイパーバイザ５０１、６０１は、仮想マシンを管理かつ制御する。各仮想マシンは、ストレージネットワーキングのための独立したＩＤを有する。このようなＩＤの例は、ＦＣ／ＦＣｏＥ  ＳＡＮ（ストレージエリアネットワーキング）用のＷＷＰＮ又はｉＳＣＳＩ  ＳＡＮ用のＩＰ（インターネットプロトコル）アドレスを含む。各ハイパーバイザ５０１、６０１は、独立したＩＤも有する。ホストコンピュータのハイパーバイザは、対応するストレージサブシステムのストレージボリューム上のｉノード領域にアクセスする。
【００１９】
００２６    ストレージサブシステム１００、２００は各々、ＣＰＵ、メモリ、ストレージインタフェース、及びディスクインタフェースを含むストレージコントローラを有する。ＣＰＵは、ストレージサブシステムを制御し、メモリからマイクロコード及びテーブルを読み出す。メモリは、マイクロコード及びテーブルを格納する。マイクロコード及びテーブルは、Ｉ／Ｏ制御１２０、２２０、キャッシュ制御、ディスク制御、ＲＡＩＤ（Redundant Array of Independent Disks）制御、リモートコピー制御１１０、２１０、ローカルコピー制御などを含み得る。Ｉ／Ｏ制御１２０、２２０は、ホストコンピュータ（１２０用に５００、２２０用に６００）からのＩ／Ｏ操作のために用いられる。ストレージインタフェースは、対応するストレージネットワーク４００、４０１を介してストレージサブシステム１００、２００を対応するホストコンピュータ５００、６００に接続する。ディスクインタフェースは、ＣＰＵ及びメモリをディスクユニットに格納された複数の記憶装置と接続するもので、このディスクユニットは、ストレージサブシステム内に又はストレージサブシステムに結合される外部ユニット内に存在し得る。記憶装置は、データを格納するためのフラッシュメモリ及び／又はハードディスクドライブ（ＨＤＤ）などのソリッドステート装置を含み得る。ローカルストレージサブシステム１００は、ソース用のリモートコピー機能１１０を備え、リモートストレージサブシステム２００は、ターゲット用のリモートコピー機能２１０を備える。
【００２０】
００２７    ソース１１０用のリモートコピー機能は、ローカルストレージサブシステム１００のメモリに格納されている。これは、構成インタフェース１１１、イニシエータフィルタテーブル１１２、データ位置合わせテーブル１１３、リモート初期コピー制御１１４、及びリモート書き込みデータ転送制御１１５を含む。ストレージサブシステムに格納された各ボリュームは、ボリュームがリモートコピー機能を適用するか又は適用しないように選択することができ、ストレージサブシステムは、かかる構成情報を維持する。構成インタフェース１１１は、ユーザ、ストレージ管理ツール、及び／又はハイパーバイザ管理ツールがリモートコピーオブジェクト仮想マシンの情報を設定するためのインタフェースである。イニシエータフィルタテーブル１１２は、リモートコピーオブジェクト仮想マシンの情報を格納する。これは、構成インタフェース１１１から設定される。データ位置合わせテーブル１１３は、仮想マシン５０２の格納されたデータ配置の情報を格納する。これは、Ｉ／Ｏ制御１２０によって設定される。リモート初期コピー制御１１４は、ローカルストレージサブシステム１００のボリューム１３０のデータをリモートストレージサブシステム２００のボリューム２３０に転送する。これは、転送オブジェクトデータを選択することができる。
【００２１】
００２８    ターゲット２１０用のリモートコピー機能は、リモートストレージサブシステム２００のメモリに格納される。これは、データ一貫性を備えるローカルストレージサブシステム１００からデータを受信することができる。ローカルストレージサブシステム１００で失敗が発生した場合は、これはフェイルオーバープロセスを引き起こし、ローカルストレージサブシステム１００の代わりにリモートストレージサブシステム２００上の操作を変更する。その時、リモートコピー機能を使用する仮想マシンは、リモートストレージサブシステム２００用のホストコンピュータ６００を起動する。これは、当該技術分野で周知である。
【００２２】
００２９    ローカルストレージサブシステム１００のローカルボリューム１３０は、データ１３１（１３１ａ−ｅ）を格納する。仮想マシン５０２のｉノードデータ１３１ａ及びデータ１３１ｂ、１３１ｃ、１３１ｄは、ホストコンピュータ５００上で作動する。図１で示される例では、ローカルコピーは、ｉノードデータ１３１ａ、データ１３１ｂ、１３１ｅ、データ１３１ｃの一部をローカルストレージサブシステム１００からリモートストレージサブシステム２００に転送する。リモートボリューム２３０は、ｉノードデータ２３１ａ、及びデータ２３１ｂ、２３１ｃ、２３１ｅを格納する。リモートストレージサブシステム２００のデータ２３１ａ、２３１ｂ、２３１ｅは、ローカルストレージサブシステム１００のデータ１３１ａ、１３１ｂ、１３１ｅのミラーデータである。仮想マシンでは、複数のアプリケーションが実行されてもよい。この場合、アプリケーションＡＰ０及びＡＰ１が同じ仮想マシンＶＭ＃１で実行されるという事実にかかわらず、データ１３１ｃのアプリケーションＡＰ１に関連するデータだけが、データ２３１ｃにコピーされ、アプリケーションＡＰ０に関連するデータは、データ２３１ｃにコピーされないであろう。
【００２３】
００３０    図２は、図１のストレージサブシステム１００のイニシエータフィルタテーブル１１２の一例を示す。イニシエータフィルタテーブル１１２は、リモートコピーオブジェクト仮想マシンの情報を格納する。これは、図示されている実施形態においてはＷＷＰＮである仮想マシン５０２のアプリケーションＩＤ１１２−１、及び仮想マシンが適用されているか否かについてのリモートコピーステータス１１２−２情報の欄を含む。ステータス「適用済み」は、リモートコピー機能が仮想マシンに適用されていることを意味する。ステータス「非適用」は、リモートコピー機能が仮想マシンに適用されないことを意味する。
【００２４】
００３１    図３は、図１のローカルストレージシステム１００のデータ位置合わせテーブル１１３の一例を示す。データ位置合わせテーブル１１３は、仮想マシン５０２の格納されたデータ位置合わせの情報を格納する。これは、ボリュームの領域としてのＬＢＡ範囲１１３−１、及び図示されている実施形態においてはＷＷＰＮであるアクセシングＩＤのリストとしてのアプリケーションＩＤ１１３−２の欄を含む。アプリケーションＩＤ１１３−２の「空」のエントリは、領域がまだアクセスされていないことを意味する。ボリュームのデータ位置合わせテーブル１１３は、ボリュームがフォーマットされる時にフォーマットされる。
【００２５】
００３２    図４は、図１のローカルストレージサブシステム１００のＩ／Ｏ制御１２０のプロセスフローの一例を示す。このプログラムは、ホストコンピュータ５００からＩ／Ｏを受信した時に実行される。このプログラムは、ステップ１２０−０で開始する。ステップ１２０−１では、プログラムは、ボリュームがリモートコピー機能を使用するか否かをチェックする。ＹＥＳの場合は、プログラムは、ステップ１２０−２に進む。ＮＯの場合は、プログラムは、ステップ１２０−６に進む。ステップ１２０−２では、プログラムは、ＦＣ層の受信されたＩ／ＯコマンドからイニシエータのＷＷＰＮを取得し、情報をデータ位置合わせテーブル１１３に格納する。Ｉ／Ｏコマンドは、ＦＣＩＤ（ファイバチャネルＩＤ）を含む。ストレージサブシステム１００は、ネットワーク４００のスイッチ装置を問い合わせることによって、そのＦＣＩＤに関連するＷＷＰＮを取得できる。ステップ１２０−３では、プログラムは、ＳＣＳＩ層のＩ／Ｏコマンドの属性を取得し、Ｉ／Ｏコマンドが「書き込み」か否かをチェックする。コマンドが「書き込み」である場合は、ステップ１２０−４に進む。コマンドが「書き込み」でない場合、ステップ１２０−６に進む。ステップ１２０−４では、プログラムは、イニシエータフィルタテーブル１１２を参照することによって、ステップ１２０−２で取得されたイニシエータポートＩＤがリモートコピー機能を使用するか否かをチェックする。ＹＥＳの場合は、プログラムは、ステップ１２０−５に進む。ＮＯの場合は、ステップ１２０−６に進む。ステップ１２０−５では、プログラムは、リモートコピーデータ転送プログラムを実行する。これは、当技術分野で周知のいかなる適切なプログラムであってもよい。リモートコピーが同期リモートコピーである場合は、プログラムは、リモートストレージサブシステム２００からの応答を待つ。リモートコピーが非同期である場合は、データ転送は、プログラムが準備している間に後で実行される。ステップ１２０−６では、プログラムは、当技術分野で周知の適切なプログラムであるＩ／Ｏ操作プログラムを実行する。プログラムは、ステップ１２０−７で終了する。
【００２６】
００３３    図５は、図１のローカルストレージサブシステム１００のリモート初期コピー制御１１４のプロセスフローの一例を示す。このプログラムは、リモートペアが確立されるか、又は新しいアクティブ（リモートコピーが適用される）アプリケーションＩＤ／ＷＷＰＮがイニシエータフィルタテーブル１１２に登録された後で実行される。プログラムは、ステップ１１４−０で開始する。ステップ１１４−１では、プログラムは、ボリュームの先頭アドレスとしてプログレスポインタを設定する。ステップ１１４−２では、プログラムは、プログレスポインタがボリュームの終端アドレスを超えたか否かをチェックする。ＹＥＳの場合は、プログラムは、ステップ１１４−７で終了する。ＮＯの場合は、ステップ１１４−３に進む。ステップ１１４−３では、プログラムは、イニシエータフィルタテーブル１１２及びデータ位置合わせテーブル１１３を参照することによって、プログレスポインタが指し示しているアドレス上のＷＷＰＮのいずれかが、リモートコピーが適用された仮想マシンによってアクセスされているか否かをチェックする。ＹＥＳの場合は、プログラムは、ステップ１１４−４に進む。ＮＯの場合は、ステップ１１４−５に進む。ステップ１１４−４では、プログラムは、アドレス範囲のデータをローカルボリューム１３０からリモートボリューム２３０にコピーする。ステップ１１４−５では、プログラムは、次のアドレスとしてプログレスポインタを設定し、ステップ１１４−２に戻る。
【００２７】
００３４    図６は、ホストコンピュータ５００からの書き込みＩ／Ｏフレーム構造の一例を示す。これは、「ＦＣ（ファイバチャネル）」フレーム構造を示しており、かかる構造において、フレームＦ１がＦＣフレームである。アプリケーションＩＤ  Ｆ１−１は、書き込みＩ／Ｏを発行するアプリケーションのＩＤである。そのＩＤは、ＦＣＩＤである。ストレージサブシステムは、ストレージネットワーク４００のスイッチ装置への要求によって、このＦＣＩＤを有するアプリケーションのＷＷＰＮを検索することができる。ＡＰ５０３はさらに、図１で部分的に説明されるように、データをミラーリングするために、Ｆ１−２領域のその他のＩＤを格納することができる。この場合、Ｆ１−１とＦ１−２の組み合わせは、アプリケーションのＩＤを識別するために使用されるであろう。なぜならば、複数のアプリケーションが同じ仮想マシン上で実行され、仮想マシンによる識別が使用できないからである。ストレージサブシステムが、Ｆ１−１とＦ１−２の組み合わせによってデータがアプリケーションと関連付けられると判断した場合、ストレージサブシステムは、データをリモートサイトにミラーリングすることを決定するであろう。
【００２８】
００３５    図７は、ホストコンピュータ５００からの書き込みＩ／Ｏフレーム構造の他の例を示す。これは、ＦＣｏＥ（Fibre Channel over Ethernet（登録商標））」フレーム構造を示し、かかる構造において、フレームＦ２がＦＣｏＥフレームである。アプリケーションＩＤ  Ｆ２−１は、書き込みＩ／Ｏを発行するアプリケーションのＩＤである。そのＩＤは、ＦＣＩＤである。ストレージサブシステムは、ストレージネットワーク４００のスイッチ装置への要求によって、このＦＣＩＤを有するアプリケーションのＷＷＰＮを検索することができる。
【００２９】
００３６    図８は、ホストコンピュータ５００からの書き込みＩ／Ｏフレーム構造のさらに別の一例を示す。これは「ｉＳＣＳＩ」フレーム構造を示し、かかる構造において、フレームＦ３がＩＰ、ＴＣＰ、及びＳＣＳＩプロトコルを含むｉＳＣＳＩフレームである。アプリケーションＩＤ  Ｆ３−１は、書き込みＩ／Ｏを発行する仮想マシン５０２のＩＤである。
【００３０】
００３７    当然のことながら、図１に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のＩ／Ｏ装置（例えば、ＣＤ及びＤＶＤドライブ、フロッピー（登録商標）ディスクドライブ、ハードドライブ等）も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ可読媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ可読媒体から独立したコンピュータ可読媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信（例えば、通信ネットワーク）によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク（例えば、インターネット）、無線ネットワーク、ストレージエリアネットワーク等を含む。
【００３１】
００３８    説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【００３２】
００３９    当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置（ハードウェア）を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体（ソフトウェア）上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び／又は暗号化形式で命令を媒体に記憶することができる。
【００３３】
００４０    上記により、本発明が、該当データの初期書き込み入出力（Ｉ／Ｏ）操作を超えてリモートコピーなどのデータ転送機能をデータに適用する効率を改良するための方法、装置及びコンピュータ可読媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。
【図１】
0005706808.tif 000002
【図２】
0005706808.tif 000003
【図３】
0005706808.tif 000004
【図４】
0005706808.tif 000005
【図５】
0005706808.tif 000006
【図６】
0005706808.tif 000007
【図７】
0005706808.tif 000008
【図８】
0005706808.tif 000009