(57)【特許請求の範囲】
【請求項１】
ストレージ・エリア・ネットワークを介してホスト・コンピュータに結合された、第１のボリューム及び第２のボリュームに関するトランスペアレントな同期ミラーリング・ボリューム・スイッチングを、
前記第１のボリュームと前記第２のボリュームとの間の状態データの同期を開始することと、
第１のボリュームと関連したポートを含む第１のターゲット・ポート・グループの状態をアクティブ状態に設定することにより、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定し、
第２のボリュームと関連したポートを含む第２のターゲット・ポート・グループの状態を非アクティブ状態に設定することにより、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を非アクティブ状態に設定することにより、前記第１のボリュームをアクティブ状態に設定し、前記第２のボリュームを非アクティブ状態に設定することと、
前記第１のボリュームをアクティブ状態に、前記第２のボリュームを非アクティブ状態に設定した後の前記第２のターゲット・ポート・グループの前記設定状態の後に、前記アクティブな第１のボリュームを前記非アクティブな第２のボリュームにコピーすることであって、前記アクティブな第１のボリュームは前記アクティブな第１のボリュームを識別する識別子を含み、前記識別子は前記アクティブな第１のボリュームが前記非アクティブな第２のボリュームにコピーされることを示す、前記第１のボリュームをコピーすることと、
前記第１のボリュームを非アクティブ状態に設定した後、前記ホスト・コンピュータによって、前記ホスト・コンピュータと前記第１のボリュームとの間のパスを、前記ホスト・コンピュータと前記第２のボリュームとの間のパスと連結するために、前記非アクティブな第２のボリュームから前記第１のボリュームを識別する識別子を取り出すことと、
前記識別子を取り出した後、前記非アクティブな第２のボリュームを前記ホスト・コンピュータにマッピングすることと、
によって構成することであって、前記第１のボリュームは前記ホスト・コンピュータにマッピングされている、構成することを含む方法。
【請求項２】
前記アクティブな第１のボリュームを前記非アクティブな第２のボリュームに同期ミラーリングすることを含む、請求項１に記載の方法。
【請求項３】
前記コピーされた識別子を取り出すことは、前記連結の後、前記第１のボリューム及び前記第２のボリュームを単一のマルチパス・デバイスとして識別する、請求項１に記載の方法。
【請求項４】
前記第１のボリュームから前記第２のボリュームへの同期ミラーリングを構成することの後で、
前記アクティブな第１のボリュームの状態を前記非アクティブ状態に設定することと、
前記非アクティブな第２のボリュームの状態を前記アクティブ状態に設定することと、
を含む、請求項１に記載の方法。
【請求項５】
前記アクティブな第２のボリュームを前記非アクティブな第１のボリュームに同期ミラーリングすることを含む、請求項４に記載の方法。
【請求項６】
前記アクティブな第１のボリュームの状態を前記非アクティブ状態に設定することは、前記第１のボリュームと関連したターゲット・ポート・グループの状態を前記非アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記非アクティブ状態に設定することを含む、請求項４に記載の方法。
【請求項７】
前記非アクティブな第２のボリュームの状態を前記アクティブ状態に設定することは、前記第２のボリュームと関連したターゲット・ポート・グループの状態を前記アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定することを含む、請求項６に記載の方法。
【請求項８】
前記状態データは、永続予約テーブル及びシン・プロビジョニング割り当てデータを含むリストから選択される、請求項１に記載の方法。
【請求項９】
前記非アクティブな第１のボリュームの状態を前記アクティブ状態に設定することは、前記第１のボリュームと関連したターゲット・ポート・グループの状態を前記アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定することを含む、請求項４又は６に記載の方法。
【請求項１０】
前記アクティブな第２のボリュームの状態を前記非アクティブ状態に設定することは、前記第２のボリュームと関連したターゲット・ポート・グループの状態を前記非アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を前記非アクティブ状態に設定することを含む、請求項４又は６に記載の方法。
【請求項１１】
トランスペアレントな同期ミラーリング・ボリューム・スイッチングを構成するための装置であって、
第１のボリュームと、
第２のボリュームと、
ホスト・コンピュータ、前記第１のボリューム及び前記第２のボリュームを結合するように構成されたストレージ・エリア・ネットワーク（ＳＡＮ）と、
前記第２のボリュームに結合されたメモリと、
前記第１のボリュームを前記ホスト・コンピュータにマッピングして、前記マッピングされた前記第１のボリュームと前記第２のボリュームとの間の状態データの同期を開始することと、
第１のボリュームと関連したポートを含む第１のターゲット・ポート・グループの状態をアクティブ状態に設定することにより、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定し、
第２のボリュームと関連したポートを含む第２のターゲット・ポート・グループの状態を非アクティブ状態に設定することにより、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を非アクティブ状態に設定することにより、前記第１のボリュームをアクティブ状態に設定し、前記第２のボリュームを非アクティブ状態に設定することと、
前記第１のボリュームをアクティブ状態に、前記第２のボリュームを非アクティブ状態に設定した後の前記第２のターゲット・ポート・グループの前記設定状態の後に、前記アクティブな第１のボリュームを前記非アクティブな第２のボリュームにコピーすることであって、前記アクティブな第１のボリュームは前記アクティブな第１のボリュームを識別する識別子を含み、前記識別子は前記アクティブな第１のボリュームが前記非アクティブな第２のボリュームにコピーされることを示す、前記第１のボリュームをコピーすることと、
前記第１のボリュームを非アクティブ状態に設定した後、前記ホスト・コンピュータによって、前記ホスト・コンピュータと前記第１のボリュームとの間のパスを、前記ホスト・コンピュータと前記第２のボリュームとの間のパスと連結するために、前記非アクティブな第２のボリュームから前記第１のボリュームを識別する識別子を取り出すことと、
前記識別子を取り出した後、前記非アクティブな第２のボリュームを前記ホスト・コンピュータにマッピングするように構成されたプロセッサと、
を備える装置。
【請求項１２】
前記プロセッサは、前記アクティブな第１のボリュームを前記非アクティブな第２のボリュームに同期ミラーリングするように構成される、請求項１１に記載の装置。
【請求項１３】
前記コピーされた識別子を取り出すことは、前記連結の後、前記ホスト・コンピュータは、前記第１のボリューム及び前記第２のボリュームを単一のマルチパス・デバイスとして識別する、請求項１１に記載の装置。
【請求項１４】
トランスペアレントな同期ミラーリング・ボリューム・スイッチングを構成した後に、前記プロセッサは、前記アクティブな第１のボリュームの状態を前記非アクティブ状態に設定し、且つ、前記非アクティブな第２のボリュームの状態を前記アクティブ状態に設定するように構成される、請求項１１に記載の装置。
【請求項１５】
前記プロセッサは、前記アクティブな第２のボリュームを前記非アクティブな第１のボリュームに同期ミラーリングするように構成される、請求項１４に記載の装置。
【請求項１６】
前記プロセッサは、前記第１のボリュームと関連したターゲット・ポート・グループの状態を前記非アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記非アクティブ状態に設定することによって、前記アクティブな第１のボリュームの状態を前記非アクティブ状態に設定するように構成される、請求項１４に記載の装置。
【請求項１７】
前記プロセッサは、前記第２のボリュームと関連したターゲット・ポート・グループの状態を前記アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定することによって、前記非アクティブな第２のボリュームの状態を前記アクティブ状態に設定するように構成される、請求項１４に記載の装置。
【請求項１８】
前記状態データは、永続予約テーブル及びシン・プロビジョニング割り当てデータを含むリストから選択される、請求項１１に記載の装置。
【請求項１９】
前記プロセッサは、前記第１のボリュームと関連したターゲット・ポート・グループの状態を前記アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定することによって、前記非アクティブな第１のボリュームの状態を前記アクティブ状態に設定するように構成される、請求項１１に記載の装置。
【請求項２０】
前記プロセッサは、前記第２のボリュームと関連したターゲット・ポート・グループの状態を前記非アクティブ状態に設定し、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を前記非アクティブ状態に設定することによって、前記アクティブな第２のボリュームの状態を前記非アクティブ状態に設定するように構成される、請求項１１に記載の装置。
【請求項２１】
ストレージ・エリア・ネットワークを介してホスト・コンピュータに結合された、第１のボリューム及び第２のボリュームに関するトランスペアレントな同期ミラーリング・ボリューム・スイッチングを構成するためのコンピュータ・プログラムであって、
前記第１のボリュームと前記第２のボリュームとの間の状態データの同期を開始することと、
第１のボリュームと関連したポートを含む第１のターゲット・ポート・グループの状態をアクティブ状態に設定することにより、それにより前記ホスト・コンピュータと前記第１のボリュームとの間の全ての論理パスの状態を前記アクティブ状態に設定し、
第２のボリュームと関連したポートを含む第２のターゲット・ポート・グループの状態を非アクティブ状態に設定することにより、それにより前記ホスト・コンピュータと前記第２のボリュームとの間の全ての論理パスの状態を非アクティブ状態に設定することにより、前記第１のボリュームをアクティブ状態に設定し、前記第２のボリュームを非アクティブ状態に設定することと、
前記第１のボリュームをアクティブ状態に、前記第２のボリュームを非アクティブ状態に設定した後の前記第２のターゲット・ポート・グループの前記設定状態の後に、前記アクティブな第１のボリュームを前記非アクティブな第２のボリュームにコピーすることであって、前記アクティブな第１のボリュームは前記アクティブな第１のボリュームを識別する識別子を含み、前記識別子は前記アクティブな第１のボリュームが前記非アクティブな第２のボリュームにコピーされることを示す、前記第１のボリュームをコピーすることと、
前記第１のボリュームを非アクティブ状態に設定した後、前記ホスト・コンピュータによって、前記ホスト・コンピュータと前記第１のボリュームとの間のパスを、前記ホスト・コンピュータと前記第２のボリュームとの間のパスと連結するために、前記非アクティブな第２のボリュームから前記第１のボリュームを識別する識別子を取り出すことと、
前記識別子を取り出した後、前記非アクティブな第２のボリュームを前記ホスト・コンピュータにマッピングすることと、
を前記ホスト・コンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ・ストレージに関し、具体的には、ホスト・コンピュータが、同期ミラーリングされる（synchronously mirrored）一次ストレージ・ボリューム及び二次ストレージ・ボリュームの役割をシームレスにスワップ（swap）するのを可能にすることに関する。
【背景技術】
【０００２】
ミラーリングは、一次ストレージ・ボリュームを別個の二次ストレージ・ボリュームに複製し、冗長性を確保するために用いられる技術である。一次ストレージ・ボリューム及び二次ストレージ・ボリュームを含むストレージ・ファシリティに対して、ミラーリングを同期的に又は非同期的に実施することができる。同期ミラーリングの際、ストレージ・ファシリティと通信するホスト（例えば、データベース・サーバ）は、データが一次ストレージ・ボリューム及び二次ストレージ・ボリュームの両方に成功裏に書き込まれた後、書き込み確認応答（acknowledgement）を受け取る。同期ミラーリングは、典型的には、ストレージ・エリア・ネットワーク（ＳＡＮ）上で実施される。
【０００３】
非同期ミラーリング（asynchronous mirroring）の際、ホストは、データが一次ボリュームに書き込まれた後に書き込み確認応答を受け取る（即ち、二次ボリュームはまだデータを受け取っていないか、及び／又は、データの書き込みを確認応答していない可能性がある）。非同期ミラーリングは、典型低には、低速の広域ネットワーク上で、特により遠距離にわたって実施される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
同期ミラーリングされるストレージ・ボリューム間のトランスペアレントな入力／出力スイッチングのための方法、装置及びコンピュータ・プログラム製品を提供する。
【課題を解決するための手段】
【０００５】
本発明の１つの実施形態によると、ストレージ・エリア・ネットワークを介してホスト・コンピュータに結合された、第１のボリューム及び第２のボリュームに関するトランスペアレントな同期ミラーリング・ボリューム・スイッチングを、第１のボリュームと第２のボリュームとの間の状態データの同期を開始することと、第１のボリュームをアクティブ状態に設定し、第２のボリュームを非アクティブ状態に設定することと、アクティブな第１のボリュームと関連した識別子を非アクティブな第２のボリュームに結合されたメモリにコピーすることと、ホスト・コンピュータによって、メモリからコピーされた識別子を取り出すことと、取り出すことの後、非アクティブな第２のボリュームをホスト・コンピュータにマッピングすることとによって構成することであって、第１のボリュームはホスト・コンピュータにマッピングされている、構成することを含む方法が提供される。
【０００６】
本発明の１つの実施形態によると、第１のボリュームと、第２のボリュームと、ホスト・コンピュータ、第１のボリューム及び第２のボリュームを結合するように構成されたストレージ・エリア・ネットワーク（ＳＡＮ）と、第２のボリュームに結合されたメモリと、第１のボリュームをホスト・コンピュータにマッピングして、マッピングされた第１のボリュームと第２のボリュームとの間の状態データの同期を開始し、マッピングされた第１のボリュームをアクティブ状態に設定し且つ第２のボリュームを非アクティブ状態に設定し、アクティブな第１のボリュームと関連した識別子を非アクティブな第２のボリュームに結合されたメモリにコピーし、ホスト・コンピュータによって、メモリからコピーされた識別子を取り出し、取り出しの後、非アクティブな第２のボリュームをホスト・コンピュータにマッピングするように構成されたプロセッサとを含む、トランスペアレントな同期ミラーリング・ボリューム・スイッチングを構成するための装置も提供される。
【０００７】
本発明の１つの実施形態によると、ストレージ・エリア・ネットワークを介してホスト・コンピュータに結合された、ホスト・コンピュータにマッピングされる第１のボリューム及び第２のボリュームに関するトランスペアレントな同期ミラーリング・ボリューム・スイッチングを構成するためのコンピュータ・プログラム製品であって、第１のボリュームはホスト・コンピュータにマッピングされる、コンピュータ・プログラム製品がさらに提供され、このコンピュータ・プログラム製品は、コンピュータ可読プログラム・コードがその上に具体化された非一時的コンピュータ可読ストレージ媒体を含み、コンピュータ可読プログラム・コードは、第１のボリュームと第２のボリュームとの間の状態データの同期を開始するように構成されたコンピュータ可読プログラム・コードと、第１のボリュームをアクティブ状態に設定し且つ第２のボリュームを非アクティブ状態に設定するように構成されたコンピュータ可読プログラム・コードと、アクティブな第１のボリュームと関連した識別子を非アクティブな第２のボリュームに結合されたメモリにコピーするように構成されたコンピュータ可読プログラム・コードと、ホスト・コンピュータによって、メモリからコピーされた識別子を取り出すように構成されたコンピュータ可読プログラム・コードと、取り出しの後、非アクティブな第２のボリュームをホスト・コンピュータにマッピングするように構成されたコンピュータ可読プログラム・コードとを含む。
【０００８】
ここで、添付図面を参照しながら、本発明の好ましい実施形態を単なる例として説明する。
【図面の簡単な説明】
【０００９】
【図１】本発明の１つの実施形態による、高可用性ボリューム・スイッチングを実行するように構成された同期ミラーリングされるストレージ・コントローラの概略的な図形表現である。
【図２】本発明の１つの実施形態による、一次ボリューム、二次ボリューム、三次ボリューム、及びホスト・コンピュータの間の論理パスの概略的な図形表現である。
【図３】本発明の１つの実施形態による、トランスペアレントな同期ミラーリング・ボリューム・スイッチング方法を概略的に示すフロー図である。
【発明を実施するための形態】
【００１０】
概要
典型的には、ディスク・ドライブ上に格納されるボリュームは、ボリュームの各々とホスト・コンピュータとの間の論理パスを介して、ホスト・コンピュータに結合される。ボリュームの各々は、シリアル番号のような関連した一意のボリューム識別子を有することができる。一意のボリューム識別子を用いて、ボリュームの各々と関連した論理パスを連結することができる。ボリュームと関連した複数のパスが存在するので、ボリュームは、マルチパス・デバイスを含む。マルチパス・デバイスとの通信は、マルチパス入力／出力（Ｉ／Ｏ）と呼ばれる。マルチパス・デバイスは、ＭＰＩＯデバイスとも呼ばれる。
【００１１】
本発明の実施形態において、関連したボリューム識別子を有することに加えて、各々のボリュームは、アクティブ又は非アクティブのいずれかとすることができる関連した状態を有する。さらに、特定のボリュームへの各々の論理パスの状態を、ボリュームの状態と関連付けることができる。例えば、特定のボリュームの状態がアクティブである場合、ホスト・コンピュータと特定のボリュームとの間の全ての論理パスの状態はアクティブとなる。同様に、特定のボリュームの状態が非アクティブである場合、ホスト・コンピュータと特定のボリュームとの間の全ての論理パスの状態は非アクティブとなる。
【００１２】
第１の（即ち、一次）ボリュームから第２の（即ち、二次）ボリュームへの同期ミラーリングを構成する間、本発明の実施形態は、ボリューム識別子、並びに一次及び二次ボリュームの状態を操作し、それによりホスト・コンピュータが第１のボリュームから第２のボリュームへとシームレスに移行するのを可能にするための方法及びシステムを提供する。典型的には、ホスト・コンピュータは、第１のボリュームの故障又は第１のボリュームと第２のボリュームとの間のパスの故障が原因で、第１のボリュームから第２のボリュームに移行する。
【００１３】
幾つかの実施形態において、第１のボリュームと関連したボリューム識別子を第２のボリュームにコピーし、第２のボリュームのパスの状態を非アクティブに設定する。第１のボリュームの識別子を第２のボリュームにコピーした後、ボリュームの両方を同じボリューム識別子と関連付け、第２のボリュームが第１のボリュームに「なりすます（masquerade）」（ボリュームを一意に識別し、論理パスを単一のマルチパス・デバイスにマッピングするための、ホストが用いる規則に従って）。
【００１４】
なりすましている第２のボリュームをホスト・コンピュータにマッピングすると、ホスト・コンピュータは、アクティブである論理パス（即ち、ホスト・コンピュータと第１のボリュームとの間の論理パス）及び非アクティブである新しい論理パス（即ち、ホスト・コンピュータと第２のボリュームとの間の新しい論理パス）を有する単一のボリュームを検出する。ソース及び第２のボリュームの状態をスワップした後、第２のボリュームへの全ての新しい論理パスはアクティブとなり、第１のボリュームへの全ての論理パスは非アクティブとなる。従って、ソース及び第２のボリュームの状態をスワップした後、全ての入力／出力操作は、第１のボリュームの代わりに、第２のボリュームにリダイレクトされる。
【００１５】
上述のステップを完了すると、ホスト・コンピュータは、実際には、今やアクティブな論理パスが第２のボリュームへのものであるのに、依然として第１のボリュームへのアクティブ・パスを有していると「考える」。
【００１６】
システムの説明
図１は、本発明の１つの実施形態による、トランスペアレントな同期ミラーリング・ボリューム・スイッチングを実施するように構成されたストレージ・ファシリティ２０の概略的な図形表示である。ファシリティ２０は、全て入力／出力（Ｉ／Ｏ）パス３０を介してストレージ・エリア・ネットワーク（ＳＡＮ）２８に結合された、第１のストレージ・コントローラ２２、第２のストレージ・コントローラ２４、及びホスト・コンピュータ２６を含む。図１に示される構成において、ストレージ・コントローラ２２及び２４は、ＳＡＮ２８を介して同期ミラーリングされ且つ広域ネットワーク（ＷＡＮ）９０を介して三次ボリューム９２に非同期ミラーリングされる（asynchronously mirrored）。典型的には、ストレージ・ボリューム９２は、第３のストレージ・コントローラ（図示せず）内に格納される。
【００１７】
ストレージ・コントローラ２２は、プライベート・ネットワーク３４を介して結合された複数の第１のストレージ・モジュール３２を含む。各々のストレージ・モジュール３２は、メモリ４０からのストレージ・モジュール・アプリケーション３８を実行するように構成されたプロセッサ３６を含む。ストレージ・モジュール・アプリケーション３８は、第１のボリューム４３を格納する多数の第１のストレージ・デバイス４２（例えば、ディスク・ドライブ）を管理する。図１に示される構成において、ボリューム４３は、ストレージ・デバイス４２の間で分散され、且つ、ファシリティ２０内の単一の論理ストレージ領域を含む。
【００１８】
ソース・ストレージ・デバイスは、デバイス・アダプタ４４を介してストレージ・モジュール３２に結合される。第１のストレージ・モジュールは、プライベート・ネットワーク・アダプタ４６を介してプライベート・ネットワーク３４に、且つ、ＳＡＮアダプタ４８を介してＳＡＮ２８に結合される。
【００１９】
ストレージ・モジュール・アプリケーション３８に加えて、プロセッサ３６は、メモリ４０からのミラーリング・アプリケーション５０及びトランスペアレントな同期ミラーリング・ボリューム・スイッチング・アプリケーション５２（本明細書ではスイッチング・アプリケーション５２とも呼ばれる）を実行する。ミラーリング・アプリケーション５０及びスイッチング・アプリケーション５２は、以下でさらに詳細に説明される。
【００２０】
メモリ４０はまた、ボリューム４３についての識別データを格納するボリューム・データ５４、ポート・データ５６（以下でさらに詳細に説明される）、及びボリューム４３についての状態データ５８も格納する。状態データ５８は、共有するボリューム４３の状態に関する情報を格納する永続予約テーブル（persistent reservation table）を含むことができる。例えば、ボリューム４３は、ホスト・コンピュータ２６、又はＳＡＮ２８に結合された他のいずれかのホスト・コンピュータ（図示せず）による読み出し及び／又は書き込みに対してロックする（即ち、予約する）ことができる。付加的に又は代替的に、状態データ５８は、シン・プロビジョニング（thin provisioning）・データを含むことができる。シン・プロビジョニングとは、ストレージ・コントローラ２２が、ボリューム４３をジャスト・イン・タイム（just-in-time）方式でホスト・コンピュータ２６に割り当てるのを可能にする機構である。シン・プロビジョニング・データは、ソース・ストレージ・コントローラについてのボリューム割り当てデータを含むことができる。
【００２１】
ストレージ・コントローラ２４は、プライベート・ネットワーク６２を介して結合された複数の第２のストレージ・モジュール６０を含む。各々のストレージ・モジュール６０は、メモリ６８からのストレージ・モジュール・アプリケーション６６を実行するように構成されたプロセッサ６４を含む。ストレージ・モジュール・アプリケーション６６は、第２のボリューム７１を格納する多数の第２のストレージ・デバイス７０を管理する。図１に示される構成において、ボリューム７１は、ストレージ・デバイス７０の間で分散され、且つ、ファシリティ２０内の単一の論理ストレージ領域を含む。
【００２２】
第２のストレージ・デバイスは、デバイス・アダプタ７２を介してストレージ・モジュール６０に結合される。第２のストレージ・モジュールは、プライベート・ネットワーク・アダプタ７４を介してプライベート・ネットワーク６２に、且つ、ＳＡＮアダプタ７６を介してＳＡＮ２８に結合される。
【００２３】
ファシリティ２０は、ボリューム４３をボリューム７１に（即ち、ボリューム４３が一次ボリュームであり、ボリューム７１が二次ボリュームである）又はその逆に同期ミラーリングするように構成することができる。ボリューム４３が一次ボリュームとして構成されるとき、ミラーリング・アプリケーション５０は、ボリューム４３をボリューム７１に同期ミラーリングし、スイッチング・アプリケーション５２は、状態データ５８と状態データ８０の同期を開始する。メモリ６８はまた、ポート・データ７８（以下でさらに詳細に説明される）及びボリューム・データ８２も格納する。ボリューム・データ８２は、ボリューム７１についての識別データを格納する。
【００２４】
ボリューム７１が一次ボリュームとして構成されるとき、プロセッサ６４は、ミラーリング・アプリケーション８４を実行してボリューム７１をボリューム４３に同期ミラーリングし、且つ、スイッチング・アプリケーション８６を実行して状態データ８０と状態データ５８の同期を開始する。
【００２５】
図１に示される構成において、ファシリティ２０は、広域ネットワーク（ＷＡＮ）９０を介して、ボリューム４３及び７１を、ストレージ・デバイス８８上に格納された三次ボリューム９２に非同期ミラーリングする。典型的には、ボリューム７１が二次ボリュームとして構成された場合、ミラーリング・アプリケーション８４は、ボリューム７１をボリューム９２に非同期ミラーリングする。同様に、ボリューム４３が二次ボリュームとして構成された場合、ミラーリング・アプリケーション５０が、ボリューム４３をボリューム９２に非同期ミラーリングする。
【００２６】
ＳＡＮアダプタ４８及び７６の例として、ファイバ・チャネル（ＦＣ）アダプタのようなスイッチド・ファブリック・アダプタ（switched fabric adapter）、インターネット・スモール・コンピュータ・システム・インタフェース（ｉＳＣＳＩ）アダプタ、ファイバ・チャネル・オーバー・イーサネット（ＦＣｏＥ）アダプタ、及びインフィニバンドＴＭアダプタが挙げられる。デバイス・アダプタ４４及び７２の例として、Ｓｅｒｉａｌ  Ａｄｖａｎｃｅ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ（ＳＡＴＡ）及びＳｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（ＳＡＳ）コンピュータ・バス・インタフェースの両方を実装する、インターナショナル・ビジネス・マシーンズ（ＩＢＭ）ＳｅｒｖｅＲＡＩＤＴＭ  Ｍ５０００シリーズ・アダプタが挙げられる。ボリューム４３及び７１は、典型的には、大容量ハードディスク・ドライブとソリッドステート・ディスク・ドライブの組み合わせを含む。
【００２７】
プロセッサ３６及び６４は、典型的には、汎用コンピュータを含み、これらは本明細書で説明される機能を実行するためのソフトウェアの形でプログラムされる。ソフトウェアは、例えばネットワーク上で、電子的形態でメモリ４０及び６８にダウンロードすることができ、又は、光、磁気、若しくは電子メモリ媒体などの非一時的有形媒体上に提供することができる。代替的に、プロセッサ３６及び６４の機能の一部又は全ては、専用の又はプログラム可能なデジタル・ハードウェア・コンポーネントにより、又はハードウェア要素とソフトウェア要素との組み合わせを用いて、実行することができる。
【００２８】
ボリューム４３は、ソース・ストレージ・コントローラ内の相対ポート（relative port）４５を介してホスト・コンピュータ２６に結合され、ボリューム７１は、ターゲット・ストレージ・コントローラ内の相対ポート７３を介してホスト・コンピュータに結合される。相対ポートは、ホスト・コンピュータが、ボリューム４３及び７１と通信するために用いることができる論理パスを表す。図１の構成は、ストレージ・コントローラの各々が単一の相対ポート（即ち、相対ポート４５及び７３）を含むように示されるが、ストレージ・コントローラの各々は、典型的には、複数の相対ポートを含む。
【００２９】
ストレージ・コントローラ２２及び２４内の論理パスの各々は、典型的には、一意の相対ポート識別子を有する。相対ポート識別子は、特定のストレージ・モジュール内の物理スロット（図示せず）を指すことができる。例えば、ストレージ・コントローラ２２内に５つのソース・ストレージ・モジュール（即ち、０−４）がある場合、各々のストレージ・モジュー３２は８つのスロット（即ち、０−７）を含み、相対ポート識別子「０２０５」は、デバイス・アダプタ４４が第３（「０２」）のソース・ストレージ・モジュールの６番目（「０５」）に配置されることを示すことができる。
【００３０】
ターゲット・ポート・グループ・サポート（Target Port Group Support、ＴＰＧＳ）としても知られる非同期論理ユニット・アクセス（Asynchronous Logical Access、ＡＬＵＡ）は、ストレージ・コントローラ２２及び２４が、それぞれの相対ポートの状態を設定するのを可能にする、スモール・コンピュータ・システム・インタフェース（Small Computer System Interface、ＳＣＳＩ）プロトコルである。ＡＬＵＡ／ＴＰＧＳをサポートするＳＣＳＩプライマリ・コマンド（SCSI Primary Commands、ＳＰＣ）は、技術情報規格国際委員会（International Committee on Information Technology Standards、ＩＮＣＩＴＳ）のＴ１０委員会によるＳＰＣ−３の第５．８項並びにＳＰＣ−４の第５．８項及び第５．１１項に指定されている。
【００３１】
ＡＬＵＡを用いて、ホスト・コンピュータ２６はまた、ファシリティ２０に照会し、ストレージ・コントローラへの論理パスの各々の状態を受け取ることもできる。例えば、ボリューム４３は相対ポート４５を介してホスト・コンピュータ２６に結合されているので、相対ポート４５の状態を設定することにより、第１のボリュームと相対ポート４５を介して結合されたホスト・コンピュータ２６との間の各々の論理パスの状態が設定される。
【００３２】
ＡＬＵＡの状態は、（１）Ａｃｔｉｖｅ  Ｏｐｔｉｍｉｚｅｄ、（２）Ａｃｔｉｖｅ  Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ、（３）Ｓｔａｎｄｂｙ（待機）、（４）Ｕｎａｖａｉｌａｂｌｅ（使用不能）、（５）Ｔｒａｎｓｉｔｉｏｎｉｎｇ（移行）及び（６）Ｏｆｆｌｉｎｅ（オフライン）を含む。本明細書で説明される本発明の実施形態において、ＡＬＵＡの状態は、次のように組み合わせられる。
アクティブ：Ａｃｔｉｖｅ  Ｏｐｔｉｍｉｚｅｄ及びＡｃｔｉｖｅ  Ｎｏｎ−Ｏｐｔｉｍｉｚｅｄ
非アクティブ：Ｓｔａｎｄｂｙ、Ｕｎａｖａｉｌａｂｌｅ、Ｔｒａｎｓｉｔｉｏｎｉｎｇ及びＯｆｆｌｉｎｅ
【００３３】
さらに、相対ポートをグループに分割して（本明細書ではターゲット・ポート・グループとも呼ばれる）、ファシリティ２０が、グループ・レベルで相対ポート及び論理パスの状態を設定するのを可能にすることができる。例えば、第１のストレージ・コントローラ２２内の相対ポート（相対ポート４５を含む）をグループ０に割り当てることができ（Ｒｅｐｏｒｔ  Ｔａｒｇｅｔ  Ｐｏｒｔ  Ｇｒｏｕｐｓ  ＳＣＳＩコマンドを介して）、第２のストレージ・コントローラ２４内の相対ポート（相対ポート７３を含む）をグループ１に割り当てることができる（同じくＲｅｐｏｒｔ  Ｔａｒｇｅｔ  Ｐｏｒｔ  Ｇｒｏｕｐｓ  ＳＣＳＩコマンドを介して）。次に、ファシリティ２０は、グループ０の状態を設定することにより、ホスト・コンピュータとストレージ・コントローラ２２との間の論理パスの状態を設定することができる。同様に、ファシリティ２０は、グループ１の状態を設定することにより、ホスト・コンピュータとストレージ・コントローラ２４との間の論理パスの状態を設定することができる。
【００３４】
さらに、（上述の例におけるように）デバイス・アダプタ４４をストレージ・コントローラ２２の第３のストレージ・モジュール３２の第６のスロットに挿入することができ、デバイス・アダプタ７２をストレージ・コントローラ２４の第３のストレージ・モジュール６０の第６のスロットに挿入することができるので、相対ポートをグループに分割することは、一意の相対ポート識別子を定める助けとなる。従って、グループ識別子及び相対ポート識別子を連結して結合された識別子（combined identifier)（即ち、グループ識別子及び相対ポート識別子を含むタプル）を作成し、ファシリティ２０内の相対ポートの各々を一意に識別することができる。
【００３５】
ホスト・コンピュータ２６が、相対ポート識別子のみによって論理パスの各々を識別するオペレーティング・システムを実行しているインスタンスが存在し得る。これらのインスタンスにおいて、本明細書で説明される実施形態の初期化段階の間、プロセッサ３６及び６４が互いに連係して、一意の相対ポート識別子をファシリティ２０内の相対ポートの各々に割り当てる。一意の相対ポート識別子を用いて、相対ポートの各々及びそれぞれの論理パスを表すことができる。
【００３６】
初期化段階の間、相対ポートを識別することに加えて、プロセッサ３６及び６４は、典型的には、例えばシリアル番号などの一意のボリューム識別子をボリューム４３及び７１の各々に割り当てる。プロセッサ３６は、ボリューム４３についての一意のボリューム識別子を、第１のボリュームに結合されたメモリ４０内のボリューム・データ５４に格納する。プロセッサ６４は、ボリューム７１についての一意のボリューム識別子を、第２のボリュームに結合されたメモリ６８内のボリューム・データ８２に格納する。
【００３７】
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、本明細書においては、これらは全て、一般的に「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の態様は、具体化されたコンピュータ可読プログラム・コードを有する、１つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。
【００３８】
１つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例（非網羅的なリスト）には、１つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラム可能読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを収容又は格納することができるいずれかの有形媒体とすることができる。
【００３９】
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、例えばベースバンド内に、又は搬送波の一部としてその中に具体化された、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はこれらのいずれかの適切な組み合わせを含む、種々の異なる形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、且つ、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを通信、伝搬、又は搬送することができる、いずれかのコンピュータ可読媒体とすることができる。
【００４０】
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、ＲＦ等、又は上記のもののいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。
【００４１】
本発明の態様のための動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋等のようなオブジェクト指向型プログラミング言語、及び「Ｃ」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、１つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行されるか、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行されるか、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行されるか、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合がある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ）若しくは広域ネットワーク（ＷＡＮ）を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されるか、又は、（例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて）外部コンピュータへの接続がなされる場合がある。
【００４２】
本発明の態様は、本発明の実施形態による方法、装置（システム）及びコンピュータ・プログラム製品のフローチャート図及び／又はブロック図を参照して以下に説明される。フローチャート図及び／又はブロック図の各ブロック、並びにフローチャート図及び／又はブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実施するための手段を生成するようになる。これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他の装置を特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装する命令を含む製品を生成するようにすることができる。
【００４３】
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他の装置上にロードして、そのコンピュータ、他のプログラム可能データ処理装置、又は他の装置上で行われる一連の動作ステップによりコンピュータ実装プロセスを生成し、その結果、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び／又はブロック図の１つ又は複数のブロックにおいて指定された機能／動作を実装するためのプロセスをもたらすようにすることもできる。
【００４４】
トランスペアレントなボリューム・スイッチング
図２は、ホスト・コンピュータ２６、ボリューム４３（本明細書では第１のボリュームとも呼ばれる）、ボリューム７１（本明細書では第２のボリュームとも呼ばれる）、及びボリューム９２の間の論理パスを示す、概略的な図形表現である。２つのデバイス間の論理パスは、この２つのデバイスの結合がどのようにネットワークであるように見えるかを示す。例えば、図２に示される構成は、リング・ネットワーク・トポロジーに構成されたボリューム４３、ボリューム７１、及びホスト・コンピュータ２６を示す。デバイス間の実際の物理的接続（例えば、Ｉ／Ｏパス３０を介する）は、典型的には、論理パスとは異なる。
【００４５】
図２に示される構成において、ホスト・コンピュータ２６は論理パス１００を介してボリューム４３に結合され、且つ、論理パス１０２を介してボリューム７１に結合される。ボリューム４３とボリューム７１は、論理パス１０４を介して結合され、この論理パス１０４はボリューム４３とボリューム７１との間でデータを同期ミラーリングするために用いることができる。ファシリティ２０はまた、通信パス１０６を介して、ボリューム４３又はボリューム７１のいずれかをボリューム９２に非同期ミラーリングするように構成される。
【００４６】
ファイバ・チャネルなどのＳＡＮトポロジーを実装するとき、論理パス１００及び１０２の各々は、典型的には、図１のＩ／Ｏパス３０によって示されるような複数の物理的接続を含む。ファシリティ２０は、物理的パスのうちの１つの故障時に代替的な物理的パスを通じてネットワーク・トラフィックを経路指定できるので、マルチパスＩ／Ｏとも呼ばれる複数の物理的パスを使用することにより、フォールト・トレランス（耐故障性、fault tolerance）がもたらされ得る。さらに、転送されるデータを複数の物理的パスにわたって分散させることができるので、マルチパスＩ／Ｏは、性能を高めることができる。
【００４７】
同期ミラーリングの間、一次ボリュームを含むストレージ・コントローラは、本明細書では一次ストレージ・コントローラと呼ばれ、二次ボリュームを含むストレージ・コントローラは、本明細書では二次ストレージ・コントローラと呼ばれる。例えば、ボリューム４３が一次ボリュームである場合、ストレージ・コントローラ２２は、一次ストレージ・コントローラとなり、且つ、ボリューム４３を二次ストレージ・コントローラに、この場合はストレージ・コントローラ２４に同期ミラーリングするように構成される。
【００４８】
本発明の実施形態では、同期ミラーリング中のその役割に応じて、ストレージ・コントローラ２２及び２４内の相対ポートの状態を設定する。一次ストレージ・コントローラ内の相対ポートはアクティブ状態に設定され、二次ストレージ・コントローラ内の相対ポートは非アクティブ状態に設定される。ストレージ・コントローラが同期ミラーリングの役割をスワップする場合、本発明の実施形態は、ストレージ・コントローラの相対ポートの状態も同様にスワップする。
【００４９】
図３は、本発明の１つの実施形態による、トランスペアレントな同期ミラーリング・ボリューム・スイッチングの方法を概略的に示すフロー図である。最初のステップ１１０において、スイッチング・アプリケーション５２が、第１のボリュームをホスト・コンピュータ２６にマッピングする（即ち、論理的に接続する）。
【００５０】
第１の状態の設定１１２において、スイッチング・アプリケーション５２が、第１のボリュームの状態をアクティブ状態に設定する。第１のボリュームの状態をアクティブ状態に設定するために、スイッチング・アプリケーション５２は、第１のボリュームと関連したターゲット・ポート・グループ（即ち、相対ポート４５を含むターゲット・ポート・グループ）をアクティブ状態に設定し、それにより論理パス１００と関連した物理的パスをアクティブ状態に設定する。
【００５１】
幾つかの実施形態において、スイッチング・アプリケーション５２は、ストレージ・コントローラ２２内の相対ポートと関連したターゲット・ポート・グループの状態を設定することにより、第１のボリュームの状態（及び、それによりホスト・コンピュータ２６と第１のボリュームとの間の論理パスの状態）を設定する。例えば、グループ０がストレージ・コントローラ２２内の相対ポート（ポート４５を含む）を含み、グループ１がストレージ・コントローラ２４内の相対ポート（ポート７３を含む）を含む場合、スイッチング・アプリケーション５２は、グループ０をアクティブ状態に設定し、それにより第１のボリュームを同じくアクティブ状態に設定する。
【００５２】
代替的な実施形態において、各グループの状態は変わらないままであるが、ターゲット・ポート・グループ内に含まれる相対ポートは必要に応じて変化する。例えば、グループ０がアクティブ状態にあり、グループ１が非アクティブ状態にある場合、スイッチング・アプリケーション５２は、ストレージ・コントローラ２２のポート（ポート４５を含む）をグループ０に割り当て、それにより第１のボリュームをアクティブ状態に設定することができる。代替的に、スイッチング・アプリケーション５２は、ストレージ・コントローラ２２の相対ポート（ポート４５を含む）をグループ１に割り当て、それにより第１のボリュームを非アクティブ状態に設定することができる。
【００５３】
第２の状態の設定１１４において、スイッチング・アプリケーション８６が、第２のボリュームを非アクティブ状態に設定する。第２のボリュームを非アクティブ状態に設定するために、スイッチング・アプリケーション８６は、第２のボリュームと関連した相対ポート・グループ（即ち、相対ポート７３を含むターゲット・ポート・グループ）を非アクティブ状態に設定し、それにより論理パス１０２と関連した論理パスを非アクティブ状態に設定する。
【００５４】
コピー・ステップ１１６において、スイッチング・アプリケーション５２は、アクティブな第１のボリュームから非アクティブな第２のボリュームにボリューム識別子をコピーする。ボリューム識別子をコピーするために、スイッチング・アプリケーション５２は、ボリューム・データ５４をボリューム・データ８２にコピーする。次いで、ホスト・コンピュータ２６が、コピーされたボリューム識別子をボリューム・データ８２から取り出し、それによりホスト・コンピュータと第１のボリュームとの間の論理パスを、ホスト・コンピュータと第２のボリュームとの間の論理パスと連結する。
【００５５】
マッピング・ステップ１１７において、スイッチング・アプリケーション８６が、非アクティブな第２のボリュームをホスト・コンピュータ２６にマッピングする。次に、スイッチング・アプリケーション８６は、ファシリティ２０内のボリュームに照会する要求をホスト・コンピュータ２６に伝え、第１の照会ステップ１１８において、ホスト・コンピュータは、ファシリティ２０内のボリュームに照会し、それによりホスト・コンピュータにマッピングされたボリュームの状態を識別し、判断する。
【００５６】
ファシリティ２０に照会するために、ホスト・コンピュータ２６は、全ての論理パスをファシリティ２０のストレージ・コントローラに返すＳＡＮ関数呼び出しを呼び出す。各々の返された論理パスについて、ホスト・コンピュータ２６は、返される論理パス上の各デバイスについて論理ユニット番号（logical unit number、ＬＵＮ）を返す、ＳＣＳＩ  Ｒｅｐｏｒｔ  ＬＵＮＳコマンドを実行する。次に、ホスト・コンピュータ２６は、返されたＬＵＮ及びパスの各々についてＳＣＳＩ  Ｉｎｑｕｉｒｙコマンドを実行し、初めにＥｎａｂｌｅ  Ｖｉｔａｌ  Ｐｒｏｄｕｃｔ  Ｄａｔａ（ＥＶＰＤ）ページ８０（１６進数）に照会して、ボリューム識別子を取り出し、次いでＥＶＰＤページ８３（１６進数）に照会して、各ＬＵＮと関連したグループ識別子及び相対ポート識別子を取り出す。最後に、取り出されたグループ識別子の各々について、ホスト・コンピュータは、Ｒｅｐｏｒｔ  Ｔａｒｇｅｔ  Ｐｏｒｔ  Ｇｒｏｕｐｓコマンドを実行して、グループ（即ち、ターゲット・ポート・グループ）の各々の状態を取り出す。
【００５７】
ファシリティ２０に照会することにより取り出された情報に基づいて、ホスト・コンピュータ２６は、マルチパス・デバイスを定め、各々のマルチパス・デバイスへのあらゆる論理パスの状態を確認することができる。ホスト・コンピュータ２６とボリューム各々との間には複数の論理パスが存在し得るので、ホスト・コンピュータは、各インスタンスは異なる論理パスを経由する、同じボリューム（関連したボリューム識別子により識別される）の複数のインスタンスを検出することがある。
【００５８】
第１のミラーリング構成ステップ１２０において、ミラーリング・アプリケーション５０は、第１のボリュームを一次ボリュームとして構成し、且つ、第２のボリュームを二次ボリュームとして構成する。上述のように、ミラーリングは、冗長性を確実にするためにデータを一次ボリュームから二次ボリュームに複製する。従って、ステップ１２０の後で、ファシリティ２０は、第１のボリュームから第２のボリュームに同期ミラーリングするように構成される。さらに、ミラーリング・アプリケーション５０は、状態データ５８（第１のボリュームに関する）と状態データ８０の（第２のボリュームに関する）同期を開始する。図１に示される構成において、ミラーリング・アプリケーション８４はまた、第２のボリュームをボリューム９２に非同期ミラーリングすることができる。
【００５９】
システム管理者（図示せず）は、ストレージ・コントローラ２２及び２４が、ミラーリングの役割をスワップする（即ち、第２のボリュームを一次ボリュームとして、且つ、第１のボリュームを二次ボリュームとして構成する）要求を伝えるインスタンスが存在し得る。代替的に、第１のボリュームの故障、ストレージ・コントローラ２２内のいずれかのコンポーネントの故障、又は論理パス１０２内の故障がある場合、ファシリティ２０は、ストレージ・コントローラ２４を一次ストレージ・コントローラとして構成することができる。
【００６０】
本方法は、ストレージ・コントローラ２２及び２４の同期ミラーリングの役割をスワップする必要が生じるまで、比較ステップ１２２にとどまる。ミラーリング・アプリケーション５０及び８４が、それぞれのストレージ・コントローラの同期ミラーリングの役割を切り換えるための命令を受け取った場合、第３の状態の設定１２４において、スイッチング・アプリケーション５２は、アクティブな第１のボリュームの状態を非アクティブ状態に設定する。第１のボリュームを非アクティブ状態に設定するために、スイッチング・アプリケーション５２は、第１のボリュームと関連したターゲット・ポート・グループ（即ち、相対ポート４５を含むターゲット・ポート・グループ）を非アクティブ状態に設定し、それにより論理パス１００と関連した論理パスを非アクティブ状態に設定することができる。
【００６１】
第２のミラーリング構成ステップ１２６において、ミラーリング・アプリケーション５０は、非アクティブな第１のボリュームを二次ボリュームとして、且つ、非アクティブな第２のボリュームを一次ボリュームとして構成する（即ち、第２のボリュームから第１のボリュームに同期ミラーリングするために）。従って、ステップ１２６の後で、ファシリティ２０は、第２のボリュームから第１のボリュームに同期ミラーリングするように構成される。
【００６２】
第４の状態の設定１２８において、スイッチング・アプリケーション８６は、第２のボリュームの状態をアクティブ状態に設定し、ファシリティ２０のボリュームに照会する要求をホスト・コンピュータ２０に伝える。第２のボリュームをアクティブ状態に設定するために、スイッチング・アプリケーション８６は、第２のボリュームと関連したターゲット・ポート・グループ（即ち、相対ポート７３を含むターゲット・ポート・グループ）をアクティブ状態に設定し、それにより論理パス１０２と関連した論理パスをアクティブ状態に設定することができる。最後に、第２の照会ステップ１３０において、ホスト・コンピュータ２６は、ファシリティ２０内のボリュームに照会して、ファシリティ２０内のボリュームの状態、及びホスト・コンピュータへのそれぞれの物理的パスの状態を識別し、判断する。
【００６３】
図内のフローチャート及びブロック図は、本発明の種々の実施形態による、システム、方法及びコンピュータ・プログラム製品の可能な実装の、アーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための１つ又は複数の実行可能命令を含む、モジュール、セグメント、又はコードの一部を表すことができる。幾つかの代替的な実装においては、ブロック内に記載された機能は、図面に記された順序とは異なる順序で行われることもあることにも留意すべきである。例えば、連続して図示された２つのブロックが、実際には実質的に同時に実行されることもあり、又はこれらのブロックは、関与する機能に応じて、ときには逆順で実行されることもある。ブロック図及び／又はフローチャート図内の各ブロック、並びにブロック図及び／又はフローチャート図内のブロックの組み合わせは、指定された機能又は動作を実行する専用ハードウェア・ベースのシステム、又は専用ハードウェアとコンピュータ命令との組み合わせによって実装できることにも留意されたい。
【符号の説明】
【００６４】
２０：ストレージ・ファシリティ
２２、２４：ストレージ・コントローラ
２６：ホスト・コンピュータ
２８：ストレージ・エリア・ネットワーク（ＳＡＮ）
３０：入力／出力（Ｉ／Ｏ）パス
３２、６０：ストレージ・モジュール
３４、６２：プライベート・ネットワーク
３６、６４：プロセッサ
３８、６６：ストレージ・モジュール・アプリケーション
４０、６８：メモリ
４２、７０、８８：ストレージ・デバイス
４３、７１、９２：ボリューム
４４、７２：デバイス・アダプタ
４５、７３：相対ポート
４６、７４：プライベート・ネットワーク・アダプタ
４８、７６：ＳＡＮアダプタ
５０、８４：ミラーリング・アプリケーション
５２、８６：スイッチング・アプリケーション
５４、８２：ボリューム・データ
５６、７８：ポート・データ
５８、８０：状態データ
９０：広域ネットワーク（ＷＡＮ）
１００、１０２、１０４：論理パス
１０６：通信パス
【図１】
0005925298.tif 000002
【図２】
0005925298.tif 000003
【図３】
0005925298.tif 000004