(57)【要約】      （修正有）【課題】ストレージシステム間でのフェイルオーバ回復を可能にする。【解決手段】ホストシステムに於ける仮想ボリュームモジュールは、ホストシステムで稼動するユーザ・レベル及びシステム・レベルのアプリケーションに対して、仮想ボリュームのビューを提供する。仮想ボリュームモジュールは、仮想ボリュームに向けられたアプリケーションからの入出力を第一のストレージシステムの第一の物理ボリュームにマップする。必要な時には、仮想ボリュームモジュールはアプリケーションからの入出力を第二のストレージシステムの第二の物理ボリュームにマップする。第二のストレージシステムは第一のストレージシステムのデータを複製しており、マップし直しても、ホストシステムで走行しているアプリケーションには認識されない。【選択図】図１
2006048676.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータの一式以上のアプリケーションから、仮想ストレージボリュームに対する入出力要求を受信するステップと、
二式以上のストレージシステムの一式を、対象ストレージシステムに指定するステップと、
各入出力要求に対して、前記対象ストレージシステムに収容され、前記仮想ストレージボリュームに関連する対象物理ボリュームに対する、一組以上の対応入出力動作を生成するステップと、
前記入出力要求を処理するために、前記一組以上の対応入出力動作を前記対象ストレージシステムに送信するステップと、
対象ストレージシステムとして指定されるプライマリシステムに指定された前記ストレージシステムの一式のデータを、セカンダリシステムに指定された前記ストレージシステムの別の一式にコピーするデータコピープロセスを開始する要求を送信するステップと、
を備えることを特徴とするホストコンピュータが物理ボリュームにアクセスする方法。
【請求項２】
前記ステップは、前記ホストコンピュータで実行され、前記ホストコンピュータは、前記各ストレージシステムと関連する通信インターフェースを有し、前記送信するステップは、前記対象ストレージシステムに関連する該通信インターフェースを経由した送信を行う、ことを特徴とする請求項１に記載の方法。
【請求項３】
前記方法は更に、前記プライマリシステムに於けるエラーの徴候を受信するステップとから成り、前記データコピープロセスは前記エラーの徴候の受信を契機に開始される、ことを特徴とする請求項１に記載の方法。
【請求項４】
前記方法は更に、前記プライマリシステムで入出力要求を処理できない障害を検出するステップと、これを契機に前記セカンダリシステムを前記対象ストレージシステムに指定するステップと、前記セカンダリシステムのボリュームを前記対象物理ボリュームに指定するステップとから成り、前記セカンダリシステムが前記ホストコンピュータからの後続する入出力要求を処理することを特徴とする請求項３に記載の方法。
【請求項５】
前記方法は更に、前記プライマリシステムでの前記入出力要求の処理機能の回復を検出するステップと、これを契機に前記セカンダリシステムのデータを前記プライマリシステムにコピーする第二のデータコピープロセスを開始するステップと、前記第二のコピープロセスの完了に続いて、前期プライマリシステムを前記対象ストレージシステムに指定するステップと、前記プライマリシステムのボリュームを前記対象物理ボリュームに指定するステップとから成り、前記プライマリシステムが前記ホストコンピュータからの後続する入出力要求を処理することを特徴とする請求項４に記載の方法。
【請求項６】
前記データコピープロセスはデータ移行動作であり、前記方法は更に、前記データ移行動作の完了を検出するステップと、これを契機に前記セカンダリシステムを前記対象ストレージシステムに指定するステップと、前記セカンダリシステムのボリュームを前記対象物理ボリュームに指定するステップとから成り、前記プライマリシステムは以降、対象ストレージシステムとしては使用されないことを特徴とする請求項３に記載の方法。
【請求項７】
前記方法に於いて、前記二式以上のストレージシステムの一式を第一のストレージシステムに指定し、もう一式を第二のストレージシステムに指定し、前記第一のストレージシステムを更に前記対象ストレージシステムに指定し、前記方法は更に、
前記第一のストレージシステムに書き込まれたデータの前記第二のストレージシステムへの複製を開始する第一の要求を送信し、該第一のストレージシステムに障害が検出されたら、該第二のストレージシステムを前記対象ストレージシステムに指定し、前記対象物理ボリュームには該第二のストレージシステムのボリュームを指定するステップと、
前記第一のストレージシステムに書き込まれたデータの、該第一のストレージシステムのデータバックアップとなる、前記二式以上のストレージシステムの第三のストレージシステムへの複製を開始する第二の動作を送信するステップと、
前記第二のストレージシステムに書き込まれたデータの、該第二のストレージシステムのデータバックアップとなる、前記二式以上のストレージシステムの第四のストレージシステムへの複製を開始する第三の動作を送信するステップと、
を備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記ステップは、前記ホストコンピュータで実行されることを特徴とする請求項７に記載の方法。
【請求項９】
前記方法に於いて更に、
第一のストレージシステムに指定された前記ストレージシステムの一式の第一のボリュームのデータを、第二のストレージシステムに指定された該ストレージシステムのもう一式の第二のボリュームにコピーする第一のデータコピープロセスを開始する要求を送信するステップと、
前記第二のストレージシステムの第三のボリュームのデータを前記第一のストレージシステムの第四のボリュームにコピーする第二のデータコピープロセスを開始する要求を送信するステップと、
を備え、
前記対象ストレージシステムは、前記第一と第二のストレージシステムの入出力負荷状態に基づいて指定され、
前記対象物理ボリュームには、前記第一と前記第三の何れかのボリュームがなる、
ことを特徴とする請求項１に記載の方法。
【請求項１０】
前記ステップは、前記ホストコンピュータで実行されることを特徴とする請求項９に記載の方法。
【請求項１１】
前記アプリケーションは、ユーザ・レベルアプリケーションとシステム・レベルアプリケーションを含む、ことを特徴とする請求項１に記載の方法。
【請求項１２】
前記一組以上の対応入出力動作は、ＳＣＳＩコマンドであることを特徴とする請求項１に記載の方法。
【請求項１３】
前記送信するステップは、一式以上のＦＣ(Fibre Channel)ネットワーク経由の通信を含むことを特徴とする請求項１に記載の方法。
【請求項１４】
仮想ボリュームに対する入出力動作を生成するコンピュータプログラム命令を実行できるデータ処理ユニットと、
前記入出力動作を受信し、対象物理ボリュームに向ける対応入出力動作を生成する仮想ボリュームモジュールと、
通信ネットワークに接続するための第一の通信インターフェースと、
通信ネットワークに接続するための少なくとも第二の通信インターフェースと、
を備え、
前記仮想ボリュームモジュールは更に、前記第一の通信インターフェース経由での第一のストレージシステムか、前記第二の通信インターフェース経由での少なくとも第二のストレージシステムの何れかを選択して、前記対応入出力動作を送信し、
前記第一と第二のストレージシステムは各々通信ネットワークに接続され、
前記仮想ボリュームモジュールは更に、前記第一のストレージシステムのデータを前記第二のストレージシステムにコピーするデータコピープロセスを開始する要求を送信し、前記対応入出力動作は、前記対象物理ボリュームを有する、該第一のストレージシステムに送信され、
前記対象物理ボリュームは前記第一か前記第二のストレージシステムの何れかに収容される、
ことを特徴とするデータアクセスシステム。
【請求項１５】
前記仮想ボリュームモジュールは前記第一のストレージシステムからエラーの徴候を受信し、これを契機に前記データコピープロセスを開始することを特徴とする請求項１４に記載のデータアクセスシステム。
【請求項１６】
前記仮想ボリュームモジュールは更に、前記第一のストレージシステムの障害を検出し、これを契機に以降の対応入出力動作を前記第二のストレージシステムに送信し、前記対象物理ボリュームには該第二のストレージシステムのボリュームがなることを特徴とする請求項１５に記載のデータアクセスシステム。
【請求項１７】
前記データコピープロセスはデータ移行動作であり、前記仮想ボリュームモジュールは更に、前記データ移行動作の完了を検出し、この完了を契機に対応入出力動作を前記第二のストレージシステムに送信し、前記対象物理ボリュームには該第二のストレージシステムのボリュームがなることを特徴とする請求項１５に記載のデータアクセスシステム。
【請求項１８】
前記仮想ボリュームモジュールは更に、
前記第一のストレージシステムに書き込まれたデータを前記第二のストレージシステムに複製する動作を開始し、該第一のストレージシステムに障害が検出されると、対応入出力動作を該第二のストレージシステムに送信し、前記対象物理ボリュームには該第二のストレージシステムのボリュームがなり、
前記第一のストレージシステムに書き込まれたデータを、該第一のストレージシステムのバックアップとなる第三のストレージシステムに複製する動作を開始し、
前記第二のストレージシステムに書き込まれたデータを、該第二のストレージシステムのバックアップとなる第四のストレージシステムに複製する動作を開始する、
ことを特徴とする請求項１４に記載のデータアクセスシステム。
【請求項１９】
前記仮想ボリュームモジュールは更に、
前記第一のストレージシステムの第一のボリュームのデータを前記第二のストレージシステムの第二のボリュームにコピーする第一のデータコピープロセスを開始する要求を送信し、
前記第二のストレージシステムの第三のボリュームのデータを前記第一のストレージシステムの第四のボリュームにコピーする第二のデータコピープロセスを開始する要求を送信する、
ように動作可能であり、
前記第一と第二のストレージシステムの入出力負荷状態に基づいて、前記第一か前記第二のストレージシステムの選択がなされ、
前記対象物理ボリュームには前記第一と第三の何れかのボリュームがなる、
ことを特徴とする請求項１４に記載のデータアクセスシステム。
【請求項２０】
ホストコンピュータの一式以上のアプリケーションから、仮想ストレージボリュームに対する入出力要求を受信するステップと、
二式以上のストレージシステムから一式を対象ストレージシステムに指定するステップと、
第一か第二のストレージシステムの何れかを、前記仮想ストレージボリュームに関連する対象物理ボリュームを有する対象ストレージシステムに指定し、各入出力要求に対して、該対象物理ボリュームに向けられる一式以上の対応入出力動作を生成するステップと、
前記一式以上の対応入出力動作を前記対象ストレージシステムに送信するステップと、
前記第一のストレージシステムに書き込まれたデータを前記第二のストレージシステムに複製することを開始する第一の動作を送信し、該第一のストレージシステムに障害が検出されたら、該第二のストレージシステムが対象ストレージシステムに指定され、前記対象物理ボリュームには該第二のストレージシステムのボリュームがなるステップと、
前記第一のストレージシステムに書き込まれたデータを、該第一のストレージシステムのバックアップとなる第三のストレージシステムに複製することを開始する第二の動作を送信するステップと、
前記第二のストレージシステムに書き込まれたデータを、該第二のストレージシステムのバックアップとなる第四のストレージシステムに複製することを開始する第三の動作を送信するステップと、
を備えることを特徴とするデータアクセス方法。
【請求項２１】
前記ステップは前記ホストコンピュータで実行され、該ホストコンピュータは各前記ストレージシステムに関連する通信インターフェースを有し、前記送信するステップは前記対象ストレージシステムに関連する該通信インターフェース経由で送信するステップから成ることを特徴とする請求項２０に記載のデータアクセス方法。
【請求項２２】
入出力要求を処理するために、対象物理ボリュームに向けられる対応入出力動作を生成するように動作可能な仮想ボリュームモジュールと、
通信ネットワークに接続される第一の通信インターフェースと、
通信ネットワークに接続される第二の通信インターフェースと、
から成り、仮想ストレージボリュームに向けて該入出力要求を発行する一式以上のアプリケーションを実行するように構成される、少なくとも一台のホストコンピュータシステムと、
前記第一の通信インターフェース経由で前記ホストコンピュータシステムとデータ通信する第一のストレージシステムと、
前記第二の通信インターフェース経由で前記ホストコンピュータシステムとデータ通信する第二のストレージシステムと、
前記第一のストレージシステムとデータ通信する第三のストレージシステムと、
前記第二のストレージシステムとデータ通信する第四のストレージシステムと、
で成り、
前記第一のストレージシステムは、該第一のストレージシステムに書き込まれたデータは前記第二のストレージシステムに複製され、
前記仮想ボリュームモジュールは更に、前記第一のストレージシステムを対象ストレージシステムに指定し、前記対象物理ボリュームには該第一のストレージシステムのボリュームがなり、
前記第一のストレージシステムで障害が検出されたら、前記第二のストレージシステムが前記対象ストレージシステムに指定され、前記対象物理ボリュームには該第二のストレージシステムのボリュームがなる、モードで動作し、
前記第一のストレージシステムは更に、該第一のストレージシステムに書き込まれたデータは該第一のストレージシステムのバックアップとなる、前記第三のストレージシステムに複製される、モードで動作し、
前記第二のストレージシステムは更に、該第二のストレージシステムに書き込まれたデータは該第二のストレージシステムのバックアップとなる、前記第四のストレージシステムに複製される、モードで動作する、
ことを特徴とするデータストレージシステム。
【請求項２３】
各々が通信ネットワークに接続され、各々が第一と第二のストレージシステムと通信する第一と第二の通信インターフェースを有する、第一と第二のホストシステムに於いて、
前記第一と第二のホストシステムの各々で、仮想ボリュームに向けられる入出力要求を発行する一式以上のアプリケーションを実行するステップと、
前記第一と第二のホストシステムの各々で、クラスタリングソフトウエアが他のホストシステムの動作状態を監視し、何れかのホストシステムが障害になったら、他のホストシステムが該障害になったホストシステムのユーザの処理を実行するステップと、
前記第一と第二のホストシステムの各々で、前記入出力要求を処理するために、対象物理ボリュームに向けられる対応入出力動作を生成するステップと、
前記第一と第二のホストシステムの各々で、前記第一のストレージシステムを対象ストレージシステムに指定し、前記対象物理ボリュームには該第一のストレージシステムのボリュームがなるステップと、
前記第一と第二のホストシステムの各々で、前記第一のストレージシステムに障害が検出されたら、前記第二のストレージシステムを前記対象ストレージシステムに指定し、以降の前記対象物理ボリュームには該第二のストレージシステムのボリュームがなるステップと、
を備える、ことを特徴とする第一と第二のホストシステムがストレージにアクセスする方法。
【請求項２４】
第一のホストシステムは第一と第二のストレージシステムとそれぞれ通信する第一と第二の通信インターフェースを有し、第二のホストシステムは第三と第四のストレージシステムとそれぞれ通信する第一と第二の通信インターフェースを有し、各ホストシステムの該第一と第二の通信インターフェースはそれぞれ通信ネットワークに接続されている、第一と第二のホストシステムに於いて、
前記第一のストレージシステムに書き込まれたデータを前記第二のストレージシステムにコピーする第一のデータ複製動作を実行するステップと、
前記第一のストレージシステムに書き込まれたデータを前記第四のストレージシステムにコピーする第二のデータ複製動作を実行するステップと、
前記第二のストレージシステムに書き込まれたデータを前記第三のストレージシステムにコピーする第三のデータ複製動作を実行するステップと、
前記第三のストレージシステムに書き込まれたデータを前記第四のストレージシステムにコピーする第四のデータ複製動作を実行するステップと、
前記第一のホストシステムが稼動状態で前記第二のホストシステムが待機状態での、該第一と第二の各ホストシステムに於いて、クラスタリングソフトウエアが他のホストシステムの稼動状態を監視するステップと、
を実行し、
前記第一のホストシステムでは、
仮想ボリュームに向けられる入出力要求を発行する一式以上のアプリケーションを実行するステップと、
前記入出力要求を処理するために、対象物理ボリュームに向けられる対応入出力動作を生成するステップと、
前記第一のストレージシステムを対象ストレージシステムに指定し、前記対象物理ボリュームには該第一のストレージシステムのボリュームがなるステップと、
前記第一のストレージシステムに障害が検出されたら、前記第二のストレージシステムを前記対象ストレージシステムに指定し、以降の前記対象物理ボリュームには該第二のストレージシステムのボリュームがなるステップと、
を実行し、
前記第二のホストシステムでは、前記第一のホストシステムの障害を検出したら、これを契機に、フェイルオーバ動作を実行し、この結果該第二のホストシステムが稼動状態になり、
仮想ボリュームに向けられる入出力要求を発行する一式以上のアプリケーションを実行するステップと、
前記入出力要求を処理するために、対象物理ボリュームに向けられる対応入出力動作を生成するステップと、
前記第三のストレージシステムを対象ストレージシステムに指定し、前記対象物理ボリュームには該第三のストレージシステムのボリュームがなるステップと、
前記第三のストレージシステムに障害が検出されたら、前記第四のストレージシステムを前記対象ストレージシステムに指定し、前記対象物理ボリュームには該第四のストレージシステムのボリュームがなるステップと、
を実行する、
ことを特徴とする第一と第二のホストシステムがストレージにアクセスする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータストレージシステムに関連し、詳しくは、フェイルオーバ処理とデータ移行に関連する。
【背景技術】
【０００２】
現在のビジネスでの多様なストレージ要求に応えるべく、多数のストレージシステム構成が存在する。
【０００３】
図７に示す慣用的マルチパスシステムでは、ストレージシステムへのアクセス性能を向上させるためにマルチパスソフトウエアを使用する。ホスト０７０１がユーザアプリケーション０７０１０１をサポートするために、ハードウエアと背後のシステムソフトウエアを提供する。データ通信パス０７０３０１、０７０３０３は、ストレージシステムＡ０７０５への入出力パスを形成する。マルチパスソフトウエア０７０１０５が、ストレージシステムＡへのアクセス性能を向上させるために配備されている。このソフトウエアは、ホストとストレージシステムＡ間の入出力パス０７０３０１、０７０３０３の障害に対するフェイルオーバ処理を含めた典型的な機能を提供する。
【０００４】
マルチパス構成に於いては、ホストは、二式以上のファイバチャネル(ＦＣ)ホストバスアダプタ０７０１０７を有する。ストレージシステムＡは、同様に、各々ボリュームに関連する、複数のＦＣ(ファイバチャネル)インターフェース０７０５０１を装備する。図７に示す例では、単一のボリュームＸ０７０５０５が示されている。ディスクコントローラＡ ０７０５０３は、ＦＣインターフェースを経由して、ホストから受信した入出力要求を処理する。既に述べたように、ホストは、ストレージシステムＡのボリュームへの物理的に独立した複数のパス０７０３０１、０７０３０３を有する。ファイバチャネルスイッチは、図示されてはいないが、ホストとストレージシステムを接続するのに使用することができる。その他、例えば、イーサネットやインフィニバンド等の相応しい通信ネットワークが使用できることを理解願いたい。
【０００５】
代表的な動作としては、ユーザアプリケーション０７０１０１とシステムソフトウエア(ＯＳファイルシステム、ボリュームマネージャ等)は、ストレージシステムＡ ０７０５のボリュームＸ ０７０５０５に対して、ＳＣＳＩ(Small Computer System Interface)０７０１０３を経由して、入出力要求を発行する。マルチパスソフトウエア０７０１０５は、この要求に介入して、要求の送付に使用するパス０７０３０１、０７０３０３を決定する。要求は、この選択されたパスを通して、ディスクコントローラＡ ０７０５０３に送信される。
【０００６】
パス選択は、例えば、全てのパスが使用可能か否か等の各種の基準に従ってなされる。複数のパスが使用可能なら、最も負荷の軽いパスを選択することが出来る。幾つかのパスが使用不能なら、マルチパスソフトウエアは一組の使用可能なパスを選択する。パスは、ホストバスアダプタＨＢＡとストレージシステムのＦＣインターフェース間を接続する物理ケーブルの不良や、ＨＢＡやＦＣインターフェース等の不良で使用不能になる。ストレージシステムＡのボリュームにアクセスする複数の物理的に独立なパスをホストに装備することにより、マルチパスソフトウエアがストレージシステムへの入出力パスに基づく可用性を向上させる。
【０００７】
代表的な商用システムとしては、日立データシステムによるHitachi Dynamic Link ManagerTMやベリタスソフトウエア社のVERITAS Volume ManagerTM及びＥＭＣ社のEMC PowerPath等が存在する。
【０００８】
図８はデータ移行のためのストレージシステム構成を示す。ホスト機１３０１でのユーザが、ストレージシステムＡ １３０５の、例えば、ボリュームＸ−Ｐ １３０５０５にアクセスしデータを保存したところだとする。ユーザは、今度は、ストレージシステムＢ １３０７のボリュームＸ−Ｓ １３０７０５を使用したいとする。ホスト機は従ってボリュームＸ−Ｓへアクセスすることが必要である。
【０００９】
ホスト機をストレージシステムＢにスイッチするためには、ボリュームＸ−Ｐのデータを(ボリュームＸ−ＳはボリュームＸ−Ｐのデータのコピーは有していないとする)ボリュームＸ−Ｓに移行することが必要である。更に加えて、ホスト機からストレージシステムＢへの通信チャネルが必要である。例えば、ホスト機をストレージシステムＡに接続する物理ケーブル１３０３０１はストレージシステムＢに移す必要がある。接続替えされたケーブルは点線１３０３０３で示される。
【００１０】
ストレージシステムＡからストレージシステムＢへのデータ移行は、下記のステップで実行される。この場合、ストレージシステムＡの全データの幾つかの部分がストレージシステムＢに移行され得ることに注意願いたい。移行するデータ量は、個別の事情に依存する。第一に、ユーザは、ストレージシステムＡとの全ての入出力動作を停止しなければならない。このことは、ユーザアプリケーション１３０１０１を停止するかストレージシステムＡへの入出力動作を停止するためにユーザアプリケーションに信号を発行しなければならない。ホスト機次第では、ホスト機自身をシャットダウンしなければならないかもしれない。次に、物理ケーブル１３０３０１がホスト機をストレージシステムＢに接続するように接続替えしなければならない。例えば、ファイバチャネル(ＦＣ)構成の場合には、物理ケーブルは、ストレージシステムＡのＦＣインターフェース１３０５０１から離して、ストレージシステムＢのＦＣインターフェース１３０７０１に接続しなければならない。次いで、ホスト機は、ストレージシステムＡのボリュームＸ−Ｐに代わって、ストレージシステムＢのボリュームＸ−Ｓを使用すべく、再構成しなければならない。
【００１１】
ストレージシステムの側では、ボリュームＸ−Ｐのデータは、ボリュームＸ−Ｓに移行しなければならない。これを実行するために、ストレージシステムＢのディスクコントローラＢ １３０７０３は、ボリュームＸ−ＰのデータをボリュームＸ−Ｓにコピーすべくコピー動作を開始する。このデータ移行はＦＣネットワーク１３０３０５を通して実行される。一度、このデ−タ移行が開始されると、この移行処理は、バックグラウンドプロセスとして実行されるため、ユーザアプリケーションは、今度は、ストレージシステムＢとの間で入出力動作を再開する。ホスト機によっては、ホスト機の再起動が必要になるかもしれない。
【００１２】
ホスト機が、ボリュームＸ−Ｓ上のデータで移行処理が終了していないブロックに読み取りアクセスをしてきたら、ディスクコントローラＢは、ストレージシステムＡの要求データブロックのデータにアクセスする。通常は、データ移行は、ブロック単位で順番に実行される。しかしながら、読み取り動作は、データブロックの移行順序とは無関係の順序で実行される。ディスクコントローラＢは、データ移行又は書き込み動作で更新済ブロックを追跡するために、ビットマップ又は他の相応しいメカニズムを使用する。このビットマップは、新規にホストより書き込んだデータをストレージシステムＡからのデータ移行で上書きしてしまうのを防止するのにも使用される。
【００１３】
代表的な商用システムとしては、日立データシステムによるHitachi On-Line Data MigrationやＩＢＭ社によるPeer-to-Peer Remote Copy(PPRC) Dynamic Address Switching(DAS)が存在する。
【００１４】
図９は慣用的なサーバクラスタリングシステムを示す。クラスタリングは、システム可用性を向上させるための技術である。かくして、ホストシステム０９０１と０９０９は、ホスト間のフェイルオーバ機能を可能にするために、クラスタリングソフトウエア０９０１０３と０９０９０３を装備する。
【００１５】
サーバクラスタリングシステムに於いては、二式以上の物理的に独立なホストシステムと二式以上の物理的に独立なストレージシステムが存在する。例えば、図９では、ホスト１はＦＣネットワーク０９０３０１を通して、ストレージシステムＡ０９０５に接続される。同様に、ホスト２はＦＣネットワーク０９０３０９を通して、ストレージシステムＢ０９０７に接続される。ストレージシステムＡとＢは、更に他のＦＣネットワーク０９０３０５を通して、互いにデータ通信可能である。図示されてはいないが、ネットワークは広域ネットワーク(ＷＡＮ)を通過する、即ち、ホスト２とストレージシステムＢは、ホスト１とストレージシステムＡとは、遠く離れたデータセンタに設置され得ることに注意願いたい。
【００１６】
正常時の動作では、ホスト１はストレージシステムＡのボリュームＸ−Ｐに読み書きを行う。ディスクコントローラＡ ０９０５０３は、ホスト１がボリュームＸ−Ｐに書き込んだデータをストレージシステムＢのボリュームＸ−Ｓに複製する。この複製は、ＦＣネットワーク０９０３０５を通してなされる。この複製動作は、同期型で行うことができ、そのケースでは、書き込み要求によるデータがストレージシステムＢに複製されて初めてストレージシステムＡは、ホスト１に完了報告を送信する。代わって、この複製動作は、非同期型でも行うことができ、そのケースでは、書き込み要求によるデータがストレージシステムＢに複製された時期に無関係に、ストレージシステムＡはホスト１に完了報告を送信する。
【００１７】
ホスト１又はストレージシステムＡに障害が発生すると、フェイルオーバ処理が実行され、ホスト２がホスト１のタスクを引き継ぐ。ホスト２は、ホスト１が定期的に送信する“ハートビート信号”を使用して、ホスト１での障害を検出する。ホスト２が定められた時間内にハートビート信号を受信できなかったら、ホスト１は、障害になったと判定される。ストレージシステムＡで障害が発生したら、ホスト１はストレージシステムからの障害報告や応答の時間遅れ等でこの障害を検出できる。ホスト１のクラスタリングソフトウエア０９０１０３は、ホスト２にこの障害の発生を通知する。
【００１８】
ホスト２が障害を検出したら、(リモートコピー技術が使用されている場合には)ボリュームＸ−ＰとボリュームＸ−Ｓ間のペア分離操作を実行する。ペア分離操作が完了したら、ホスト２はボリュームＸ−Ｓをマウントして、アプリケーション０９０９０１を開始して、ホスト２での動作を再開する。ペア分離操作は、ボリュームＸ−ＰとボリュームＸ−Ｓ間の複製処理を中断なしに完了させ、このペア分離操作中は、ホスト１は、ボリュームＸ−Ｐのデータを更新できない。これによって、ホスト２がホスト１にとって代わったときに、ボリュームＸ−Ｓは、ボリュームＸ−Ｐの完全な複製であることが保証される。この方式は、アクティブ・スリープ形フェイルオーバと言われる。ホスト２は、ホスト１又はストレージシステムＡで障害が検出される迄は、休眠又は待機状態で、ユーザのアプリケーションからは非活性状態に見える。
【００１９】
代表的な商用システムとしては、ベリタスソフトウエア社のVERITAS Volume ManagerTMやオラクル社のOracle Real Application Clusters(RAC)10gが存在する。
【００２０】
図１０は慣用的なリモートデータ複製構成（リモートコピー）を示す。この構成は、図１０のホスト１１０１がクラスタ化されていないことを除いて、図９の構成に類似している。アプリケーション１１０１０１によりボリュームＸ−Ｐに書き込まれたデータは、ストレージシステムＡのディスクコントローラＡ １１０５０３により、複製される。データは、ストレージシステムＢ １１０７のボリュームＸ−ＳにＦＣネットワーク１１０３０５を通して複製される。図示されてはいないが、ストレージシステムＢはＷＡＮを通してアクセスされるリモートシステムであってもよい。
【００２１】
代表的な商用システムとしては、日立データシステムのリモートコピーソフトであるHitachi TrueCopyTM及びベリタスソフトウエア社のVERITAS Storage ReplicatorやVERITAS Volume Replicatorが存在する。
【発明の開示】
【課題を解決するための手段】
【００２２】
本発明のデータアクセス法とシステムは、仮想ボリュームモジュールを有するホストシステムで成り立つ。仮想ボリュームモジュールは、ホストシステムで走行しているアプリケーションが発行する入出力要求で発生する入出力動作を受信する。この入出力動作は、仮想ボリュームに向けられる。この仮想ボリュームモジュールは、対象ストレージシステムの対象物理ボリュームに向けられる、“対応入出力動作”を生成する。対象ストレージシステムは二式以上のストレージシステムの中から決定される。対象ストレージシステムに書き込まれたデータは、他のストレージシステムに複製される。対象ストレージシステムとして指定されたストレージシステムで障害が発生したら、仮想ボリュームモジュールは、他のストレージシステムを、継続する対応入出力動作のための対象ストレージシステムとして指定する。
【発明を実施するための最良の形態】
【００２３】
本発明の態様、利点や新規な特徴は以下の添付図面と共になされる本発明の説明によって明確になる。
【実施例１】
【００２４】
図１は本発明の第一の態様を説明する実施例を示す。本実施例では、二式(三式以上に拡張することは可能であるが)のストレージシステム間でのパスフェイルオーバを説明する。ここで記述する実施例は、フェイルオーバ回復を可能にするために、リモートコピー技術を使用する複数のストレージシステムである。
【００２５】
一般的に、仮想ボリュームモジュールがホストシステムに装備される。このホストシステムは、第一のストレージシステムとデータ通信する。第一のストレージシステムに書き込まれたデータは、第二のストレージシステムに二重化又は複製される。仮想ボリュームモジュールは、第一と第二のストレージシステムと通信し、ホストシステムで走行又は実行中のアプリケーションに対して仮想ストレージアクセスを可能にする。仮想ボリュームモジュールは、第一と第二のストレージシステムの何れか又は双方で発生しえる障害を検出し、以降のデータ入出力要求を、生存ストレージシステムが存在する限り、この生存ストレージシステムに向ける。以降は、本発明のこの態様の実施例の説明である。
【００２６】
本実施例に従うシステムは、適切な通信ネットワークリンクを通して、ストレージシステム０１０５、０１０７と通信するホスト０１０１を含む。図１に示す実施例では、ファイバチャネル(ＦＣ)ネットワーク０１０３０１は、ホストをストレージシステムＡに接続する。ＦＣネットワーク０１０３０３は、ホストをストレージシステムＢに接続する。ストレージシステムＡとＢは、ＦＣネットワーク０１０３０５でリンクされる。勿論、他のタイプのネットワーク、例えば、インフィニバンドやイーサネット等をファイバチャネルに代わって使用できることに注意願いたい。更に又、ファイバチャネルスイッチ０１０９が、ストレージシステム間でＳＡＮ(Storage Area Network)を形成するために使用できることにも注意願いたい。他のストレージアーキテクチュアも使用できることも理解願いたい。更に図１(及び後続する実施例)に示すＦＣネットワークは、各々個別のネットワークでもよく、同じネットワークの一部又は複数の異なったネットワークで構成しても良いことも理解願いたい。
【００２７】
図示してはいないが、ホストは、データ処理ユニット(例：ＣＰＵ)やメモリ(例：ＲＡＭやブート用ＲＯＭ等)、ローカルハードディスク等を含む、ホストコンピュータシステムに普通に見られる標準的ハードウエアコンポーネントで成り立つことを理解願いたい。ホストは更に、ストレージシステムＡ、Ｂに接続するために一式以上のホストバスアダプタ(ＦＣ ＨＢＡ)０１０１０７を有する。図１の実施例では、各々がストレージシステムＡ、Ｂの一方に接続される二式のＦＣ ＨＢＡを示す。ホストは、更に、仮想ボリュームモジュール０１０１０５、ＳＣＳＩ(Small Computer System Interface)インターフェース０１０１０３及び一式以上のアプリケーション０１０１０１を有する。アプリケーションには、ＯＳ(Operating System)の最上位で走行するユーザ・レベルのソフトウエア又はＯＳの要素としてのシステム・レベルのソフトウエアがある。アプリケーションはストレージシステムへの入出力要求を発行することにより、ストレージシステムＡ、Ｂに書き込み、読み取りのアクセスを行う。ＯＳの代表例としては、ＵＮＩＸ、Ｌｉｎｕｘ、Ｗｉｎｄｏｗｓ２０００/ＸＰ/２００３、ＭＶＳ等がある。ユーザ・レベルのアプリケーションとしては、代表的にはデータベースシステムがあるが、ストレージシステムのデータにアクセスする任意のソフトウエアであってよい。代表的なシステム・レベルのソフトウエアとしては、ファイルシステムやボリュームマネージャがある。典型的には、ストレージへの書き込み又はストレージからの読み取りに関らず、アクセス要求にはデータが伴っている。
【００２８】
ＳＣＳＩインターフェースは、ストレージシステムＡ、Ｂに存在するボリュームにアクセスするための代表的なインターフェースである。仮想ボリュームモジュール０１０１０５は、ホストアプリケーションに“仮想ボリューム”を提示する。仮想ボリュームモジュールはＳＣＳＩインターフェースに介入して、仮想ボリュームをストレージシステムＡ、Ｂの物理ボリュームにマップする。
【００２９】
システム・レベルアプリケーションに対して、ＯＳは一台以上の仮想ボリュームで稼動する。ＯＳがボリュームにアクセスする時には、仮想ボリュームモジュールを使用して、一組み以上のＳＣＳＩコマンドを仮想ボリュームに向ける。仮想ボリュームモジュールは、対象のストレージシステムＡ、Ｂの物理ボリューム(例：ボリュームＸ−Ｐ、Ｘ−Ｓ)の一つに向けられるコマンドや動作を生成する。対応するコマンドや動作は、このコマンドのパラメータが仮想ボリュームに対する参照（例：オープン)を含むなら、元のＳＣＳＩコマンド又は動作の修正でよい。この修正は、仮想ボリュームへの参照を対象物理ボリュームへの参照に置き換えることでよい。後続するコマンドは、適切な通信インターフェース(図１の０１０１０７)上での通信を含めて、適切な物理ボリュームに向けるだけでよい。
【００３０】
ユーザ・レベルのアプリケーションでは、アプリケーションはファイルシステムコールを発行し、この内容はＯＳによって対象仮想ボリュームにアクセスするための一連のＳＣＳＩアクセスに変換される。仮想ボリュームモジュールは、対応するＳＣＳＩアクセスを対象物理ボリュームの一つへのアクセスに変換する。ＯＳがサポートすれば、ユーザ・レベルアプリケーションは仮想ボリュームにアクセスするのに、直接ＳＣＳＩインターフェースをコールしても良い。この場合も仮想ボリュームモジュールは、このコールを修正して物理ボリュームにアクセスする。本態様の更なる詳細を以下で説明する。
【００３１】
各ストレージシステムＡ、Ｂは、一式以上のＦＣインターフェース０１０５０１、０１０７０１、一式以上のディスクコントローラＡ、Ｂ（０１０５０３、０１０７０３）、１式以上のキャッシュメモリＡ、Ｂ（０１０５０７、０１０７０７）及び一台以上のボリュームＸ−Ｐ、Ｘ−Ｓ（０１０５０５、０１０７０５）を装備する。ＦＣインターフェースは物理的にホスト又は別のストレージシステムに接続され、接続デバイスから入出力やその他の動作を受け取る。受信された動作はディスクコントローラに転送され、入出力要求を処理するためにストレージデバイスと交流する。キャッシュメモリは、読み書きアクセス性能を向上させるための周知の技術である。
【００３２】
ストレージシステムＡは、データ保存のためにボリュームＸ−Ｐ ０１０５０５で指定されるボリュームを提供する。ストレージシステムＢは、同様に、データ保存のために、ボリュームＸ−Ｓ ０１０７０５で指定されるボリュームを提供する。ボリュームは、一台以上の物理ディスクドライブユニットで構成される、保存のための論理ユニットである。ボリュームを構成する物理ディスクドライブユニットは、ストレージシステムの一部又はストレージシステムから分離した外部ストレージであっても良い。
【００３３】
仮想ボリュームモジュールの動作をここでより詳しく説明する。第一に仮想ボリュームモジュールは、検出動作を実行する。図１に示す例では、ボリュームＸ−Ｐ及びボリュームＸ−Ｓが検出される。ホスト０１０１に保存されている構成ファイルは、ボリュームＸ−Ｓは、ボリュームＸ−Ｐに実行される動作の複製対象であることを、仮想ボリュームモジュールに示す。下記の表１は、構成ファイルの内容の一例を説明する。
【００３４】
【表１】
2006048676.tif 000003
【００３５】
構成ファイルを使用する代わりに、コマンドラインターフェースによって、ユーザ(例：システム管理者)が対話的に仮想ボリュームモジュールを構成してもよい。例えば、ホストがＵＮＩＸ ＯＳ上で走行している場合には、仮想ボリュームモジュールに構成テーブル(表１)に含まれる情報を通知するのに、内部通信(Interprocess Communication:IPC)又はその他の類似のメカニズムを使用することが出来る。
【００３６】
リモートコピーでのデータ複製のための、プライマリ及びセカンダリボリューム(合わせて“リモートコピーペア”と呼ばれる)として構成された各ボリュームペアに対して、一つのエントリが存在する。例えば、ボリュームＸ−Ｐは、プライマリボリュームと呼ばれ、ホストが行う入出力動作のためのボリュームであることを意味する。ボリュームＸ−Ｐを有するストレージシステムＡは、プライマリシステムと呼ばれる。ボリュームＸ−Ｓは、セカンダリボリュームと呼ばれ、ボリュームＸ−Ｓを有するストレージシステムＢは、セカンダリシステムと呼ばれる。慣用的な複製動作では、プライマリボリュームに書き込まれたデータは、セカンダリボリュームに複製される。本発明に従えば、セカンダリボリュームは、計画的(例：定期保守のため)又は非計画的(例：障害による)であろうと、プライマリボリュームがオフラインになった時のフェイルオーバボリュームとして使用される。表１に示す構成ファイルの例では、二式の複製ペア、又はフェイルオーバの観点からは、二式のフェイルオーバパスが示されている。
【００３７】
構成ファイルの中にボリュームの新規ペアを生成するには、仮想ボリュームモジュールは、プライマリストレージシステムにペア生成要求を発行する。プライマリストレージシステムのディスクコントローラが要求されたペアを生成したら、ペア状態を同期中にセットして、仮想ボリュームモジュールに完了応答を送信する。ペア生成後にプライマリストレージシステムのディスクコントローラは、プライマリボリュームのデータをセカンダリストレージシステムのセカンダリボリュームにコピーする動作を開始する。この動作は、初期コピーと呼ばれる。初期コピーは、ディスクコントローラによる入出力処理とは独立に走行する非同期処理である。ディスクコントローラは、ビットマップテーブルを利用して、プライマリボリュームのブロック中でセカンダリボリュームにコピー済のブロックを識別する。プライマリボリュームとセカンダリボリュームの内容が同一になったら、ディスクコントローラはペア状態を同期済に変更する。同期中及び同期済の両状態に於いて、ディスクコントローラがプライマリボリュームへの書き込み要求を受信したら、このディスクコントローラは、セカンダリボリュームのディスクコントローラに書き込み要求を転送して、この応答を待ってから、プライマリストレージのコントローラは、ホストに応答を返す。この方式は、同期型リモートデータ複製と呼ばれる。
【００３８】
仮想ボリュームモジュールとストレージシステムＡ、Ｂは、リモートコピー技術を使用しているが、本発明の実施例は、任意の適切なデータ複製又はデータバックアップ技術又は方法によって実装できることに注意願いたい。仮想ボリュームモジュールは、ストレージシステムが提供するデータ複製又はデータバックアップ技術を使用するように即座に構成可能である。一般的に、プライマリボリュームは、ホスト上で走行するユーザ・レベル及びシステム・レベルのアプリケーションでのデータ入出力動作のための生産用ボリュームとしての役割を果たす。セカンダリボリュームは、生産用ボリュームのバックアップボリュームとしての役割を果たす。後に説明するように、本発明の多様な態様に於いて、生産用ボリュームに障害が検出されたら、バックアップボリュームが生産用ボリュームになる。従って、プライマリボリュームやセカンダリボリュームの用語は、特定のデータ複製又はデータバックアップ技術を参照するのではなく、その時に果たしている機能即ち、生産用かバックアップ用かを示すものとして理解願いたい。更に又、仮想ボリュームモジュールが果たすある種の動作は、ストレージシステムのリモートコピー技術により影響されることを理解する必要がある。
【００３９】
引き続いて、図１に関して、仮想ボリュームモジュール０１０１０５は、ホスト０１０１上で走行しているアプリケーション０１０１０１にＳＣＳＩインターフェース０１０１０３を通した仮想ボリュームへのアクセスを提供する。ＯＳやある種のユーザ・レベルのアプリケーションは、仮想ボリュームモジュールが提示する仮想ボリュームを“見る”。例えば、表１は、ＶＶｏｌＸと表示される仮想ボリュームを示す。アプリケーションは、仮想ボリュームにアクセスするのに、ＳＣＳＩインターフェースを通して、慣用的ＳＣＳＩコマンド(読み書きコマンドを含むがこれに限定されない)を(例：ＯＳを通して)送信する。仮想ボリュームモジュールは、ＳＣＳＩコマンドに介入し、ストレージシステムＡのボリュームＸ−Ｐに、又はストレージシステムＢのボリュームＸ−Ｓにアクセス可能にすべく、このコマンドを対応入出力動作に変換する。
【００４０】
本発明の第一の実施例では、ボリュームＸ−ＰとボリュームＸ−Ｓ間の対象ボリュームの選択は、(初期ペアは、ボリュームＸ−ＰがプライマリボリュームでボリュームＸ−Ｓがセカンダリボリュームとして)下記の条件に従う。
【００４１】
ａ）ボリュームＸ−Ｐがプライマリボリュームで使用可能なら、仮想ボリュームモジュールは、入出力要求をＦＣネットワーク０１０３０１経由でボリュームＸ−Ｐを使用して処理する。
【００４２】
ｂ）ボリュームＸ−Ｐがプライマリボリュームで使用不能で、ボリュームＸ−Ｓが使用可能でそのペア状態が同期済なら、仮想ボリュームモジュールは、入出力要求をＦＣネットワーク０１０３０３経由でボリュームＸ−Ｓを使用して処理する。更に仮想ボリュームモジュールが如何にこの処理を実行するかの詳細は、後に取り上げる。
【００４３】
ｃ）ボリュームＸ−Ｓがプライマリボリュームで使用可能なら、仮想ボリュームモジュールは、入出力要求をＦＣネットワーク０１０３０３経由でボリュームＸ−Ｓを使用して処理する。この状態は、セカンダリボリューム(例：ボリュームＸ−Ｓ)のデータがプライマリボリューム(例：ボリュームＸ−Ｐ)にコピー中又はコピー済の場合即ち、リモートコピーペアが逆同期中か逆同期済の場合に発生する。この場合、プライマリとセカンダリボリュームの役割は、逆転している。更に仮想ボリュームモジュールが如何にこの処理を実行するかの詳細は、後に取り上げる。
【００４４】
ｄ）ボリュームＸ−Ｓがプライマリボリュームで使用不能で更にボリュームＸ−Ｐが使用可能でそのペア状態が逆同期済なら、仮想ボリュームモジュールは、入出力要求をＦＣネットワーク０１０３０１経由でボリュームＸ−Ｐを使用して処理する。更に仮想ボリュームモジュールが如何にこの処理を実行するかの詳細は、後に取り上げる。
【００４５】
ｅ）双方のボリュームが使用不能なら、仮想ボリュームモジュールは、要求アプリケーションに、要求された入出力要求は、プライマリ及びセカンダリボリュームの双方の障害で、完了できない旨連絡する。更に仮想ボリュームモジュールが如何にこの処理を実行するかの詳細は、後に取り上げる。
【００４６】
ｆ）ボリュームＸ−Ｐがプライマリボリュームで使用不能で、そのペア状態が同期中又はボリュームＸ−Ｓがプライマリボリュームで使用不能でそのペア状態が逆同期中なら、仮想ボリュームモジュールは、要求アプリケーションに、障害により入出力要求は完了できない旨報告する。同期中又は逆同期中の状態は、ボリュームＸ−ＰとボリュームＸ−Ｓが同一でないことを示す。セカンダリボリュームは最新ではないので、仮想ボリュームモジュールはセカンダリボリュームを用いて入出力要求を処理することが出来ない。例えば、アプリケーションがプライマリボリュームに既に書き込まれたデータを読みたいと思っても、このデータはセカンダリボリュームにコピーされていないかもしれず、又プライマリボリュームも使用不能なのである。仮想ボリュームモジュールは要求されたデータをセカンダリボリュームに見つけることが出来ないのである。
【００４７】
仮想ボリュームモジュールは、ボリュームに相応しい入出力要求(又は何か他のＳＣＳＩコマンド)を発行して、ボリューム(ボリュームＸ−Ｐ、ボリュームＸ−Ｓ)の可用性を判断できる。ボリュームの可用性は、応答に基づいて判定できる。例えば、ボリュームに発行された要求に対する応答が決められた時間内に受信できなかったら、このボリュームは使用不能と判定できる。勿論、具体的実装で使用されているストレージシステムによっては、この情報を得る直接のコマンドが用意されていることもある。
【００４８】
図２は、仮想ボリュームモジュールにより管理され使用される情報のテーブル形式を示す。この情報は、ボリュームの可用性やペア状態を示す。名前フィールドは、表１の構成テーブルに示される、例えば“ペア１”や“ペア２”等のリモートコピーペアの名前を示す。ボリュームフィールドは、指定ペアを構成し表１の構成テーブルに示される、ボリューム名を示す。ストレージフィールドは、当該ボリュームが乗っているストレージシステムの名前、例えば、ストレージシステムＡ、ストレージシステムＢを示す。役割フィールドは、各リモートコピーペアに対して、プライマリボリュームとして稼動しているボリューム及び対応するセカンダリボリュームとして稼動しているボリュームを示す。ＨＢＡフィールドは、これによりボリュームがアクセスされるＨＢＡを指定する。可用性フィールドは、ボリュームが使用可能か否かを示す。ペアフィールドは、当該ペアの状態、例えば、同期中、同期済、分離中、逆同期中、逆同期済、及び非接続を示す。
【００４９】
図２Ｃを参照して、リモートコピーペアの異なったペア状態の説明を簡単に行う。二台のストレージボリュームを考える。初期状態では、リモートコピーとしては無関係で、これらは非ペア状態として存在する。リモートコピーペアを生成するために一台のボリュームが他のボリュームとコマンドを交換(代表的にはディスクコントローラにより実行される)することにより、両ボリュームは同期中ペア状態に移行する。このことは、この二台のボリュームがリモートコピーペアになる過程にあることを示す。このことは、データを一台のボリューム(プライマリボリューム)から他のボリューム(セカンダリボリューム)にコピー(ミラー化)することより成る。コピー又はミラー化動作が完了すると、この二台のボリュームは全く等しいデータを有し、今や同期済状態となる。典型的には、同期済状態では、書き込み要求はプライマリボリュームのみで処理され、プライマリボリュームに書き込まれたデータは、セカンダリボリュームにミラー化される(リモートコピー動作)。同期済状態では、読み取り要求は、セカンダリボリュームで処理されることもある。
【００５０】
ある時点に於いて、ペアボリュームは、分離することが出来、この状態でも当該ボリュームはペア中であると看做される。分離状態では、プライマリボリュームが書き込み要求を受信し処理する場合には、リモートコピー動作は実行されない。加えて、書き込み要求は、セカンダリボリュームでも処理可能である。ある時点でリモートコピー動作は、再開始することが出来る。もし、分離状態の間、セカンダリボリュームが書き込み要求を全く処理しなかったら、プライマリボリュームで実行された書き込み要求を、セカンダリボリュームにミラーすることだけで足り、この結果、ボリュームは同期中状態を経て同期済状態に遷移する。
【００５１】
分離状態の間は、プライマリボリュームに加えて、セカンダリボリュームも書き込み要求を受けることは出来る。各ボリュームは、同一又は異なったホスト機からの書き込み要求を受けることが出来る。この結果、各ボリュームのデータ状態は、同期済状態から発散することになる。引き続いて、両ボリュームを同期するために再同期処理を実行する時に、プライマリボリュームとセカンダリボリューム各々に書き込まれたデータを吸収するのに、二つの方法がある。第一のケースでは、セカンダリボリュームに書き込まれたデータを破棄する。かくして、分離中にプライマリボリュームに書き込まれたデータは、セカンダリボリュームにコピーされる。加えて、分離中にセカンダリボリュームで更新されたデータは、プライマリボリュームの相当ブロックのデータで置き換えられる。この方法により、セカンダリボリュームのデータ状態は、再度プライマリボリュームに同期化される。かくして、ペア状態は分離状態から同期中状態へ、更に同期済状態に移動する。
【００５２】
第二のケースでは、プライマリボリュームに書き込まれた全てのデータは破棄される。分離中にセカンダリボリュームに書き込まれたデータは、プライマリボリュームにコピーされる。加えて、分離中にプライマリボリュームで更新されたデータは、セカンダリボリュームの相当ブロックのデータで置き換えられなければならない。この方法により、プライマリボリュームのデータ状態は、再度セカンダリボリュームに同期化される。かくして、ペア状態は、プライマリボリュームとセカンダリボリュームの役割逆転により、分離状態から逆同期中状態へ更に逆同期済状態に移動する。
【００５３】
以上述べたことは、ストレージシステムで実行されるリモートコピー動作の一般的説明である。しかしながら、本発明によれば、分離中状態でプライマリボリュームもセカンダリボリュームも書き込み要求を受け付けることは行われない。どちらかのボリュームのみがホスト機からの書き込み要求を受け付け、書き込まれたデータを破棄する必要は生じない。
【００５４】
図２に戻って、仮想ボリュームモジュールは、ボリュームＸ−Ｐが使用不能で、これがプライマリボリュームで(表１の構成テーブルで判定する)、このペア状態が同期済であることを判定したら、この仮想ボリュームモジュールは、リモートコピーペア(即ち、ボリュームＸ−ＰとボリュームＸ−Ｓペア)を分離することをストレージシステムＢに指令する。ストレージシステムＢは、ペア状態を同期済(即ち、ボリュームＸ−Ｐになされた全ての更新はボリュームＸ−Ｓに反映されこれら二つのボリュームは同一となり、ホストがボリュームＸ−Ｓに対して更新することは禁止される)から分離状態(即ち、ボリュームＸ−ＰとボリュームＸ−Ｓは依然としてリモートコピーペア状態であるが、ボリュームＸ−Ｐになされた更新はボリュームＸ−Ｓに反映されることはなく、又ボリュームＸ−Ｓになされた更新もボリュームＸ−Ｐに反映されることもない)に変更する。仮想ボリュームモジュールは、引き続いて、ホストよりなされた入出力要求を処理するのに、ボリュームＸ−ＰではなくストレージシステムＢのボリュームＸ−Ｓを使用する。図２Ａを参照するに、ボリュームＸ−ＰとボリュームＸ−Ｓのペアフィールドと可用性フィールドは図示されたように更新される。かくして、この状態では、ボリュームＸ−Ｐの可用性フィールドは“Ｎｏ”で、ボリュームＸ−Ｓの可用性フィールドは“Ｙｅｓ”で、ボリュームＸ−ＰとＸ−Ｓのペアフィールドは“分離中”である。
【００５５】
図２のテーブルは、仮想ボリュームモジュールが管理する。このこと自身は正しい。ボリュームペアを管理するのに必要な情報は両方のストレージシステムが、ストレージシステムを跨って、ボリュームを複製するのに必要なため、両方のストレージシステムで管理される。両者は同じ情報を維持する。仮想ボリュームモジュールは、ペア状態を更新するのに、どちらかのストレージシステムのみに依頼すればよく、この更新結果はストレージシステム間で通信して他のストレージシステムに反映される。ボリュームＸ−Ｐが使用不能の場合には、仮想ボリュームモジュールは何処に問題があるかは分らない。そこで仮想ボリュームモジュールは、ストレージシステムＢに状態を更新することを依頼し、この変更を他ストレージシステムに反映させることはストレージシステムの責任である。ストレージシステムＡが生存しておれば、変更はストレージシステムＡに反映され、そうでなければ反映されない。
【００５６】
仮想ボリュームモジュールが、ボリュームＸ−Ｐは使用不能でこれがプライマリボリュームで(構成テーブル表１で判定する)更にペア状態は同期中と判断した場合には、仮想ボリュームモジュールは、アプリケーションからの入出力要求は遂行不能で、当該アプリケーションにエラーを送信する。
【００５７】
仮想ボリュームモジュールが、ボリュームＸ−Ｓは使用不能で、ボリュームＸ−Ｓの役割がプライマリボリュームで更にペア状態が逆同期済だと判断したら、仮想ボリュームモジュールは、ストレージシステムＡに指令して、ボリュームＸ−ＰとボリュームＸ−Ｓとのリモートコピー状態を分離させる。ストレージシステムＡはペア状態を逆同期済(即ち、ボリュームＸ−Ｓへの更新はボリュームＸ−Ｐに反映され、二台のボリュームは同一に維持され、ホストからのボリュームＸ−Ｐへのデータ書き込みは禁止される)から分離中に変更する。仮想ボリュームモジュールは引き続いて、アプリケーションからの入出力要求を処理する入出力動作(及びその他のＳＣＳＩコマンド)をボリュームＸ−Ｓではなく、ストレージシステムＡのボリュームＸ−Ｐに向ける。図２Ｂを参照するに、ボリュームＸ−ＰとボリュームＸ−Ｓの可用性フィールドとペアフィールドは図示されるように変更される。かくしてこの状態では、ボリュームＸ−Ｐの可用性フィールドは“Ｙｅｓ”で、ボリュームＸ−Ｓの可用性フィールドは“Ｎｏ”で、ボリュームＸ−ＰとＸ−Ｓのペアフィールドは“分離中”である。
【００５８】
仮想ボリュームモジュールが、ボリュームＸ−Ｓは使用不能で、プライマリボリューム(表１の構成テーブルにより示されるように)で更にペア状態が逆同期中と判定した場合は、仮想ボリュームモジュールはアプリケーションから要求された入出力要求を処理できず、当該アプリケーションにエラーを報告する。
【００５９】
上記したように、ボリュームＸ−Ｐが使用不能になると、仮想ボリュームモジュールはボリュームＸ−Ｓを使用開始する。ボリュームＸ−Ｐが使用可能になると、仮想ボリュームモジュールはストレージシステムＢに逆同期要求を送信する。これを行う目的は、ボリュームＸ−Ｐをプライマリボリュームとして、再構成することである。逆同期要求は、ボリュームＸ−Ｐが使用不能の間(即ち、分離後)に、ボリュームＸ−Ｓに書き込まれたデータのボリュームＸ−Ｐへのコピーを開始する。開始時にはボリュームＸ−Ｐがプライマリで、ボリュームＸ−Ｓはセカンダリであったことを思い出してもらいたい。
【００６０】
逆同期要求を受信すると、ディスクコントローラＢは、ペア状態を逆同期中に変更しホストに適切な応答を返す。ディスクコントローラＢは、分離中にボリュームＸ−Ｓに書き込まれたデータをボリュームＸ−Ｐにコピーする。典型的には、ボリュームのどのブロックがどの順序で更新されたかを決定するのに、書き込み要求のログメカニズムが使用される。典型的には、変更ブロックのボリュームＸ−ＳからボリュームＸ−Ｐへのコピーは、ホストからの新規入出力要求とは非同期に実行され、このコピーの間にディスクコントローラＢはホストからボリュームＸ−Ｓへの入出力要求を受付可能である。コピーが完了すると、両ボリュームは同一になりペア状態は逆同期済状態に変更される。
【００６１】
ペア状態が逆同期中に変更になってから、仮想ボリュームモジュールは図２に示されるテーブルを更新する。仮想ボリュームモジュールは次いで、ボリュームＸ−Ｓの役割をプライマリボリューム(ボリュームＸ−Ｓの役割フィールドを“プライマリ”にセットする)に、ボリュームＸ−Ｐの役割をセカンダリボリューム(ボリュームＸ−Ｐの役割フィールドを“セカンダリ”にセットする)に変更する。ボリュームＸ−Ｐの可用性フィールドは“Ｙｅｓ”に変更される。
【００６２】
ユーザが後にボリュームＸ−Ｐをプライマリボリュームとして使用することを望んだら、仮想ボリュームモジュールは、ストレージシステムＢと連絡して、ペア状態が逆同期済か否かを判定する。まだ逆同期済になっていなければ、仮想ボリュームモジュールはこの状態が達成されるまで待つ。逆同期済状態はボリュームＸ−ＰのデータがボリュームＸ−Ｓのデータと同一になったことを意味する。
【００６３】
仮想ボリュームモジュールはアプリケーションからのこれ以上の入出力要求の処理を停止する。入出力要求は、仮想ボリュームモジュールが管理する待ちキューの中にキューされる。
【００６４】
仮想ボリュームモジュールはペアを分離する。ディスクコントローラＡとＢは、状態を分離中に変更する。
【００６５】
ディスクコントローラＡはホストに分離中になったことを通知する。これに応答して、仮想ボリュームモジュールは図２に示すテーブルで、ボリュームＸ−Ｐの役割をプライマリボリュームに、ボリュームＸ−Ｓの役割をセカンダリボリュームに変更する。
【００６６】
仮想ボリュームモジュールは、待ちキュー内の入出力要求とアプリケーションからの新たな入出力要求の処理を再開する。この時点で入出力要求はホストからボリュームＸ−Ｐに発行される。
【００６７】
仮想ボリュームモジュールはボリュームＸ−ＰとボリュームＸ−Ｓで成るペアを再同期する。ディスクコントローラＡとＢは、ペア状態を同期中に変更する。ボリュームＸ−Ｐに書き込まれたデータは、ボリュームＸ−Ｓにコピーされる。このコピー中にも、ディスクコントローラは、ホストからのボリュームＸ−Ｐへの入出力要求を受け付ける。引き続いてボリュームＸ−Ｐに書き込まれたデータは、同期型でボリュームＸ−Ｓにコピーされる。このコピーが完了すると、両ボリュームは同一のデータを有することになる。ディスクコントローラＡは、ペア状態を同期中から同期済に変更し、ホストにペアは再同期されたことを通知する。
【００６８】
ここで、ディスクコントローラＡ及びＢの動作を述べる。ディスクコントローラＡがホストからデータ書き込み要求を受け取るとする。ボリュームＸ−ＰとボリュームＸ−Ｓから成るペアの状態が同期中又は同期済であれば、ディスクコントローラＡはデータをボリュームＸ−Ｐに書き込む。この書き込み要求を処理中に障害が発生したら、相当するエラーメッセージをホストに返送する。ボリュームＸ−Ｐへの書き込みが成功したら、ディスクコントローラＡは、データをＦＣネットワーク０１０３０５経由で、ストレージシステムＢに送信する。データは、実際にボリュームＸ−Ｐに書き込まれる前に、キャッシュＡ０１０５０７にキャッシュされ得ることに注意願いたい。
【００６９】
ディスクコントローラＡからのデータを受信すると、ストレージシステムＢのディスクコントローラＢは、データをボリュームＸ−Ｓに書き込む。ディスクコントローラＢは、書き込みが成功したことを示す適切な応答をディスクコントローラＡに送り返す。ディスクコントローラＢからの成功表示を受け取ると、ストレージシステムＡのディスクコントローラＡは、データはボリュームＸ−ＰとボリュームＸ−Ｓに書き込まれたことを示す応答をホストに送信する。データは実際にボリュームＸ−Ｓに書き込まれる前に、キャッシュＢ０１０７０７に保存され得ることに注意願いたい。
【００７０】
反対に、ディスクコントローラＢがボリュームＸ−Ｓへの書き込み中にエラーに遭遇したら、ストレージシステムＡに相応しい否定応答を送信する。ディスクコントローラＡはこれに応答して、ホストに、データはボリュームＸ−Ｐには書き込まれたが、ボリュームＸ−Ｓには書き込まれなかったことを示す適切な応答を送信する。
【００７１】
ディスクコントローラＡが書き込み要求を受信し、ボリュームＸ−ＰとボリュームＸ−Ｓの状態は分離中であるとする。ディスクコントローラＡは書き込み動作をボリュームＸ−Ｐに対して実行する。この途中で障害が発生すると、このディスクコントローラは、ホストにデータはボリュームＸ−Ｐに書き込みできなかったことを表示する応答を返送する。反対にボリュームＸ−Ｐに対する書き込みが成功したら、このディスクコントローラは、データは書き込み出来たことを表示する肯定応答をホストに返送する。データは実際にボリュームＸ−Ｐに書き込まれる前に、キャッシュＡに保存され得ることに注意願いたい。ペア状態は分離中であるため、ストレージシステムＢにデータを送信することはない。ディスクコントローラＡは、メモリ又はディスク上の一時的スペースに書き込み要求をログする。このログを使用することにより、ペア状態が同期中に変った時に、ディスクコントローラＡは、ログ内に保存されている書き込み要求を、このコントローラがホストから受信した順序通りに、ディスクコントローラＢに送信する。
【００７２】
ディスクコントローラＢがホストから書き込み要求を受信したとする。ボリュームＸ−ＰとボリュームＸ−Ｓの状態が同期中又は同期済の場合は、ディスクコントローラＢは要求を拒否して、要求が拒否されたことを示す応答をホストに返す。ホストからの書き込み要求を処理することはない。
【００７３】
ボリュームペアの状態が分離中なら、ディスクコントローラＢは、書き込み要求を受付け、データをボリュームＸ−Ｓに書き込む。書き込みの成功、不成功を示す適切な応答がホストに返送される。データは実際にボリュームＸ−Ｓに書き込まれる前に、キャッシュＢに保存され得ることに注意願いたい。
【００７４】
ボリュームペアの状態が逆同期済なら、ディスクコントローラＢは、書き込み要求を受付け、データをボリュームＸ−Ｓに書き込む。書き込み動作が失敗したら、書き込み動作の成否を示す適切な応答がホストに返送される。
【００７５】
ボリュームＸ−Ｓへの書き込みが成功したら、ディスクコントローラＢは、データをＦＣネットワーク０１０３０５経由で、ストレージシステムＡに送信する。ディスクコントローラＡは、受信したデータをボリュームＸ−Ｐに書き込む。ディスクコントローラＡは、ストレージシステムＢに対して、書き込み動作の成否を告げる。ボリュームＸ−Ｐへの書き込みが成功だったら、ディスクコントローラＢは、ホストにデータは、ボリュームＸ−ＰとボリュームＸ−Ｓに成功裏に書き込まれたことを返信する。ボリュームＸ−Ｐへの書き込みが失敗したら、ディスクコントローラＢは、ホストに、データはボリュームＸ−Ｓに書き込まれたがボリュームＸ−Ｐには失敗したことを返信する。
【００７６】
ディスクコントローラＡが、ボリュームペアが逆同期中か逆同期済の状態の時にホストからデータ書き込み要求を受けたとする。ディスクコントローラＡは、ホストに要求は受け入れられない旨の応答を返し、書き込み要求に対してはいかなる処理も実行されない。
【００７７】
ここで、図６を参照して欲しい。この図は入出力の負荷バランスをとるための、図１に示す本発明の変形実施例を示す。ここでは、ストレージシステムＡ ０６０５は、第二のボリュームＹ−Ｓ ０６０５０９を有する。ストレージシステムＢ ０６０７は、第二のボリュームＹ−Ｐ ０６０７０９を有する。二組のパスフェイルオーバ構成が提供され、ボリュームＸ−ＰとボリュームＸ−Ｓは、一組のパスフェイルオーバ構成をなし、ストレージシステムＡ上のボリュームＸ−Ｐは、生産用ボリュームとして機能し、ボリュームＸ−Ｓは、バックアップとして働く。ボリュームＹ−PとボリュームＹ−Ｓは、もう一組のパスフェイルオーバ構成をなし、ストレージシステムＢ上のボリュームＹ−Ｐは、生産用ボリュームとして機能し、ボリュームＹ−Ｓは、バックアップ用として働く。図１の実施例のこの変形では、ホスト機０１０１上で稼動する仮想ボリュームモジュール０６０１０５は、アプリケーション０１０１０１からの入出力要求を、ボリュームＸ−ＰかボリュームＹ−Ｐに送信する。二つの生産用ボリュームは、分離したストレージシステムに存在するので、入出力の負荷は二つのストレージシステム間でバランスする。かくして、ボリュームＸ−ＰとボリュームＹ−Ｐの選択は、慣用的な負荷バランス方法に基づき負荷バランス基準(各ボリュームの負荷状態)で行われる。この構成は、本発明にフェイルオーバ処理と共に負荷バランス機能を提供する。
【実施例２】
【００７８】
図１は又本発明の第二の態様を示す。本態様は非停止型データ移行に関連する。
【００７９】
一般的に本発明の第二の態様によれば、ホストシステムは、第一のストレージシステムとデータ通信する仮想ボリュームモジュールを有する。第二のストレージシステムが用意される。仮想ボリュームモジュールは、第一のストレージシステムに保存されているデータを第二のストレージシステム移行させるコピー動作を第一のストレージシステムに起動する。仮想ボリュームモジュールは、周期的にコピー動作の状態を監視する。この間にも、仮想ボリュームモジュールは、このホストで走行しているアプリケーションからの入出力要求を受け取り、第一のストレージシステムにアクセスしてこの要求を処理する。データ移行が終了すると、仮想ボリュームモジュールは、アプリケーションからの入出力要求を第二のストレージシステムに向けることができる。以下は、本発明の本態様を説明する実施例である。
【００８０】
既に述べたように、図１に示すシステム構成は本発明の本態様の説明に使用できる。本発明の本態様に対して、ストレージシステムＡ ０１０５は、既存の(例：レガシイ)ストレージシステムだとする。更に、ストレージシステムＢ ０１０７は、交代のストレージシステムだとする。このケースでは、ストレージシステムＢは、レガシイストレージシステムＡを置き換えると仮定する。従って、ストレージシステムＡのボリュームＸ−ＰのデータをストレージシステムＢのボリュームＸ−Ｓにコピーしておくことは、望ましいことである。更に又、このデータコピー中にも、ユーザがボリュームＸ−Ｐにアクセスできる“稼動中”システムでこのコピーを実行することは望ましいことである。
【００８１】
本発明の第一の態様と同様に、仮想ボリュームモジュールはボリュームＸ−ＰとボリュームＸ−Ｓを検出する。ホスト０１０１に保存される構成ファイルは、下記の情報を有する。
【００８２】
【表２】
2006048676.tif 000004
【００８３】
このテーブルは、仮想ボリュームモジュールを初期化するために使用できる。或いは、既に述べたコマンドラインインターフェースを、上記の情報を仮想ボリュームモジュールに伝えるのに使用することが出来る。
【００８４】
この構成テーブルは、データ移行ボリュームセットを定義する。プライマリボリュームはレガシー(従来型の)ストレージボリュームである。セカンダリボリュームには新型のストレージボリュームを指定する。実施例１と同様に、仮想ボリュームモジュールが、ホスト上で走行しているアプリケーションに仮想ストレージボリュームを提示する。
【００８５】
リモートコピー技術が本発明のこの実施例に使用される。しかしながら、適切な任意のデータ複製技術も本発明に対応して、採用可能であることに注意願いたい。かくして、本発明の実施例では、プライマリボリュームがレガシイストレージシステムの役割を果たす。セカンダリボリュームは新型のストレージシステムの役割を果たす。
【００８６】
データ移行動作が起動されたら、仮想ボリュームモジュールは、この要求をストレージシステムＡに伝え、構成ファイルで指定されるプライマリボリューム(ここでは、ボリュームＸ−Ｐ)とセカンダリボリューム(ここでは、ボリュームＸ−Ｓ)との間でデータ複製ペアを生成することを要求する。ディスクコントローラＡは、これに応えて、このボリュームペアを同期中状態にセットする。このディスクコントローラは、次いで、ボリュームＸ−ＰからボリュームＸ−Ｓへのデータコピー動作を開始する。この動作は、通常バックグラウンドプロセスで、この間もホストからの入出力要求の処理を実行する。典型的にはビットマップ又は何か類似のメカニズムが、コピー済ブロックを記録するために使用される。
【００８７】
ストレージシステムＡがこのデータ移行中に書き込み要求を受信したら、ストレージシステムＡのディスクコントローラＡは、当該データをボリュームＸ−Ｐの対象データブロックに書き込む。この後に、ディスクコントローラＡは、この受信データをストレージシステムＢに書き込む。ディスクコントローラＢは、このデータをボリュームＸ−Ｓに書き込み、ディスクコントローラＡに応答を返送する。ディスクコントローラＡは次いでホストに応答する。
【００８８】
データ移行が完了すると、ディスクコントローラＡはボリュームペア状態を同期済に変更する。
【００８９】
既に述べた通り、仮想ボリュームモジュールは、ホスト上で走行するアプリケーションに、ＳＣＳＩインターフェースを経由して仮想ボリュームを提供する。アプリケーションはＳＣＳＩインターフェースに対して、(入出力関連のコマンドを含めて)任意のＳＣＳＩコマンドを発行することが出来る。仮想ボリュームモジュールは、このＳＣＳＩコマンドに介入して、このコマンドを処理するためにストレージシステムＡに適切な対応要求を発行する。
【００９０】
本発明の第二の態様では、仮想ボリュームモジュールは、周期的にボリュームＸ−ＰとボリュームＸ−Ｓのペア状態をチェックする。ペア状態が同期済になったら、仮想ボリュームモジュールは、ディスクコントローラＡに対して、ペアを削除するように要求する。ディスクコントローラＡは、ボリュームペア削除のステップを実行し、ボリュームＸ−ＰとボリュームＸ−Ｓ間のデータコピー又は同期動作を一切停止する。ディスクコントローラＡは、ホストに削除動作の完了を応答する。この間のホストからの入出力要求は処理されないことに注意願いたい。これら要求は単にキューされるのみである。アプリケーションには、この間ストレージシステム(仮想ボリュームモジュールによって提示される仮想ストレージシステム)は遅延して稼動しているように見える。
【００９１】
仮想ボリュームモジュールが、ディスクコントローラＡから削除動作が成功した旨の応答を受け取ったら、ボリュームＸ−ＰとボリュームＸ−Ｓとで成るデータ移行のための構成テーブルでのエントリは削除される。キューされていた入出力要求は今やストレージシステムＢで処理開始される。同様に、仮想ボリュームモジュールが後続するＳＣＳＩコマンドを受け取ったら、これらを、ＦＣチャネル０１０３０３を通してストレージシステムＢに向ける。
【００９２】
本発明の本態様では、データ移行をトランスペアレントに(ユーザに見えない形で)実行することを可能にする。更に又データ移行が完了すると、アプリケーションに対するサービスを停止することなく、旧式のストレージシステムＡはオフラインにされる。このことは、仮想ボリュームモジュールが、入出力要求を通信リンク０１０３０３通して、トランスペアレントにストレージシステムＢに向けることにより可能になる。
【００９３】
ディスクコントローラＡとＢの動作は、本発明の第一の実施例で説明したのと同様である。
【実施例３】
【００９４】
図３は本発明の第三の態様に従うシステムの実施例を示す。本発明の本態様ではフェイルオーバの処理時間を短縮する。
【００９５】
一般に、本発明の第三の態様では、第一と第二のホストはクラスタ構成となる。各ホストは、第一と第二のストレージシステムにアクセス可能である。第一のストレージシステムは生産用ストレージシステムとして稼動する。第二のストレージシステムは第一のストレージシステムのバックアップとして稼動する。各ホストの仮想ボリュームモジュールは、各ホストで稼動するアプリケーションに対して、仮想ボリュームのビューを提供する。初期状態としては、仮想ボリュームモジュールは、ホストからの入出力要求を処理するのに、第一の(生産用)ストレージシステムにアクセスする。一つのホストが他のホストは稼動できないと判断したら、このホストは障害ホストに対して慣用的なフェイルオーバ処理を実行する。仮想ボリュームモジュールは、第一のストレージシステムの障害を検出可能である。これを契機に、仮想ボリュームモジュールは、ストレージに対する後続するアクセスを第二のストレージシステムに向ける。第二のホストの仮想ボリュームモジュールが、第一のストレージシステムの障害を検出したら、この仮想ボリュームモジュールは入出力要求を第二のストレージシステムに向ける。ここで本発明の本態様の実施例を説明する。
【００９６】
図３は一式以上のＦＣネットワークを示す。ＦＣネットワーク０３０３０１は、ホスト１ ０３０１をストレージシステムＡ ０３０５に接続し、ストレージシステムＡは、ホスト１に関連付けられる。ＦＣネットワーク０３０３０３は、ホスト１をストレージシステムＢ ０３０７に接続する。ＦＣネットワーク０３０３０７は、ホスト２ ０３０９をストレージシステムＡに接続する。ＦＣネットワーク０３０３０９は、ホスト２をストレージシステムＢに接続し、ストレージシステムＢはホスト２に関連付けられる。例えば、インフィニバンドやイーサネット等の他のタイプのネットワークも使用可能であることに注意願いたい。更に、又ＦＣスイッチは図示してはいないが、ホストとストレージシステムとの間でＳＡＮ(Storage Area Network)を形成するために使用できることに注意願いたい。
【００９７】
各ホスト１、２は、図１のホスト０１０１と類似に構成される。例えば、各ホスト１、２は各々のＦＣネットワークに接続するためのＦＣ ＨＢＡ０３０１０７、０３０９０７を有する。図３では、各ホスト１、２は二式のＦＣ ＨＢＡを有する。
【００９８】
各ホスト１、２は、各々仮想ボリュームモジュール０３０１０５、０３０９０５、ＳＣＳＩインターフェース０３０１０３、０３０９０３、クラスタソフトウエア０３０１０９、０３０９０９及び一式以上のアプリケーション０３０１０１、０３０９０１を有する。背後のＯＳとしては、Ｗｉｎｄｏｗｓ２０００／ＸＰ／２００３、Ｌｉｎｕｘ、ＵＮＩＸ、ＭＶＳ等の任意の適切なＯＳでよい。このＯＳは、ホスト毎に異なってもよい。
【００９９】
ユーザ・レベルのアプリケーション０３０１０１、０３０９０１は、データベースシステム等の代表的アプリケーションを含むが、勿論、ストレージシステムのデータにアクセスする任意のソフトウエアで良い。代表的なシステム・レベルのアプリケーションとしては、ファイルシステムやボリュームマネージャの様なシステムサービスがある。通常、ストレージに対するアクセス要求には、読み書き何れであろうとデータが伴っている。
【０１００】
クラスタソフトウエア０３０１０９、０３０９０９は、負荷バランスとフェイルオーバ処理のために協同する。破線で示す通信チャネルは、各ホスト１、２のクラスタソフトウエアを稼動させる通信チャネルである。例えば、ハートビート(心臓の鼓動)信号が、ホストの障害を検出するために、クラスタソフトウエア０３０１０９、０３０９０９の間を通過する。図示される構成では、クラスタソフトウエア０３０１０９、０３０９０９は、アクティブ・アクティブとして構成される。かくして、各ホストは、他ホストの待機ホストとして稼動する。両ホストともアクティブで両者の間の負荷バランスと互いの待機ホストとしての役を果たすため同時に稼動する。両ホストとも同じボリューム、このケースではボリュームＸ−Ｐにアクセスする。クラスタソフトウエアはホスト間のデータ整合性を管理する。この種のクラスタソフトウエアの例としては、オラクル社のReal Application Clustersが存在する。
【０１０１】
各ホスト１、２のＳＣＳＩインターフェース０３０１０３、０３０９０３は、図１で説明したように構成される。同様に、仮想ボリュームモジュール０３０１０５、０３０９０５も図１のように構成され、ホスト機１、２上で稼動しているアプリケーションに対して仮想ボリュームを提供する。ストレージシステムＡ、Ｂ（０３０５、０３０７）も同様に図１で説明したように構成される。
【０１０２】
動作に於いては、各仮想ボリュームモジュール０３０１０５、０３０９０５は、多くの点で、実施例１で説明したのと同様に機能する。クラスタソフトウエア０３０１０９、０３０９０９は共に、ストレージシステムＡのボリュームＸ−Ｐ０３０５０５にプライマリ(生産用)ボリュームとしてアクセスし、セカンダリボリュームはストレージシステムＢのボリュームＸ−Ｓ０３０７０５で提供されバックアップボリュームとして使用される。仮想ボリュームモジュールはディスクコントローラＡ０３０５０３に所定のコマンドを送信して、ボリュームＸ−ＰとボリュームＸ−Ｓをリモートコピーペアとして構成する。このボリュームペアは、ディスクコントローラＡによって、ペア状態として初期化される。ペア状態では、ディスクコントローラＡは、ボリュームＸ−Ｐに書き込まれたデータをボリュームＸ−Ｓにコピーする。
【０１０３】
既に述べたように、クラスタソフトウエア０３０１０９、０３０９０９は、共にアクティブ・アクティブとして構成される。各ホスト１、２は、入出力動作のためにボリュームＸ−Ｐにアクセスする。クラスタソフトウエアは、両ホスト１、２がこのボリュームにアクセスできるように、データ整合性を維持する責任がある。例えば、このボリュームには一時期には唯一のホストのみがデータ書き込みが出来るように、クラスタソフトウエア０３０１０９(又は０３０９０９)は、最初にボリュームＸ−Ｐの全体又は一部のロックを取得してからボリュームＸ−Ｐに書き込みを行う。
【０１０４】
何れかのホストが障害になったら、生存ホストで走行中のアプリケーションは引き続いて稼動可能で、生存ホストのクラスタソフトウエアが障害ホストに対して、必要なフェイルオーバ処理を実施する。生存ホストの仮想ボリュームモジュールはこの様な障害を認識しない。従って、仮想ボリュームモジュールは、フェイルオーバ処理を全く行うことなく、生存ホストのアプリケーションから要求された入出力を処理するために継続してボリュームＸ−Ｐにアクセスする。
【０１０５】
反対にストレージシステムＡが障害になったら、各ホスト１、２の仮想ボリュームモジュールは、障害を検出して実施例１で説明したフェイルオーバプロセスを実行する。かくして両仮想ボリュームモジュールはセカンダリストレージシステムＢに分離コマンドを発行する。ディスクコントローラＢは、最初に受信した分離コマンドに応答して、ボリュームペア状態を分離中に変更する。ディスクコントローラは、２回目の分離コマンドを無視する。仮想ボリュームモジュール０３０１０５、０３０９０５はホスト１、２からの後続する入出力要求をボリュームＸ−Ｓとの間で処理できるように自らを再構成する。フェイルオーバ処理は仮想ボリュームモジュール０３０１０５、０３０９０５で処理されるため、クラスタソフトウエアは障害になったストレージシステムを意識することなく稼動を続ける。ペア状態が同期中又は逆同期中の場合は、分離コマンドは失敗する。この結果、ホストは処理継続できないか失敗する。
【０１０６】
一式のホストとプライマリストレージシステムが共に障害になったら、生存ホストのクラスタソフトウエアは、障害ホストを処理するためにフェイルオーバ処理を実行する。生存ホストの仮想ボリュームモジュールは、生存ホストで稼動しているアプリケーションに継続してサービスするために、実施例１で述べたパスフェイルオーバを実行する。生存ホストの仮想ボリュームモジュールは入出力要求を生存ストレージシステムに向ける。クラスタソフトウエアは、ストレージシステム又はボリューム障害何れも意識しないため、クラスタソフトウエアと仮想ボリュームモジュールの間には如何なる同期処理も不要であることに注意願いたい。
【実施例４】
【０１０７】
図４は、冗長データ複製を実現する本発明の第四の態様の実施例を示す。
【０１０８】
本発明の第四の態様の実施例によれば、一般的に、ホストは第一と第二のストレージシステムに接続される。ホストで稼動中の仮想ボリュームモジュールは、当該ホスト機で稼動中のアプリケーションに対して仮想ボリュームのビューを提供する。第一のストレージシステムは第二のストレージシステムでバックアップされる。仮想ボリュームモジュールは、第一のストレージシステムが障害になったら、第二のストレージシステムにフェイルオーバする。第三と第四のストレージシステムは、各々第二と第一のストレージシステムのバックアップとして稼動する。かくして、第一又は第二の何れのストレージシステムが障害になっても、データバックアップは継続可能である。本発明の本態様の実施例を以下に説明する。
【０１０９】
図４に示す構成では、ＦＣネットワーク０５０３０１は、ホスト０５０１と第一のストレージシステムＡ ０５０５との間のデータ通信を可能にする。ＦＣネットワーク０５０３０３は、ホストと第二のストレージシステムＢ ０５０７との間のデータ通信を可能にする。ＦＣネットワーク０５０３０５は、ストレージシステムＡとＢとの間のデータ通信を可能にする。ＦＣネットワーク０５０３０９は、ストレージシステムＢと第三のストレージシステムＣ０５０９との間のデータ通信を可能にする。ＦＣネットワーク０５０３０７は、ストレージシステムＡと第四のストレージシステムＤ ０５１１との間のデータ通信を可能にする。例えば、インフィニバンドやイーサネット等の他のタイプのネットワークもＦＣに代わって使用可能であることを理解願いたい。更に、ＦＣスイッチ(図示してはいない)がストレージシステムの間にＳＡＮ(Storage Area Network)を形成するために使用可能であることも理解願いたい。更に他のタイプのストレージアーキテクチュアも使用できることも理解願いたい。
【０１１０】
ホストとストレージシステムＡ、Ｂは、ロケーションＡの第一のデータセンタに存在する。ストレージシステムＣ、Ｄは、ロケーションＡとは離れたロケーションＢの他のデータセンタに存在する。ロケーションＢは、例えば別都市等、ロケーションＡとはかなり離れているのが普通である。二つのデータセンタはＷＡＮで接続され、ＦＣネットワーク０５０３０７、０５０３０９はＷＡＮの中を通過する。
【０１１１】
ホストは、一式以上のＦＣ ＨＢＡ０５０１０７を有する。図示される実施例では、二式のＦＣ ＨＢＡが存在する。ホストは、仮想ボリュームモジュール０５０１０５、ＳＣＳＩインターフェース０５０１０３及び一式以上のアプリケーション０５０１０１を装備する。Ｗｉｎｄｏｗｓ２０００／ＸＰ／２００３、Ｌｉｎｕｘ、ＵＮＩＸ及びＭＶＳ等の適切なＯＳがホスト上で使用されることを理解願いたい。仮想ボリュームモジュールは既に述べたように、アプリケーションに仮想ボリュームのビューを提供する。
【０１１２】
動作については、仮想ボリュームモジュールは、実施例１で説明したのと同様に動作する。本発明の本実施例の具体的な態様では、仮想ボリュームモジュールは、ストレージシステムＡのボリュームＸ−Ｐ０５０５０５をプライマリボリュームとして使用し、ストレージシステムＢのボリュームＸ−Ｓ１ ０５０７０５をセカンダリボリュームとして使用する。プライマリボリュームは、ホストで走行するユーザ・レベル及びシステム・レベルのアプリケーションよりなされる入出力要求のための生産用ボリュームとして稼動する。
【０１１３】
仮想ボリュームモジュールは、ここで説明するように、多様なデータバックアップ／複製のためのストレージシステムを構成する。ストレージシステムＡのディスクコントローラＡ ０５０５０３は、ボリュームＸ−ＰとボリュームＸ−Ｓ１をリモートコピーペアとして使用して、リモートコピー動作のために構成される。ボリュームＸ−Ｐは、仮想ボリュームモジュールが、アプリケーションからの入出力要求を処理するために、入出力を向ける生産用ボリュームとして稼動する。ストレージシステムＡに於いては、リモートコピーはＦＣネットワーク０５０３０５を経由して実行され、ボリュームＸ−Ｐがプライマリボリュームで、ボリュームＸ−Ｓ１がセカンダリボリュームである。このリモートコピー動作は同期型で実行される。
【０１１４】
冗長複製はストレージシステムＡによって可能になる。ボリュームＸ−ＰとボリュームＸ−Ｓ３ ０５１１０５は、ＦＣネットワーク０５０３０７経由でリモートコピー動作のためにペアとなる。ボリュームＸ−Ｐはプライマリボリュームで、ボリュームＸ−Ｓ３は、セカンダリボリュームである。データ転送は同期型又は非同期型で行われる。同期型複製か非同期型複製のどちらを選択するかはユーザによる。同期型複製は、データ損失は発生しないが、近距離複製に制限され、時としてホスト性能の低下が発生する。非同期型複製では、長距離でのデータ複製をホストでの性能低下なしに実現できるが、プライマリボリュームが停止した場合にはデータ損失が発生し得る。ここにトレードオフが必要になる。
【０１１５】
既に述べた通り、デバイスＡからデバイスＢへの同期型データ転送では、デバイスＡが自らのローカルボリュームに書き込んでからデータをデバイスＢへ転送し、デバイスＢからのデータ転送動作の応答を待ってからデバイスＡはホストに応答を返送する。非同期型データ転送では、デバイスＡは自らのローカルボリュームに書き込み次第ホストへの応答を返送する。書き込みデータはこの応答後にデバイスＢに転送される。この転送はホストからのデバイスＡに対する入出力要求の実行とは独立になされる。
【０１１６】
引き続いて冗長型複製は又ストレージシステムＢでも提供される。ボリュームＸ−Ｓ１とボリュームＸ−Ｓ２ ０５０９０５はリモートコピーペアを形成し、ボリュームＸ−Ｓ１がプライマリボリュームで、ボリュームＸ−Ｓ２がセカンダリボリュームである。データ転送は同期型又は非同期型である。
【０１１７】
正常時の動作では、仮想ボリュームモジュールは、ＳＣＳＩインターフェース経由で入出力要求を受信し、対応入出力動作を図４の太線で示すＦＣネットワーク０５０３０１経由でボリュームＸ−Ｐに向ける。データの複製(リモートコピー動作による)はボリュームＸ−ＰとボリュームＸ−Ｓ１との間で発生し、ボリュームＸ−Ｐへの変更はボリュームＸ−Ｓ１に同期型でコピーされる。データの複製(同様にリモートコピー動作による)はボリュームＸ−ＰとボリュームＸ−Ｓ３との間でも発生し、ボリュームＸ−Ｐへの変更はボリュームＸ−Ｓ３に同期型又は非同期型でコピーされ、これは、ボリュームＸ−Ｓ１が同様にボリュームＸ−Ｐのコピーを有するために、冗長複製である。データの複製(同様にリモートコピー動作による)はボリュームＸ−Ｓ１とボリュームＸ−Ｓ２との間でも発生し、ボリュームＸ−Ｓ１への変更はボリュームＸ−Ｓ２に同期型又は非同期型でコピーされる。
【０１１８】
ストレージシステムＡが障害になった図４Ａの場合を考える。仮想ボリュームモジュールはこの障害を検出し、実施例１で説明したようにボリュームＸ−Ｓ１へのフェイルオーバを実施する。かくして、入出力処理はボリュームＸ−Ｓ１にて継続する。加えて、データ複製(バックアップ)は、ボリュームＸ−Ｓ１とボリュームＸ−Ｓ２のボリュームペアを用いて継続する。
【０１１９】
ストレージシステムＢが障害になった図４Ｂの場合を考える。ボリュームＸ−Ｐが稼動状態なので、仮想ボリュームモジュールは継続してボリュームＸ−Ｐに入出力動作を向ける。ストレージシステムＢの障害によって、データ複製はボリュームＸ−ＰとボリュームＸ−Ｓ１との間では実施されない。しかしながら、データ複製はボリュームＸ−ＰとボリュームＸ−Ｓ３との間では継続される。従って、図４の構成ではデータバックアップと複製のための冗長性が提供される。
【実施例５】
【０１２０】
図５を参照して、本発明の第五の態様に従う実施例を説明する。本発明の本態様は冗長型データ複製を使用したディザスタリカバリを提供する。
【０１２１】
本発明の第五の態様では、一般的に、第一と第二のホストは各々ストレージシステムのペアに接続される。一式のホストは、待機機として他のホストが障害になったら稼動する。仮想ボリュームモジュールは各ホストに配備される。稼動状態のホストは、ホスト上で稼動しているアプリケーションからの入出力要求をこのホストに接続されているストレージシステムの一式にアクセスして処理する。データ複製は、ホストに関連するストレージシステムのペアの間、及び他のストレージシステムのペアの間でも行われる。稼動中のホストが障害になったら、待機中ホストが引継ぎ、この待機中ホストはこのホストに関連するストレージシステムのペアを使用する。データ複製は、ストレージシステムの二つのペア間で実施されるため、待機中ホストは、最新のデータ(即ち、稼動中ホストに障害が発生した時のデータ)にアクセスする。以降で、本発明の本態様の実施例を説明する。
【０１２２】
二式のホスト１、２（１５０１、１５１３）はＦＣネットワークを介してストレージシステムに接続する。ＦＣネットワーク１５０３０１は、ホスト１をストレージシステムＡ１５０５に接続する。ＦＣネットワーク１５０３０３は、ホスト１をストレージシステムＢ１５０７に接続する。ＦＣネットワーク１５０３０５は、ストレージシステムＡをストレージシステムＢに接続する。ホスト２に対しては、ＦＣネットワーク１５０３１１は、ホスト２をストレージシステムＣ１５０９に接続する。ＦＣネットワーク１５０３１３は、ホスト２をストレージシステムＤ１５１１に接続する。ＦＣネットワーク１５０３１５は、ストレージシステムＣをストレージシステムＤに接続する。ＦＣネットワーク１５０３０７は、ストレージシステムＡをストレージシステムＤに接続する。ＦＣネットワーク１５０３０９は、ストレージシステムＢをストレージシステムＣに接続する。
【０１２３】
ホスト１とこれに関連するストレージシステムＡ、Ｂは、ロケーションＡのデータセンタに存在する。ホスト２とこれに関連するストレージシステムＣ、ＤはロケーションＢのデータセンタに存在する。これらデータセンタは、ＦＣネットワーク１５０３０７、１５０３０９を含むＷＡＮで接続可能である。
【０１２４】
各ホスト１、２は実施例３で説明した構成になっている。特に各ホスト１、２は各々のクラスタソフトウエア１５０１０９、１５１３０９を有する。本実施例では、しかしながら、クラスタソフトウエアは、アクティブ・スリープ(アクティブ／パッシブモードとも呼ばれる)状態に構成されている。このモードでのクラスタ動作は、一式のホスト(例：ホスト１)は稼動中で、他のホスト(例：ホスト２)は待機中モードである。かくして、ストレージアクセスの観点からは、唯一つのホストが稼動中である。待機中ホストが、稼動中ホストは障害になったことを検出又は判断した時には、このホストが稼動中になる。例えば、ベリタスソフトウエア社のVeritas Cluster Serverはこのモードのクラスタ動作を提供している。
【０１２５】
正常時の動作時に於いては、稼動中ホスト１上で走行している、アプリケーション１５０１０１が入出力要求を発行する。仮想ボリュームモジュール１５０１０５は、対応入出力動作を、生産用ボリュームであるボリュームＸ−Ｐ１５０５０５に送信することにより処理する。ボリュームＸ−ＰとボリュームＸ−Ｓ１ １５０７０５は、仮想ボリュームモジュール１５０１０５とディスクコントローラＡ１５０５０３との間の適切な交渉により、リモートコピーペアとして構成される。この結果、ボリュームＸ−Ｐになされた書き込み動作は、ＦＣネットワーク１５０３０５を経由してボリュームＸ−Ｓ１に同期型で複製される。ボリュームＸ−Ｓ１はかくして生産用ボリュームのバックアップとして機能する。データ転送は同期型である。ホスト２は待機中モードで、従って仮想ボリュームモジュール１５１３０５も待機中である。
【０１２６】
仮想ボリュームモジュール１５０１０５は、ボリュームを以下のデータ複製とバックアップ動作のために構成する。ボリュームＸ−ＰとボリュームＸ−Ｓ３ １５１１０５はリモートコピーペアとして構成される。ボリュームＸ−Ｐへの書き込み動作は、従って、ＦＣネットワーク１５０３０７を経由して、ボリュームＸ−Ｓ３に複製される。データ転送は同期型又は非同期型である。
【０１２７】
ボリュームＸ−Ｓ１とボリュームＸ−Ｓ２ １５０９０５はリモートコピーペアとして構成される。ボリュームＸ−Ｓ１への書き込み動作は、従って、ＦＣネットワーク１５０３０９を経由してボリュームＸ−Ｓ２に複製される。データ転送は同期型又は非同期型である。
【０１２８】
ボリュームＸ−Ｓ２とボリュームＸ−Ｓ５ １５１１０９はリモートコピーペアとして構成される。ボリュームＸ−Ｓ２への書き込み動作は、従って、ＦＣネットワーク１５０３１５を経由してボリュームＸ−Ｓ５に複製される。データ転送は同期型である。
【０１２９】
ボリュームＸ−Ｓ３とボリュームＸ−Ｓ４ １５０９０９はリモートコピーペアとして構成される。ボリュームＸ−Ｓ３への書き込み動作は、従って、ＦＣネットワーク１５０３１５を経由してボリュームＸ−Ｓ４に複製される。データ転送は同期型である。
【０１３０】
ストレージシステムＡが障害になった時のフェイルオーバ状況を考える。仮想ボリュームモジュール１５０１０５が、この事態を検出し、実施例１で説明したようにフェイルオーバプロセスを実行する。引き続いてホスト１で稼動しているアプリケーションから発行される入出力要求は、仮想ボリュームモジュール１５０１０５がボリュームＸ−Ｓ１にアクセスすることにより達成される。ストレージシステムＡの障害にも拘わらず、ボリュームＸ−Ｓ１がボリュームＸ−Ｓ２によってバックアップされているため、データ複製は継続できることに注意する必要がある。
【０１３１】
ストレージシステムＢが障害になった時のフェイルオーバ状況を考える。ホスト１で稼動しているアプリケーションからのデータ入出力要求は、仮想ボリュームモジュール１５０１０５がボリュームＸ−Ｐにアクセスすることにより達成される。更に又、ストレージシステムＢの障害にも拘わらず、ボリュームＸ−Ｐのデータ複製はボリュームＸ−Ｓ３によって継続できることに注意する必要がある。
【０１３２】
稼動中ホスト１が障害になった時のフェイルオーバ状況を考える。クラスタソフトウエア１５１３０９がこの事態を検出して、ホスト２を稼動させる。アプリケーション１５１３０１は、障害ホスト１で提供されていた機能を引き継ぐ。新たに稼動したホスト２の仮想ボリュームモジュール１５１３０５は、アプリケーションからの入出力要求を処理するために、ストレージシステムＣのボリュームＸ−Ｓ２かストレージシステムＤのボリュームＸ−Ｓ３にアクセスする。ストレージシステムＡかＢは、各々のリモートコピーサイト(即ち、ストレージシステムＤ及びＣ)が完全に同期化される前に障害になっていたかもしれないので、同期化されているストレージシステムを決定することが必要である。この決定は、ストレージシステムＤ及びＣにボリュームペアＸ−ＰとＸ−Ｓ３及びＸ−Ｓ１とＸ−Ｓ２の状態を問い合わせることにより達成される。もし、どちらかの状態が同期済なら、ホストは当該ペアを分離してこのペアのセカンダリボリュームをホストのプライマリボリュームとして使用する。両方の状態が分離中であったら、ホストは何時ペアが分離されたかをチェックして、より最近に分離されたセカンダリボリュームをホストのプライマリボリュームとして使用する。一つの可能な実装として、何時ペアが分離されたかを判定するのに、ストレージシステムはペアが分離された時にホストに対してエラーメッセージを送信し、ホストがこれを記録しておく方法がある。
【０１３３】
ボリュームＸ−Ｓ２が最新のデータを有していると判断できたら、仮想ボリュームモジュール１５１３０５は、アプリケーション１５１３０１からの入出力要求をボリュームＸ−Ｓ２を用いて処理する。ボリュームＸ−Ｓ５は、これまで述べたボリュームペア構成に従ってバックアップ用として機能する。ボリュームＸ−Ｓ３が最新のデータを有していると判断できたら、仮想ボリュームモジュール１５１３０５は、アプリケーション１５１３０１からの入出力要求をボリュームＸ−Ｓ３を用いて処理する。ボリュームＸ−Ｓ４は、これまで述べたボリュームペア構成に従ってバックアップ用として機能する。
【０１３４】
待機中ホスト２によるフェイルオーバ処理では、仮想ボリュームモジュール１５１３０５がディスクコントローラＣに、ボリュームＸ−Ｓ１とボリュームＸ−Ｓ２のボリュームペアを分離する動作を指示する。仮想ボリュームモジュールは更に、ディスクコントローラＤに、ボリュームＸ−ＰとボリュームＸ−Ｓ３のボリュームペアを分離する動作を指示する。
【０１３５】
既に述べたように、仮想ボリュームモジュール１５１３０５は、最新のデータを有しているボリューム(ボリュームＸ−Ｓ２かボリュームＸ−Ｓ３)を知っている。ボリュームＸ−Ｓ２が最新データを有している(又はストレージシステムＡ又はストレージシステムＢに障害がない場合には、両方のボリュームが最新データを有している)なら、ホストに実装され、クラスタソフトウエア１５１３０９によって起動するために初期化されるスクリプトが、仮想ボリュームモジュール１５１３０５がボリュームＸ−Ｓ２をプライマリボリュームとして、ボリュームＸ−Ｓ５をセカンダリボリュームとして、使用するように構成する。一方に於いて、ボリュームＸ−Ｓ３が最新データを有している場合には、このスクリプトは、仮想ボリュームモジュールがボリュームＸ−Ｓ３をプライマリボリュームとして、ボリュームＸ−Ｓ４をセカンダリボリュームとして、使用するように構成する。
【０１３６】
上記で説明した各実施例は、ホストに仮想化モジュールを有している。しかしながら、仮想化されたストレージシステムは更にホスト外又はホスト機とストレージシステムの間に、存在する仮想化コンポーネントを含む。例えば、Cisco MDS 9000の様な製品はスイッチの中に仮想化コンポーネントを(ソフトウエアの形で)提供する。本発明によれば、上記で説明した仮想化コンポーネントで実行される機能は、仮想化コンポーネントがスイッチの一部ならスイッチの中で実現される。更に、仮想化コンポーネントはインテリジェントストレージシステムに存在してもよい。インテリジェントストレージシステムはデータをローカルボリュームのみならず外部ボリュームにも格納する。ローカルボリュームは当該インテリジェントストレージシステム自身の中に有するボリュームである。外部ボリュームは、外部ストレージシステムが持ち、当該インテリジェントストレージシステムがネットワークスイッチ経由でアクセス可能なボリュームである。インテリジェントストレージシステム上で稼動する仮想ボリュームモジュールはこれ迄に述べた機能を果たす。この場合は、プライマリボリュームはローカルボリュームで、セカンダリボリュームは外部ボリュームとなる。
【図面の簡単な説明】
【０１３７】
【図１】図１は、本発明の第一と第二の実施例が適用されるコンピュータシステムの構成を示すブロック図である。
【図２】図２は、仮想ボリュームモジュールが使用するテーブルの構成情報を示す。
【図２Ａ】図２Ａは、本構成情報の特定の状態を示す。
【図２Ｂ】図２Ｂは、本構成情報の特定の状態を示す。
【図２Ｃ】図２Ｃは、リモートコピーペアの代表的なペア状態の遷移図である。
【図３】図３は、本発明の第三の実施例が適用されるコンピュータシステムの構成を示すブロック図である。
【図４】図４は、本発明の第四の実施例が適用されるコンピュータシステムの構成を示すブロック図である。
【図４Ａ】図４Ａは、生産用ボリュームが障害になった時のフェイルオーバ処理を示す。
【図４Ｂ】図４Ｂは、バックアップ用ボリュームが障害になった時のフェイルオーバ処理を示す。
【図５】図５は、本発明の第五の実施例が適用されるコンピュータシステムの構成を示すブロック図である。
【図６】図６は、本発明の第一の実施例の変形が適用されるコンピュータシステムの構成を示すブロック図である。
【図７】図７は、ストレージシステムでの慣用的なマルチパス構成を示す。
【図８】図８は、ストレージシステムでの慣用的なデータ移行構成を示す。
【図９】図９は、ストレージシステムでの慣用的なサーバクラスタリング構成を示す。
【図１０】図１０は、ストレージシステムでの慣用的なリモートデータ複製構成を示す。
【符号の説明】
【０１３８】
０１０１…ホスト
０１０１０１…アプリケーション
０１０１０３…ＳＣＳＩインターフェース
０１０１０５、０６０１０５…仮想ボリュームモジュール
０１０１０７…ＦＣホストバスアダプタ
０１０５，０６０５…ストレージシステムＡ
０１０５０１，０１０７０１…ＦＣインターフェース
０１０５０３，０１０７０３…ディスクコントローラＡ、Ｂ
０１０５０７，０１０７０７…キャッシュメモリＡ、Ｂ
０１０５０５…ボリュームＸ−Ｐ
０６０５０９…ボリュームＹ−Ｓ
０１０７，０６０７…ストレージシステムＢ
０１０７０５…ボリュームＸ−Ｓ
０６０７０９…ボリュームＹ−Ｐ
【図１】
2006048676.tif 000005
【図２】
2006048676.tif 000006
【図２Ａ】
2006048676.tif 000007
【図２Ｂ】
2006048676.tif 000008
【図２Ｃ】
2006048676.tif 000009
【図３】
2006048676.tif 000010
【図４】
2006048676.tif 000011
【図４Ａ】
2006048676.tif 000012
【図４Ｂ】
2006048676.tif 000013
【図５】
2006048676.tif 000014
【図６】
2006048676.tif 000015
【図７】
2006048676.tif 000016
【図８】
2006048676.tif 000017
【図９】
2006048676.tif 000018
【図１０】
2006048676.tif 000019
【外国語明細書】
2006048676000001.pdf