説明

連続的なリモートコピーのためのネットワーク効率の改良

【課題】リモートコピーなどのデータ転送機能をデータに適用する効率を改良する。
【解決手段】書き込みI/O要求を送信するホストコンピュータで稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドをホストコンピュータから受信することと、書き込みI/OコマンドのアプリケーションIDと、ストレージシステムの第1のボリュームに書き込まれるデータの格納位置との間の関係のレコードを維持することと、アプリケーションIDに基づいて、第1のボリュームと第2のストレージボリュームの間のデータ転送機能が、第1のボリュームにおける格納位置へのデータの書き込みを超えて当該データ上で実行されるか否かを判断することと、データ転送機能がデータ上で実行される場合は、当該データに対して第2のボリュームへのデータ転送機能を実行する。

【発明の詳細な説明】
【技術分野】
【0001】
0001 本発明は概して、ストレージシステムに関し、特に、該当データの初期書き込み入出力(I/O)操作を超えて、リモートコピーなどのデータ転送機能をデータに適用する効率を改良するシステム及び方法に関する。
【背景技術】
【0002】
0002 最近の傾向では、リモートコピーの技術は、大規模な災害に対して事業活動を継続又は保護するための重要な技術の一つである。リモートコピー技術は、2種類、すなわち同期と非同期に大きく分類される。同期リモートコピーは、短距離でない距離だけ離れた複数のデータセンター間で使用される。非同期リモートコピーは、同期リモートコピーよりも長い距離だけ離れた複数のデータセンター間で使用される。例えば、米国特許第7,152,079は、ストレージシステム間のデータレプリケーション、特に非同期リモートコピーを開示している。
【0003】
0003 従来、リモートコピー技術は通常、データを転送するためにワイドブロードバンドネットワークを必要とする。データ転送は、書き込みI/Oのための初期コピー、フェイルバック操作、及びミラーリングで発生する。しかし、一般に、データセンター間のデータ転送のコストは高い。よって、リモートコピーのトラフィックを減らすことが望ましい。伝統的に、ユーザは、リモートコピー機能を適用するためにボリュームを選択し、選択されないボリュームにはリモートコピー機能は適用されない。ユーザは、一つのボリューム内に可変データを有してもよく、ボリュームの多くは、ユーザがリモートコピー機能を適用することを必要としない。
【発明の概要】
【0004】
0004 本発明の例示的な実施形態は、該当データの初期書き込みI/O操作を超えてリモートコピー機能などのデータ転送機能を適用するためにデータを選択するためのシステム及び方法を提供する。ホストコンピュータ上で作動する各アプリケーションは、ID(識別子)を有する。ストレージシステムは、アプリケーションのIDとボリューム上のアクセスされる領域との関係をメモリに格納する。このようにして、ストレージシステムは、リモートストレージへの初期コピーのための位置合わせを識別することができる。ストレージシステムは、各書き込みI/Oについて、アプリケーションのIDをチェックし、かつ見つける。各書き込みI/OのためのアプリケーションのIDに基づいて、ストレージシステムは、リモートストレージにミラーリングする必要がある各書き込みI/Oを選択することができる。データ転送機能は選択されたデータのためにだけ実行されるので、システムは、ネットワーク効率を達成する。また、このアプローチは特に仮想マシン環境で便利であり、この環境において、ストレージI/Oのための独立したWWPN(ワールドワイドポート名)及び/又はIPアドレスを各仮想マシンに割り当てることが一般的である。特定の実施形態では、このアプローチは、各書き込みI/Oについて、ID(WWPN又はIPアドレス)をチェックすることによって、さらなるデータ転送のアプリケーションを必要とするデータを見つけることにより、2つのデータセンター間のリモートコピートラフィックを減らし、かつ複数の仮想マシンが一つのボリュームでデータを共有かつ格納する環境でリモートコピートラフィックを減らすことができる。
【0005】
0005 本発明の一態様は、ネットワークを介して一つ以上のホストコンピュータに結合されるストレージシステムのためにデータを制御する方法を対象とする。この方法は、書き込みI/O要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドを前記ホストコンピュータから受信することと、前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持することと、前記アプリケーションIDに基づいて、前記第1のボリュームと第2のストレージボリュームとの間のデータ転送機能が、前記第1のボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断することと、前記データ転送機能が前記データに対して実行される場合は、前記データに対して前記第2のボリュームへの前記データ転送機能を実行することとを含む。
【0006】
0006 いくつかの実施態様において、前記格納位置は、前記第1のボリュームと第2のストレージボリュームとの間の前記データ転送機能が実行されるか否かを判断するために使用される。前記データ転送機能は、前記データのデータコピー、前記データのデータミラーリング、前記データのデータ復旧、及び前記データのリモートコピーのうちの少なくとも一つを含む。前記アプリケーションIDは、前記書き込みI/OコマンドのイニシエータのためのイニシエータポートのWWPN(ワールドワイドポート名)又はIPアドレスのいずれかである。前記アプリケーションIDは、前記書き込みI/Oコマンドを発行する前記ホストコンピュータ上の仮想マシンのIDである。前記書き込みI/Oコマンドの前記アプリケーションIDと、前記ストレージシステムのボリュームに書き込まれる前記データの格納位置との間の関係のレコードを維持することは、格納位置と、対応するアプリケーションIDとの間の関係を示すデータ位置合わせテーブルを維持し、かつアプリケーションIDと、データ転送ステータスとの間の関係を示すイニシエータフィルタテーブルを維持することとを含み、前記データ転送ステータスは、データ転送機能が前記アプリケーションIDに適用されるか否かを示す。
【0007】
0007 特定の実施態様では、前記方法は、前記書き込みI/Oコマンドに基づいて、前記第1のボリュームに書き込まれる前記データの前記格納位置を識別することをさらに含む。前記アプリケーションIDは、前記ホストコンピュータ上で稼働する前記アプリケーションによるSCSIコマンドに含まれる。前記データに対して前記第2のボリュームへの前記データ転送機能が実行されることを決定した後で、前記データ転送機能を実行することは、前記ストレージシステムにおいて前記データが書き込まれる先である前記第1のボリュームの先頭アドレスに、最初にプログレスポインタを設定することと、前記プログレスポインタが現在、前記データ転送機能が実行されることを示す対応するアプリケーションIDを有する格納位置を表すアドレスを指しているか否かを判断するために、前記関係について前記維持されるレコードをチェックし、YESの場合は、前記プログレスポインタが現在指し示している前記アドレスのアドレス範囲内の前記データに対して、前記第2のボリュームへのデータ転送を実行することと、次のアドレスに前記プログレスポインタを設定し、前記プログレスポインタが前記第1のボリュームの終端アドレスに到達するまで前記チェックを繰り返すこととを含む。前記方法は、書き込まれる前記データの前記格納位置を有する前記ストレージシステムの前記第1のボリュームが、前記データ転送機能を使用するか否かを決定することと、前記ボリュームが前記データ転送機能を使用する場合にのみ、前記データに対して前記第2のボリュームへの前記データ転送機能を実行することとをさらに含む。
【0008】
0008 本発明の他の態様は、情報システム内でネットワークを介して第2のストレージシステムと一つ以上のホストコンピュータとに結合される第1のストレージシステムを対象とする。当該第1のストレージシステムは、プロセッサと、メモリと、書き込みI/O要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドを前記ホストコンピュータから受信し、前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持し、かつ前記アプリケーションIDに基づいて、前記第2のストレージシステムへのデータ転送機能が、前記第1のストレージシステムの前記ボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断するように構成された、入出力(I/O)制御モジュールと、データ転送機能が前記データに対して実行される場合、前記データに対して前記第2のストレージシステムへの前記データ転送機能を実行するように構成された、データ転送制御モジュールとを含む。
【0009】
0009 本発明の他の態様は、ネットワークを介して第2のストレージシステムと一つ以上のホストコンピュータとに結合される第1のストレージシステムのためにデータ転送を管理するために、データプロセッサを制御するための複数の命令を格納するコンピュータ可読記憶媒体を対象とする。前記複数の命令は、前記データプロセッサをして、書き込みI/O要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドを前記ホストコンピュータから受信させる命令と、前記データプロセッサをして、前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持させる命令と、前記データプロセッサをして、前記アプリケーションIDに基づいて、前記第2のストレージシステムへのデータ転送機能が、前記第1のストレージシステムの前記ボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断させる命令と、データ転送機能が前記データに対して実行される場合、前記データプロセッサをして、前記データに対して前記第2のストレージシステムへの前記データ転送機能を実行させる命令とを含む。
【0010】
0010 本発明の上記及びその他の特徴及び効果は、特定の実施形態についての以下の詳細な説明を考慮することにより、当業者にとって明らかとなるであろう。
【図面の簡単な説明】
【0011】
【図1】0011 図1は、本発明の方法及び装置が適用され得る情報システムのハードウェア構成の一例を示す。
【図2】0012 図2は、図1のストレージサブシステムのイニシエータフィルタテーブル112の一例を示す。
【図3】0013 図3は、図1のローカルストレージシステムのデータ位置合わせテーブル113の一例を示す。
【図4】0014 図4は、図1のローカルストレージサブシステムのI/O制御120のプロセスフローの一例を示す。
【図5】0015 図5は、図1のローカルストレージサブシステムのリモート初期コピー制御のプロセスフローの一例を示す。
【図6】0016 図6は、ホストコンピュータからの書き込みI/Oフレーム構造の一例を示す。
【図7】0017 図7は、ホストコンピュータからの書き込みI/Oフレーム構造の他の例を示す。
【図8】0018 図8は、ホストコンピュータからの書き込みI/Oフレーム構造のさらに他の例を示す。
【発明を実施するための形態】
【0012】
0019 以下の本発明についての詳細な説明では、開示の一部を成すとともに、それによって本発明が実施され得る例示的実施形態が実例として(但し限定ではない)示される、添付の図面を参照する。当該図面において、類似の数字は、いくつかの図面を通してほぼ同様の構成要素を示すものである。また、留意すべき点として、詳細な説明では様々な例示的実施形態を提供する(以下に説明し、かつ図面で示される通り)が、本発明は本明細書において説明されかつ示される実施形態に限定されず、当業者が知っているであろう又は知るようになり得るその他の実施形態にも及び得る。本明細書における「一実施形態」、「本実施形態」、又は「上述の実施形態」の言及は、当該実施形態に関連して説明される特定の特性、構造又は特徴が、本発明の少なくとも一つの実施形態に含まれることを意味し、本明細書の様々な箇所において上記文言が使用されていても、必ずしもすべてが同一の実施形態を言及するものではない。さらに、以下の詳細な説明において、本発明を徹底して理解できるように、多くの具体的な詳細が記載されている。但し、本発明を実施するためにこれらの具体的な詳細すべてが必要なわけではないことは、当業者にとって明らかであろう。他の状況では、本発明を不必要に曖昧にしないように、周知の構造、材料、回路、プロセス及びインタフェースの詳細については説明しておらず、かつ/又はブロック図において図示している場合もある。
【0013】
0020 さらに、以下の詳細な説明の一部は、コンピュータ内のオペレーションのアルゴリズム及び象徴的な態様に関して示されている。これらのアルゴリズム記述及び象徴的な態様は、データ処理分野の当業者がその新しいアイディアのエッセンスを最も効果的に他の当業者に伝えるために使用する手段である。アルゴリズムとは、望ましい最終状態又は結果へと導く一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を達成するための相当量の物理的操作を必要とする。通常は(必ずしもそうではないが)、当該数量は、格納、転送、組み合わせ、比較、その他の操作が可能な電気もしくは磁気信号又は命令の形態を取る。主に一般的な使用のために、上記の信号をビット、値、要素、記号、文字、用語、数字、命令等として言及することが時として便利であることが証明されている。但し、上記の及び類似の用語のすべてが、適切な物理数量に関連付けられるものであり、かつ当該数量に適用される単に便利なラベルであることを留意すべきである。別段の記載がない限り、以下の解説から明らかなように、当然のことながら説明全体を通して、「処理」、「演算」、「計算」、「判断」、「表示」等の用語を用いた解説は、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)数量として表わされるデータを、コンピュータシステムのメモリもしくはレジスタ又はその他の情報記憶、送信もしくは表示装置の中の物理的数量として同様に表わされるその他のデータに操作しかつ変換する、コンピュータシステム又はその他の情報処理装置の動作又はプロセスを含み得る。
【0014】
0021 本発明は、本明細書における動作を実施する装置にも関する。この装置は、必要とされる目的のために特別に構築してもよく、又は一つ以上のコンピュータプログラムによって選択的に起動又は再構成された一つ以上の汎用コンピュータを含み得る。当該コンピュータプログラムは、光ディスク、磁気ディスク、読取専用記憶装置(ROM)、ランダムアクセスメモリ(RAM)、ソリッドステート装置及びドライブ、又は電子情報の格納に適したその他の種類の媒体等(但し、これらに限定されない)のコンピュータ可読記憶媒体に格納され得る。本明細書において示されるアルゴリズム及び(情報)提示は、特定のコンピュータ又はその他の装置に本質的に関係しているわけではない。様々な汎用システムを、本明細書における教示に従ってプログラム及びモジュールと共に使用してもよく、又は望ましい方法ステップを実施するためにより特化した装置を構築することが都合がよいということが判明するかもしれない。さらに、本発明は、特定のプログラミング言語を参照して説明されてはいない。当然のことながら、本明細書に記載されている通りに本発明の教示を実施するために、様々なプログラミング言語を使用してもよい。プログラミング言語の命令は、一つ以上の処理装置、例えば中央処理装置(CPU)、プロセッサ、又はコントローラによって実行され得る。
【0015】
0022 以下により詳細に示す本発明の例示的実施形態は、該当データの初期書き込み入出力(I/O)操作を超えてリモートコピーなどのデータ転送機能をデータに適用する効率を改良するための装置、方法、及びコンピュータプログラムを提供する。
【0016】
0023 図1は、本発明の方法及び装置が適用できる情報システムのハードウェア構成の一例を示す。
【0017】
0024 ローカル(第1)ストレージサブシステム100及びリモート(第2)ストレージサブシステム200は、一つ以上のネットワーク400、402、及び401を介して接続されている。ローカルストレージサブシステム100は、ネットワーク400を介して一つ以上のホストコンピュータ500に接続されている。リモートストレージサブシステム200は、ネットワーク401を介してホストコンピュータ600に接続されている。ネットワーク400、401、及び402は、FC(ファイバチャネル)、FCoE(Fibre Channel over Ethernet(登録商標))、又はTCP/IP(transmission control protocol / internet protocol)ネットワークであってもよい。ストレージサブシステム100は、ホストコンピュータ500からI/Oコマンドを受信し、ホストコンピュータ500にストレージボリューム130を提供する。ストレージサブシステム200は、ホストコンピュータ600からI/Oコマンドを受信し、ホストコンピュータ600にストレージボリューム230を提供する。ローカルストレージサブシステム100は、リモートストレージサブシステム200で連続的なリモートコピーを確立する。連続的なリモートコピーは、同期又は非同期で、ローカルストレージサブシステム100からリモートストレージサブシステム200にデータをミラーリングする。
【0018】
0025 ホストコンピュータ500は各々、CPUと、メモリと、インタフェースとを含む。CPUは、メモリに格納されたプログラムを読み出し、プログラムを実行する。プログラムは、アプリケーション(AP)503、オペレーティングシステム(OS)、仮想マシン(VM)502、及びハイパーバイザ501を含む。仮想マシンは、複数のアプリケーションを実行してよく、これらのアプリケーション間では1対1の対応はないかもしれない。ホストコンピュータ600は、ハイパーバイザ601を有する。ハイパーバイザ501、601は、仮想マシンを管理かつ制御する。各仮想マシンは、ストレージネットワーキングのための独立したIDを有する。このようなIDの例は、FC/FCoE SAN(ストレージエリアネットワーキング)用のWWPN又はiSCSI SAN用のIP(インターネットプロトコル)アドレスを含む。各ハイパーバイザ501、601は、独立したIDも有する。ホストコンピュータのハイパーバイザは、対応するストレージサブシステムのストレージボリューム上のiノード領域にアクセスする。
【0019】
0026 ストレージサブシステム100、200は各々、CPU、メモリ、ストレージインタフェース、及びディスクインタフェースを含むストレージコントローラを有する。CPUは、ストレージサブシステムを制御し、メモリからマイクロコード及びテーブルを読み出す。メモリは、マイクロコード及びテーブルを格納する。マイクロコード及びテーブルは、I/O制御120、220、キャッシュ制御、ディスク制御、RAID(Redundant Array of Independent Disks)制御、リモートコピー制御110、210、ローカルコピー制御などを含み得る。I/O制御120、220は、ホストコンピュータ(120用に500、220用に600)からのI/O操作のために用いられる。ストレージインタフェースは、対応するストレージネットワーク400、401を介してストレージサブシステム100、200を対応するホストコンピュータ500、600に接続する。ディスクインタフェースは、CPU及びメモリをディスクユニットに格納された複数の記憶装置と接続するもので、このディスクユニットは、ストレージサブシステム内に又はストレージサブシステムに結合される外部ユニット内に存在し得る。記憶装置は、データを格納するためのフラッシュメモリ及び/又はハードディスクドライブ(HDD)などのソリッドステート装置を含み得る。ローカルストレージサブシステム100は、ソース用のリモートコピー機能110を備え、リモートストレージサブシステム200は、ターゲット用のリモートコピー機能210を備える。
【0020】
0027 ソース110用のリモートコピー機能は、ローカルストレージサブシステム100のメモリに格納されている。これは、構成インタフェース111、イニシエータフィルタテーブル112、データ位置合わせテーブル113、リモート初期コピー制御114、及びリモート書き込みデータ転送制御115を含む。ストレージサブシステムに格納された各ボリュームは、ボリュームがリモートコピー機能を適用するか又は適用しないように選択することができ、ストレージサブシステムは、かかる構成情報を維持する。構成インタフェース111は、ユーザ、ストレージ管理ツール、及び/又はハイパーバイザ管理ツールがリモートコピーオブジェクト仮想マシンの情報を設定するためのインタフェースである。イニシエータフィルタテーブル112は、リモートコピーオブジェクト仮想マシンの情報を格納する。これは、構成インタフェース111から設定される。データ位置合わせテーブル113は、仮想マシン502の格納されたデータ配置の情報を格納する。これは、I/O制御120によって設定される。リモート初期コピー制御114は、ローカルストレージサブシステム100のボリューム130のデータをリモートストレージサブシステム200のボリューム230に転送する。これは、転送オブジェクトデータを選択することができる。
【0021】
0028 ターゲット210用のリモートコピー機能は、リモートストレージサブシステム200のメモリに格納される。これは、データ一貫性を備えるローカルストレージサブシステム100からデータを受信することができる。ローカルストレージサブシステム100で失敗が発生した場合は、これはフェイルオーバープロセスを引き起こし、ローカルストレージサブシステム100の代わりにリモートストレージサブシステム200上の操作を変更する。その時、リモートコピー機能を使用する仮想マシンは、リモートストレージサブシステム200用のホストコンピュータ600を起動する。これは、当該技術分野で周知である。
【0022】
0029 ローカルストレージサブシステム100のローカルボリューム130は、データ131(131a−e)を格納する。仮想マシン502のiノードデータ131a及びデータ131b、131c、131dは、ホストコンピュータ500上で作動する。図1で示される例では、ローカルコピーは、iノードデータ131a、データ131b、131e、データ131cの一部をローカルストレージサブシステム100からリモートストレージサブシステム200に転送する。リモートボリューム230は、iノードデータ231a、及びデータ231b、231c、231eを格納する。リモートストレージサブシステム200のデータ231a、231b、231eは、ローカルストレージサブシステム100のデータ131a、131b、131eのミラーデータである。仮想マシンでは、複数のアプリケーションが実行されてもよい。この場合、アプリケーションAP0及びAP1が同じ仮想マシンVM#1で実行されるという事実にかかわらず、データ131cのアプリケーションAP1に関連するデータだけが、データ231cにコピーされ、アプリケーションAP0に関連するデータは、データ231cにコピーされないであろう。
【0023】
0030 図2は、図1のストレージサブシステム100のイニシエータフィルタテーブル112の一例を示す。イニシエータフィルタテーブル112は、リモートコピーオブジェクト仮想マシンの情報を格納する。これは、図示されている実施形態においてはWWPNである仮想マシン502のアプリケーションID112−1、及び仮想マシンが適用されているか否かについてのリモートコピーステータス112−2情報の欄を含む。ステータス「適用済み」は、リモートコピー機能が仮想マシンに適用されていることを意味する。ステータス「非適用」は、リモートコピー機能が仮想マシンに適用されないことを意味する。
【0024】
0031 図3は、図1のローカルストレージシステム100のデータ位置合わせテーブル113の一例を示す。データ位置合わせテーブル113は、仮想マシン502の格納されたデータ位置合わせの情報を格納する。これは、ボリュームの領域としてのLBA範囲113−1、及び図示されている実施形態においてはWWPNであるアクセシングIDのリストとしてのアプリケーションID113−2の欄を含む。アプリケーションID113−2の「空」のエントリは、領域がまだアクセスされていないことを意味する。ボリュームのデータ位置合わせテーブル113は、ボリュームがフォーマットされる時にフォーマットされる。
【0025】
0032 図4は、図1のローカルストレージサブシステム100のI/O制御120のプロセスフローの一例を示す。このプログラムは、ホストコンピュータ500からI/Oを受信した時に実行される。このプログラムは、ステップ120−0で開始する。ステップ120−1では、プログラムは、ボリュームがリモートコピー機能を使用するか否かをチェックする。YESの場合は、プログラムは、ステップ120−2に進む。NOの場合は、プログラムは、ステップ120−6に進む。ステップ120−2では、プログラムは、FC層の受信されたI/OコマンドからイニシエータのWWPNを取得し、情報をデータ位置合わせテーブル113に格納する。I/Oコマンドは、FCID(ファイバチャネルID)を含む。ストレージサブシステム100は、ネットワーク400のスイッチ装置を問い合わせることによって、そのFCIDに関連するWWPNを取得できる。ステップ120−3では、プログラムは、SCSI層のI/Oコマンドの属性を取得し、I/Oコマンドが「書き込み」か否かをチェックする。コマンドが「書き込み」である場合は、ステップ120−4に進む。コマンドが「書き込み」でない場合、ステップ120−6に進む。ステップ120−4では、プログラムは、イニシエータフィルタテーブル112を参照することによって、ステップ120−2で取得されたイニシエータポートIDがリモートコピー機能を使用するか否かをチェックする。YESの場合は、プログラムは、ステップ120−5に進む。NOの場合は、ステップ120−6に進む。ステップ120−5では、プログラムは、リモートコピーデータ転送プログラムを実行する。これは、当技術分野で周知のいかなる適切なプログラムであってもよい。リモートコピーが同期リモートコピーである場合は、プログラムは、リモートストレージサブシステム200からの応答を待つ。リモートコピーが非同期である場合は、データ転送は、プログラムが準備している間に後で実行される。ステップ120−6では、プログラムは、当技術分野で周知の適切なプログラムであるI/O操作プログラムを実行する。プログラムは、ステップ120−7で終了する。
【0026】
0033 図5は、図1のローカルストレージサブシステム100のリモート初期コピー制御114のプロセスフローの一例を示す。このプログラムは、リモートペアが確立されるか、又は新しいアクティブ(リモートコピーが適用される)アプリケーションID/WWPNがイニシエータフィルタテーブル112に登録された後で実行される。プログラムは、ステップ114−0で開始する。ステップ114−1では、プログラムは、ボリュームの先頭アドレスとしてプログレスポインタを設定する。ステップ114−2では、プログラムは、プログレスポインタがボリュームの終端アドレスを超えたか否かをチェックする。YESの場合は、プログラムは、ステップ114−7で終了する。NOの場合は、ステップ114−3に進む。ステップ114−3では、プログラムは、イニシエータフィルタテーブル112及びデータ位置合わせテーブル113を参照することによって、プログレスポインタが指し示しているアドレス上のWWPNのいずれかが、リモートコピーが適用された仮想マシンによってアクセスされているか否かをチェックする。YESの場合は、プログラムは、ステップ114−4に進む。NOの場合は、ステップ114−5に進む。ステップ114−4では、プログラムは、アドレス範囲のデータをローカルボリューム130からリモートボリューム230にコピーする。ステップ114−5では、プログラムは、次のアドレスとしてプログレスポインタを設定し、ステップ114−2に戻る。
【0027】
0034 図6は、ホストコンピュータ500からの書き込みI/Oフレーム構造の一例を示す。これは、「FC(ファイバチャネル)」フレーム構造を示しており、かかる構造において、フレームF1がFCフレームである。アプリケーションID F1−1は、書き込みI/Oを発行するアプリケーションのIDである。そのIDは、FCIDである。ストレージサブシステムは、ストレージネットワーク400のスイッチ装置への要求によって、このFCIDを有するアプリケーションのWWPNを検索することができる。AP503はさらに、図1で部分的に説明されるように、データをミラーリングするために、F1−2領域のその他のIDを格納することができる。この場合、F1−1とF1−2の組み合わせは、アプリケーションのIDを識別するために使用されるであろう。なぜならば、複数のアプリケーションが同じ仮想マシン上で実行され、仮想マシンによる識別が使用できないからである。ストレージサブシステムが、F1−1とF1−2の組み合わせによってデータがアプリケーションと関連付けられると判断した場合、ストレージサブシステムは、データをリモートサイトにミラーリングすることを決定するであろう。
【0028】
0035 図7は、ホストコンピュータ500からの書き込みI/Oフレーム構造の他の例を示す。これは、FCoE(Fibre Channel over Ethernet(登録商標))」フレーム構造を示し、かかる構造において、フレームF2がFCoEフレームである。アプリケーションID F2−1は、書き込みI/Oを発行するアプリケーションのIDである。そのIDは、FCIDである。ストレージサブシステムは、ストレージネットワーク400のスイッチ装置への要求によって、このFCIDを有するアプリケーションのWWPNを検索することができる。
【0029】
0036 図8は、ホストコンピュータ500からの書き込みI/Oフレーム構造のさらに別の一例を示す。これは「iSCSI」フレーム構造を示し、かかる構造において、フレームF3がIP、TCP、及びSCSIプロトコルを含むiSCSIフレームである。アプリケーションID F3−1は、書き込みI/Oを発行する仮想マシン502のIDである。
【0030】
0037 当然のことながら、図1に示すシステム構成は、本発明が実施され得る情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータ及びストレージシステムは、上述の発明を実施するために用いられるモジュール、プログラム及びデータ構造を格納しかつ読み出すことができる公知のI/O装置(例えば、CD及びDVDドライブ、フロッピー(登録商標)ディスクドライブ、ハードドライブ等)も有し得る。これらのモジュール、プログラム及びデータ構造は、当該コンピュータ可読媒体上で符号化することができる。例えば、本発明のデータ構造は、本発明で使用されるプログラムが存在する一つ以上のコンピュータ可読媒体から独立したコンピュータ可読媒体に格納することができる。システムの構成要素は、あらゆる形態又は媒体のデジタルデータ通信(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク、ワイドエリアネットワーク(例えば、インターネット)、無線ネットワーク、ストレージエリアネットワーク等を含む。
【0031】
0038 説明では、本発明を徹底的に理解できるようにするために説明する目的で多くの詳細が記載されている。しかし、当業者にとっては、本発明を実施するためにはこれら具体的な詳細のすべてが必要なわけではないことは明らかであるだろう。また、留意すべき点として、本発明は、通常はフローチャート、流れ図、構成図又はブロック図として記載されるプロセスとして説明されてもよい。フローチャートでは動作を逐次プロセスとして説明し得るが、動作の多くは並行して又は同時に実行することができる。さらに、動作の順番は並び替えてもよい。
【0032】
0039 当技術分野では周知であるように、上述の動作は、ハードウェア、ソフトウェア、又はソフトウェアとハードウェアの組み合わせによって実行することができる。本発明の実施形態の様々な態様は、回路や論理装置(ハードウェア)を用いて実施してよく、その一方で、その他の態様は、機械読み取り可能媒体(ソフトウェア)上に記憶された命令を用いて実施してもよく、これがプロセッサによって実行された場合には、本発明の実施形態を実行する方法をプロセッサに実施させるものである。さらに、本発明のいくつかの実施形態は、ハードウェアのみにおいて実施されてよく、その他の実施形態は、ソフトウェアのみで実施されてよい。さらに、説明された様々な機能は、一つのユニットで実施することができ、又はあらゆる方法によって多くの構成要素に分散することができる。ソフトウェアによって実施された場合、上記の方法は、コンピュータ可読媒体に記憶された命令に基づいて、汎用コンピュータなどのプロセッサによって実行され得る。望ましい場合には、圧縮及び/又は暗号化形式で命令を媒体に記憶することができる。
【0033】
0040 上記により、本発明が、該当データの初期書き込み入出力(I/O)操作を超えてリモートコピーなどのデータ転送機能をデータに適用する効率を改良するための方法、装置及びコンピュータ可読媒体に記憶されたプログラムを提供するものであることが明らかであろう。さらに、本明細書において特定の実施形態が示され説明されているが、当業者にとって当然のことながら、開示された特定の実施形態の代わりに、同じ目的を達成するために創出されたいかなる構成を用いてもよい。本開示は、本発明のあらゆる適応又はバリエーションを対象とすることを意図したものであり、また以下の請求項で用いられる用語は、本発明を本明細書で開示されている特定の実施形態に限定するものとは解釈されるべきではないことが理解される。むしろ本発明の範囲は、以下の請求項によって全面的に判断されるものであり、以下の請求項は、当該請求項が権利を有する同等物の範囲全体と共に、請求項の解釈について確立された原則に従って解釈されるものである。



【特許請求の範囲】
【請求項1】
ネットワークを介して一つ以上のホストコンピュータに結合されるストレージシステムのためにデータを制御する方法であって、
書き込みI/O要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドを前記ホストコンピュータから受信することと、
前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持することと、
前記アプリケーションIDに基づいて、前記第1のボリュームと第2のストレージボリュームとの間のデータ転送機能が、前記第1のボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断することと、
前記データ転送機能が前記データに対して実行される場合は、前記データに対して前記第2のボリュームへの前記データ転送機能を実行することと
を含む方法。
【請求項2】
前記判断において、前記格納位置は、
前記第1のボリュームと第2のストレージボリュームとの間の前記データ転送機能が実行されるか否かを判断するために使用され、
前記データ転送機能は、
前記データのデータコピー、前記データのデータミラーリング、前記データのデータ復旧、及び前記データのリモートコピーのうちの少なくとも一つを含む、請求項1に記載の方法。
【請求項3】
前記アプリケーションIDは、
前記書き込みI/OコマンドのイニシエータのためのイニシエータポートのWWPN(ワールドワイドポート名)又はIPアドレスのいずれかである
請求項1に記載の方法。
【請求項4】
前記アプリケーションIDは、
前記書き込みI/Oコマンドを発行する前記ホストコンピュータ上の仮想マシンのIDである
請求項1に記載の方法。
【請求項5】
前記書き込みI/Oコマンドの前記アプリケーションIDと、前記ストレージシステムのボリュームに書き込まれる前記データの格納位置との間の関係のレコードを維持することは、格納位置と、対応するアプリケーションIDとの間の関係を示すデータ位置合わせテーブルを維持し、かつアプリケーションIDと、データ転送ステータスとの間の関係を示すイニシエータフィルタテーブルを維持することとを含み、前記データ転送ステータスは、データ転送機能が前記アプリケーションIDに適用されるか否かを示す
請求項1に記載の方法。
【請求項6】
前記書き込みI/Oコマンドに基づいて、前記第1のボリュームに書き込まれる前記データの前記格納位置を識別することをさらに含み、
前記アプリケーションIDは、
前記ホストコンピュータ上で稼働する前記アプリケーションによるSCSIコマンドに含まれる
請求項1に記載の方法。
【請求項7】
前記データに対して前記第2のボリュームへの前記データ転送機能が実行されることを決定した後で、前記データ転送機能を実行することは、
前記ストレージシステムにおいて前記データが書き込まれる先である前記第1のボリュームの先頭アドレスに、最初にプログレスポインタを設定することと、
前記プログレスポインタが現在、前記データ転送機能が実行されることを示す対応するアプリケーションIDを有する格納位置を表すアドレスを指しているか否かを判断するために、前記関係について前記維持されるレコードをチェックし、YESの場合は、前記プログレスポインタが現在指し示している前記アドレスのアドレス範囲内の前記データに対して、前記第2のボリュームへのデータ転送を実行することと、
次のアドレスに前記プログレスポインタを設定し、前記プログレスポインタが前記第1のボリュームの終端アドレス(bottom address)に到達するまで前記チェックを繰り返すことと
を含む請求項1に記載の方法。
【請求項8】
書き込まれる前記データの前記格納位置を有する前記ストレージシステムの前記第1のボリュームが、前記データ転送機能を使用するか否かを決定することと、
前記ボリュームが前記データ転送機能を使用する場合にのみ、前記データに対して前記第2のボリュームへの前記データ転送機能を実行することと
をさらに含む請求項1に記載の方法。
【請求項9】
情報システム内でネットワークを介して第2のストレージシステムと一つ以上のホストコンピュータとに結合される第1のストレージシステムであって、
プロセッサと、
メモリと、
書き込みI/O要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドを前記ホストコンピュータから受信し、
前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持し、かつ
前記アプリケーションIDに基づいて、前記第2のストレージシステムへのデータ転送機能が、前記第1のストレージシステムの前記ボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断するように構成された、入出力(I/O)制御モジュールと、
データ転送機能が前記データに対して実行される場合、前記データに対して前記第2のストレージシステムへの前記データ転送機能を実行するように構成された、データ転送制御モジュールと
を含む第1のストレージシステム。
【請求項10】
前記データ転送機能は、
前記データのデータコピー、前記データのデータミラーリング、前記データのデータ復旧、及び前記データのリモートコピーのうちの少なくとも一つを含む
請求項9に記載の第1のストレージシステム。
【請求項11】
前記アプリケーションIDは、
前記書き込みI/OコマンドのイニシエータのためのイニシエータポートのWWPN(ワールドワイドポート名)又はIPアドレスのいずれかである
請求項9に記載の第1のストレージシステム。
【請求項12】
前記アプリケーションIDは、
前記書き込みI/Oコマンドを発行する前記ホストコンピュータ上の仮想マシンのIDである
請求項9に記載の第1のストレージシステム。
【請求項13】
前記格納位置は
前記第2のストレージシステムへの前記データ転送機能が実行されるべきか否かを判断するために使用され、
前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との間の関係のレコードを維持することは、格納位置と、対応するアプリケーションIDとの間の関係を示すデータ位置合わせテーブルを維持し、かつアプリケーションIDと、データ転送ステータスとの間の関係を示すイニシエータフィルタテーブルを維持することとを含み、前記データ転送ステータスは、データ転送機能が前記アプリケーションIDに適用されるか否かを示し、
前記データ位置合わせテーブル及び前記イニシエータフィルタテーブルは、
前記メモリに格納される
請求項9に記載の第1のストレージシステム。
【請求項14】
前記I/O制御モジュールは、
前記書き込みI/Oコマンドに基づいて、前記第1のストレージシステムのボリュームに書き込まれる前記データの前記格納位置を識別するように構成される
請求項9に記載の第1のストレージシステム。
【請求項15】
前記データに対して前記第2のストレージシステムへの前記データ転送機能が実行されることを決定した後で、
前記第1のストレージシステムにおいて前記データが書き込まれる先である前記ボリュームの先頭アドレスに、最初にプログレスポインタを設定し、
前記プログレスポインタが現在、前記データ転送機能が実行されることを示す対応するアプリケーションIDを有する格納位置を表すアドレスを指しているか否かを判断するために、前記関係について前記維持されるレコードをチェックし、YESの場合は、前記プログレスポインタが現在指し示している前記アドレスのアドレス範囲内の前記データに対して、前記第2のストレージシステムへのデータ転送を実行し、
次のアドレスに前記プログレスポインタを設定し、前記プログレスポインタが前記ボリュームの終端アドレスに到達するまで前記チェックを繰り返す
ように構成される、初期制御をさらに備える
請求項9に記載の第1のストレージシステム。
【請求項16】
ネットワークを介して第2のストレージシステムと一つ以上のホストコンピュータとに結合される第1のストレージシステムのためにデータ転送を管理するためにデータプロセッサを制御するための複数の命令を格納するコンピュータ可読記憶媒体であって、
前記複数の命令が、
前記データプロセッサをして、書き込みI/O要求を送信するホストコンピュータ上で稼働するアプリケーションを識別するアプリケーションIDを含む、データの書き込み入出力(I/O)コマンドを前記ホストコンピュータから受信させる命令と、
前記データプロセッサをして、前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との関係のレコードを維持させる命令と、
前記データプロセッサをして、前記アプリケーションIDに基づいて、前記第2のストレージシステムへのデータ転送機能が、前記第1のストレージシステムの前記ボリュームにおける前記格納位置への前記データの書き込みを超えて前記データに対して実行されるか否かを判断させる命令と、
データ転送機能が前記データに対して実行される場合、前記データプロセッサをして、前記データに対して前記第2のストレージシステムへの前記データ転送機能を実行させる命令とを含む
コンピュータ可読記憶媒体。
【請求項17】
前記アプリケーションIDは、
前記書き込みI/OコマンドのイニシエータのためのイニシエータポートのWWPN(ワールドワイドポート名)又はIPアドレスのいずれかである
請求項16に記載のコンピュータ可読記憶媒体。
【請求項18】
前記アプリケーションIDは、
前記書き込みI/Oコマンドを発行する前記ホストコンピュータ上の仮想マシンのIDである
請求項16に記載のコンピュータ可読記憶媒体。
【請求項19】
前記データプロセッサをして、前記書き込みI/Oコマンドの前記アプリケーションIDと、前記第1のストレージシステムのボリュームに書き込まれる前記データの格納位置との間の関係のレコードを維持させる命令は、
前記データプロセッサをして、格納位置と、対応するアプリケーションIDとの間の関係を示すデータ位置合わせテーブルを維持させる命令と、
前記データプロセッサをして、アプリケーションIDと、データ転送機能が前記アプリケーションIDに適用されるか否かを示すデータ転送ステータスとの間の関係を示すイニシエータフィルタテーブルを維持させる命令と
を含む
請求項16に記載のコンピュータ可読記憶媒体。
【請求項20】
前記データ転送機能が前記データに対して実行されることを決定した後で、前記データプロセッサをして、
前記第1のストレージシステムにおいて前記データが書き込まれる先である前記ボリュームの先頭アドレスに、最初にプログレスポインタを設定させ、
前記プログレスポインタが現在、前記データ転送機能が実行されることを示す対応するアプリケーションIDを有する格納位置を表すアドレスを指しているか否かを判断するために、前記関係について前記維持されるレコードをチェックさせ、YESの場合は、前記プログレスポインタが現在指し示している前記アドレスのアドレス範囲内の前記データに対して、前記第2のストレージシステムへのデータ転送を実行させ、
次のアドレスに前記プログレスポインタを設定させ、前記プログレスポインタが前記ボリュームの終端アドレスに到達するまで前記チェックを繰り返させる
命令をさらに含む
請求項16に記載のコンピュータ可読記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate