(57)【特許請求の範囲】
【請求項１】
コンピューティング・デバイス上で実行された場合、前記コンピューティング・デバイスに、
前記コンピューティング・デバイスに関連付けられたストレージ制御ユニットについて、複数のストレージ・ボリューム・グループを含む物理セッションを確立させること、
それぞれの前記ストレージ・ボリューム・グループについての仮想セッションを、前記物理セッション内に確立させること、
前記ストレージ・ボリューム・グループのうちの１つに関して、前記コンピューティング・デバイスと第２のコンピューティング・デバイスとの間のリモート・ミラーリング・オペレーションを選択的に実行させる一方で、前記複数のストレージ・ボリューム・グループ内の他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションの対象としないこと、
前記物理セッションおよび前記ストレージ・ボリューム・グループを識別するパラメータを有する、セッション・ポリシー・ファイルを受け取らせること、および
それぞれの前記ストレージ・ボリューム・グループについて仮想セッションを確立するために、それぞれの前記ストレージ・ボリューム・グループについて仮想セッション・オブジェクトを生成させること、
を実行させ、
前記仮想セッション・オブジェクトが、
特定のストレージ制御ユニットに接続するための接続オブジェクトと、
前記セッション・ポリシー・ファイル内に指定された前記ボリューム・グループに関する制御パス情報に基づいて生成されるパス接続オブジェクトと、
前記セッション・ポリシー・ファイル内に指定された前記仮想セッションの一部であるそれぞれの前記ボリュームについてのボリューム・オブジェクトと、
を有する、コンピュータ・プログラム。
【請求項２】
コンピューティング・デバイス上で実行された場合、前記コンピューティング・デバイスに、
前記コンピューティング・デバイスに関連付けられたストレージ制御ユニットについて、複数のストレージ・ボリューム・グループを含む物理セッションを確立させること、
それぞれの前記ストレージ・ボリューム・グループについての仮想セッションを、前記物理セッション内に確立させること、
前記ストレージ・ボリューム・グループのうちの１つに関して、前記コンピューティング・デバイスと第２のコンピューティング・デバイスとの間のリモート・ミラーリング・オペレーションを選択的に実行させる一方で、前記複数のストレージ・ボリューム・グループ内の他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションの対象としないこと、
前記物理セッションおよび前記ストレージ・ボリューム・グループを識別するパラメータを有する、セッション・ポリシー・ファイルを受け取らせること、
それぞれの前記ストレージ・ボリューム・グループについて仮想セッションを確立するために、それぞれの前記ストレージ・ボリューム・グループについて仮想セッション・オブジェクトを生成させること、および
前記セッション・ポリシー・ファイルに基づいて物理セッション・オブジェクトを生成させることであって、前記物理セッション・オブジェクトは、前記仮想セッション・オブジェクトと、オペレーション・スレッド・グループ（ＯＴＧ）と、タスク命令ポインタ（ＴＩＰ）とを有する、生成すること、
を実行させる、コンピュータ・プログラム。
【請求項３】
前記ＯＴＧが、各仮想セッション・オブジェクトについて１つのスレッド、および前記物理セッション・オブジェクトについてはマスタ・スレッドの、複数のスレッドからなり、各スレッドが、前記仮想セッションと前記物理セッションとを区別するためのユニーク・セッション識別子を有する、請求項２に記載のコンピュータ・プログラム。
【請求項４】
前記プログラムが、
前記ＯＴＧ内の前記複数のスレッドを使用して、前記リモート・ミラーリング・オペレーションのオペレーションを実行すること、および
前記１つのストレージ・ボリューム・グループが前記リモート・ミラーリング・オペレーションを実行し、他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションを実行しないように、前記複数のスレッド内の前記スレッドの前記ユニーク・セッション識別子を使用して、前記リモート・ミラーリング・オペレーションのオペレーションの実行を調整すること、
によって、前記コンピューティング・デバイスにリモート・ミラーリング・オペレーションを選択的に実行させる、請求項３に記載のコンピュータ・プログラム。
【請求項５】
さらに前記プログラムが、前記コンピューティング・デバイスに、
前記リモート・ミラーリング・オペレーションの対応するスレッドのオペレーションが完了した後に、前記ＯＴＧの個々のスレッドごとに前記ＴＩＰを更新させること
を実行させる、請求項４に記載のコンピュータ・プログラム。
【請求項６】
さらに前記プログラムが、前記コンピューティング・デバイスに、
現在のオペレーションが正常に完了したことを示すように前記ＯＴＧ内のすべてのスレッドが前記ＴＩＰを更新するまで、前記ＯＴＧ内のスレッドの実行を次のオペレーションへと続行させないようにすること
を実行させる、請求項５に記載のコンピュータ・プログラム。
【請求項７】
前記リモート・ミラーリング・オペレーションが、フェイルオーバ・オペレーションであり、
前記ＯＴＧの前記複数のスレッドのうちの物理セッション・スレッドが、前記物理セッションを休止し、
前記ＯＴＧの前記複数のスレッドのうちの第１の仮想セッション・スレッドが、前記第１の仮想セッション・スレッドに関連付けられたストレージ・ボリューム・グループから、前記第２のコンピューティング・デバイスに関連付けられたストレージ・ボリューム・グループへの、フェイルオーバを開始し、
前記物理セッション・スレッドが、前記第１の仮想セッション・スレッドに関連付けられた前記ストレージ・ボリューム・グループを前記物理セッション・オブジェクトから除去し、前記物理セッションに関連付けられた他の仮想セッションの他のストレージ・ボリューム・グループのオペレーションを再開する、
請求項５に記載のコンピュータ・プログラム。
【請求項８】
プロセッサと、
前記プロセッサによって実行された場合に、前記プロセッサに、
コンピューティング・デバイスに関連付けられたストレージ制御ユニットについて、複数のストレージ・ボリューム・グループを含む物理セッションを確立させること、
それぞれの前記ストレージ・ボリューム・グループについて、前記物理セッション内に仮想セッションを確立させること、
前記ストレージ・ボリューム・グループのうちの１つに関して、前記コンピューティング・デバイスと第２のコンピューティング・デバイスとの間でリモート・ミラーリング・オペレーションを選択的に実行させる一方で、前記複数のストレージ・ボリューム・グループ内の他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションの対象としないこと、
前記物理セッションおよび前記ストレージ・ボリューム・グループを識別するパラメータを有する、セッション・ポリシー・ファイルを受け取らせること、および
それぞれの前記ストレージ・ボリューム・グループについて仮想セッションを確立するために、それぞれの前記ストレージ・ボリューム・グループについて仮想セッション・オブジェクトを生成させること、
を実行させる命令を含む、前記プロセッサに結合されたメモリと、
を備え、
前記仮想セッション・オブジェクトが、
特定のストレージ制御ユニットに接続するための接続オブジェクトと、
前記セッション・ポリシー・ファイル内に指定された前記ボリューム・グループに関する制御パス情報に基づいて生成されるパス接続オブジェクトと、
前記セッション・ポリシー・ファイル内に指定された前記仮想セッションの一部であるそれぞれの前記ボリュームについてのボリューム・オブジェクトと、
を有し、
データ処理システムと他のデータ処理システムとの間でリモート・ミラーリング・オペレーションを実行するためのデータ処理システム。
【請求項９】
プロセッサと、
前記プロセッサによって実行された場合に、前記プロセッサに、
コンピューティング・デバイスに関連付けられたストレージ制御ユニットについて、複数のストレージ・ボリューム・グループを含む物理セッションを確立させること、
それぞれの前記ストレージ・ボリューム・グループについて、前記物理セッション内に仮想セッションを確立させること、
前記ストレージ・ボリューム・グループのうちの１つに関して、前記コンピューティング・デバイスと第２のコンピューティング・デバイスとの間でリモート・ミラーリング・オペレーションを選択的に実行させる一方で、前記複数のストレージ・ボリューム・グループ内の他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションの対象としないこと、
前記物理セッションおよび前記ストレージ・ボリューム・グループを識別するパラメータを有する、セッション・ポリシー・ファイルを受け取らせること、
それぞれの前記ストレージ・ボリューム・グループについて仮想セッションを確立するために、それぞれの前記ストレージ・ボリューム・グループについて仮想セッション・オブジェクトを生成させること、および
前記セッション・ポリシー・ファイルに基づいて物理セッション・オブジェクトを生成させることであって、前記物理セッション・オブジェクトは、前記仮想セッション・オブジェクトと、オペレーション・スレッド・グループ（ＯＴＧ）と、タスク命令ポインタ（ＴＩＰ）とを有する、生成すること、
を実行させる命令を含む、前記プロセッサに結合されたメモリと、
を備える、データ処理システムと他のデータ処理システムとの間でリモート・ミラーリング・オペレーションを実行するためのデータ処理システム。
【請求項１０】
前記ＯＴＧが、各仮想セッション・オブジェクトについて１つのスレッド、および前記物理セッション・オブジェクトについてはマスタ・スレッドの、複数のスレッドからなり、各スレッドが、前記仮想セッションと前記物理セッションとを区別するためのユニーク・セッション識別子を有する、請求項９に記載のシステム。
【請求項１１】
前記命令が、
前記ＯＴＧ内の前記複数のスレッドを使用して、前記リモート・ミラーリング・オペレーションのオペレーションを実行すること、および
前記１つのストレージ・ボリューム・グループが前記リモート・ミラーリング・オペレーションを実行し、他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションを実行しないように、前記複数のスレッド内の前記スレッドの前記ユニーク・セッション識別子を使用して、前記リモート・ミラーリング・オペレーションのオペレーションの実行を調整すること、
によって、前記プロセッサにリモート・ミラーリング・オペレーションを選択的に実行させる、請求項１０に記載のシステム。
【請求項１２】
さらに前記命令が、前記プロセッサに、
前記リモート・ミラーリング・オペレーションの対応するスレッドのオペレーションが完了した後に、前記ＯＴＧの個々のスレッドごとに前記ＴＩＰを更新させること
を実行させる、請求項１１に記載のシステム。
【請求項１３】
さらに前記命令が、前記プロセッサに、
現在のオペレーションが正常に完了したことを示すように前記ＯＴＧ内のすべてのスレッドが前記ＴＩＰを更新するまで、前記ＯＴＧ内のスレッドの実行を次のオペレーションへと続行させないようにすること
を実行させる、請求項１２に記載のシステム。
【請求項１４】
前記リモート・ミラーリング・オペレーションが、フェイルオーバ・オペレーションであり、
前記ＯＴＧの前記複数のスレッドのうちの物理セッション・スレッドが、前記物理セッションを休止し、
前記ＯＴＧの前記複数のスレッドのうちの第１の仮想セッション・スレッドが、前記第１の仮想セッション・スレッドに関連付けられたストレージ・ボリューム・グループから、前記第２のコンピューティング・デバイスに関連付けられたストレージ・ボリューム・グループへの、フェイルオーバを開始し、
前記物理セッション・スレッドが、前記第１の仮想セッション・スレッドに関連付けられた前記ストレージ・ボリューム・グループを前記物理セッション・オブジェクトから除去し、前記物理セッションに関連付けられた他の仮想セッションの他のストレージ・ボリューム・グループのオペレーションを再開する、
請求項１１に記載のシステム。
【請求項１５】
実動サイト・システムに関連付けられたストレージ制御ユニットに関する、複数のストレージ・ボリューム・グループを含む物理セッションを確立するステップと、
それぞれの前記ストレージ・ボリューム・グループについて、前記物理セッション内に仮想セッションを確立するステップと、
前記ストレージ・ボリューム・グループのうちの１つに関して、前記実動サイト・システムと回復サイト・システムの間のリモート・ミラーリング・オペレーションを選択的に実行するステップであって、その一方で、前記複数のストレージ・ボリューム・グループ内の他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションの対象としない、選択的に実行するステップと、
前記物理セッションおよび前記ストレージ・ボリューム・グループを識別するパラメータを有する、セッション・ポリシー・ファイルを受け取るステップと、
それぞれの前記ストレージ・ボリューム・グループについて仮想セッションを確立するために、それぞれの前記ストレージ・ボリューム・グループについて仮想セッション・オブジェクトを生成するステップと、
前記セッション・ポリシー・ファイルに基づいて物理セッション・オブジェクトを生成するステップであって、前記物理セッション・オブジェクトは、前記仮想セッション・オブジェクトと、オペレーション・スレッド・グループ（ＯＴＧ）と、タスク命令ポインタ（ＴＩＰ）とを有する、生成するステップと、
を有する、実動サイト・システムと回復サイト・システムとの間でリモート・ミラーリング・オペレーションを実行するための方法。
【請求項１６】
前記ＯＴＧが、各仮想セッション・オブジェクトについて１つのスレッド、および前記物理セッション・オブジェクトについてはマスタ・スレッドの、複数のスレッドからなり、各スレッドが、前記仮想セッションと前記物理セッションとを区別するためのユニーク・セッション識別子を有する、請求項１５に記載の方法。
【請求項１７】
リモート・ミラーリング・オペレーションを選択的に実行するステップが、
前記ＯＴＧ内の前記複数のスレッドを使用して、前記リモート・ミラーリング・オペレーションのオペレーションを実行するステップと、
前記１つのストレージ・ボリューム・グループが前記リモート・ミラーリング・オペレーションを実行し、他のストレージ・ボリューム・グループは前記リモート・ミラーリング・オペレーションを実行しないように、前記複数のスレッド内の前記スレッドの前記ユニーク・セッション識別子を使用して、前記リモート・ミラーリング・オペレーションのオペレーションの実行を調整するステップと、
を有する、請求項１６に記載の方法。
【請求項１８】
前記リモート・ミラーリング・オペレーションの対応するスレッドのオペレーションが完了した後に、前記ＯＴＧの個々のスレッドごとに前記ＴＩＰを更新するステップをさらに有する、請求項１７に記載の方法。
【請求項１９】
現在のオペレーションが正常に完了したことを示すように前記ＯＴＧ内のすべてのスレッドが前記ＴＩＰを更新するまで、前記ＯＴＧ内のスレッドの実行を次のオペレーションへと続行させないようにするステップをさらに有する、請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、一般に、改良されたデータ処理システムおよび方法に関する。とりわけ、本出願は、複数の仮想化リモート・ミラーリング・セッション整合性グループを作成および管理するためのシステムおよび方法を対象とする。
【背景技術】
【０００２】
ビジネス関連情報の保守および使用に関してコンピューティング・システムおよびストレージ・システムへの依存が益々増加しつつある現在のビジネスでは、災害時回復がかなり重要である。したがって、企業および個人が自分のストレージ・システムの障害イベント時であっても自分のデータにアクセスできることを保証する助けとなるように、多くの異なる災害時回復メカニズムが考案されてきた。
【０００３】
これまでに開発されてきたこうした災害時回復メカニズムの１つが、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ社から入手可能なＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）災害時回復ソリューションであり、これは、ＤＳ８１００、ＤＳ８３００、ＤＳ６８００、ＥＳＳ  Ｍｏｄｅｌ  ８００、およびＥＳＳ  Ｍｏｄｅｌ  ７５０を含むＩＢＭ（IBM Corporationの商標）のエンタープライズ・ストレージ・デバイス上で使用可能である。
【０００４】
Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）は、非同期技術を使用して２つのサイトにわたる長距離リモート・コピー・ソリューションを提供する。Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）ソリューションは、全体性能に影響を与えることなく、より長い距離を介したストレージ・ユニットのボリューム・ペア間でのデータのミラーリング機能を提供する。Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）は、ローカル・サイトでの災害時に、回復（またはリモート）サイトでアプリケーション整合データを提供するようにも設計される。リモート・ボリュームのセットを数秒ごとに作成することによって、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）ソリューションは、大規模なデータベースおよびボリュームが複数のストレージ・ユニットにわたる場合に生じる可能性のある、整合性の問題に対処する。Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）を使用すると、リモート・サイトのデータは、ローカル・サイトのデータのポイント・イン・タイム整合コピーであるように維持される。
【０００５】
既存のコピー・サービス機能Ｇｌｏｂａｌ  Ｃｏｐｙ（ＴＭ）およびＦｌａｓｈＣｏｐｙ（IBM Corporationの商標）に基づく。Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）オペレーションは、回復サイトにおいて、正規の間隔で、ソース・ボリュームへのＩ／Ｏを中断することなく、定期的にポイント・イン・タイムＦｌａｓｈＣｏｐｙ（Ｒ）オペレーションを起動し、したがって、ほぼ最新のデータ・バックアップを連続して更新する。その後、多くのボリュームを、マスタ・ストレージ・ユニットによって管理されるセッションにグループ化することにより、複数のボリュームにまたがってポイント・イン・タイム整合性を維持しながら、複数のボリュームを同時に回復サイトにコピーすることができる。
【０００６】
Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）ソリューションでは、マスタ・ストレージ・ユニットがＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）セッションでの整合性グループの作成を制御する。マスタ・ストレージ・ユニットは、従属ストレージ・ユニットにコマンドを送る。ストレージ・ユニットは、単一のＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）セッションのみに対するマスタとすることができる。
【０００７】
重複ストレージ・ユニットは、マスタ・ストレージ・ユニットからコマンドを受け取る。従属ストレージ・ユニットは、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）セッションが開始された時点で識別される。従属ストレージ・ユニットは整合性グループを形成し、他のＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）処理を実行する。従属ストレージ・ユニットは、１つのマスタ・ストレージ・ユニットによってのみ制御可能である。
【０００８】
セッションとは、データの整合コピーを作成するためにまとめて管理される、複数のストレージ・ユニットをまたがるボリュームの集まりのことである。セッションは、企業全体にわたって固有のＩＤで識別される。ＩＤは、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）整合性グループに参加することになるボリュームを識別する。災害時回復の場合、回復に必要なセッション内のボリュームは、障害時点まで一貫していることが必要である。これらのボリューム上のデータが順番どおりにコピーされない場合、これらのボリュームを使用する回復手順は役に立たなくなる。
【０００９】
複数のストレージ・ユニットがＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）セッションに参加している場合、制御パスは、マスタ・ストレージ・ユニットから従属ストレージ・ユニットへと確立される。各マスタ・ストレージ・ユニットとその対応する各従属ストレージ・ユニットとの間には、別々の制御パスを提供することができる。マスタ・ストレージ・ユニットは、定義された制御パスを使用して、その従属ストレージ・ユニットと直接通信する。
【００１０】
アクティブなＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）セッション内の自動サイクルは、以下のように動作して、リモート・サイトでのデータをローカル・サイトでのデータのポイント・イン・タイム整合コピーとなるように維持する。第１に、ボリュームの整合性グループがローカル・サイトで作成される。整合データの増分がリモート・サイトに送られ、ＦｌａｓｈＣｏｐｙ（Ｒ）オペレーションがリモート・サイトで実行される。その後、非同期トラックをコピーするために、ローカル・サイトとリモート・サイトとの間でＧｌｏｂａｌ  Ｃｏｐｙオペレーションが再開される。これらのステップは、定義された時間間隔に従って反復される。
【００１１】
現在、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）ソリューションは、１つの物理ストレージ制御ユニット、すなわちストレージ・サブシステム用の制御プロセッサについて、一度に１つの物理セッションを実行することしかできない。これにより、１つのストレージ制御ユニット上で時には異なるサービス・レベルで合意している、複数のアプリケーションを有する可能性のある企業の、業務フレキシビリティは大幅に減少する。すなわち、１つの物理ストレージ制御ユニットについて１つの物理セッションしか実行できないため、特定のボリューム・セットについて、ユーザが、スケジューリングされたフェイルオーバまたはフェイルバック・オペレーションを所望する場合、フェイルオーバまたはフェイルバック・オペレーションは、物理ストレージ制御ユニットによって制御されるすべてのストレージ・ボリュームに関して、したがって、物理ストレージ制御ユニットを利用するすべてのアプリケーションに関して、実行されなければならない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
したがって、たとえ１つのアプリケーションのみのストレージ・ボリュームについてフェイルオーバまたはフェイルバック・オペレーションが望ましい場合であっても、すべてのストレージ・ボリュームおよびアプリケーションがフェイルオーバまたはフェイルバック・オペレーションを受けなければならない。したがって、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）ベースのストレージ・システムなどのリモート・ミラーリング・ストレージ・システムの物理セッション内で、単一のアプリケーションに関連付けられた個々のストレージ・ボリュームまたは個々のストレージ・ボリューム・セットを、フェイルオーバまたはフェイルバック・オペレーションの対象とすることができる、メカニズムを有することが望ましい。
【課題を解決するための手段】
【００１３】
例示的諸実施形態では、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）ベースのストレージ・システムなどのリモート・ミラーリング・ストレージ・システムの単一の物理セッションを仮想化するためのメカニズムを提供するため、ユーザは、複数の仮想セッションがあたかも異なる物理セッションに属するストレージ・ボリュームであるかのように、これらのセッションを作成および管理することができる。例示的諸実施形態のメカニズムでは、フェイルオーバおよびフェイルバック・オペレーションなどのリモート・ミラーリング・オペレーションを、仮想セッションの第１のセットに関して実行しながら、他の仮想セッションは未中断（uninterrupted）で続行することが可能である。したがって、ユーザには、選択されたアプリケーションの実動作業負荷を、他のアプリケーションが実動サイトで実行を継続しながら、選択的なフェイルオーバ・オペレーションを介して実動サイトから回復サイトへ一時的に移動させるフレキシビリティが与えられる。その後、それらのフェイルオーバしたアプリケーションは実動サイトにフェイルバックし、物理セッションと再結合することができる。
【００１４】
例示的な諸実施形態では、各ストレージ制御ユニット上の設計により、可能なアクティブ物理セッションが１つしかない間、この物理セッションに属するすべてのボリュームを、ユーザが別々に制御することを望む個々のアプリケーションそれぞれに従ってグループに分離することができる。個々のアプリケーションそれぞれについて仮想セッション・グループを生成するために、セッション・ポリシー・ファイルは、１次ボリューム、２次ボリューム、ＦｌａｓｈＣｏｐｙ（Ｒ）ボリューム、制御パス情報、および各仮想セッション・グループに関するセッション・パラメータを指定する。仮想セッションは、ソース・ボリュームとターゲット・ボリューム、すなわち実動サイト・ボリュームと回復サイト・ボリュームとの間に、別個の制御パス関係を必要とし、セッション・パラメータは、すべてのセッション、すなわちセッション識別子、整合性グループ間隔、最大整合性グループ排出（drain）時間、最大調整タイマ、マスタ・サーバなどの間で同じである。
【００１５】
その後、セッション・ポリシー・ファイルは、それぞれが、対応するストレージ制御ユニットへの接続オブジェクト、パス接続オブジェクト、および、ストレージ制御ユニットに関連付けられた物理ストレージ・デバイスを表すボリューム・オブジェクトを含む、セッション・データ・オブジェクトに変換される。すべてのサブセッション・オブジェクトを含む、単一の統一最高セッション・オブジェクトが提供される。この最高セッション・オブジェクトは、ストレージ制御ユニットのための実物理セッションを表す。
【００１６】
同じ単一物理セッション内で複数の仮想セッションを調整するために、オペレーション・スレッド・グループ（ＯＴＧ）、タスク命令ポインタ（ＴＩＰ）、およびユニーク・セッション識別子（ＵＳＩ）が提供される。特定仮想セッションのフェイルオーバまたはフェイルバックなどの各リモート・ミラーリング・オペレーションについて、すべてのセッションは１つのスレッド・グループ、すなわちＯＴＧに属するスレッドとして操作されることになる。
【００１７】
タスク命令ポインタ（ＴＩＰ）は、ＯＴＧ用のグローバル・ポインタである。ＴＩＰは、ある操作における特定のステップが完了すると、個々のスレッドによって更新される。物理セッションの保全性および整合性を維持するために、ＯＴＧ内の各スレッドによってＴＩＰ全体が正常に更新されるまで、単一のスレッドを進行させられないことが重要である。別の方法として、ＴＩＰの更新が成功しない場合、こうした更新が成功するか、または失敗した諸ステップを修正するために修正アクションが実行されるまで、および特定スレッドの特定の失敗したステップが正常に再実行されるまで、あらゆるスレッドは待機しなければならない。スレッド操作が、それらのユニーク・セッション識別子に基づくあるステップの「スキッピング」を要求した場合、ＯＴＧを次のステップへ進ませるために、その特定のスレッドはＴＩＰを「成功」として更新することになる。
【００１８】
ＯＴＧ内の各スレッドには、リモート・ミラーリング・オペレーションを実行するためにユーザのセッション選択に基づくユニーク・セッション識別子（ＵＳＩ）が割り当てられる。ＵＳＩの目的は、各スレッドが、リモート・ミラーリング・オペレーションの各ステップを実行し、それらに対して別々に応答できるようにすること、たとえば、次のステップを実行するためのＴＩＰを更新または検索するか否かを決定することである。
【００１９】
したがってＵＳＩは、フェイルオーバまたはフェイルバック・オペレーションなどのリモート・ミラーリング・オペレーションの各ステップで、個々のスレッドが別々のアクションを実行できるようにする。ＯＴＧ内のすべての他のスレッドが、仮想セッション・オペレーションのそれら自体の次のアクションに進む準備ができるまで、いかなるスレッドも仮想セッション・オペレーションの次のアクションに進むことができないように、ＴＩＰを使用してＯＴＧの様々なスレッド間に整合性が提供される。したがって、ＴＩＰは物理セッションの整合性を維持する責務を負い、ＵＳＩは各スレッドがＯＴＧ内の他のスレッドと別に動作できるようにする責務を負う。これら２つのメカニズムならびにポリシー・オブジェクト、接続オブジェクト、およびボリューム・オブジェクトの組み合わせによって、ストレージ制御ユニットの物理セッション内にある個々の仮想セッションが、物理セッション内の他の仮想セッションとは無関係にミラーリング・オペレーションを体験できるようにする。したがって、個々のアプリケーションに関連付けられたボリュームはリモート・ミラーリング・オペレーションを体験できる一方で、他の個々のアプリケーションに関連付けられた他のボリュームは、リモート・ミラーリング・オペレーションを体験せずに動作を続行することができる。
【００２０】
例示的一実施形態では、コンピュータ読み取り可能プログラムを有するコンピュータ使用可能媒体を備えたコンピュータ・プログラム製品が提供される。コンピュータ読み取り可能プログラムは、コンピューティング・デバイス上で実行された場合、コンピューティング・デバイスに関連付けられたストレージ制御ユニットについての物理セッションをコンピューティング・デバイスに確立させる。物理セッションは、複数のストレージ・ボリューム・グループを含むことができる。さらにコンピュータ読み取り可能プログラムは、コンピューティング・デバイスに、各ストレージ・ボリューム・グループについての仮想セッションを物理セッション内に確立させる。コンピュータ読み取り可能プログラムは、コンピューティング・デバイスに、ストレージ・ボリューム・グループのうちの１つに関して、コンピューティング・デバイスと第２のコンピューティング・デバイスとの間のリモート・ミラーリング・オペレーションを選択的に実行させる一方で、複数のストレージ・ボリューム・グループのうちの他のストレージ・ボリューム・グループはリモート・ミラーリング・オペレーションの対象とはしないこともできる。リモート・ミラーリング・オペレーションは、たとえば、フェイルオーバ・オペレーションまたはフェイルバック・オペレーションのうちの１つとすることができる。
【００２１】
リモート・ミラーリング・オペレーションは、コンピューティング・デバイス上で実行中のアプリケーション・インスタンスに関連付けられた第１のストレージ・ボリューム内のアプリケーション・データの、第２のコンピューティング・デバイスに関連付けられたストレージ・システムの第２のストレージ・ボリュームへの、ピアツーピア・リモート・コピー・オペレーションを含むことができる。
【００２２】
さらにコンピュータ読み取り可能プログラムは、コンピュータ・デバイスに、セッション・ポリシー・ファイルを受け取らせることもできる。セッション・ポリシー・ファイルは、物理セッションおよびストレージ・ボリューム・グループを識別するパラメータを含むことができる。コンピュータ読み取り可能プログラムは、コンピューティング・デバイスに、各ストレージ・ボリューム・グループについて仮想セッションを確立するために、各ストレージ・ボリューム・グループについて仮想セッション・オブジェクトを生成させることもできる。仮想セッション・オブジェクトは、特定のストレージ制御ユニットに接続するための接続オブジェクトと、セッション・ポリシー・ファイル内に指定されたボリューム・グループに関する制御パス情報に基づいて生成されるパス接続オブジェクトと、セッション・ポリシー・ファイル内に指定された仮想セッションの一部である各ボリュームについてのボリューム・オブジェクトとを含むことができる。
【００２３】
さらにコンピュータ読み取り可能プログラムは、コンピューティング・デバイスに、セッション・ポリシー・ファイルに基づく物理セッション・オブジェクトを生成させることができる。物理セッション・オブジェクトは、仮想セッション・オブジェクト、オペレーション・スレッド・グループ（ＯＴＧ）、およびタスク命令ポインタ（ＴＩＰ）を含むことができる。ＯＴＧは、各仮想セッション・オブジェクトについて１つのスレッド、および物理セッション・オブジェクトについてマスタ・スレッドという、複数のスレッドからなるものとすることが可能である。各スレッドは、仮想セッションと物理セッションとを区別するためのユニーク・セッション識別子を有することができる。
【００２４】
コンピュータ読み取り可能プログラムは、ＯＴＧ内の複数のスレッドを使用してリモート・ミラーリング・オペレーションのオペレーションを実行すること、および、１つのストレージ・ボリューム・グループはリモート・ミラーリング・オペレーションを実行し、他のストレージ・ボリューム・グループはリモート・ミラーリング・オペレーションを実行しないように、複数のスレッド内のスレッドのユニーク・セッション識別子を使用して、リモート・ミラーリング・オペレーションのオペレーションの実行を調整することによって、コンピューティング・デバイスに、リモート・ミラーリング・オペレーションを選択的に実行させることができる。さらにコンピュータ読み取り可能プログラムは、コンピューティング・デバイスに、リモート・ミラーリング・オペレーションの対応するスレッドのオペレーションが完了した後に、ＯＴＧの個々のスレッドごとにＴＩＰを更新させることもできる。さらにコンピュータ読み取り可能プログラムは、コンピューティング・デバイスに、現在のオペレーションが正常に完了したことを示すようにＯＴＧ内のすべてのスレッドがＴＩＰを更新するまで、ＯＴＧ内のスレッドの実行を次のオペレーションへと続行させないようにすることもできる。
【００２５】
リモート・ミラーリング・オペレーションは、フェイルオーバ・オペレーションとすることができる。このフェイルオーバ・オペレーションの一部として、ＯＴＧの複数のスレッドのうちの物理セッション・スレッドは、物理セッションを休止することが可能であり、ＯＴＧの複数のスレッドのうちの第１の仮想セッション・スレッドは、第１の仮想セッション・スレッドに関連付けられたストレージ・ボリューム・グループから、第２のコンピューティング・デバイスに関連付けられたストレージ・ボリューム・グループへの、フェイルオーバを開始することができる。物理セッション・スレッドは、第１の仮想セッション・スレッドに関連付けられたストレージ・ボリューム・グループを物理セッション・オブジェクトから除去し、物理セッションに関連付けられた他の仮想セッションの他のストレージ・ボリューム・グループのオペレーションを再開することができる。
【００２６】
コンピューティング・デバイスおよび第２のコンピューティング・デバイスは、位相的に互いにリモートに配置することができる。コンピューティング・デバイスおよび第２のコンピューティング・デバイスは、地理的に互いにリモートに配置することもできる。
【００２７】
他の例示的実施形態では、データ処理システムと他のデータ処理システムとの間でリモート・ミラーリング・オペレーションを実行するためのデータ処理システムが提供される。データ処理システムは、プロセッサと、プロセッサに結合されたメモリとを備えることができる。メモリは、プロセッサによって実行された場合に、コンピュータ・プログラム製品の例示的実施形態に関して上記で概説した様々なオペレーション、またはそれらの組み合わせをプロセッサに実行させる、命令を含むことができる。
【００２８】
他の例示的実施形態では、実動サイト・システムと回復サイト・システムとの間でリモート・ミラーリング・オペレーションを実行するための方法が提供される。この方法は、実動サイト・システムに関連付けられたストレージ制御ユニットに関する物理セッションを確立するステップを含むことができる。物理セッションは、複数のストレージ・ボリューム・グループを含むことができる。さらにこの方法は、各ストレージ・ボリューム・グループについて、物理セッション内に仮想セッションを確立するステップも含むことができる。リモート・ミラーリング・オペレーションは、ストレージ・ボリューム・グループのうちの１つに関して、実動サイト・システムと回復サイト・システムの間で選択的に実行する一方で、複数のストレージ・ボリューム・グループのうちの他のストレージ・ボリューム・グループはリモート・ミラーリング・オペレーションの対象とはしないことができる。さらにこの方法は、コンピュータ・プログラム製品の例示的実施形態に関して上記で概説した様々なオペレーション、またはそれらの組み合わせを含むこともできる。
【００２９】
他の例示的実施形態では、データ・ミラーリング・サービスを提供する方法が提供される。この方法は、実動サイト・コンピューティング・デバイスまたは回復サイト・コンピューティング・デバイスのうちの１つまたは複数を提供するステップと、１つの実動サイト・コンピューティング・デバイスまたは回復サイト・コンピューティング・デバイスのうちの少なくとも１つに、データ・ミラーリング・サービス・アプリケーション・ソフトウェアを提供するステップとを、含むことができる。データ・ミラーリング・サービス・アプリケーション・ソフトウェアは、１つまたは複数の実動サイト・コンピューティング・デバイスに関連付けられたストレージ制御ユニットに関する物理セッションを確立することができる。物理セッションは、複数のストレージ・ボリューム・グループを含むことができる。
【００３０】
さらにデータ・ミラーリング・サービス・アプリケーション・ソフトウェアは、各ストレージ・ボリューム・グループについて、物理セッション内に仮想セッションを確立することもできる。さらにデータ・ミラーリング・サービス・アプリケーション・ソフトウェアは、複数のストレージ・ボリューム・グループのうちの他のストレージ・ボリューム・グループはリモート・ミラーリング・オペレーションの対象ではないが、ストレージ・ボリューム・グループのうちの１つに関して、実動サイト・コンピューティング・デバイスと回復サイト・コンピューティング・デバイスとの間で、リモート・ミラーリング・オペレーションを選択的に実行することもできる。
【００３１】
本発明のこれらおよび他の特徴および利点については、本発明の例示的諸実施形態の以下の詳細な説明で説明するか、または、当業者であればそれらに照らして明らかとなろう。
【００３２】
本発明の特徴と思われる新規な機能については、添付の特許請求の範囲に記載される。しかしながら、本発明それ自体、ならびにその好ましい使用方法、他の目的、および利点は、例示的実施形態の以下の詳細な説明を添付の図面に関連して参照することで、最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００３３】
例示的諸実施形態は、個々のアプリケーション・ボリュームに対して、物理セッション内の他のアプリケーション・ボリュームとは無関係にリモート・ミラーリング・オペレーションを実行できるように、リモート・ミラーリング・システム内の物理セッションを仮想化するためのメカニズムを提供する。例示的諸実施形態は、好ましくは、ニューヨーク州アーモンクのインターナショナル・ビジネス・マシンズ社から入手可能な、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）などのリモート・ミラーリング・システムで実施される。したがって例示的諸実施形態は、好ましくは、実動サイトのアプリケーション・ボリュームがリモートに配置された回復サイトに複製される、分散型データ処理システムで実施される。例示的諸実施形態はＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）のリモート・ミラーリング・システムでの使用に関して説明されるが、例示的諸実施形態はＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）での使用に限定されるものではなく、現在知られているかまたは今後開発される可能性のある、任意のリモート・ミラーリング・システムで利用可能であることを理解されたい。
【００３４】
「リモートに配置される」とは、実動サイトが、１つまたは複数の通信ネットワーク上で回復サイトから地形的にリモートに配置されることを意味する。地形的にリモートに配置された回復サイトは、実動サイトのストレージ・エリア・ネットワーク（ＳＡＮ）またはサーバ・クラスタの外部にある。地形的にリモートに配置された回復サイトは、地理的にリモートに配置されることに加えて、地形的にもリモートに配置することができるが、これは必須ではない。
【００３５】
次に図面を参照しながら、特に図１〜２を参照しながら、例示的諸実施形態が実施可能なデータ処理環境の例示図が示される。図１〜２は単なる例であって、本発明の諸態様または諸実施形態が実施可能な環境に関して、いかなる制限をも主張または示唆する意図のないことを理解されたい。本発明の趣旨または範囲を逸脱することなく、記載された環境に対する多くの修正が実行可能である。
【００３６】
次に図面を参照すると、図１は、例示的諸実施形態の諸態様が実施可能な例示的分散型データ処理システムの絵画図を示す。分散型データ処理システム１００は、例示的諸実施形態のうちの諸実施形態が実施可能な、コンピュータのネットワークを含むことができる。分散型データ処理システム１００は、分散型データ処理システム１００内で互いに接続された様々なデバイスおよびコンピュータ間に通信リンクを提供するために使用される媒体である、少なくとも１つのネットワーク１０２を含む。ネットワーク１０２は、有線、無線の通信リンク、または光ファイバ・ケーブルなどの、接続を含むことができる。
【００３７】
示された例では、サーバ１０４およびサーバ１０６は、ストレージ・ユニット１０８と共にネットワーク１０２に接続される。加えて、クライアント１１０、１１２、および１１４もネットワーク１０２に接続される。これらのクライアント１１０、１１２、および１１４は、たとえばパーソナル・コンピュータ、ネットワーク・コンピュータなどとすることができる。示された例では、サーバ１０４は、ブート・ファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント１１０、１１２、および１１４に提供する。クライアント１１０、１１２、および１１４は、示された例ではサーバ１０４に対するクライアントである。分散型データ処理システム１００は、図示されていない追加のサーバ、クライアント、および他のデバイスを含むことができる。
【００３８】
示された例では、分散型データ処理システム１００は、互いに通信するためのプロトコルの伝送制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートを使用する、ネットワークおよびゲートウェイの全世界的な集合を表す、ネットワーク１０２を備えるインターネットである。インターネットの中心には、データおよびメッセージをルーティングする何千もの商用、公用、教育用、および他のコンピュータ・システムからなる、主要ノードまたはホスト・コンピュータ間の高速データ通信回線のバックボーンがある。もちろん、分散型データ処理システム１００は、たとえばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）などの、いくつかの異なるタイプのネットワークを含むように実施することもできる。前述のように、図１は、本発明の様々な諸実施形態に関するアーキテクチャ上の制限としてではなく、一例として意図されているため、図１に示された特定の諸要素は、本発明の例示的諸実施形態が実施可能な環境に関する制限とみなされるべきではない。
【００３９】
次に図２を参照すると、例示的諸実施形態の諸態様が実施可能な、例示的データ処理システムのブロック図が示されている。データ処理システム２００は、本発明の例示的諸実施形態に関するプロセスを実施するコンピュータ使用可能コードまたは命令を配置することが可能な、図１のサーバ１０４またはクライアント１１０などのコンピュータの一例である。
【００４０】
示された例では、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２ならびにサウス・ブリッジおよび入力／出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４を含む、ハブ・アーキテクチャを採用する。処理ユニット２０６、主メモリ２０８、およびグラフィックス・プロセッサ２１０が、ＮＢ／ＭＣＨ  ２０２に接続する。グラフィックス・プロセッサ２１０は、加速式グラフィックス・ポート（ＡＧＰ）を介してＮＢ／ＭＣＨ  ２０２に接続することができる。
【００４１】
示された例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２がＳＢ／ＩＣＨ  ２０４に接続する。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読み取り専用メモリ（ＲＯＭ）２２４、ハード・ディスク・ドライブ（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよび他の通信ポート２３２、およびＰＣＩ／ＰＣＩｅデバイス２３４は、バス２３８およびバス２４０を介してＳＢ／ＩＣＨ  ２０４に接続する。ＰＣＩ／ＰＣＩｅデバイスは、たとえばイーサネット（登録商標）・アダプタ、アドイン・カード、およびノート型コンピュータ用のＰＣカードを含むことができる。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅは使用しない。ＲＯＭ  ２２４は、たとえばフラッシュ・バイナリ入力／出力システム（ＢＩＯＳ）とすることができる。
【００４２】
ＨＤＤ  ２２６およびＣＤ−ＲＯＭドライブ２３０は、バス２４０を介してＳＢ／ＩＣＨ  ２０４に接続する。ＨＤＤ  ２２６およびＣＤ−ＲＯＭドライブ２３０は、たとえばＩｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ（ＩＤＥ）またはＳｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）インターフェースを使用することができる。Ｓｕｐｅｒ  Ｉ／Ｏ（ＳＩＯ）デバイス２３６はＳＢ／ＩＣＨ  ２０４に接続することができる。
【００４３】
オペレーティング・システムは処理ユニット２０６上で実行する。オペレーティング・システムは、図２内のデータ処理システム２００内の様々なコンポーネントの制御を調整および提供する。クライアントとして、オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（Ｒ）  Ｗｉｎｄｏｗｓ（登録商標）ＸＰ（ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓは米国または他の諸外国、あるいはその両方におけるＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの商標である）などの市販のオペレーティング・システムとすることができる。Ｊａｖａ（登録商標）プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムに関連して実行可能であり、Ｊａｖａ（登録商標）プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しを提供する（Ｊａｖａは、米国または他の諸外国、あるいはその両方におけるＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ，  Ｉｎｃ．の商標である）。
【００４４】
サーバとして、データ処理システム２００は、たとえば、Ａｄｖａｎｃｅｄ  Ｉｎｔｅｒａｃｔｉｖｅ  Ｅｘｅｃｕｔｉｖｅ（ＡＩＸ（Ｒ））オペレーティング・システムまたはＬＩＮＵＸ（Ｒ）オペレーティング・システムを実行する、ＩＢＭ（Ｒ）  ｅＳｅｒｖｅｒ（ＴＭ）  ｐＳｅｒｉｅｓ（Ｒ）コンピュータ・システムとすることができる（ｅＳｅｒｖｅｒ、ｐＳｅｒｉｅｓ、およびＡＩＸは、米国、他の諸外国、またはその両方におけるＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標であり、ＬＩＮＵＸは、米国、他の諸外国、またはその両方におけるＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの商標である）。データ処理システム２００は、処理ユニット２０６内の複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ）システムとすることができる。別の方法として、単一プロセッサ・システムを採用することもできる。
【００４５】
オペレーティング・システム向けの命令、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムは、ＨＤＤ  ２２６などのストレージ・デバイス上に配置され、処理ユニット２０６による実行のために主メモリ２０８内にロードすることができる。本発明の例示的諸実施形態に関するプロセスは、たとえば主メモリ２０８、ＲＯＭ  ２２４などのメモリ内、あるいはたとえば１つまたは複数の周辺デバイス２２６および２３０内に配置可能な、コンピュータ使用可能プログラム・コードを使用する処理ユニット２０６によって実行することができる。
【００４６】
図２に示されるようなバス２３８またはバス２４０などのバス・システムは、１つまたは複数のバスからなるものとすることができる。もちろん、バス・システムは、ファブリックまたはアーキテクチャに取り付けられた異なるコンポーネントまたはデバイス間でのデータの転送を提供する、任意のタイプの通信ファブリックまたはアーキテクチャを使用して実施することができる。図２のモデム２２２またはネットワーク・アダプタ２１２などの通信ユニットは、データの送信および受信に使用される１つまたは複数のデバイスを含むことができる。たとえばメモリは、主メモリ２０８、ＲＯＭ  ２２４、または図２のＮＢ／ＭＣＨ  ２０２内に見られるようなキャッシュとすることができる。
【００４７】
当業者であれば、図１〜２内のハードウェアが実施によって変わる場合があることを理解されよう。図１〜２に示されたハードウェアに加えて、またはこれらの代わりに、フラッシュ・メモリ、等価の不揮発性メモリ、または光ディスク・ドライブなどの、他の内部ハードウェアまたは周辺デバイスを使用することも可能である。また、例示的諸実施形態の諸プロセスは、本発明の趣旨および範囲を逸脱することなく、前述のＳＭＰシステム以外のマルチプロセッサ・データ処理システムに適用することもできる。
【００４８】
さらに、データ処理システム２００は、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話または他の通信デバイス、携帯情報端末（ＰＤＡ）などを含む、いくつかの異なるデータ処理システムのうちのいずれかの形を取ることができる。いくつかの例では、データ処理システム２００は、たとえばオペレーティング・システム・ファイルあるいはユーザ生成データまたはその両方を格納するための不揮発性メモリを提供するように、フラッシュ・メモリで構成された、ポータブル・コンピューティング・デバイスとすることができる。本質的に、データ処理システム２００は、アーキテクチャ上の制限なしに、任意の既知または今後開発されるデータ処理システムとすることができる。
【００４９】
例示的諸実施形態を備えた前述の例示的な分散型データ処理システムとの関連において、第１のサーバまたはサーバのセットは、電子ビジネス・エンタープライズ向けの１つまたは複数のアプリケーションを提供することができる。サーバは、アプリケーションに対応するデータがストレージ・システムの様々なボリューム内に格納される、１つまたは複数のストレージ制御ユニットを有する、関連付けられたストレージ・システムを有することができる。電子ビジネス・エンタープライズのアプリケーションに「実動サイト」を提供するこれらのサーバに加えて、１つまたは複数の通信ネットワーク内の、位相的およびおそらくは地理的にリモートに配置された位置に、第２のサーバまたはサーバのセットが提供される。これらの第２のサーバは、アプリケーション・データをリモート・ミラーリング・オペレーションの一部として格納することが可能な、関連付けられたストレージ・システムを有することができる。したがってこれらの第２のサーバは、実動サイトで実行しているアプリケーションのフェイルオーバおよびフェイルバック回復用のアプリケーション・データを格納するために、「回復サイト」を提供する。
【００５０】
典型的には、既知のリモート・ミラーリング・オペレーションにおいて、ストレージ制御ユニットには単一の物理セッションしかないため、リモート・ミラーリング・オペレーションが実行されることになる場合、これは、ストレージ制御ボリュームによって管理されるすべてのボリュームに関して実行される。図３は、一例示的実施形態に従った、リモート・ミラーリング・オペレーションを示す例示図である。示された例では、ＰＰＲＣ−ＸＤとも呼ばれるＧｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）製品を使用して、この場合はピアツーピアのリモート・コピー・オペレーションである、リモート・ミラーリング・オペレーションが実行される。Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）は、１つのサイト（実動サイトと呼ばれる）から第２のサイト（回復サイトと呼ばれる）へのアプリケーション・システム・データのシャドウイングを可能にする、Ｅｎｔｅｒｐｒｉｓｅ  Ｓｔｏｒａｇｅ  Ｓｅｒｖｅｒ（ＥＳＳ）（IBM Corporationの商標）機能である。実動サイトのＥＳＳ内のデータを保持する論理ボリュームは１次ボリュームと呼ばれ、回復サイトのミラーリング済みデータを保持する対応する論理ボリュームは２次ボリュームと呼ばれる。一例示的実施形態では、Ｅｎｔｅｒｐｒｉｓｅ  Ｓｙｓｔｅｍｓ  Ｃｏｎｎｅｃｔｉｏｎ（ＥＳＣＯＮ）（IBM Corporationの商標）リンクを使用して、実動サイトＥＳＳと回復サイトＥＳＳとの間の接続を提供することができる。
【００５１】
図３は、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）が同期モード（ＰＰＲＣ−ＳＹＮＣ）で動作する場合の、書き込みオペレーションのシーケンスを示す。図３に示されるように、この同期タイプのオペレーションでは、実動サイトの１次ボリューム３２０に対して実行された更新は、回復サイトの２次ボリューム３３０にも同期的にシャドウイングされる。これは同期ソリューションであることから、書き込み更新は、コンピューティング・デバイス３１０上で実行中のアプリケーションに関する書き込みが完了したとみなされるまで、両方のコピー（１次および２次）で保証される。
【００５２】
ＰＰＲＣ−ＳＹＮＣオペレーションでは、アプリケーションの観点からすれば、１次ボリューム３２０および２次ボリューム３３０の両方で更新が同期的に実行されるまで、アプリケーションは「書き込み完了」状態にならないため、回復サイトの２次ボリューム３３０にあるデータは、１次ボリューム３２０にあるデータと常に一致するリアルタイム・データである。
【００５３】
この特徴の含意の１つは、通常のＰＰＲＣ−ＳＹＮＣオペレーションで、１次ボリューム３２０で適用されたシーケンスと同じシーケンスで、従属書き込みが２次ボリューム３３０で適用されることである。これは、回復の際に、アプリケーションの整合性という観点から非常に重要である。ＰＰＲＣ−ＳＹＮＣは、整合性チェックポイントを構築するためにアプリケーションに定期的に割り込む必要なしに、回復サイトで連続するデータの整合性を提供することができる。アプリケーションの観点からすれば、これは、回復ロケーションで常に有効なデータを有する非介入（non-disruptive）方法である。
【００５４】
図３では同期ＰＰＲＣオペレーションが示されているが、例示的諸実施形態のメカニズムは、同期および非同期の両方のリモート・コピー・オペレーションに対して等しく適用可能であることを理解されたい。非同期のリモート・コピー・オペレーションでは、データが２次ボリューム３３０内でコミットされるのに先立って、「書き込み完了」を１次ボリューム３２０から戻すことができる。
【００５５】
図３から明らかなように、Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）またはＰＰＲＣ−ＸＤ製品によって提供されるような既知のリモート・ミラーリング・システムでは、
ストレージ制御ユニットの物理セッションに関連付けられたすべてのアプリケーション・データおよびメタデータが、リモート・ミラーリング・オペレーションの対象でなければならない。単一のアプリケーション・インスタンスに関連付けられたデータおよびメタデータなどの、アプリケーション・データおよびメタデータのサブセットを選択し、そのアプリケーション・データおよびメタデータのサブセットに関してリモート・ミラーリング・オペレーションを実行する機能はない。
【００５６】
例示的諸実施形態は、物理セッションを、選択されたアプリケーション・ボリュームでリモート・ミラーリング・オペレーションを個々に実行するために使用可能な複数の仮想セッションに仮想化するための、メカニズムを提供する。したがって、例示的諸実施形態のメカニズムを使用すると、仮想セッションの第１のセットに関してフェイルオーバおよびフェイルバック・オペレーションなどのリモート・ミラーリング・オペレーションを実行し、他の仮想セッションは中断せずに続行することができる。したがって、ユーザには、選択的フェイルオーバ・オペレーションを介して、選択されたアプリケーション実動作業負荷を、実動サイトから回復サイトに一時的に移動させる一方で、他のアプリケーションは実動サイトで継続して実行することが可能な、柔軟性が提供される。その後、それらのフェイルオーバしたアプリケーションを実動サイトにフェイルバックして、物理セッションを再結合することができる。
【００５７】
例示的諸実施形態では、各ストレージ制御ユニット上で設計により可能なアクティブな物理セッションは１つのみであるが、この物理セッションに属するすべてのボリュームは、ユーザが別々に制御することを望む個々のアプリケーションそれぞれに従って、グループに分離することができる。個々のアプリケーションそれぞれについて仮想セッション・グループを生成するために、グループに関して、１次ボリューム、２次ボリューム、ＦｌａｓｈＣｏｐｙ（Ｒ）ボリューム、制御パス情報、およびセッション・パラメータを指定する、セッション・ポリシー・ファイルが作成される。仮想セッションは、ソース・ボリュームとターゲット・ボリューム、すなわち実動サイト・ボリュームと回復サイト・ボリュームの間に、別個の制御パス関係を必要とし、セッション・パラメータはすべてのセッション間で同じである。セッション・ポリシー・ファイルを介して、これらの別個の制御パス、別個のグループ、およびグループに関する他のセッション・パラメータが指定される。
【００５８】
図４は、一例示的実施形態に従った、セッション・ポリシー・ファイルの一例である。図４に示されたセッション・ポリシー・ファイルの例は、拡張可能マークアップ言語（ＸＭＬ）形式で提供されるが、例示的諸実施形態はこうした形式に限定されるものではない。むしろセッション・ポリシー・ファイルは、本発明の趣旨および範囲を逸脱することなく、他のマークアップ言語形式および非マークアップ言語形式を含む任意の好適な形式で提供することができる。
【００５９】
図４に示されるように、セッション・ポリシー・ファイルの第１の部分４１０は、非同期ピアツーピア・リモート・コピー（ＰＰＲＣ）オペレーションで使用されることになる、たとえば「Ｓｈａｒｋ」（IBM Corporationの商標）またはエンタープライズ・ストレージ・システム（ＥＳＳ）などの、ストレージ・サーバを識別する。ＰＰＲＣオペレーションは、アプリケーション・データのボリュームを、実動サイトから位相的にリモートに配置された回復サイトへとコピーする、リモート・ミラーリング・オペレーションである。Ｇｌｏｂａｌ  Ｍｉｒｒｏｒ（ＴＭ）は、こうしたＰＰＲＣオペレーションの一例である。
【００６０】
セッション・ポリシー・ファイルの第２の部分４２０は、リモート・ミラーリング・オペレーションを実行するために使用されることになる、実動サイトと回復サイトとの間の制御パスを識別する。示された例では、物理セッションの一部である２つの別個のボリューム・グループそれぞれについて、２つの別々の制御パスが定義される。
【００６１】
セッション・ポリシー・ファイルの第３の部分４３０は、セッション識別子、整合性グループ間隔、最大整合性グループ排出時間、最大調整タイマ、マスタ・ストレージ・ユニット、すなわちｍａｓｔｅｒ  ｌｓｓなどを含む、物理セッションに関するセッション識別子および他のパラメータを識別する。第３の部分４３０におけるこれらのセッション・パラメータは、セッション・ポリシー・ファイルに指定されたすべてのボリューム・グループに適用する。
【００６２】
セッション識別子は、ボリュームの整合性コピーを作成する場合にまとめて管理される、ストレージ・ボリュームの集まりを表す、物理セッションを表すユニーク番号である。このストレージ・ボリュームの集まりは、あるドメイン内の、１つまたは複数の論理ストレージ・サブシステム（ＬＳＳ）および１つまたは複数のエンタープライズ・ストレージ・システム（ＥＳＳ）内に常駐することができる。物理セッションは、ＰＰＲＣ環境に関与している各ＬＳＳに対してオープンでなければならない。ＬＳＳ上であるセッションがオープンな場合、そのＬＳＳからのボリュームを物理セッションに追加できることを意味する。
【００６３】
ｃｇｉｎｔｅｒｖａｌパラメータは、データのグローバルな整合性を維持するために整合性グループを形成するための時間である。ｍａｘｄｒａｉｎｔｉｍｅパラメータは、最大整合性グループ排出時間である。ｍａｘｃｏｏｒｄｉｎａｔｅｉｎｔｅｒｖａｌパラメータは、最大調整タイマである。ｍａｓｔｅｒ  ｌｓｓパラメータは、他のＬＳＳを制御するマスタＥＳＳ内のＬＳＳである。マスタとは、整合性グループの作成を制御するためおよび物理セッションを管理するために従属ＥＳＳと通信する、ＥＳＳ内部の機能に関する用語である。マスタは、マスタＥＳＳ内で物理セッション開始／再開コマンドがＬＳＳに対して発行される場合に定義される。
【００６４】
セッション・ポリシー・ファイルの第４の部分４４０では、物理セッションに関するボリューム・グループが指定される。図４に示されるように、２つの別々のボリューム・グループがボリューム「ｒｅｌａｔｉｏｎｓｈｉｐ」として識別される。これら別々のボリューム・グループは、たとえば特定のユーザまたは企業エンティティ用の実動サイトに提供される、異なるアプリケーションまたはアプリケーション・インスタンスに関連付けることができる。
【００６５】
図４に示されたような個々のセッション・ポリシー・ファイルは、ＸＭＬパーサを使用することなどによって解析され、それぞれが対応するストレージ制御ユニットへの接続オブジェクト、パス接続オブジェクト、およびストレージ制御ユニットに関連付けられた物理ストレージ・デバイスを表すボリューム・オブジェクトを含む、個々のセッション・データ・オブジェクトに変換することができる。セッション・ポリシー・ファイルの第４の部分４４０に指定された各ボリューム・グループは、仮想セッションに関する別々のセッション・データ・オブジェクトを生成するための基本とすることができる。すべての仮想セッション・データ・オブジェクト、すなわち「サブセッション」オブジェクトを含む、単一の統合最高位（supreme）セッション・オブジェクトも提供可能である。この最高位セッション・オブジェクトは、ストレージ制御ユニットの実物理セッションを表す。
【００６６】
図５は、一例示的実施形態に従った、セッション・ポリシー・ファイルに基づいて生成されるオブジェクト間の関係を示す例示図である。図５に示されるように、セッション・ポリシー・ファイルから、ストレージ制御ユニットの実際の物理セッションを表す物理セッション・オブジェクト５１０が提供される。物理セッション・オブジェクト５１０は、セッション・ポリシー・ファイル内のボリューム・グループ定義から生成される仮想セッション・オブジェクト５２０および５３０を含む。これらの仮想セッション・オブジェクト５２０および５３０は、それぞれ、特定のストレージ制御ユニットに接続するための関連付けられた接続オブジェクト５２２および５３２と、セッション・ポリシー・ファイル内に指定されたボリューム・グループに関する制御パス情報に基づいて生成されるパス接続オブジェクト５２４および５３４とを有する。加えて、さらに仮想セッション・オブジェクト５２０および５３０は、仮想セッションの一部であるそれぞれのボリュームに関するボリューム・オブジェクト５２６および５３６を有する。
【００６７】
図５に示された様々なオブジェクトは、個々のボリューム・グループ、たとえば個々のアプリケーションまたはアプリケーション・インスタンスに関して、リモート・ミラーリング・オペレーションの性能を制御するために、例示的諸実施形態のメカニズムによって使用される。これらのオブジェクトを備えた個々のボリューム・グループをリモート・ミラーリング・オペレーションの対象とし、同じ物理セッション内の他のボリューム・グループは変更されないままとすることができる。したがって、個々のアプリケーションをリモート・ミラーリング・オペレーションの対象とし、実動サイトの他のアプリケーションがリモート・ミラーリング・オペレーションからの干渉なしに動作を続行できるようにすることができる。
【００６８】
図５に示されたオブジェクトを備える物理セッション・オブジェクト５１０は、オペレーション・スレッド・グループ（ＯＴＧ）５１２およびタスク命令ポインタ（ＴＩＰ）５１４を含む。ＯＴＧ  ５１２内の個々のスレッドは、仮想セッション間を区別するための関連付けられたユニーク・セッション識別子（ＵＳＩ）を有する。ＯＴＧ  ５１２、ＴＩＰ  ５１４、およびＵＳＩは、同じ単一物理セッション内の複数の仮想セッションを調整するために、例示的諸実施形態のメカニズムによって利用される。
【００６９】
例示的諸実施形態では、特定仮想セッションのフェイルオーバまたはフェイルバックなどの各リモート・ミラーリング・オペレーションについて、すべての仮想セッションが同じ単一のスレッド・グループ、すなわちＯＴＧ  ５１２に属するスレッドとして動作されることになる。
【００７０】
タスク命令ポインタ（ＴＩＰ）５１４は、ＯＴＧ  ５１２のグローバル・ポインタである。ＴＩＰ  ５１４は、リモート・ミラーリング・オペレーションにおけるそれらの特定のステップが完了した後に、個々のスレッドによって更新される。物理セッションの保全性および整合性を維持するために、ＯＴＧ  ５１２内の各スレッドによってＴＩＰ  ５１４全体が正常に更新されるまで、いかなる単一スレッドも処理できないことが重要である。別の方法として、ＴＩＰ  ５１４の更新が成功しなかった場合、あらゆるスレッドは、ＴＩＰ  ５１４のこうしたスレッド更新が成功するか、または、失敗したステップを訂正するための訂正アクションが実行され、特定スレッドの特定の失敗したステップが正常に再実行されるまで、待機しなければならない。スレッド・オペレーションが、ユニーク・セッション識別子（ＵＳＩ）に基づいてある種のステップを「スキップ」するように要求した場合、その特定のスレッドは、ＯＴＧ  ５１２が次のステップに進むために、ＴＩＰ  ５１４を「成功」として更新することになる。
【００７１】
ＯＴＧ  ５１２内の各スレッドには、フェイルオーバまたはフェイルバック・オペレーションを実行するためのセッションのユーザ選択に基づくユニーク・セッション識別子（ＵＳＩ）が割り当てられる。ＵＳＩの目的は、各スレッドが、リモート・ミラーリング・オペレーションの各ステップを実行し、それらに別々に応答できるようにすること、たとえば、次のステップを実行するためにＴＩＰ  ５１４を更新または探索するか否かを決定することである。
【００７２】
したがってＵＳＩは、個々のスレッドが、フェイルオーバまたはフェイルバック・オペレーションなどのリモート・ミラーリング・オペレーションの各ステップで、別々のアクションを実行できるようにする。ＴＩＰ  ５１４は、ＯＴＧ  ５１２内のすべての他のスレッドがリモート・ミラーリング・オペレーションにおけるそれら自体の次のアクションに進む準備ができるまで、いかなるスレッドもリモート・ミラーリング・オペレーションにおける次のアクションに進むことができないように、ＯＴＧ  ５１２の様々なスレッド間の整合性を提供するために使用される。したがって、ＴＩＰ  ５１４は物理セッションの整合性を維持する責務を負い、ＵＳＩは、各スレッドがＯＴＧ  ５１２内の他のスレッドとは別に動作できるようにする責務を負う。これら２つのメカニズムと、ポリシー・オブジェクト、接続オブジェクト、およびボリューム・オブジェクトの組み合わせによって、ストレージ制御ユニットの物理セッション内の個々の仮想セッションが、物理セッション内の他の仮想セッションとは独立にリモート・ミラーリング・オペレーションを受けられるようになる。したがって、個々のアプリケーションに関連付けられたボリュームは、リモート・ミラーリング・オペレーションを受けられるが、他の個々のアプリケーションに関連付けられた他のボリュームは、リモート・ミラーリング・オペレーションを受けずに動作を続行することができる。
【００７３】
図６は、一例示的実施形態に従った、リモート・ミラーリング・オペレーションを示す例示図である。図６に示されるように、例示的諸実施形態のリモート・ミラーリング・オペレーションは、個々のアプリケーション・インスタンス６２０に関連付けられたボリューム６１０はリモート・ミラーリング・オペレーションを受けられるが、他のアプリケーション・インスタンス６３０および６４０は、実動サイト６５０において通常の様式で動作を続行できるようにする。たとえば、アプリケーション・インスタンス６２０に関連付けられたボリューム６１０は、実動サイト６５０と、位相的およびオプションで地理的にリモートに配置された回復サイト６６０との間で、ピアツーピア・リモート・コピー（ＰＰＲＣ）オペレーションの対象とすることができる。
【００７４】
図３に示された既知のリモート・ミラーリング・オペレーションとは対照的に、例示的諸実施形態は、リモート・ミラーリング・オペレーションのより微細な適用のためのメカニズムを提供する。リモート・ミラーリング・オペレーションのこの微細な適用は、おそらく例示的諸実施形態の仮想化およびリモート・ミラーリング・オペレーション制御メカニズムを介して作られる。リモート・ミラーリング・オペレーション制御メカニズムには、以下で説明するように、リモート・ミラーリング・オペレーション中のボリューム・グループ間の整合性を維持しながら、単一のボリューム・グループへのリモート・ミラーリング・オペレーションの適用を制御するための、ＯＴＧ、ＴＩＰ、およびＵＳＩの使用が含まれる。
【００７５】
一般に、実動サイトのストレージ・サーバがリモート・ミラーリング・オペレーションを実行するためのものである場合、リモート・ミラーリング・オペレーションは、スケジュール、ユーザ入力などに応答して開始される。リモート・ミラーリング・オペレーションを実行するためのコマンドは、物理セッション・オブジェクトによって維持されるそれぞれの仮想セッション・オブジェクトについてのスレッドをＯＴＧに作成させる、物理セッション・オブジェクトに提供される。各スレッドには、作成されたスレッドを管理するためにＯＴＧが使用するＵＳＩが提供される。物理セッション・オブジェクトのＴＩＰは、初期値に初期化される。ＴＩＰは、たとえば、ＯＴＧ内に各スレッド用のビットを含むことが可能であり、これらのビットを初期値に設定することができる。
【００７６】
物理セッションを仮想化するために使用されるメカニズムが初期化され、ＯＴＧの様々なスレッドの制御メカニズムが初期化されると、物理セッション・オブジェクトを使用してリモート・ミラーリング・オペレーションが実行される。リモート・ミラーリング・オペレーションで実行される諸ステップは、実行されるリモート・ミラーリング・オペレーションのタイプによって異なる。例示の目的で、ＯＴＧ内の異なるスレッドによって表された様々な仮想セッションを制御するための例示的諸実施形態の制御メカニズムを例示するために、オペレーションの例としてフェイルオーバ・リモート・ミラーリング・オペレーションが使用されることになる。
【００７７】
図７は、一例示的実施形態に従った、仮想セッションに関するフェイルオーバ・オペレーションの様々なステップを示す例示図である。フェイルオーバ・オペレーションでは、マスタ物理制御ユニット、すなわちストレージ・サーバ・コントローラが、フェイルオーバ・オペレーションを制御する責務を負うことに留意されたい。マスタ物理制御ユニットは、セッション・パラメータの一部としてグローバル・ミラーリング・セッション用に指定される。他のストレージ・サーバ・コントローラは、そのグローバル・ミラーリング・セッション用のマスタ物理制御ユニットに従属する。
【００７８】
フェイルオーバ・オペレーションにおいて、フェイルオーバ・オペレーションの第１のステップは、すべてのストレージ・デバイスがそれらの最新の整合性グループの形成を完了するように、物理セッションを休止することである。したがって、実動サイトのボリュームは「フェイルオーバ」、たとえば、ピアツーピア・リモート・コピー・オペレーションを使用して、位相的にリモートに配置された回復サイトにリモートにコピーされる。フェイルオーバ・オペレーションが実行された後、フェイルオーバされたボリュームのＦｌａｓｈＣｏｐｙを実行し、それによってフェイルオーバ・ボリュームのグローバルに整合性のあるコピーを更新することができる。このフェイルオーバ・オペレーションは、図７に示された様式で例示的諸実施形態によって修正され、その結果、フェイルオーバは物理セッション内の個々のボリューム・グループに関して実行される。
【００７９】
図７に示されるように、必要なフェイルオーバ・オペレーションを実行するためのＯＴＧ内のスレッドの初期化の一部として、物理セッションに関してリモート・ミラーリング・オペレーション全体を制御するために使用される主セッション・スレッドである、第１のスレッド７１０が生成される。第１の仮想セッション・オブジェクトに提供される第２のスレッド７２０と、第２の仮想セッション・オブジェクトに提供される第３のスレッド７３０と、第３の仮想セッション・オブジェクトに提供される第４のスレッド７３０とを含む、他の仮想セッションのそれぞれについて、追加のスレッドが作成される。これらのスレッドはそれぞれＯＴＧの一部であり、ＯＴＧが異なるオペレーションを異なるスレッド７１０〜７４０ごとに実行させるために使用する、それ自体のユニークＵＳＩを有する。
【００８０】
示された例では、フェイルオーバ・オペレーションは、第１の仮想セッションに関連付けられた第１のボリューム・グループＡと、位相的にリモートに配置された回復サイトの第２のボリューム・グループＢとの間で実行される。その一方で、他の仮想セッションに関連付けられた他のボリューム・グループは、フェイルオーバ・オペレーションの対象ではない。
【００８１】
図７に示されるように、第１に主セッション・スレッド７１０は、物理セッションを休止するための休止オペレーションを実行するために使用され、その結果、すべてのストレージ・デバイスがそれらの最新の整合性グループの形成を終了することになる。休止オペレーションが正常に完了すると、主セッション・スレッド７１０に関連付けられたＴＩＰビットが指定の値、たとえば０に設定される。
【００８２】
前述のように、仮想セッション間の整合性を保証するために、リモート・ミラーリング・オペレーション全体を次のステップに進める前に、各スレッドはそれらの関連付けられたＴＩＰビットを指定の値、たとえば０に更新しなければならない。したがって、他のスレッド７２０〜７４０はそれぞれ、スレッドに関連付けられたＴＩＰビットのみが正常終了（successfully complete）値に設定される、スキップ・オペレーションを実行する。
【００８３】
各スレッド７１０〜７４０では、ＴＩＰビット値がすべて正常終了値に設定されたかどうかに関して判定が行われる。ＴＩＰビット値が正常終了となるように更新された場合にのみ、スレッド７１０〜７４０はそれぞれ、次のステージに進むことができるようになる。すべてのＴＩＰビット値が正常終了値に設定されていない場合、スレッド７１０〜７４０は、ＴＩＰビット値が正常終了値に更新されるまでスレッドが待機する、待機オペレーションに入る。すべてのＴＩＰビット値が正常終了を示すと、リモート・ミラーリング・オペレーションを次のステージへと続行させることが可能であり、ＴＩＰビット値はそれらの初期値にリセットされる。
【００８４】
フェイルオーバ・オペレーションの次のステージでは、ＴＩＰビット値を更新することにより、すべてのスレッド７１０〜７４０が正常終了を示した後、第１の仮想セッション・オブジェクトに関連付けられた第２のスレッド７２０を使用してフェイルオーバ・オペレーションが実行される。このフェイルオーバ・オペレーションは、実動サイトの第１のボリューム・グループＡから、位相的にリモートに配置された回復サイトの第２のボリューム・グループＢへの、ピアツーピア・リモート・コピー・オペレーションを実行する。フェイルオーバ・オペレーションの正常終了後、第２のスレッド７２０は、フェイルオーバ・オペレーションが正常に終了したことを示す対応するＴＩＰビット値を更新する。
【００８５】
他のスレッド７１０および７３０〜７４０は、スキップ・オペレーションを実行し、それらの対応するＴＩＰビット値を、正常終了を示すように更新する。再度、各スレッド７１０〜７４０において、ＴＩＰビット値が各スレッド７１０〜７４０におけるオペレーションの正常終了を示すかどうかに関して、判定が行われる。正常終了を示す場合、フェイルオーバ・オペレーションは次のステップに進むことが可能であり、示さない場合、スレッドは、すべてのスレッドによって正常終了が示されるまで待機オペレーションに入る。
【００８６】
フェイルオーバ・オペレーションの第３のステージで、主セッション・スレッド７１０は、第２のスレッド７２０に関連付けられた仮想セッション（ＶＳ１）を物理セッションから除去する。ＶＳ１がフェイルオーバした場合、（物理セッション全体に対する初期休止後）残りの仮想セッションがグローバル・ミラー・オペレーションを再開することになるため、この除去が実行される。ＶＳ１セッションを除去するために、ＶＳ１関係セッション・オブジェクト（ボリューム、接続、パスなど）が主物理セッションから除去され、結果として、物理セッションはＶＳ１コンテンツでグローバル・ミラー・オペレーションを続行することになる。
【００８７】
ＶＳ１の除去が実行されている間、他のスレッド７２０〜７４０は、フェイルオーバ・オペレーションの以前のステップと同様に、スキップ・オペレーションを実行する。その後、主セッション・スレッド７１０は、物理セッションの一部を残す他の仮想セッション７３０〜７４０に関連付けられたアプリケーション・インスタンスを再開する。他のスレッド７２０〜７４０はスキップ・オペレーションを実行する。その後、主セッション・スレッド７１０および仮想セッション・スレッド７３０〜７４０は終了する。
【００８８】
フェイルオーバ・オペレーションの対象である仮想セッションに関連付けられたスレッド７２０は、ボリューム・グループＢとＦｌａｓｈＣｏｐｙボリューム・グループＣとの間でＦｌａｓｈＣｏｐｙオペレーションが実行されている状態が続行される。その後、第２のスレッド７２０は、第２のスレッド７２０に関連付けられた仮想セッションに関連付けられたボリューム上でＩ／Ｏオペレーションを終了または開始する。
【００８９】
前述のオペレーション・シーケンスで、ＯＴＧは様々なスレッド７１０〜７４０のＵＳＩを使用して、前述の様々なオペレーションを実行するための命令をディスパッチする。フェイルオーバ・オペレーションは仮想セッション（ＶＳ１）に関連付けられたストレージ・ボリューム・グループＡに関して実行されるため、フェイルオーバおよびＦｌａｓｈＣｏｐｙ命令は、このスレッド７２０に関連付けられたＵＳＩを使用して第２のスレッド７２０にディスパッチされることになる。同様に、フェイルオーバ・オペレーションの制御に関連付けられた命令は、フェイルオーバ・オペレーションに関するＯＴＧをセットアップするため、および他の仮想セッションに関連付けられたストレージ・ボリューム・グループに関連付けられたアプリケーション・インスタンスを再開するために必要な、オペレーションを実行する、その関連付けられたＵＳＩを使用して第１のスレッド７１０に発行される。フェイルオーバ・オペレーションの一部ではない他のスレッドには、基本的にはこれらのスレッドにいかなるアクションも実行させないために、それらのＵＳＩに基づいてスキップ命令が発行される。
【００９０】
したがって、前述の内容から、仮想セッション２（ＶＳ２）および仮想セッション３（ＶＳ３）に関連付けられたストレージ・ボリューム・グループはフェイルオーバされないが、仮想セッション１（ＶＳ１）に関連付けられたストレージ・ボリューム・グループは、位相的にリモートに配置された回復サイト、すなわち、ストレージ・ボリューム・グループＣへのＦｌａｓｈＣｏｐｙを備えたストレージ・ボリューム・グループＢへと、フェイルオーバされることが理解されよう。したがって、例示的諸実施形態のメカニズムを使用して、ストレージ制御ユニットの物理セッション内にある１セットのストレージ・ボリュームを、リモート・ミラーリング・オペレーションの対象とし、物理セッション内のその他は対象としないことができる。
【００９１】
図８は、例示的実施形態に従った、例示的フェイルオーバ・オペレーションの概略を示す流れ図である。流れ図の各ブロックおよび流れ図内のブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることを理解されよう。これらのコンピュータ・プログラム命令を、マシンを製造するためにプロセッサまたは他のプログラム可能データ処理装置に提供し、その結果、プロセッサまたは他のプログラム可能データ処理装置上で実行する命令が、流れ図のブロックに指定された機能を実施するための手段を作成することができる。特定の様式で機能するようにプロセッサまたは他のプログラム可能データ処理装置に命令可能なこれらのコンピュータ・プログラム命令を、コンピュータ読み取り可能メモリまたはストレージ媒体内に格納し、その結果、コンピュータ読み取り可能メモリまたはストレージ媒体内に格納された命令が、流れ図のブロックに指定された機能を実施する命令手段を含む製品を製造することもできる。
【００９２】
したがって、流れ図のブロックは、指定された機能を実行するための手段の組み合わせ、指定された機能を実行するためのステップの組み合わせ、および指定された機能を実行するためのプログラム命令手段をサポートする。流れ図の各ブロックおよび流れ図内のブロックの組み合わせが、指定された機能を実行する特定用途向けハードウェア・ベースのコンピュータ・システムによって、または特定用途向けハードウェアおよびコンピュータ命令の組み合わせによって、実施可能であることも理解されよう。
【００９３】
図８に示されるように、オペレーションはリモート・ミラーリング・オペレーションを開始するためのコマンドを受け取ることによって開始される（ステップ８１０）。リモート・ミラーリング・オペレーション・コマンドに応答して、ＯＴＧが初期化される（ステップ８２０）。前述のように、この初期化は、各仮想セッションに関するスレッド、ならびにリモート・ミラーリング・オペレーションを調整および制御するための主セッション・スレッドの、作成を含むことができる。さらにこの初期化は、各スレッドへのＵＳＩの割り当て、およびＴＩＰビット値のそれらの初期値への設定を含むこともできる。
【００９４】
リモート・ミラーリング・オペレーションの次のステージに関連付けられた命令が、作成された各スレッドにディスパッチされる（ステップ８３０）。スレッドは、リモート・ミラーリング・オペレーションの現在のステップに対して、ディスパッチされた命令を実行する（ステップ８４０）。すべてのスレッドがそれらのそれぞれの命令の正常終了を示したかどうかに関して、判定が行われる（ステップ８５０）。正常終了を示していない場合、オペレーションは、すべてのスレッドが正常終了を示すまで待機する（ステップ８６０）。
【００９５】
すべてのスレッドが正常終了を示す場合、リモート・ミラーリング・オペレーションが完了したかどうかに関して判定が行われる（ステップ８７０）。完了していない場合、オペレーションはステップ８３０に戻り、リモート・ミラーリング・オペレーションの次のステージに対する命令がディスパッチされる。リモート・ミラーリング・オペレーションが完了した場合、オペレーションは終了する。
【００９６】
前述の図７および図８は、フェイルオーバ・オペレーションの性能を対象としているが、フェイルバック・オペレーションに関して同様のオペレーションが実行可能であることに留意されたい。フェイルバック・オペレーションでは、物理ストレージ・ボリュームが使用可能になった場合、フェイルオーバ・オペレーションの後、たとえば管理者が管理者のワークステーションを介して、実動サイト・システムにフェイルバック・コマンドをサブミットすることによって、フェイルバック・オペレーションを開始することができる。ピアツーピア・リモート・コピー・パスは、アプリケーション・インスタンスに関する仮想セッションの作成と共に、実動サイトと回復サイトの間で再確立することができる。その後、確立された仮想セッションを使用して、アプリケーション・インスタンスに関して回復サイト・ボリュームに格納されたデータを、実動サイト・ボリュームおよび実動サイト・システム上で再開されたアプリケーション・インスタンスにフェイルバックすることができる。こうしたフェイルバックは、物理セッションの一部である他の仮想セッションとは独立に実行可能であるため、結果として他の仮想セッションは、通常の機能モードで動作を続行することができる。
【００９７】
このようにして例示的諸実施形態は、ストレージ制御ユニットの物理セッション内にある個々のボリューム・グループをリモート・ミラーリング・オペレーションの対象とすることが可能なメカニズムを提供する。したがって、既知のリモート・ミラーリング・オペレーションとは対照的に、例示的諸実施形態では、ストレージ制御ユニットの物理セッションの仮想化を介して、実動サイトと回復サイトとの間でミラーリングされることになるデータおよびメタデータのより微細な選択を提供し、データおよびメタデータがミラーリング・オペレーションの一部ではないアプリケーション・インスタンスが、オペレーションを続行できるようにする。
【００９８】
以上、本発明について、完全に機能しているデータ処理システムとの関連において説明してきたが、当業者であれば、本発明の諸プロセスが命令のコンピュータ読み取り可能媒体の形、プログラムそのものの形、および多種多様な形で配布可能であること、ならびに本発明が、配布を実施するために実際に使用される特定タイプの信号搬送媒体にはかかわらず等しく適用されることに留意されたい。コンピュータ読み取り可能媒体の例には、フロッピィ・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの、書き込み可能タイプの媒体、ならびに、デジタルおよびアナログの通信リンク、たとえば無線周波および光信号伝送などの伝送形式を使用する有線または無線の通信リンクなどの、伝送タイプの媒体が含まれる。コンピュータ読み取り可能媒体は、特定のデータ処理システムで実際に使用するために復号される、符号化フォーマットの形を取ることができる。
【００９９】
本発明について提示してきた説明は、例示および説明を目的とするものであって、本発明を網羅することまたは開示された形に限定することは意図されていない。当業者であれば、多くの修正形態および変形形態が明らかとなろう。実施形態は、本発明の原理、実際の応用例について最も良く説明するため、および、当業者が企図された特定の用途に合わせた様々な修正形態を備える様々な諸実施形態について、本発明を理解できるようにするために、選択および説明したものである。
【図面の簡単な説明】
【０１００】
【図１】例示的諸実施形態の例示的態様が実施可能な分散型データ処理環境を示す、例示図である。
【図２】例示的諸実施形態の例示的態様が実施可能なデータ処理デバイスを示す、例示的ブロック図である。
【図３】一例示的実施形態に従った、リモート・ミラーリング・オペレーションを示す例示図である。
【図４】一例示的実施形態に従った、セッション・ポリシー・ファイルの一例を示す図である。
【図５】一例示的実施形態に従った、セッション・ポリシー・ファイルに基づいて生成されるオブジェクト間の関係を示す例示図である。
【図６】一例示的実施形態に従った、ミラーリング・オペレーションを示す例示図である。
【図７】一例示的実施形態に従った、仮想セッションに関するフェイルオーバ・オペレーションの様々なステップを示す例示図である。
【図８】例示的実施形態に従った、例示的フェイルオーバ・オペレーションの概略を示す流れ図である。
【符号の説明】
【０１０１】
５１０    物理セッション・オブジェクト
５１２    ＯＴＧ
５１４    ＴＩＰ
５２０    仮想セッション１オブジェクト
５２２    接続オブジェクト
５２４    パス接続オブジェクト
５２６    ボリューム・オブジェクト
５３０    仮想セッション２オブジェクト
５３２    接続オブジェクト
５３４    パス接続オブジェクト
５３６    ボリューム・オブジェクト
【図１】
0005235338.tif 000002
【図２】
0005235338.tif 000003
【図３】
0005235338.tif 000004
【図４】
0005235338.tif 000005
【図５】
0005235338.tif 000006
【図６】
0005235338.tif 000007
【図７】
0005235338.tif 000008
【図８】
0005235338.tif 000009