(57)【要約】【課題】ストレージコントローラ内部ネットワークに対してＭＲ−ＩＯＶを適用したストレージ装置に係わり、データ経路のフェイルオーバーを実行可能とする。【解決手段】ストレージコントローラ内部ネットワークにおいて、ルートポートＲＰ０からは、各エンドポイントデバイス（ＥＤ０〜ＥＤ２）のバーチャルファンクション（ＶＦ）「VF 0:0,1」をアクセス可能に構成される。同様にルートポートＲＰ１からは、各エンドポイントデバイスの「VF 1:0,1」をアクセス可能に構成される。正常時、ＲＰ０からＥＤ０への第１のデータ経路では、「VF 0:0,1」と「MVF 0,0」がＶＦマッピングで接続される。第１のデータ経路上での障害の場合、ＭＲ−ＰＣＩＭがＶＦマイグレーションを実行することで、ＲＰ１からＥＤ０への第２のデータ経路では、「VF 1:0,1」と「MVF 0,0」がＶＦマッピングで接続される。結果、第２のデータ経路へのフェイルオーバーが実現される。【選択図】図１７
2010108211.tif 000002
【特許請求の範囲】
【請求項１】
ストレージコントローラ内のコンポーネントがPCI Expressで接続された内部ネットワークを持つストレージ装置であって、
前記ストレージコントローラ及びその内部ネットワークは、
全体で複数のルートポートを有し、それぞれが１つ以上のルートポートを有する複数のルートコンプレックスと、
前記ルートコンプレックス毎に接続される複数のプロセッサと、
所定のインターフェイスを備え、前記複数のルートポートのそれぞれからアクセス可能な複数のバーチャルファンクションを有するマルチルートアウェアデバイスである、複数のエンドポイントデバイスと、
前記複数のルートポートと前記複数のエンドポイントデバイスとを接続してデータ経路を構成し複数のポートを備えるマルチルートアウェアスイッチであるスイッチと、を有し、
前記複数のエンドポイントデバイスの少なくとも１つは、前記バーチャルファンクションと前記所定のインターフェイスとのマッピングを変更するバーチャルファンクションマイグレーションを実行可能であり、
前記ストレージコントローラ及びその内部ネットワークは、すべての前記複数のルートポートが、すべての前記複数のエンドポイントデバイス内のバーチャルファンクションへアクセス可能なように、前記スイッチ及び前記エンドポイントデバイスが設定されており、
前記ストレージコントローラ及びその内部ネットワークは、前記複数のルートポートの１つから前記スイッチを介して前記複数のエンドポイントデバイスの１つへのデータ経路の１つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、当該障害状態の第１のデータ経路から代替の第２のデータ経路への切り替えにおいて、当該データ経路のアクセス元ルートポートを切り替える処理と、当該アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理とを行うこと、を特徴とするストレージ装置。
【請求項２】
請求項１記載のストレージ装置において、
前記エンドポイントデバイスとして、
上位装置を接続するためのフロントエンドインターフェイスを備え、前記バーチャルファンクションマイグレーションを実行可能な第１のエンドポイントデバイスと、
記憶装置群を接続するためのバックエンドインターフェイスを備え、前記バーチャルファンクションマイグレーションを実行可能な第２のエンドポイントデバイスと、を有し、
前記スイッチは、前記複数のルートポートと、前記第１及び第２のエンドポイントデバイスとを接続し、
前記ストレージコントローラ及びその内部ネットワークは、すべての前記複数のルートポートが、すべての前記複数のエンドポイントデバイス内のバーチャルファンクションへアクセス可能なように、前記スイッチ及び前記第１及び第２のエンドポイントデバイスが設定されており、
前記ストレージコントローラ及びその内部ネットワークは、前記複数のルートポートの１つから、前記第１または第２のエンドポイントデバイスの１つへのデータ経路の１つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、当該障害状態の第１のデータ経路から代替の第２のデータ経路への切り替えにおいて、当該データ経路のアクセス元ルートポートを切り替える処理と、当該アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理とを行うこと、を特徴とするストレージ装置。
【請求項３】
請求項２記載のストレージ装置において、
前記エンドポイントデバイスとして、キャッシュメモリを接続するためのキャッシュメモリインターフェイスを備える第３のエンドポイントデバイスを有し、
前記スイッチは、前記複数のルートポートと、前記第１及び第２及び第３のエンドポイントデバイスを接続し、
すべての前記複数のルートポートが、すべての前記複数のエンドポイントデバイス内のバーチャルファンクションへアクセス可能なように、前記スイッチ及び前記第１及び第２及び第３のエンドポイントデバイスが設定されており、
前記複数のルートポートの１つから、前記第１または第２または第３のエンドポイントデバイスの１つへのデータ経路の１つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、当該障害状態の第１のデータ経路から代替の第２のデータ経路への切り替えにおいて、当該データ経路のアクセス元ルートポートを切り替える処理と、当該アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理とを行うこと、を特徴とするストレージ装置。
【請求項４】
請求項３記載のストレージ装置において、
前記第３のエンドポイントデバイスは、前記バーチャルファンクションに対してマッピングされるミッションバーチャルファンクションを備え、前記ミッションバーチャルファンクションに対して前記キャッシュメモリインターフェイスが対応付けられ、当該第３のエンドポイントデバイスに備えるミッションバーチャルファンクションの数は、当該第３のエンドポイントデバイスにアクセスするルートポートの数以上であること、を特徴とするストレージ装置。
【請求項５】
請求項３記載のストレージ装置において、
前記ストレージコントローラ及びその内部ネットワークにおいて、
前記第１のエンドポイントデバイスのミッションバーチャルファンクションとなる前記フロントエンドインターフェイスと前記第３のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスとが同じルートポートからアクセス可能なように設定され、
前記第２のエンドポイントデバイスのミッションバーチャルファンクションとなる前記バックエンドインターフェイスと前記第３のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスとが同じルートポートからアクセス可能なように設定されていること、を特徴とするストレージ装置。
【請求項６】
請求項３記載のストレージ装置において、
前記複数のルートコンプレックスは、それぞれ、第１のルートポートと第２のルートポートとを有し、
前記ストレージコントローラ及びその内部ネットワークにおいて、
各ルートコンプレックスの前記第１のルートポートは、前記第１のエンドポイントデバイスのミッションバーチャルファンクションとなる前記フロントエンドインターフェイス及び前記第３のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスへアクセス可能なように設定され、
各ルートコンプレックスの前記第２のルートポートは、前記第２のエンドポイントデバイスのミッションバーチャルファンクションとなる前記バックエンドインターフェイス及び前記第３のエンドポイントデバイスのミッションバーチャルファンクションとなる前記キャッシュメモリインターフェイスへアクセス可能なように設定されていること、を特徴とするストレージ装置。
【請求項７】
請求項１記載のストレージ装置において、
前記エンドポイントデバイスは、当該ストレージ装置のデータ読み出しあるいは書き込みに関連するデータ転送のための第１のファンクションと、前記第１のファンクションに付随するバーチャルファンクションの状態遷移を制御可能な第２のファンクションと、を備えること、を特徴とするストレージ装置。
【請求項８】
請求項７記載のストレージ装置において、
前記ストレージコントローラまたはそれに接続される保守端末装置に、マルチルートPCIマネージャーのプログラムを備え、
前記ルートポートからエンドポイントデバイスへのバーチャルハイアラキの構成において、
前記エンドポイントデバイスは、前記マルチルートPCIマネージャーのプログラムからの前記第２のファンクションへの、データ経路障害が未発生のバーチャルハイアラキにおけるインバウンド通信により、前記第１のファンクションのバーチャルファンクションを状態遷移させること、を特徴とするストレージ装置。
【請求項９】
請求項７記載のストレージ装置において、
前記ストレージコントローラまたはそれに接続される保守端末装置に、マルチルートPCIマネージャーのプログラムを備え、
前記エンドポイントデバイスは、前記マルチルートPCIマネージャーのプログラムからの前記第２のファンクションへのアウトバウンド通信により、前記第１のファンクションのバーチャルファンクションを状態遷移させること、を特徴とするストレージ装置。
【請求項１０】
請求項７記載のストレージ装置において、
前記ストレージコントローラに、シングルルートPCIマネージャーのプログラムを備え、
前記ルートポートからエンドポイントデバイスへのバーチャルハイアラキの構成において、
前記エンドポイントデバイスは、自律機能により、データ経路障害が発生したバーチャルハイアラキにおける前記シングルルートPCIマネージャーのプログラムと、前記第２のファンクションとの通信可否を判定し、否の場合に前記第１のファンクションのバーチャルファンクションを状態遷移させること、を特徴とするストレージ装置。
【請求項１１】
請求項１記載のストレージ装置において、
前記ストレージコントローラ及びその内部ネットワークは、
前記ルートポートとエンドポイントデバイス内バーチャルファンクションとの対応関係を管理するテーブルと、
前記バーチャルファンクションと前記所定のインターフェイスとのマッピングを管理するテーブルと、
前記フェイルオーバーの際の前記バーチャルファンクションのマイグレーションを管理するテーブルと、を含む複数のテーブルを管理し、
前記ストレージコントローラ及びその内部ネットワークは、前記データ経路のフェイルオーバーを実行する処理の際、前記複数のテーブルを参照して、前記データ経路のアクセス元ルートポートを切り替える処理と、前記アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理とを行うこと、を特徴とするストレージ装置。
【請求項１２】
ストレージコントローラ内のコンポーネントがPCI Expressで接続されたストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法であって、
前記ストレージコントローラの内部ネットワークは、全体で複数のルートポートと、前記ルートポートを有するルートコンプレックスに接続されるプロセッサと、所定のインターフェイスを備え前記複数のルートポートのそれぞれからアクセス可能な複数のバーチャルファンクションを有する複数のエンドポイントデバイスと、前記複数のルートポートと前記複数のエンドポイントデバイスとを接続してデータ経路を構成し複数のポートを備えるスイッチと、を有し、
前記複数のエンドポイントデバイスの少なくとも１つは、前記バーチャルファンクションと前記所定のインターフェイスとのマッピングを変更するバーチャルファンクションマイグレーションを実行可能であり、
前記ストレージコントローラの内部ネットワークは、すべての前記複数のルートポートが、すべての前記複数のエンドポイントデバイス内のバーチャルファンクションへアクセス可能なように、前記スイッチ及び前記エンドポイントデバイスが設定されており、
前記ストレージコントローラの内部ネットワークは、前記複数のルートポートの１つから前記スイッチを介して前記複数のエンドポイントデバイスの１つへのデータ経路の１つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理ステップとして、当該障害状態の第１のデータ経路から代替の第２のデータ経路への切り替えにおいて、当該データ経路のアクセス元ルートポートを切り替える処理ステップと、当該アクセス先エンドポイントデバイスのバーチャルファンクションと前記所定のインターフェイスとのマッピングを前記バーチャルファンクションマイグレーションによって切り替える処理ステップとを有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
【請求項１３】
請求項１２記載のストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法において、
前記ストレージコントローラの内部ネットワークに、シングルルートPCIマネージャーのプログラム、及びフェイルオーバー制御プログラムを備え、
前記ストレージコントローラの内部ネットワークまたはそれに接続される保守端末装置に、マルチルートPCIマネージャーのプログラムを備え、
前記ストレージコントローラの内部ネットワークは、前記複数のルートポートの１つから前記スイッチを介して前記複数のエンドポイントデバイスの１つへのデータ経路の１つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、
前記マルチルートPCIマネージャーのプログラムが、前記フェイルオーバー制御プログラムへデータ経路障害発生を通知する処理ステップと、
前記フェイルオーバー制御プログラムが、前記内部ネットワーク内にあるフェイルオーバー管理テーブルを参照し、上記通知された情報に基づいて前記マルチルートPCIマネージャーのプログラムに前記バーチャルファンクションマイグレーションを要求する処理ステップと、
前記マルチルートPCIマネージャーが、上記要求に対し、前記バーチャルファンクションマイグレーションを実行し、前記内部ネットワーク内にあるバーチャルファンクションと前記所定のインターフェイスとのマッピングを管理するテーブルを更新する処理ステップと、
前記フェイルオーバー制御プログラムが、上記バーチャルファンクションマイグレーションの実行に伴い、前記フェイルオーバー管理テーブルを更新する処理ステップと、を有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
【請求項１４】
請求項１３記載のストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法において、
前記データ経路における障害が未発生のデータ経路に関して、前記マルチルートPCIマネージャーのプログラムが、前記バーチャルファンクションマイグレーションを実行し、前記バーチャルファンクションマッピング管理テーブルを更新する処理ステップと、
前記フェイルオーバー制御プログラムが、上記バーチャルファンクションマイグレーションの実行に伴い、前記フェイルオーバー管理テーブルを更新する処理ステップとを有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
【請求項１５】
請求項１２記載のストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法において、
前記エンドポイントデバイスは、当該ストレージ装置のデータ読み出しあるいは書き込みに関連するデータ転送のための第１のファンクションと、前記第１のファンクションに付随するバーチャルファンクションの状態遷移を制御可能な第２のファンクションと、を備え、
前記エンドポイントデバイスは、前記シングルルートPCIマネージャーのプログラムまたは前記マルチルートPCIマネージャーのプログラムからの前記第２のファンクションへの通信に基づき、前記第１のファンクションのバーチャルファンクションを状態遷移させる処理ステップを有すること、を特徴とする、ストレージコントローラ内部ネットワークのデータ経路フェイルオーバー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置（ディスクアレイ装置などともいう）に関し、特に、ストレージコントローラ内部ネットワークのデータ経路（data path）のフェイルオーバー（fail-over）の技術に関する。
【背景技術】
【０００２】
ストレージ装置は、一般的に、ストレージコントローラ（単にコントローラともいう）と、ランダムアクセス可能な不揮発性記録媒体とを備える。この記録媒体は、例えば、ハードディスクドライブ（ＨＤＤ）を多数備えたディスクアレイである。ストレージコントローラは、上位装置（ホストシステム等）を接続するためのフロントエンドインターフェイス（front-end interface：ＦＥＩ/Ｆと略す）と、ディスクアレイを接続するためのバックエンドインターフェイス（back-end interface：ＢＥＩ/Ｆと略す）と、上位装置がディスクアレイに対して読み書きするデータを一時的に保存するキャッシュメモリ（ＣＭと略す）とを備える。更に、ストレージコントローラは、上位装置とキャッシュメモリとの間、及びディスクアレイとキャッシュメモリとの間におけるデータ転送を制御するためのプロセッサを備える。
【０００３】
高い信頼性が要求されるストレージ装置においては、ストレージコントローラ内のプロセッサ、ＦＥＩ/Ｆ、ＢＥＩ/Ｆ、及びＣＭを相互接続するネットワークが、データ経路障害発生時にフェイルオーバー可能に、構成される。また、高い性能が要求されるストレージ装置においては、複数のプロセッサがストレージコントローラ内部ネットワーク（ＣＮと略す）に接続され、データ転送を制御する。
【０００４】
データ経路障害発生時にフェイルオーバー可能な内部ネットワーク（ＣＮ）を備えるストレージシステムに関連する公知技術としては、特開２００８−８４０６６号公報（特許文献１）がある。
【０００５】
また、プロセッサとＦＥＩ/ＦまたはＢＥＩ/Ｆ等とを接続するネットワークについての、標準化された規格（基本仕様）として、PCI Express（ＰＣＩｅと略す）が知られている。そして、複数のプロセッサがＩ/Ｏデバイスを共有するための「Multi-Root I/O Virtualization and Sharing Specification」（以下、ＭＲ−ＩＯＶ）が標準化されている。ＭＲ−ＩＯＶは、標準規格であるため、ＭＲ−ＩＯＶに準拠したスイッチ等のコンポーネントは、コモディティ化すると考えられる。
【０００６】
つまり、標準規格であるＭＲ−ＩＯＶを用いてストレージコントローラ内部ネットワーク（ＣＮ）を構成すれば、ストレージコントローラの低コスト化が期待できる。
【０００７】
なお、「Single-Root I/O Virtualization and Sharing Specification」（以下、ＳＲ−ＩＯＶ）についても公知技術である。ＳＲ−ＩＯＶにおいては、複数のＳＩ（System Image）が、１つのルートポート（Root Port：ＲＰと略す）から複数のエンドポイントデバイス（Endpoint device：ＥＰＤと略す）へアクセスが可能である。また、ＭＲ−ＩＯＶにおいて、１つのＲＰからエンドポイントを見たツリー状のトポロジを、バーチャルハイアラキ（Virtual Hierarchy：ＶＨと略す）と言う。ＭＲ−ＩＯＶにおいては、ネットワーク内に複数のＶＨが構成され、各ＶＨにおいて、１つ以上のＳＩが１つのＲＰから複数のＥＰＤへアクセスが可能である。
【特許文献１】特開２００８−８４０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
現状のＭＲ−ＩＯＶ規格においては、ＲＰとエンドポイント（ＥＰＤ）との間のデータ経路に障害が発生した場合のデータ経路のフェイルオーバー（障害経路から代替経路への切り替え）に関しては考慮されておらず、具体的な方法が定義されていない。
【０００９】
従って、ストレージコントローラ内部ネットワーク（ＣＮ）に対してＭＲ−ＩＯＶを適用したストレージ装置において、データ経路のフェイルオーバーが実行できない、という課題があった。
【００１０】
本発明は以上のような問題に鑑みてなされたものであり、その主な目的は、ストレージコントローラ内部ネットワーク（ＣＮ）に対してＭＲ−ＩＯＶを適用したストレージ装置に係わり、データ経路のフェイルオーバーを実行可能とする技術を提供することである。
【課題を解決するための手段】
【００１１】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次の通りである。前記目的を達成するために、本発明の代表的な実施の形態は、ストレージコントローラ（ＳＣ）内のコンポーネントがPCI Express（ＰＣＩｅ）で接続された内部ネットワーク（ＣＮ）を持つストレージ装置（ないしシステム）の技術であって、以下に示す構成を有することを特徴とする。
【００１２】
本形態のストレージ装置のストレージコントローラ（ＳＣ）及びその内部ネットワーク（ＣＮ）は、例えば、全体で複数のＲＰを有し、それぞれが１つ以上（特に複数）のＲＰを有する複数のルートコンプレックス（Root complex：ＲＣ）と、前記ＲＣ毎に接続される複数のプロセッサと、所定のインターフェイス（ミッションバーチャルファンクション（ＭＶＦ））を備え、前記複数（全体）のＲＰのそれぞれからアクセス可能な複数のバーチャルファンクション（ＶＦ）を有するＭＲＡ（Multi-Root Aware）デバイスである、複数のＥＰＤと、前記複数のＲＰと前記複数のＥＰＤとを接続してデータ経路を構成し複数のポートを備えるＭＲＡスイッチであるスイッチと、を有する。そして、前記複数のＥＰＤの少なくとも１つは、前記ＶＦと前記所定のインターフェイスとのマッピング（対応付け）を変更（移行）するＶＦマイグレーションを実行可能（ＶＦマイグレーション機能を備える）である。そして、ＳＣ及びＣＮは、すべての前記複数のＲＰが、すべての前記複数のＥＰＤ内のＶＦへアクセス可能なように、前記スイッチ及び前記ＥＰＤが設定されている。そして、ＳＣ及びＣＮは、前記複数のＲＰの１つから前記スイッチを介して前記複数のＥＰＤの１つへのデータ経路の１つに障害が発生した場合に、データ経路のフェイルオーバーを実行する処理として、当該障害状態の第１のデータ経路から代替の第２のデータ経路への切り替えにおいて、当該データ経路のアクセス元ＲＰを切り替える処理（第１の切り替え）と、当該アクセス先ＥＰＤのＶＦと前記所定のインターフェイスとのマッピングをＶＦマイグレーションによって切り替える処理（第２の切り替え）とを行う。
【００１３】
本ストレージ装置においては、ストレージコントローラ（ＳＣ）内のコンポーネントが、例えば、ＰＣＩｅのＭＲＡスイッチで接続される。ＭＲＡデバイス（ＭＲＡスイッチ）は、ＭＲ−ＩＯＶに従う装置である。ＲＣは１つ以上（特に複数）のＲＰを持つ。ＲＣ内のＲＰから、スイッチを通じて、ＥＰＤ内のＶＦにアクセスするデータ経路が構成され、ＥＰＤ内のＶＦに対しＭＶＦとして所定のインターフェイス（機能）がマッピングされる。そして、フロントエンドインターフェイス（ＦＥＩ/Ｆ）及びバックエンドインターフェイス（ＢＥＩ/Ｆ）等の機能が、以下のようなＭＲＡデバイス（ＥＰＤ）に構成される。即ち、ＭＲＡデバイス（ＥＰＤ）として、ＳＣ内のＲＰのそれぞれからアクセス可能なＶＦを有し、かつ、ＶＦマイグレーション（移行）を実行可能なＭＲＡデバイスである。
【００１４】
また、ストレージコントローラ内部ネットワーク（ＣＮ）は、ＭＲＡデバイスであるＥＰＤとして、ＦＥＩ/Ｆを持つ第１のＥＰＤ、及びＢＥＩ/Ｆを持つ第２のＥＰＤを有する。第１のＥＰＤ及び第２のＥＰＤは、ＳＣ内の各ＲＰ（複数）からアクセス可能な複数のＶＦ、言い換えれば、少なくともＶＨ（複数）分のアクセスが可能なＶＦリソースを有する。かつ、当該ＥＰＤは、ＶＦマイグレーションが実行可能に予め設定されている（例えばＶＦマイグレーション機能の有効／無効ビットを設定するレジスタ等を持ち、かつ有効にセットされている）。
【００１５】
また、キャッシュメモリインターフェイス（ＣＭＩ/Ｆ）等が、ＳＣ内のＲＰのそれぞれからアクセス可能なＶＦを有するＭＲＡデバイスに構成される。ストレージコントローラ内部ネットワーク（ＣＮ）は、ＭＲＡデバイスであるＥＰＤとして、ＣＭＩ/Ｆを持つ第３のＥＰＤを有する。第３のＥＰＤは、ＳＣ内の各ＲＰ（複数）からアクセス可能な複数のＶＦを有する。
【００１６】
そして、ＳＣ内の全ＲＰが、ＦＥＩ/Ｆ（第１のＥＰＤ）またはＢＥＩ/Ｆ（第２のＥＰＤ）またはＣＭＩ/Ｆ（第３のＥＰＤ）等の各ＭＲＡデバイス（ＥＰＤ）内のＶＦにアクセス可能に、前記ＭＲＡスイッチおよびＭＲＡデバイスが設定される。
【００１７】
そして、前記ＳＣ内のＲＰからＥＰＤの機能へのデータ経路に障害が発生した場合に、当該データ経路のアクセス元ＲＰの切り替えと、アクセス先ＭＲＡデバイス内ＶＦとＭＶＦとのマッピングの、ＶＦマイグレーションによる切り替えとが、ＭＲ−ＰＣＩＭ等により行われることにより、データ経路のフェイルオーバーが実行される。
【００１８】
本形態では、ＲＰ毎にアクセス可能なリソース（ＶＦ）を各ＥＰＤに持たせる。例えば４個のＲＰに対し、複数のＥＰＤのそれぞれでは４個のＶＦを持つ。なおＶＦはＣＰＵ（プロセッサ）側に仮想的に見せる存在であり、ＭＶＦは機能の実体である。ＶＦとＭＶＦとの対応付け（マッピング）はＭＲ−ＩＯＶの仕様に基づく。
【００１９】
上記構成のように、第１の特徴は、フェイルオーバーの際、アクセス元ＲＰを変更するだけでなく、ＶＦマイグレーションにより、アクセス先のＶＦ−ＭＶＦのマッピングを変更することである。
【００２０】
第２の特徴は、ＶＦマイグレーション制御手段に対する、データ経路障害発生時等の対策として、ＳＲ−ＰＣＩＭ以外による代替手段を設ける。ＥＰＤに、その代替手段となる機能を持たせる。例えば第１の方法（インバウンド通信による方法）、第２の方法（アウトバウンド通信による方法）、第３の方法（自律機能による方法）がある。
【発明の効果】
【００２１】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明の代表的な実施の形態によれば、ストレージコントローラ内部ネットワークに対してＭＲ−ＩＯＶを適用したストレージ装置に係わり、データ経路のフェイルオーバーを実行可能とする。ストレージコントローラ（内部ネットワーク）では、ＲＰからＥＰＤへのデータ経路に障害が発生した場合でも、他のデータ経路にフェイルオーバーすることができるので、高い信頼性が確保される。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【００２３】
（実施の形態１）
図１〜図２０等を用いて、本発明の実施の形態１のストレージ装置（換言すればストレージシステム）について説明する。実施の形態１では、概要としては、図１、図２等の構成に基づき、図１６、図１７等に示すように、ストレージコントローラの内部ネットワークにおいて、正常データ経路（障害状態）から代替データ経路へのフェイルオーバー動作の際、アクセス元のルートポートを変更すると共に（例えばＲＰ０→ＲＰ１）、ＶＦマイグレーションの制御としてエンドポイントデバイスのバーチャルファンクション（ＶＦ）とミッションバーチャルファンクション（ＭＶＦ）とのマッピング（ＶＦマッピング）を変更すること（例えばＥＤ０の「VF 0:0,1」−「MVF 0:0」→「VF 1:0,1」−「MVF 0:0」）により実現する。
【００２４】
＜ストレージ装置＞
図１は、本発明の実施の形態であるストレージ装置１０のブロック構成を示す。ストレージ装置１０は、ストレージコントローラ（ＳＣ）２０とディスクアレイ（ＤＡ）１５を備える。ＤＡ１５は、複数のハードディスクドライブ（ＨＤＤ）または半導体メモリドライブ等の記憶装置群から成る。また、ＳＣ２０に対し、チャネルＣ００を介して外部の上位装置（ホストシステム）などが接続される。また、ＳＣ２０に対しネットワークＮ００を介して保守端末（maintenance terminal：ＳＶＰとする）１９０が接続される。
【００２５】
ストレージコントローラ（ＳＣ）２０及びその内部ネットワーク（ＣＮ）は、２個のプロセッサ２１（ＣＰＵ０，ＣＰＵ１）と、２個のメモリ２２（ＭＥＭ０，ＭＥＭ１）と、２個のルートコンプレックス（ＲＣ）３０（ＲＣ０，ＲＣ１）と、３つのエンドポイントデバイス（ＥＰＤ）５０（ＥＤ０，ＥＤ１，ＥＤ２）と、１つのキャッシュメモリ（ＣＭ）２３と、複数（５つ）のスイッチ４０（ＳＷ００，ＳＷ０１，ＳＷ１０，ＳＷ１１，ＳＷ１２）とを備える。内部ネットワーク（ＣＮ）は、上記のようなコンポーネントのスイッチによる相互接続（ＰＣＩｅファブリック）により構成されている。
【００２６】
なお、ＳＣ２０及びＣＮでは、プロセッサ２１、メモリ２２等が少なくとも二重化されており、同符号のものは左右対称の構成である。また、ＳＣ２０（及びＣＮ）を構成するコンポーネント（スイッチ等）の数は、図１の構成例に限らなくともよい。例えば、ＲＣ３０や、ＳＷ４０や、ＥＰＤ５０の数が増えてもよい。
【００２７】
プロセッサ２１であるＣＰＵ０（ＣＰＵ１）は、メモリ２２であるＭＥＭ０（ＭＥＭ１）に記憶されているプログラムを実行することによって各種処理を行う。具体的には、ＣＰＵ０（ＣＰＵ１）は、ＳＣ２０に接続された上位装置（ホストシステム）とＤＡ１５との間のデータ転送を制御する。メモリ２２であるＭＥＭ０（ＭＥＭ１）は、プロセッサ２１であるＣＰＵ０（ＣＰＵ１）によって実行されるプログラムや、参照されるテーブルのデータ等を記憶する。
【００２８】
本例では、各メモリ２２には、シングルルートＰＣＩマネージャー（ＳＲ−ＰＣＩＭ）及びマルチルートＰＣＩマネージャー（ＭＲ−ＰＣＩＭ）の両方のプログラム１０８と、フェイルオーバー制御プログラム（ＦＰ）１１０と、各種管理情報のテーブル（後述）とが格納される。また、ＣＭ２３の一部領域にも、フェイルオーバー制御テーブル（ＦＴ）１１１を含む各種管理情報のテーブルが格納される。また、保守端末（ＳＶＰ）１９０にも、ＭＲ−ＰＣＩＭのプログラム１０９等のプログラムやテーブルが格納される。
【００２９】
各種テーブルの情報は、管理者（Administrator）によって設定または変更等が可能となっている。管理者は例えば保守端末（ＳＶＰ）１９０を操作して当該設定等を含む保守・管理系の作業が可能である。この場合、管理者は、テーブルの設定等に関する情報を、ＳＶＰ１９０に入力する。ＳＶＰ１９０は、入力された情報を、ネットワークＮ００を介してプロセッサ２１（ＣＰＵ０（ＣＰＵ１））に送信する。そのプロセッサ２１は、受信した情報に基づいて、対象のテーブルを作成または変更等する。そして、そのプロセッサ２１は、当該テーブルをメモリ２２（ＭＥＭ０（ＭＥＭ１））等に格納する。
【００３０】
第１のルートコンプレックス３０（ＲＣ０）は、第１のプロセッサ２１（ＣＰＵ０）と接続され、そして２個のＰＣＩｅ基本仕様のルートポート（第１のＲＰ，第２のＲＰ）であるＲＰ０，ＲＰ１を備える。同様に、第２のルートコンプレックス３０（ＲＣ１）は、第２のプロセッサ２１（ＣＰＵ１）と接続され、２個のルートポート（第１のＲＰ，第２のＲＰ）であるＲＰ２，ＲＰ３を備える。
【００３１】
第１のルートポート（ＲＰ０）は、第１のスイッチ４０（ＳＷ００）及び第３のスイッチ４０（ＳＷ１０）を介して第１のエンドポイントデバイス５０（ＥＤ０）と接続されている。また、ＲＰ０は、ＳＷ００及び第４のスイッチ４０（ＳＷ１１）を介して第３のエンドポイントデバイス５０（ＥＤ１）と接続されている。更に、ＲＰ０は、ＳＷ００及び第５のスイッチ４０（ＳＷ１２）を介して第２のエンドポイントデバイス５０（ＥＤ２）と接続されている。
【００３２】
第２のルートポート（ＲＰ１）は、第２のスイッチ４０（ＳＷ０１）及び第３のスイッチ４０（ＳＷ１０）を介して第１のエンドポイントデバイス５０（ＥＤ０）と接続されている。また、ＲＰ１は、ＳＷ０１及び第４のスイッチ４０（ＳＷ１１）を介して第３のエンドポイントデバイス５０（ＥＤ１）と接続されている。更に、ＲＰ１は、ＳＷ０１及び第５のスイッチ４０（ＳＷ１２）を介して第２のエンドポイントデバイス５０（ＥＤ２）と接続されている。
【００３３】
第３のルートポート３０（ＲＰ２）（ＲＣ１内の第１のＲＰ）は、第１のスイッチ４０（ＳＷ００）及び第３のスイッチ４０（ＳＷ１０）を介して第１のエンドポイントデバイス５０（ＥＤ０）と接続されている。また、ＲＰ２は、ＳＷ００及び第４のスイッチ４０（ＳＷ１１）を介して第３のエンドポイントデバイス５０（ＥＤ１）と接続されている。更に、ＲＰ２は、ＳＷ００及び第５のスイッチ４０（ＳＷ１２）を介して第２のエンドポイントデバイス５０（ＥＤ２）と接続されている。
【００３４】
第４のルートポート（ＲＰ３）（ＲＣ１内の第２のＲＰ）は、第２のスイッチ４０（ＳＷ０１）及び第３のスイッチ４０（ＳＷ１０）を介して第１のエンドポイントデバイス５０（ＥＤ０）と接続されている。また、ＲＰ３は、ＳＷ０１及び第４のスイッチ４０（ＳＷ１１）を介して第３のエンドポイントデバイス５０（ＥＤ１）と接続されている。更に、ＲＰ３は、ＳＷ０１及び第５のスイッチ４０（ＳＷ１２）を介して第２のエンドポイントデバイス４０（ＥＤ２）と接続されている。
【００３５】
スイッチ（ＳＷ００，ＳＷ０１，ＳＷ１０，ＳＷ１１，ＳＷ１２）は、ＭＲ−ＩＯＶ仕様に準拠したマルチルートアウェア（ＭＲＡ：Multi-Root Aware）スイッチである。また、エンドポイントデバイス５０（ＥＤ０，ＥＤ１，ＥＤ２）は、ＭＲＡデバイスである。第１と第２のスイッチ（ＳＷ００，ＳＷ０１）は、ＲＣ３０側と接続される。第３〜第５のスイッチ（ＳＷ１０，ＳＷ１１，ＳＷ１２）は、ＥＰＤ５０側と接続される。
【００３６】
第１のスイッチ４０（ＳＷ００）は、データ経路を構成するためのポートＰ０００，Ｐ００１，Ｐ００２，Ｐ００３，Ｐ００４と、更に、ネットワークＮ００に接続可能な管理ポート（management port）１９１とを備える。同様に、第２のスイッチ４０（ＳＷ０１）は、ポートＰ０１０，Ｐ０１１，Ｐ０１２，Ｐ０１３，Ｐ０１４と、管理ポート１９１とを備える。ＳＶＰ１９０をネットワークＮ００を介してスイッチ４０の管理ポート１９１と接続することにより、管理者はＰＣＩｅファブリックを設定、管理することができる。
【００３７】
第３のスイッチ４０（ＳＷ１０）は、データ経路を構成するためのポートＰ１００，Ｐ１０１，Ｐ１０２を備える。同様に、第４のスイッチ４０（ＳＷ１１）は、ポートＰ１１０，Ｐ１１１，Ｐ１１２を備える。第５のスイッチ４０（ＳＷ１２）は、ポートＰ１２０，Ｐ１２１，Ｐ１２２を備える。３つのスイッチ４０（ＳＷ１０，ＳＷ１１，ＳＷ１２）は、２個のスイッチ４０（ＳＷ００，ＳＷ０１）と同様に、ネットワークＮ００を介してＳＶＰ１９０と接続される。
【００３８】
第１のエンドポイントデバイス５０（ＥＤ０）は、チャネルＣ００を介して、外部の上位装置に接続されている。上位装置は、例えば、本ストレージ装置１０にデータを読み書きする計算機である。ＥＤ０は、フロントエンドインターフェイス（ＦＥＩ/Ｆ）１０２を備える。ＦＥＩ/Ｆ１０２は、チャネルＣ００上とＳＣ２０内のデータ転送プロトコルを相互に変換する。なお、ＳＷ１０とＥＤ０は、纏めて１つのコンポーネント１０３として実装されてもよい。
【００３９】
第２のエンドポイントデバイス５０（ＥＤ２）は、チャネルＤ００を介して、ＤＡ１５に接続されている。ＥＤ２は、バックエンドインターフェイス（ＢＥＩ/Ｆ）１０６を備える。ＢＥＩ/Ｆ１０６は、チャネルＤ００上とＳＣ２０内のデータ転送プロトコルを相互に変換する。なお、ＳＷ１２とＥＤ２は、纏めて１つのコンポーネント１０７として実装されてもよい。
【００４０】
第３のエンドポイントデバイス５０（ＥＤ１）は、キャッシュメモリ（ＣＭ）２３と接続するためのキャッシュメモリインターフェイス（ＣＭＩ/Ｆ）１０４を備える。ＣＭ２３は、第１のエンドポイントデバイス５０（ＥＤ０）及び第２のエンドポイントデバイス５０（ＥＤ２）等から受信したデータ（ＦＥＩ/Ｆ１０２やＢＥＩ/Ｆ１０６との間での転送データ）を一時的に記憶（キャッシュ）する。ＣＭ２３は、ＳＣ２０内でのデータや情報の格納に共用される。また、ＣＭ２３内の記憶領域の一部に確保される共有メモリ領域に、制御情報などが格納される。なお、ＳＷ１１とＥＤ１は、纏めて１つのコンポーネント１０５として実装されてもよい。
【００４１】
ＥＰＤ５０（ＥＤ０，ＥＤ１，ＥＤ２）は、ネットワークＮ００を介してＳＶＰ１９０に接続されている。ＳＶＰ１９０は、ストレージ装置１０の管理者により入力された設定情報を、ＥＰＤ５０（ＥＤ０，ＥＤ１，ＥＤ２）に送信する。
【００４２】
なお、ＳＣ２０は、２個のエンドポイントデバイス５０であるＥＤ０（ＦＥＩ/Ｆ１０２搭載）及びＥＤ２（ＢＥＩ/Ｆ１０６搭載）の代わりに、１つのエンドポイントデバイスを備えていてもよい。この場合、当該１つのエンドポイントデバイスが、当該２個のＥＰＤ（ＥＤ０及びＥＤ２）の処理相当を行う。
【００４３】
ＭＲ−ＰＣＩＭ（Multi-Root PCI Manager）は、ＰＣＩｅファブリック（内部ネットワーク（ＣＮ））を設定、管理する機能などを有する。また、本特徴に係わり、ＭＲ−ＰＣＩＭは、データ経路のフェイルオーバーを制御する機能などを有する。
【００４４】
ＭＲ−ＰＣＩＭのプログラムは、例えばメモリ２２に格納され（プログラム１０８）、プロセッサ２１上で動作する。あるいは、ＭＲ−ＰＣＩＭのプログラムは、ＳＶＰ１９０上で動作し（プログラム１０９）、ネットワークＮ００とスイッチ４０の管理ポート１９１を介して、ＰＣＩｅファブリックを設定、管理してもよい。
【００４５】
ＳＲ−ＰＣＩＭ（Single-Root PCI Manager）は、ルートポート毎のバーチャルハイアラキ（Virtual Hierarchy：ＶＨ）内で動作する。ＳＲ−ＰＣＩＭのプログラムは、例えばメモリ２２に格納され（プログラム１０８）、プロセッサ２１上で動作する。
【００４６】
ＳＣ２０（ＣＮ）におけるデータ経路のフェイルオーバーを制御するフェイルオーバー制御プログラム（ＦＰ）１１０は、例えばメモリ２２に格納され、プロセッサ２１上で動作する。ＦＰ１１０は、ＭＲ−ＰＣＩＭの機能として内蔵するように実装されてもよいし、あるいは独立したプログラムとして実装されてもよい。但し、ＦＰ１１０は、ＭＲ−ＰＣＩＭ及びＳＲ−ＰＣＩＭと直接的あるいは間接的に通信可能に実装される。
【００４７】
本システム（ＳＣ２０）では、ＭＲ−ＰＣＩＭとＳＲ−ＰＣＩＭとの両方が動作する。ＳＲ−ＰＣＩＭ（各ＶＨ内で動作する）は、ＥＰＤのＳＲ−ＩＯＶ特性を管理する。ＭＲ−ＰＣＩＭは、ＥＰＤのＭＲ−ＩＯＶ特性を管理する。ＶＦとＭＶＦとの対応付け（マッピング）は、ＭＲ−ＰＣＩＭが管理する。ＭＲ−ＰＣＩＭとＳＲ−ＰＣＩＭが連携してＶＦマイグレーションを制御する。
【００４８】
ＭＲ−ＰＣＩＭは、ＭＲ−ＩＯＶ仕様に基づくものであり、本例では、２個のプロセッサ２１（ＣＰＵ０，ＣＰＵ１）及びＳＶＰ１９０の３つの箇所にそれぞれＭＲ−ＰＣＩＭのプログラムが配置される（１０８，１０９）。状況に応じて、そのうち１つがアクティブに動作し、他の２個はバックアップ動作用である。
【００４９】
ＣＭ２３の一部に設けられた共有メモリ領域に格納される情報の１つとして、フェイルオーバー制御テーブル（ＦＴ）１１１を有する。ＦＴ１１１はプロセッサ２１（フェイルオーバー制御プログラム（ＦＰ）１１０）からアクセス、参照される。プロセッサ２１側のＲＰ間では通信できないので、フェイルオーバー制御プログラム（ＦＰ）１１０は、両方のプロセッサ２１（ＣＰＵ０，ＣＰＵ１）側のＲＰからアクセス可能である位置として、本例ではＣＭ２３内に配置されている。フェイルオーバー動作については、フェイルオーバー制御プログラム（ＦＰ）１１０がＦＴ１１１を参照して自動的に実行する。
【００５０】
＜エンドポイントデバイスＥＤ０＞
図２は、第１のエンドポイントデバイス５０（ＥＤ０）のブロック構成を示す。ＥＤ０は、ＭＲ−Ｌｉｎｋ（Multi-Root Link）（スイッチ４０側）に接続可能なポート２０１、内部ルーティング制御部（internal rooting controller）２０５、各ファンクション（ＢＦ２０２，ＰＨ２０３，ＶＦ２０４）、ＶＦマッピング（VF Mapping）制御部２０６、ＦＥＩ/Ｆ１０２のミッションバーチャルファンクション（ＭＶＦ）２０７、及びネットワークＮ００を介してＳＶＰ１９０と通信可能な管理ポート２０８等を備える。
【００５１】
ＥＤ０は、ファンクション番号０の１つのベースファンクション２０２（「BF 0:0」）を備える（ベースファンクション：ＢＦと略す）。また、ＥＤ０は、ＢＦ２０２（「BF 0:0」）に付随した複数（４個）のフィジカルファンクション２０３（「PF 0:0」，「PF 1:0」，「PF 2:0」，「PF 3:0」）を備える（フィジカルファンクション：ＰＦと略す）。更に、ＥＤ０は、ＰＦ毎に、各ＰＦに付随した複数（４個）のバーチャルファンクション２０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）を備える（バーチャルファンクション：ＶＦと略す）。これらファンクション（ＢＦ，ＰＦ，ＶＦ）によって、４個のＶＨをサポートすることにより、ＥＤ０は、ＳＣ２０内に設けられた全４個のルートポート（ＲＰ０，ＲＰ１，ＲＰ２，ＲＰ３）からアクセス可能なように設定することができる。例えば、「PF 0:0」と「VF 0:0,1」は、第１のＶＨ（ＶＨ０）に対応している。
【００５２】
ＢＦ２０２は、基本的な設定が格納される。ＶＦ２０４は、ＭＶＦ２０７とマッピングされる。ＶＦ２０４等は、ストレージ装置１０のデータ読み出しあるいは書き込み等に関連するデータ転送等のためのファンクションである。ＢＦは、ＭＲＡデバイスのＭＲ−ＩＯＶに係わる特性を管理するファンクションであり、またＶＦとＭＶＦとのマッピング情報を保持する。ＰＦは、ＳＲ−ＩＯＶ仕様に係わるデバイスの特性を管理するファンクションである。ＶＦはＰＦに付随するファンクションであり、１個以上のリンク等の物理リソースを、付随するＰＦおよび同じＰＦに付随する他のＶＦと共有する。本例のエンドポイントデバイスにおいて、ファンクション番号０のＢＦ、ＰＦ、ＶＦは、エンドポイントデバイスのＦＥＩ／Ｆ等のインターフェイス機能を司る。
【００５３】
複数（２個）のＭＶＦ２０７（「MVF 0,0」，「MVF 0,1」）は、ＦＥＩ/Ｆ１０２の機能の実体である（ミッションバーチャルファンクション：ＭＶＦと略す）。ＥＤ０は、本例では２個のＭＶＦ２０７を備えることにより、最大２個のインターフェイス（ＦＥＩ/Ｆ）機能を同時並行的に実行可能である。
【００５４】
ＶＦマッピング制御部２０６は、ＢＦ２０２に格納された設定に基づき、複数のＶＦ２０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）のうち最大２個のＶＦ２０４を、ＭＶＦ２０７（「MVF 0,0」，「MVF 0,1」）と１対１に接続（マッピング）する。
【００５５】
ポート２０１からチャネルＣ００へのデータの流れを説明する。ＥＤ０は、ポート２０１が受信したデータを内部ルーティング制御部２０５へ転送する。内部ルーティング制御部２０５は、受信したデータの送信先に従い、各ファンクションへ経路変更する。ＶＦマッピング制御部２０６は、ＶＦ２０４からＭＶＦ２０７へデータを伝送する。ＭＶＦ２０７は、チャネルＣ００へデータを転送する。チャネルＣ００からポート２０１へのデータの流れは、上述の逆方向である。
【００５６】
なお、第２のエンドポイントデバイス５０（ＥＤ２）の構成については、ＭＶＦの機能が、チャネルＤ００と接続するＢＥＩ/Ｆ１０６であること以外は、図２のＥＤ１の構成と概略同様である。
【００５７】
なお、ファンクションの表記に関して、例えば、「BF a:b」において、ａはＶＨ番号、ｂはファンクション番号である。また、「PF a:b」において、ａはＶＨ番号、ｂはファンクション番号である。また、「VF a:b,c」において、ａはＶＨ番号、ｂはファンクション番号、ｃはＶＦ番号である。また、「MVF a,b」において、ａはファンクション番号、ｂはＭＶＦ番号である。
【００５８】
＜エンドポイントデバイスＥＤ１＞
図３は、第３のエンドポイントデバイス５０（ＥＤ１）のブロック構成を示す。ＥＤ１は、ＭＲ−Ｌｉｎｋ（スイッチ４０側）に接続可能なポート３０１、内部ルーティング制御部３０５、各ファンクション（ＢＦ３０２，ＰＦ３０３，ＶＦ３０４）、ＶＦマッピング（VF Mapping）制御部３０６、ＣＭＩ/Ｆ１０４のミッションバーチャルファンクション（ＭＶＦ）３０７、及びネットワークＮ００を介してＳＶＰ１９０と通信可能な管理ポート３０８等を備える。
【００５９】
ＥＤ１は、ファンクション番号０の１つのＢＦ３０２（「BF 0:0」）を備える。また、ＥＤ１は、ＢＦ３０２（「BF 0:0」）に付随した複数（４個）のＰＦ３０３(「PF 0:0」，「PF 1:0」，「PF 2:0」，「PF 3:0」)を備える。更に、ＥＤ１は、ＰＦ毎に、各ＰＦに付随した複数（４個）のＶＦ３０４(「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」)を備える。これらによって、４個のＶＨをサポートすることにより、ＥＤ１は、ＳＣ２０内に設けられた４個のルートポート（ＲＰ０，ＲＰ１，ＲＰ２，ＲＰ３）からアクセス可能なように設定することができる。
【００６０】
ＭＶＦ３０７（「MVF 0,0」，「MVF 0,1」，「MVF 0,2」，「MVF 0,3」）は、ＣＭＩ/Ｆ１０４の機能の実体である。ＥＤ１は４個のＭＶＦ３０７を備えることにより、最大４個のインターフェイス（ＣＭＩ/Ｆ）機能を同時並行的に実行可能である。
【００６１】
ＶＦマッピング制御部３０６は、ＢＦ３０２に格納された設定に基づき、複数のＶＦ３０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）のうち最大４個のＶＦ３０４を、ＭＶＦ３０７（「MVF 0,0」，「MVF 0,1」，「MVF 0,2」，「MVF 0,3」）と１対１に接続する。ＣＭＩ/Ｆ１０４搭載のＥＤ１では、すべてのＶＦ３０４がＭＶＦ３０７とマッピング可能となっている。
【００６２】
ポート３０１からＣＭ２３接続チャネルへのデータの流れを説明する。ＥＤ１は、ポート３０１が受信したデータを内部ルーティング制御部３０５へ転送する。内部ルーティング制御部３０５は、受信したデータの送信先に従い、各ファンクションへ経路変更する。ＶＦマッピング制御部３０６は、ＶＦ３０４からＭＶＦ３０７へデータを伝送する。ＭＶＦ３０７は、ＣＭ２３接続チャネルへデータを転送する。ＣＭ２３接続チャネルからポート３０１へのデータの流れは、上述の逆方向である。
【００６３】
ＥＤ１は、ＶＦにマッピングされるＭＶＦ（ＣＭＩ/Ｆ１０４が対応付けられる）の数（ｘ）として、ＥＤ１にアクセスするＲＰの数（ｙ：本例では４）以上を有している（本例ではｘ＝ｙ＝４）。
【００６４】
＜初期設定＞
次に、ＳＣ２０の内部ネットワーク（ＣＮ）を構成するＰＣＩｅファブリックの初期設定の情報などが格納される各種テーブルについて順に説明する。各種テーブルは、図４のスイッチポートタイプ管理テーブル４００、図５のＶＨ及びＶＦマッピングポリシー管理テーブル５００、図６〜図１０のスイッチ（ＳＷ００〜ＳＷ１２）毎のスイッチ管理テーブル６００，７００，８００，９００，１０００、図１１〜図１３のＥＰＤ５０（ＥＤ０，ＥＤ１，ＥＤ２）毎のＶＦマッピング管理テーブル１１００，１２００，１３００を含む。
【００６５】
＜スイッチポートタイプ管理テーブル＞
図４は、スイッチポートタイプ管理テーブル４００の説明図である。スイッチポートタイプ管理テーブル４００は、項目（列）として、ＳＣ２０内のスイッチポート（「Switch Port」）ａ（前記スイッチ４０のポートの番号、例えば「Ｐ０００」等）と、そのポートタイプ（「PCIM Capable」）ｂとの対応を格納する。ＭＲ−ＰＣＩＭは、ポートタイプｂがYesのスイッチポートを介してＰＣＩｅファブリックを初期化する。ＥＰＤ５０のみが接続されるスイッチポートａのポートタイプｂはNoである。
【００６６】
＜ＶＨ及びＶＦマッピングポリシー管理テーブル＞
図５は、ＶＨ及びＶＦマッピングポリシー管理テーブル５００の説明図である。ＶＨ及びＶＦマッピングポリシー管理テーブル５００は、項目として、「ＶＨ」ａ、「Authorized」ｂ、「VH Mapping」ｃ｛「VS in」ｄ、「Inter-SW Link」ｅ、「VH in」ｆ｝、「VF Mapping」ｇを有する。
【００６７】
各ＶＨのＲＰ（ＲＰ番号）がａに格納される。ａに格納されたＲＰ上でＭＲ−ＰＣＩＭが動作するならば、「Authorized」ｂをYesとする。本実施の形態では、冗長性確保のため、全ＲＰ上でＭＲ−ＰＣＩＭが動作可能に設定される。
【００６８】
ｃは、ＶＨマッピング（VH Mapping）設定情報が格納される。ｄは、各ＶＨで使用するスイッチ４０内バーチャルスイッチ（ＶＳ）が格納される。本例では、全ＶＨにおいて、ＥＰＤ５０接続側の３つのスイッチ４０（ＳＷ１０，ＳＷ１１，ＳＷ１２）内のバーチャルスイッチ（ＶＳ）を使用する。例えば、ＲＰ０のＶＨでは、ＳＷ００と３つのスイッチ（ＳＷ１０，ＳＷ１１，ＳＷ１２）のＶＳが設定されている。
【００６９】
なお、バーチャルスイッチ（ＶＳ）は、ＭＲ−ＩＯＶ仕様に基づく用語である。スイッチデバイス４０内に１つ以上のＶＳが対応付けられて設けられる。例えばＳＷ００内には、ＶＳ０，ＶＳ１の２個のＶＳを有する。
【００７０】
ｅは、各ＶＨで使用するスイッチ間リンク（inter-switch link）の一覧が格納される。本例では、各ＶＨは、ＥＰＤ５０接続側の３つのスイッチ４０（ＳＷ１０，ＳＷ１１，ＳＷ１２）のそれぞれが持つ２本のスイッチ間リンクのうち１本ずつのリンクを使用する。例えばＲＰ０のＶＨでは、スイッチ間リンクとして、Ｐ００２−Ｐ１００のリンク（ＳＷ００−ＳＷ１０間の経路）、Ｐ００３−Ｐ１１０のリンク（ＳＷ００−ＳＷ１１間の経路）、Ｐ００４−Ｐ１２０のリンク（ＳＷ００−ＳＷ１２間の経路）が設定されている。
【００７１】
ｆは、各ＶＨに属するＥＰＤ５０の一覧が格納される。本例では、全ＥＰＤ５０（ＥＤ０，ＥＤ１，ＥＤ２）が各ＶＨ内に属する。
【００７２】
ｇは、ＶＦマッピング（VF Mapping）設定情報が格納される。本例では、各ＶＨにおいて、ＥＰＤ５０毎に１個のＶＦが割り当てられている。なお、各ＶＨに割り当てるＥＤＰ５０毎のＶＦの個数は１個に限られず、１個以上であればよい。本例では、各ＥＰＤ５０は、ＶＨの個数（接続するルートポート数）以上のＶＦをサポートする。
【００７３】
＜スイッチ毎のスイッチ管理テーブル＞
図６〜図１０は、５つの各スイッチ４０（ＳＷ００〜ＳＷ１２）のスイッチ管理テーブルの説明図である。図６は第１のスイッチ４０（ＳＷ００）のスイッチ管理テーブル６００である。図７は第２のスイッチ４０（ＳＷ０１）のスイッチ管理テーブル７００である。
【００７４】
スイッチ管理テーブルは、項目として、「Slot（スロット）」ａ、「Root（ルート）」ｂ、「VS」ｃ、「Bridge（ブリッジ）」ｄ、「Enable（イネーブル）」ｅ、「Mapped」ｆ、「Port（ポート）」ｇ、「Port VHN（ポートＶＨ番号）」ｈを有する。
【００７５】
本例では、行の６０１，６０３，７０１，７０３に示すように、４個のＲＰ（ＲＰ０，ＲＰ１，ＲＰ２，ＲＰ３）は、ＰＣＩｅ基本仕様のＲＰであるため、各スイッチ４０においてＲＰと接続したポートの「Port VHN」ｈ（ポートＶＨ番号）は「ＶＨ０」となっている。ポートＶＨ番号は、スイッチ４０の各ポートに接続したリンクで使用するＶＨ番号である（ＭＲ−ＩＯＶの仕様に基づく用語）。
【００７６】
本例では、ＳＷ００のスイッチ管理テーブル６００において、ＲＰ０に接続したバーチャルスイッチＶＳ０のダウンストリーム側ポートの「Port VHN」ｈは、「ＶＨ０」にマッピングされる（６０２）。また、ＲＰ２に接続したバーチャルスイッチＶＳ１のダウンストリーム側ポートの「Port VHN」ｈは、「ＶＨ１」にマッピングされる（６０４）。
【００７７】
本例では、ＳＷ０１のスイッチ管理テーブル７００において、ＲＰ１に接続したバーチャルスイッチＶＳ０のダウンストリーム側ポートの「Port VHN」ｈは、「ＶＨ０」にマッピングされる（７０２）。また、ＲＰ３に接続したバーチャルスイッチＶＳ１のダウンストリーム側ポートの「Port VHN」ｈは、「ＶＨ１」にマッピングされる（７０４）。
【００７８】
なお、「Bridge」ｄに関して、ダウンストリーム側とは、図１ではＳＷ００，ＳＷ０１のエンドポイントデバイス側、アップストリーム側とは、図１ではＳＷ００，ＳＷ０１のルートポート側のことである。
【００７９】
図８は、第３のスイッチ４０（ＳＷ１０）のスイッチ管理テーブル８００である。本例では、ＥＰＤ５０とスイッチ４０（ＳＷ１０，ＳＷ１１，ＳＷ１２）を接続するリンクにおいて、ＲＰ０をルートポートとするＶＨに対応するＶＨ番号をＶＨ０とする。同様に、ＲＰ１に対応してＶＨ１、ＲＰ２に対応してＶＨ２、ＲＰ３に対応してＶＨ３とする。本例において、ＳＷ１０のダウンストリーム側ポートＰ１０２は、ＲＰがＲＰ０の場合に「Port VHN」ｈが「ＶＨ０」にマッピングされる（８０１）。また、ポートＰ１０２の「Port VHN」ｈは、ＲＰがＲＰ１の場合に「ＶＨ１」（８０２）、ＲＰがＲＰ２の場合に「ＶＨ２」（８０３）、ＲＰがＲＰ３の場合に「ＶＨ３」（８０４）にマッピングされる。
【００８０】
図９は、第４のスイッチ４０（ＳＷ１１）のスイッチ管理テーブル９００である。本例において、ＳＷ１１のダウンストリーム側ポートＰ１１２は、ＲＰがＲＰ０の場合に「Port VHN」ｈが「ＶＨ０」にマッピングされる（９０１）。また、ポートＰ１１２の「Port VHN」ｈは、ＲＰがＲＰ１の場合に「ＶＨ１」（９０２）、ＲＰがＲＰ２の場合に「ＶＨ２」（９０３）、ＲＰがＲＰ３の場合に「ＶＨ３」（９０４）にマッピングされる。
【００８１】
図１０は、第５のスイッチ４０（ＳＷ１２）のスイッチ管理テーブル１０００である。本例において、ＳＷ１２のダウンストリーム側ポートＰ１２２は、ＲＰがＲＰ０の場合に「Port VHN」ｈが「ＶＨ０」にマッピングされる（１００１）。また、ポートＰ１２２の「Port VHN」ｈは、ＲＰがＲＰ１の場合に「ＶＨ１」（１００２）、ＲＰがＲＰ２の場合に「ＶＨ２」（１００３）、ＲＰがＲＰ３の場合に「ＶＨ３」（１００４）にマッピングされる。
【００８２】
図１０までの設定は、システム・ハードウェア初期設定の値であり、本システムの設計・製造段階で予め設定されている。また、管理者は、具体的なシステム利用例に応じて、図１１以降のテーブルの必要項目の値を設定する。
【００８３】
＜ＥＰＤ毎のＶＦマッピング管理テーブル（１）＞
図１１〜図１３は、ＥＰＤ５０（ＥＤ０，ＥＤ１，ＥＤ２）毎のＶＦマッピング（VF Mapping）管理テーブル（１１００，１２００，１３００）の説明図である。これらＶＦマッピング管理テーブルは、ＥＰＤ５０毎のＢＦ内に格納され、ＭＲ−ＰＣＩＭにより設定、管理される。
【００８４】
図１１は、第１のＥＰＤ５０（ＥＤ０）（ＦＥＩ/Ｆ１０２搭載）のＶＦマッピング管理テーブル１１００の説明図である。ＶＦマッピング管理テーブル１１００は、項目として、「PF」ａ、「LVF#」ｂ，「VF State（ＶＦ状態）」ｃ，「VF」ｄ，「MVF」ｅを有する。ｄとｅは、ＶＦとＭＶＦとのマッピングを示す。「LVF#」ｂにおけるＬＶＦは、ロジカルＶＦ（ＭＲ−ＩＯＶ仕様に基づく用語）である。ＢＦ内では、ＶＦはＬＶＦとして管理される。ＭＲ−ＩＯＶ仕様によれば、「LVF#」ｂ，「VF State（ＶＦ状態）」ｃ，「MVF」ｅの対応は、ＬＶＦテーブルとしてＢＦ内に格納される。ＬＶＦテーブルは、ＶＨに関する情報を保持しない。ＶＦマイグレーション制御のためには、ＬＶＦテーブルの情報で十分であるが、本システムでは、ＬＶＦテーブルに「PF」ａおよび「VF」ｄの項目が追加されることにより、ＬＶＦテーブルを、ＶＨの情報を追加したＶＦマッピング管理テーブルに拡張している。その結果、本例は、ＬＶＦおよびＭＶＦがどのルートポートからアクセス可能なのかを容易に判断することができる。
【００８５】
ＶＨ０に属するＶＦ（「VF 0:0,1」）は、その「VF State」ｃが「Active.Available(A.A)」であり、ＭＶＦ（「MVF 0,0」）にマッピングされている（１１０１）。ＶＨ１に属するＶＦ（「VF 1:0,1」）は、その「VF State」ｃが「Inactive.Unavailable(I.U)」であり、ＭＶＦにマッピングされていない（「none」）（１１０２）。ＶＨ２に属するＶＦ（「VF 2:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,1」）にマッピングされている（１１０３）。ＶＨ３に属するＶＦ（「VF 3:0,1」）は、その「VF State」ｃが「I.U」であり、ＭＶＦにマッピングされていない（「none」）（１１０４）。これらのＶＦマッピングの結果、ＥＤ０は、初期状態において、ＲＰ０及びＲＰ２からアクセス可能であり、ＲＰ１及びＲＰ３からアクセス不可能である。
【００８６】
図１２は、第３のＥＰＤ５０（ＥＤ１）（ＣＭＩ/Ｆ１０４搭載）のＶＦマッピング管理テーブル１２００の説明図である。ＶＨ０に属するＶＦ（「VF 0:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,0」）にマッピングされている（１２０１）。ＶＨ１に属するＶＦ（「VF 1:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,1」）にマッピングされている（１２０２）。ＶＨ２に属するＶＦ（「VF 2:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,2」）にマッピングされている（１２０３）。ＶＨ３に属するＶＦ（「VF 3:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,3」）にマッピングされている（１２０４）。これらのＶＦマッピングの結果、ＥＤ１は、初期状態において、４個のすべてのＲＰ（ＲＰ０，ＲＰ１，ＲＰ２，ＲＰ３）からアクセス可能である。
【００８７】
ＣＭＩ/Ｆ１０４搭載のＥＤ１のテーブル設定では、特別に、ＶＦ状態がすべて「A.A」である。ＣＭＩ/Ｆ１０４では、ＦＥＩ/Ｆ１０２及びＢＥＩ/Ｆ１０６とは異なり、全ＲＰからアクセス可能なＶＦリソースを備える構成とするためである。
【００８８】
図１３は、第２のＥＰＤ５０（ＥＤ２）のＶＦマッピング管理テーブル１３００の説明図である。基本的にＥＤ１の場合と同様である。ＶＨ０に属するＶＦ（「VF 0:0,1」）は、その「VF State」ｃが「I.U」であり、ＭＶＦにマッピングされていない（１３０１）。ＶＨ１に属するＶＦ（「VF 1:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,0」）にマッピングされている（１３０２）。ＶＨ２に属するＶＦ（「VF 2:0,1」）は、その「VF State」ｃが「I.U」であり、ＭＶＦにマッピングされていない（１３０３）。ＶＨ３に属するＶＦ（「VF 3:0,1」）は、その「VF State」ｃが「A.A」であり、ＭＶＦ（「MVF 0,1」）にマッピングされている（１３０４）。これらのＶＦマッピングの結果、ＥＤ２は、初期状態において、ＲＰ１及びＲＰ３からアクセス可能であり、ＲＰ０及びＲＰ２からアクセス不可能である。
【００８９】
＜設定及び利用例＞
本実施の形態では、以上のような初期設定に基づき、管理者による設定により、利用例として、ＲＰ０とＲＰ２がＲＰであるＶＨにおいて、ＥＤ０（ＦＥＩ/Ｆ１０２搭載）とＥＤ１（ＣＭＩ/Ｆ１０４搭載）との間のデータ転送を実行し、ＲＰ１とＲＰ３がＲＰであるＶＨにおいて、ＥＤ２（ＢＥＩ/Ｆ１０６搭載）とＥＤ１（ＣＭＩ/Ｆ１０４搭載）との間のデータ転送を実行する。図２６等は、上記のような利用例を示している。
【００９０】
図２６の利用例において、内部ネットワーク（ＣＮ）において、データ経路として、ＥＤ０のＭＶＦ（ＦＥＩ/Ｆ１０２）とＥＤ１のＭＶＦ（ＣＭＩ/Ｆ１０４）とが同じＲＰ（例えばＲＰ０）からアクセス可能に設定され、かつ、ＥＤ２のＭＶＦ（ＢＥＩ/Ｆ１０６）とＥＤ１のＭＶＦ（ＣＭＩ/Ｆ１０４）とが同じＲＰ（例えばＲＰ３）からアクセス可能に設定されている。このため、ＥＤ１は、ＥＤ１にアクセスするルートポート数以上のＭＶＦを備え、ＥＤ０とＥＤ２は、ＥＤ１にアクセスするルートポート数の半数以上のＭＶＦを備える。その結果、ＥＤ０のＭＶＦ（ＦＥＩ／Ｆ１０２）とＥＤ１のＭＶＦ（ＣＭＩ／Ｆ１０４）間、およびＥＤ２のＭＶＦ（ＢＥＩ／Ｆ１０６）とＥＤ１のＭＶＦ（ＣＭＩ／Ｆ１０４）間で、データ転送が可能となる。
【００９１】
また、内部ネットワーク（ＣＮ）において、それぞれプロセッサ２１に接続される２個のＲＣ３０（ＲＣ０，ＲＣ１）は、それぞれ２個のＲＰ（第１のＲＰ，第２のＲＰ）を有し、データ経路として、各ＲＣ３０の第１のＲＰ（ＲＰ０，ＲＰ２）は、ＥＤ０のＭＶＦ（ＦＥＩ/Ｆ１０２）及びＥＤ１のＭＶＦ（ＣＭＩ/Ｆ１０４）へアクセス可能に設定され、かつ、各ＲＣ３０の第２のＲＰ（ＲＰ１，ＲＰ３）は、ＥＤ２のＭＶＦ（ＢＥＩ/Ｆ１０６）及びＥＤ１のＭＶＦ（ＣＭＩ/Ｆ１０４）へアクセス可能に設定されている。
【００９２】
例えばＣＰＵ０に接続されるＲＣ０においては、ＲＰ０からはＦＥＩ/Ｆ１０２（ＥＤ０）とＣＭＩ/Ｆ１０４（ＥＤ１）へアクセスし、ＲＰ１からはＢＥＩ/Ｆ１０６（ＥＤ２）とＣＭＩ/Ｆ１０４（ＥＤ１）へアクセス可能になっている。
【００９３】
本利用例により、ＦＥＩ/Ｆ１０２とＣＭＩ/Ｆ１０４を用いたデータ転送（例えば上位装置からのデータ入出力）と、ＢＥＩ/Ｆ１０６とＣＭＩ/Ｆ１０４を用いたデータ転送（例えばＤＡ１５に対するデータ入出力）とを同時並行的に効率よく処理することができる。
【００９４】
本利用例のストレージ装置１０では、ＣＭ２３を介してＦＥＩ/Ｆ１０２とＢＥＩ/Ｆ１０６との間のデータ転送が行われる。そのため、ＦＥＩ/Ｆ１０２側とＢＥＩ/Ｆ１０６側でＶＨが異なる前記設定例のようなＶＨの割り当てが適している。また、ＣＰＵ０がＲＣ０の２個のＲＰ（ＲＰ０，ＲＰ１）を使用し、また、ＣＰＵ１がＲＣ１の２個のＲＰ（ＲＰ２，ＲＰ３）を使用することにより、各プロセッサ２１がＦＥＩ/Ｆ１０２側とＢＥＩ/Ｆ１０６側の両方のデータ転送を制御可能である。このことも、負荷分散及び冗長性の点で、ストレージ装置に適している。
【００９５】
＜内部ネットワークのトポロジ＞
図１４には、以上で説明したＰＣＩｅファブリックの初期設定後における、ＳＣ２０内部ネットワーク（ＣＮ）の仮想的なトポロジを示している。すべてのＲＰ１４０１は、バーチャルスイッチファブリック（VS Fabric）１４０２（スイッチ４０（ＶＳ）に対応）を介して、ＥＰＤ５０（ＥＤ０，ＥＤ１，ＥＤ２）内の、それぞれのＶＨに割り当てられたＶＦ１４０６（ＲＰ０向けＶＦ，ＲＰ１向けＶＦ，ＲＰ２向けＶＦ，ＲＰ３向けＶＦ）に接続する。VSW Fabric１４０２と各ＥＰＤ５０（ＶＦ１４０６）との間は、ＭＲ−Ｌｉｎｋ（１４０３，１４０４，１４０５）によって接続する。ＶＦ１４０６は、ＶＦマッピング（VF Mapping）１４０７により、各ＥＰＤ５０のＭＶＦ１４０８（「MVF 0,0」，「MVF 0,1」等）に接続する。本例のＰＣＩｅファブリックでは、ＥＰＤ５０毎に各ＲＰに割り当てられた（各ＶＨに割り当てられた）ＶＦが備えられており、各ＲＰが独立して各ＥＰＤ５０内ＶＦにアクセス可能である。但し、実際にＥＰＤ５０の機能を使用できるＶＦは、ＶＦマッピングでＭＶＦに接続されたＶＦのみである。
【００９６】
＜フェイルオーバー管理テーブル＞
図１５は、フェイルオーバー管理テーブル１５００（前記ＦＴ１１１）の説明図である。フェイルオーバー管理テーブル１５００は、前述のように、フェイルオーバー制御プログラム（ＦＰ）１１０が参照するものであり、ＣＭ２３の一部に設けられた共有メモリ領域に格納されている。ＦＰ１１０は、各ＲＰ（ＲＰ０〜ＲＰ３）から、フェイルオーバー管理テーブル１５００を参照可能であり、本テーブル内で使用可能（「E」：Enable）に設定されたデータ経路を使用して、ＥＰＤ５０（ＥＤ０〜ＥＤ２）にアクセスする。フェイルオーバー管理テーブル１５００が格納されるＣＭ２３を接続するＥＤ１は、本テーブル内に格納されたデータに変更が生じた場合に、全ＲＰ（ＲＰ０〜ＲＰ３）へ割り込みを送信する。割り込みを受信した各ＲＰは、本テーブルの変更内容を確認し、必要に応じて、各ＥＰＤ５０にアクセスするデータ経路の変更を行う。
【００９７】
フェイルオーバー管理テーブル１５００は、項目として、「正常時データ経路」Ａ（ａ〜ｄ）、「代替データ経路」Ｂ（ｅ〜ｈ）、「VF Migration」Ｃ（ｉ）、「連累データ経路（一段目リンク障害）」Ｄ（ｊ〜ｉ）、「連累データ経路（二段目リンク障害）」Ｅ（ｍ〜ｏ）を有する。「正常時データ経路」Ａに関し、「S」（ステータス）ａ、「Root」（ＲＰ）ｂ、「ED」（ＥＰＤ）ｃ、「VF」ｄを有する。同様に「代替データ経路」Ｂに関し、「S」ｅ、「Root」ｆ、「ED」ｇ、「VF」ｈを有する。「連累データ経路（一段目リンク障害）」Ｄに関し、「Root」（ＲＰ）ｊ、「ED」（ＥＰＤ）ｋ、「VF」ｌを有する。同様に「連累データ経路（二段目リンク障害）」Ｅに関し、「Root」ｍ，「ED」ｎ，「VF」ｏを有する。
【００９８】
図１５の設定例では、フェイルオーバー前の正常時データ経路は、図２６（例えばデータ経路Ｋ１）のようになる。
【００９９】
「正常時データ経路」Ａ（ａ〜ｄ）は、各ＲＰが各ＥＰＤ５０へアクセスするために使用する、正常時（または初期状態）におけるデータ経路（「正常時データ経路」：第１のデータ経路）とそのステータスを格納する。正常時データ経路における、ｂはアクセス元ＲＰを、ｃはアクセス先ＥＰＤ５０を、ｄはアクセス先ＥＰＤ５０内ＶＦを、ａはそのデータ経路のステータスを格納する。ステータスａは、「E」が有効（Enable）、「D」が無効（Disable）である。
【０１００】
「代替データ経路」Ｂ（ｅ〜ｈ）は、Ａ（ａ〜ｄ）に格納した正常時（または初期状態）におけるデータ経路において障害が発生した場合に、そのデータ経路の代替として使用するデータ経路（「代替データ経路」：第２のデータ経路）とそのステータスを格納する。代替データ経路における、ｆはアクセス元ＲＰを、ｇはアクセス先ＥＰＤ５０を、ｈはアクセス先ＥＰＤ５０内ＶＦを、ｅはそのデータ経路のステータスを格納する。
【０１０１】
正常時データ経路に対するステータスａと代替データ経路のステータスｅは、データ経路が同一である場合には、同じ値が格納される。
【０１０２】
「VF Migration」Ｃ（ｉ）は、データ経路のフェイルオーバー（第１から第２のデータ経路への切り替え）の実行のためのＶＦマイグレーション（VF Migration）の要否（yes/no）の情報を格納する。アクセス先ＥＰＤ５０がＥＤ１であるデータ経路に関しては、ＶＦマイグレーションが不要（no）に設定されている。
【０１０３】
本実施の形態では、特徴の１つとして、ＶＦマイグレーションを使用してデータ経路のフェイルオーバーを実現するものである。例えば、ＥＤ０は、初期状態においてＲＰ０とＲＰ２からアクセス可能である（図２６、データ経路Ｋ１，Ｋ３）。初期状態のデータ経路に障害が発生した場合は、アクセス元ＲＰの変更（及びアクセス先ＶＦ変更）とＶＦマイグレーションの実行の結果、例えば、ＲＰ１あるいはＲＰ２からＥＤ０へアクセス可能になるようにデータ経路が変更され、障害リンクを回避することができる（図１６、図１７、図２６、図２７、Ｋ１からＫ２へのフェイルオーバーの場合）。
【０１０４】
図２７は、図１５の設定に対応したそれぞれの代替データ経路を示す（ＥＤ１への経路は省略）。例えばＫ１に対するＫ２、Ｋ３に対するＫ４である。正常時データ経路と代替データ経路とで異なるリンクを経由するものである。
【０１０５】
また、ＥＤ１は、すべてのＲＰ（４個）からのアクセスに対してＭＶＦ（４個）がマッピングされているので、あるＲＰからＥＤ１へのアクセスに障害が生じた場合であっても、アクセス元ＲＰを変更するだけで（「VF Migration」が不要）、他のＲＰからＥＤ１へアクセス可能である（ＥＤ１ではＶＦマイグレーション制御機能を有効にする必要は無い）。
【０１０６】
「連累データ経路（一段目リンク障害）」Ｄ（ｊ〜ｌ）及び「連累データ経路（二段目リンク障害）」Ｅ（ｍ〜ｏ）は、Ａに格納されたデータ経路に障害が発生した場合に、同時に障害が発生する可能性があるデータ経路（連累データ経路）を格納する。例えば、ＲＰ０とＳＷ００を接続するリンク上で障害が発生した場合は、ＲＰ０からＥＤ０へアクセスするデータ経路の他に、ＲＰ０からＥＤ１，ＥＤ２へアクセスするデータ経路上にも障害が発生すると考えられる。
【０１０７】
各ＲＰと、ＲＰ接続側スイッチである第１のスイッチ４０（ＳＷ００）または第２のスイッチ４０（ＳＷ０１）とを接続するリンク（一段目リンク、アップストリーム側リンク）上で障害が発生した場合（一段目リンク障害）には、正常時データ経路に連累して障害が発生するデータ経路（連累データ経路）について、ｊはアクセス元ＲＰを、ｋはアクセス先ＥＰＤ５０を、ｌはアクセス先ＥＰＤ５０内ＶＦを格納する。
【０１０８】
ＲＰ接続側スイッチであるＳＷ００またはＳＷ０１と、ＥＰＤ５０接続側スイッチである第３のスイッチ４０（ＳＷ１０）または第４のスイッチ４０（ＳＷ１１）または第５のスイッチ（ＳＷ１２）とを接続するリンク（二段目リンク）上で障害が発生した場合（二段目リンク障害）には、正常時データ経路に連累して障害が発生するデータ経路（連累データ経路）について、ｍはアクセス元ＲＰを、ｎはアクセス先ＥＰＤ５０を、ｏはアクセス先ＥＰＤ５０内ＶＦを格納する。
【０１０９】
また、本例では、ＦＥＩ/Ｆ１０２を備えるＥＤ０とＣＭＩ/Ｆ１０４を備えるＥＤ１とが同じＶＨでデータ転送し、かつ、ＢＥＩ/Ｆ１０６を備えるＥＤ２とＣＭＩ/Ｆ１０４を備えるＥＤ１とが同じＶＨでデータ転送する。この転送条件が正常時データ経路及び代替データ経路の両方で成立するように、ストレージ装置１０の管理者が、フェイルオーバー管理テーブル１５００を設定する。
【０１１０】
＜フェイルオーバー動作＞
図１６及び図１７は、フェイルオーバー動作の説明図である。前記図１の構成に基づいて、第１のデータ経路Ｋ１から第２のデータ経路Ｋ２へのフェイルオーバーの場合である。
【０１１１】
まず図１６において、正常時データ経路として、例えば、ＲＣ０内のＲＰ０から第１のスイッチ４０（ＳＷ００）と第３のスイッチ４０（ＳＷ１０）を通りＥＤ０へアクセスする第１のデータ経路Ｋ１（リンクＬ１，Ｌ２，Ｌ５を経由する経路）を有する。そして、第１のデータ経路Ｋ１上の、例えば、ＳＷ００とＳＷ１０との間のリンクＬ２に障害が発生した場合を考える。この時、フェイルオーバー管理テーブル１５００を参照すると、障害が発生したデータ経路（Ｋ１）に対する代替のデータ経路は、ＲＣ０内のＲＰ１から第２のスイッチ４０（ＳＷ０１）と第３のスイッチ４０（ＳＷ１０）を通りＥＤ０へアクセスする第２のデータ経路Ｋ２（リンクＬ３，Ｌ４，Ｌ５を経由する経路）であることが分かる。よって、第１のデータ経路Ｋ１から第２のデータ経路Ｋ２へのフェイルオーバー動作が行われることになる。
【０１１２】
図１７は、図１４で示したＣＮの仮想的なトポロジにおけるデータ経路変更（及びフェイルオーバーを実現するためのＶＦマイグレーションの動作）についての説明図である。左側は、ＲＰ０から見たトポロジ、右側は、ＲＰ１から見たトポロジである。
【０１１３】
図１６の第１のデータ経路Ｋ１（正常→障害状態）は、図１７においては、ＲＣ０内のＲＰ０からVS Fabric（ＶＳ）を経由してＥＤ０内の第１のＶＦ１７０２（「VF 0:0,1」）へのデータ経路に相当する。正常時には、ＶＦマッピング（VF Mapping）１７０４により、第１のＶＦ１７０２（「VF 0:0,1」）とＭＶＦ１７０１（「MVF 0,0」）が接続（マッピング）されている。
【０１１４】
また、図１６の第２のデータ経路Ｋ２（代替）は、図１７においては、ＲＣ０内のＲＰ１からVS Fabric（ＶＳ）を経由してＥＤ０内の第２のＶＦ１７０３（「VF 1:0,1」）へのデータ経路に相当する。
【０１１５】
前述のように、Ｋ１からＫ２へのフェイルオーバーのために、アクセス元ＲＰは、ＲＰ０からＲＰ１へ変更され、更に、ＶＦマイグレーション（ＶＦとＭＶＦのマッピングの変更）が行われる。なお、ＶＦマイグレーションに連動してアクセス先ＶＦが変更される。ＭＲ−ＰＣＩＭは、第２のＶＦ１７０３（「VF 1:0,1」）とＭＶＦ１７０１（「MVF 0,0」）とを接続（マッピング）するため、ＶＦマイグレーション（VF Migration）を実行する。このＶＦマイグレーションの実行の結果、前記ＶＦマッピング１７０４によるＭＶＦ１７０１（「MVF 0,0」）と第１のＶＦ１７０２（「VF 0:0,1」）との接続が解除され、新たなＶＦマッピング１７０５により、ＭＶＦ１７０１（「MVF 0,0」）と第２のＶＦ１７０３（「VF 1:0,1」）とが接続される。本例のＶＦマイグレーションにより、アクセス先ＶＦは「VF 0:0,1」から「VF 1:0,1」へ変更され、ＶＦマッピング１７０４の状態からＶＦマッピング１７０５の状態へ変更される。結果、第２のデータ経路Ｋ２が使用可能になる。
【０１１６】
以上のように、本実施の形態において、データ経路のフェイルオーバーは、アクセス元ＲＰ変更とＶＦマイグレーションにより実現されている。
【０１１７】
＜データ経路フェイルオーバー方法＞
図１８は、本実施の形態のストレージ装置１０における、データ経路フェイルオーバー方法及び処理（１８００）のフローである（Ｓは処理ステップを示す）。処理の概要としては、ＭＲ−ＰＣＩＭがデータ経路上のエラー（障害）を検出し、ＦＰ１１０がＦＴ１１１を参照してフェイルオーバーの条件を確認し、ＭＲ−ＰＣＩＭ及びＳＲ−ＰＣＩＭがＶＦマイグレーション制御する。
【０１１８】
Ｓ1801において、ＭＲ−ＰＣＩＭが、ＲＰとＥＰＤ５０との間、または２個のＥＰＤ５０間のデータ転送（ＥＰＤ５０アクセス）における所定回数を超えるエラーを検出すると、その結果を、フェイルオーバー制御プログラム（ＦＰ）１１０へ通知する。
【０１１９】
Ｓ1802において、ＦＰ１１０は、フェイルオーバー管理テーブル（ＦＴ）１５００（１１１）を参照し、障害が発生しているデータ経路のフェイルオーバー条件を確認する（前述の代替データ経路、VF Migration要否、連累データ経路など）。
【０１２０】
Ｓ1803において、ＦＰ１１０は、ＦＴ１５００の「VF Migration」Ｃの項目を参照し、ＶＦマイグレーションの要否を判定する。要（yes）の場合はＳ1804へ進む。
【０１２１】
Ｓ1804において、ＦＰ１１０は、ＦＴ１５００の、障害状態のデータ経路（「正常時データ経路」Ａ）のステータスａを「D」（Disable）に設定する。
【０１２２】
Ｓ1805において、ＦＰ１１０は、対象ＥＰＤ５０内ＶＦに対する、「VF h:f,s」から「VF a:f,c」へのＶＦマイグレーション（VF Migration）の実行をＭＲ−ＰＣＩＭに要求する（なおh,f,s,a,c等は数値）。
【０１２３】
Ｓ1806において、ＭＲ−ＰＣＩＭは、ＶＦマイグレーション（VF Migration）を実行し、ＥＰＤ５０のＶＦマッピング（VF Mapping）管理テーブルを更新する。
【０１２４】
Ｓ1807において、ＦＰ１１０は、ＦＴ１５００の、代替データ経路（「代替データ経路」Ｂ）のステータスｅを「E」（Enable）に設定する。
【０１２５】
Ｓ1808において、未処理の連累データ経路の有無を判定する。未処理の連累データ経路が有る場合はＳ1802へ戻り、無い場合は終了する。例えばＲＰとスイッチ４０を接続したリンク（アップストリーム側）に障害が発生した場合は、複数のＥＰＤ５０へのアクセスに障害が発生し、複数回のデータ経路フェイルオーバーの実行が必要となる。この場合にデータ経路フェイルオーバーを行う対象となる連累データ経路は、ＦＴ１５００の「連累データ経路」Ｄ，Ｅに格納されている。
【０１２６】
一方、前記Ｓ1803において、VF Migrationが否（no）の場合はＳ1809に進む。Ｓ1809において、障害データ経路が使用中のデータ経路か否かを判定する。使用中のデータ経路は、ＦＴ１５００のステータスが「E」（Enable）になっている。ステータスが「E」（Enable）の場合はＳ1810へ進み、「D」（Disable）の場合はＳ1808へ進む。本例における図１５のＦＴ１５００の設定では、データ経路フェイルオーバー時のVF Migrationが不要な、各ＲＰからＥＤ１（ＣＭＩ/Ｆ１０４搭載）へのアクセスのデータ経路のステータスは、「E」（Enable）である。
【０１２７】
Ｓ1810において、ＦＰ１１０は、ＦＴ１５００の、障害データ経路のステータスを、「D」（Disable）に設定する。
【０１２８】
Ｓ1811において、ＭＲ−ＰＣＩＭは、アクセス障害が生じているＶＦを、「Active.Available state（A.A）」から「Active.MigrateOut state（A.M）」に遷移させる。
【０１２９】
Ｓ1812において、障害ＶＨ内で動作するＳＲ−ＰＣＩＭ、またはその代替手段は、アクセス障害が生じているＶＦを、「A.M」から「Inactive.Unavailable state（I.U）」に遷移させる。この代替手段は、ＳＲ−ＰＣＩＭとＶＦとの間の通信障害時に、ＳＲ−ＰＣＩＭに替わってＶＦ状態遷移を制御する（実施の形態２として後述）。
【０１３０】
＜ＥＰＤ毎のＶＦマッピング管理テーブル（２）＞
図１９は、ＥＤ０（ＦＥＩ/Ｆ１０２搭載）のＶＦマッピング管理テーブル（１１００ｂ）の一例（変更後）を示す。図１９の状態では、図１１のＶＦマッピング管理テーブル１１００の状態に対して、ＥＤ０のＭＶＦ（「MVF 0,1」）のマッピングを、ＶＨ２（ＶＦ「VF 2:0,1」）からＶＨ３（ＶＦ「VF 3:0,1」）へ変更している（行の１９０１，１９０２）。図１２に示したように、ＥＤ１（ＣＭＩ/Ｆ１０４搭載）は、ＥＤ０と同様にＶＨ３でアクセス可能（「VF State」が「A.A」）なので、図１９のマッピング状態でもＥＤ０とＥＤ１が同じＶＨ３内で動作可能である。しかし、図１３に示したようにＥＤ２がＶＨ３を使用しているため、ＦＥＩ/Ｆ１０２側とＢＥＩ/Ｆ１０６側のデータ転送が同じＶＨ３内で発生することになる。
【０１３１】
図２０は、ＥＤ２（ＢＥＩ/Ｆ１０６搭載）のＶＦマッピング管理テーブル（１３００ｂ）の一例を示す。図２０の状態では、図１３のＶＦマッピング管理テーブル１３００の状態に対して、ＥＤ２のＭＶＦ（「MVF 0,1」）のマッピングを、ＶＨ３（「VF 3:0,1」）からＶＨ２（「VF 2:0,1」）へ変更している（行の２００１，２００２）。
【０１３２】
これらのVF Migration（図１９，図２０）の結果、ＦＥＩ/Ｆ１０２を備えるＥＤ０とＣＭＩ/Ｆ１０４を備えるＥＤ１とがＶＨ０とＶＨ３でデータ転送し、かつ、ＢＥＩ/Ｆ１０６を備えるＥＤ２とＣＭＩ/Ｆ１０４を備えるＥＤ１とがＶＨ１とＶＨ２でデータ転送することになる。このように、ＦＥＩ/Ｆ１０２とＢＥＩ/Ｆ１０６のデータ転送において使用するＶＨを分離した方が、プロセッサ負荷及びファブリック（内部ネットワーク（ＣＮ））内トラフィックの分散などが可能となり効果的である。
【０１３３】
図２８は、図１９と図２０のＶＦマッピング適用時のデータ経路の例を示す（ＥＤ１への経路は省略）。
【０１３４】
なお、障害発生時に限らず、障害未発生のデータ経路に関して、図１３から図２０の変更のようなデータ経路変更を、障害データ経路のフェイルオーバーと同様に実行することができる。
【０１３５】
（実施の形態２）
次に、図２１以降を用いて、実施の形態２について説明する。実施の形態２は、実施の形態１に機能（ＶＦ状態遷移手段）を追加した構成である。
【０１３６】
＜ＶＦ状態遷移手段＞
前記ＳＲ−ＰＣＩＭによるＶＦ状態遷移に対する代替手段（ＶＦ状態遷移手段）について説明する。ＶＦマイグレーション（VF Migration）についてはＭＲ−ＰＣＩＭが実行するが、ＶＦマイグレーションに必須であるＶＦ状態遷移の一部についてはＳＲ−ＰＣＩＭが実行する。しかし、データ経路障害発生時などには、ＳＲ−ＰＣＩＭとＶＦとの間の通信が困難になることが考えられる。そのため、実施の形態２では、ＳＲ−ＰＣＩＭに代わってＶＦを状態遷移させるＶＦ状態遷移手段を設ける。
【０１３７】
図２１は、ＳＲ−ＰＣＩＭに代わってＶＦを状態遷移させることができるＥＰＤ５１（例えばＥＤ０）のブロック構成を示す。ＥＰＤ５１は、図２で示したＥＰＤ５０（ＥＤ０）の構成に対して、まず、ファンクション番号１の１つのＢＦ２１０２（「BF 0:1」）が追加されている。ＢＦ２１０２（「BF 0:1」）のコロンの後のファンクション番号１は、ＶＦの状態制御用であることを示す。ＥＰＤ５１は、更に、ＢＦ２１０２に付随した４個のＰＦ２１０３（「PF 0:1」，「PF 1:1」，「PF 2:1」，「PF 3:1」）を備える。また、ＶＦ状態（VF State）制御部２１０４が追加されている。ＶＦ状態制御部２１０４は、ＰＦ２１０３及びＶＦ２０４及び管理ポート２１０５に接続される。ＶＦ状態制御部２１０４は、ファンクション番号０の４個のＶＦ２０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）を状態遷移させることができる。
【０１３８】
ＢＦ２１０２及びＰＦ２１０３は、ＶＦ２０４等に関連するＶＦの状態遷移を制御可能なファンクションである。ＢＦ２１０２は、ＥＰＤ５１の、ＭＲ−ＩＯＶ仕様に係わり、ファンクション番号１の機能に関する特性を管理する。ＰＦ２１０３は、各ＲＰからアクセス可能なようにＶＨ毎に備えられており、ＶＦ状態制御部２１０４と接続している。各ＲＰは、各ＶＨに割り当てられたファンクション番号１のＰＦを介して、ＶＦ状態制御部２１０４と通信可能である。
【０１３９】
実施の形態２では、ＥＰＤ５１を用いたＶＦ状態遷移及び制御の方法（構成）として、以下の３つを有する。これらを設定等により選択的に使用可能な構成である。なお、いずれか１つの方法のみを備える構成としてもよい。
【０１４０】
第１の方法（インバウンド通信による方法）：  ＶＦ状態制御部２１０４は、ＰＦ２１０３と接続することにより、ＳＣ２０内で動作するプログラム（例えば、当該ＥＰＤ５１と正常に接続されるデータ経路におけるＲＰ上のプロセッサ２１が実行するＦＰ１１０）からの指令により、ＶＦ２０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）を状態遷移させることができる。
【０１４１】
あるＶＨ（ＲＰ）におけるＳＲ−ＰＣＩＭによるＥＰＤ５１内ＶＦへのアクセスができない場合に、正常にアクセス可能な他のＶＨ（ＲＰ）において、ファンクション番号１のＰＦを介して、ＥＰＤ５１内のＶＦ状態制御部２１０４へアクセスする。例えばＥＤ０に対し、ＲＰ０からではなく、ＲＰ１からアクセスする（ＰＦ２１０３（「PF 1:1」）を利用する）。なお第１の方法のみの構成とする場合、管理ポート２１０５は必要無い。
【０１４２】
第２の方法（アウトバウンド通信による方法）：  また、ＶＦ状態制御部２１０４は、管理ポート２１０５とネットワークＮ００を介してＳＶＰ１９０と接続することにより、ＰＣＩｅファブリック外で動作するプログラムからのアウトバウンド通信による命令を受けて、ＶＦ２０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）を状態遷移させることができる。なお第２の方法のみの構成とする場合、ＢＦ２１０２，ＰＦ２１０３は必要無い。
【０１４３】
第３の方法（自律機能による方法）：  更にまた、ＶＦ状態制御部２１０４は、自律機能（自身でＶＦ状態遷移に関する判断・制御を行う機能）により、ＶＦ２０４（「VF 0:0,1」，「VF 1:0,1」，「VF 2:0,1」，「VF 3:0,1」）を状態遷移させることができる。その際、ＢＦ２０２（「BF 0:0」）に接続されたＶＦ状態制御部２１０４が、ＢＦ２０２（「BF 0:0」）内のＶＦマッピング管理テーブルを更新する。なお第３の方法のみの構成とする場合、管理ポート２１０５は必要無い。
【０１４４】
上述の通り、ＶＦ状態制御部２１０４は、ファンクション番号０のＶＦの状態制御に関して３つの方法を有するが、いずれの方法を選択使用するかについては、例えば、管理者が管理ポート２１０５を介してＥＰＤ５１毎にあらかじめ設定しておくこと等が可能である。
【０１４５】
＜ＶＦマイグレーション処理（１）＞
図２２（Ａ），（Ｂ）は、第１の方法を用いて、ＥＰＤ５１において、ファンクション番号１の機能を用いてファンクション番号０のＶＦを状態遷移させ、ＶＦマイグレーション（VF Migration）を実行する処理（２２００）のフローを示す。
【０１４６】
Ｓ2201において、実施の形態２におけるＦＰ１１０等の高位レベルソフトウエアが、ＭＲ−ＰＣＩＭに対して、アクセス障害が発生しているＥＰＤ５１内ＶＦである「VF h:f,s」から「VF a:f,c」へのＶＦマイグレーション（VF Migration）を要求する。
【０１４７】
ＶＦマイグレーションの実行のための必要条件は、移行先のＶＦの状態が「Inactive.Unavailable state（I.U）」であり、かつ、移行元のＶＦの状態が「Active.Available state（A.A）」あるいは「Dormant.MigrateIn state（D.M）」であることである。
【０１４８】
Ｓ2202において、ＭＲ−ＰＣＩＭは、移行先のＶＦ「VF a:f,c」が「I.U」であるか否かを判定する。Yesの場合はＳ2203へ進む。Noの場合は、ＶＦマイグレーションの必要条件の不成立のため、エラー終了する。
【０１４９】
Ｓ2203において、ＭＲ−ＰＣＩＭは、移行元のＶＦ「VF h:f,s」が「A.A」であるか否かを判定する。Yesの場合はＳ2204へ進む。Noの場合は、Ｓ2221へ進む。
【０１５０】
Ｓ2204において、ＭＲ−ＰＣＩＭは、アクセス障害が生じているＥＰＤ５１内ＶＦである「VF h:f,s」のＶＦ状態（VF State）を、ＶＦ状態エントリ（VF State entry）（ＶＦマッピング管理テーブルの「VF State」ｃのエントリと同値）を書き換えることにより、「A.A」から「A.M」へ遷移させる（「VH h」において「A.M」へのMigrateOut operationを起動する）。この遷移では、SR VF Migration Status bitをセットする（図２２（Ｂ）のＳ2205へ続く）。なお、この動作は、図２５の（１）に対応する。
【０１５１】
図２２（Ｂ）、Ｓ2205において、ＭＲ−ＰＣＩＭ等（ＭＲ−ＰＣＩＭ、またはＭＲ−ＰＣＩＭと通信可能なソフトウエア（ＦＰ１１０等））は、アクセス障害が生じているＥＰＤ５１と通信可能なＶＨである「VH n」（n≠h）を選定する。
【０１５２】
Ｓ2206において、ＭＲ−ＰＣＩＭ等は、アクセス障害が生じているＥＰＤ５１内のＶＦ状態制御部２１０４とＰＦ２１０３「PF n:1」を介して通信し、ＶＦ状態制御部２１０４に、ＶＦ「VF h:f,s」に対してＦＬＲ（Function Level Reset）（ファンクションレベルリセット）を発行させる。なお、この動作は、図２５の（２）に対応する。
【０１５３】
Ｓ2207において、ＭＲ−ＰＣＩＭ等は、アクセス障害が生じているＥＰＤ５１のＶＦ状態制御部２１０４と、ＰＦ２１０３「PF n:1」（n≠h）を介して通信し、ＶＦ「VF h:f,s」のＶＦ状態を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、ＭＲ−ＰＣＩＭへの割り込みを起動する。なお、この動作は、図２５の（３）に対応する。
【０１５４】
Ｓ2208において、上記割り込みを受信したＭＲ−ＰＣＩＭは、割り込みの原因を特定するため、アクセス障害が発生しているＥＰＤ５１のＶＦマッピング管理テーブルをスキャンして、「A.M」から「I.U」へ遷移したＶＦ（「VF h:f,s」）を探す。なお、この動作は、図２５の（４）に対応する。
【０１５５】
Ｓ2224において、ＭＲ−ＰＣＩＭは、ＶＦ「VF h:f,s」に関連したＶＦマッピングエントリ（VF Map entry）の値を保存（save）する。なお、この動作は、図２５の（５）に対応する。Ｓ2225において、ＭＲ−ＰＣＩＭは、ＶＦ「VF h:f,s」に関連したVF Map entryに、「empty slot」（空スロット）を示す０（zero）をセットする。なお、この動作は、図２５の（６）に対応する。Ｓ2226において、ＭＲ−ＰＣＩＭは、ＶＦ「VF a:f,c」に関連したVF Map entryに、Ｓ2224で保存した値をセットする。なお、この動作は、図２５の（７）に対応する。
【０１５６】
Ｓ2227において、ＭＲ−ＰＣＩＭは、ＶＦ「VF a:f,c」に関連したVF Map entryを書き換えることにより、ＶＦ「VF a:f,c」（「VH a」）に対して、「I.U」から「D.M」へのMigrateIn operationを起動する。この遷移では、SR VF Migration bitをセットする。なお、この動作は、図２５の（８）に対応する。
【０１５７】
Ｓ2228において、ＶＦ「VF a:f,c」に関連した「VH a」内で動作するＳＲ−ＰＣＩＭは、ＶＦ状態配列（VF State array）をスキャンして「D.M」へ遷移したＶＦ「VF a:f,c」を特定し、そのＶＦ「VF a:f,c」に対してＦＬＲを発行する。なお、この動作は、図２５の（９）に対応する。
【０１５８】
Ｓ2229において、「VH a」で動作するＳＲ−ＰＣＩＭは、ＶＦ「VF a:f,c」の使用を開始する前に、ＶＦ「VF a:f,c」のＶＦ状態を、「D.M」から「A.A」へ遷移させる。これにより、ＶＦ移行を正常に終了する。なお、この動作は、図２５の（１０）に対応する。
【０１５９】
一方、図２２（Ａ）、Ｓ2221において、移行元のＶＦ「VF h:f,s」が、「D.M」であるか否かを判定する。Yesの場合はＳ2222へ進む。Noの場合は、ＶＦマイグレーションの必要条件の不成立のため、終了する。
【０１６０】
Ｓ2222において、ＭＲ−ＰＣＩＭは、ＶＦ「VF h:f,s」に関連したVF State entryを書き換えて、ＶＦ「VF h:f,s」のMigrateIn operationを撤回する。その結果、ＶＦ「VF h:f,s」は、「D.M」から「I.U」へ遷移する（この後は図２３（Ｂ）のＳ2224へ続く）。なお、この動作は、図２５の（１１）に対応する。
【０１６１】
なお、ＭＲ−ＩＯＶ標準仕様におけるＳ2205〜Ｓ2207に相当する処理では、まず、ＶＦ「VF h:f,s」に関連したＶＨである「VH h」で動作するＳＲ−ＰＣＩＭが、VF State arrayをスキャンして「A.M」へ遷移したＶＦ「VF h:f,s」を特定し、ＶＦ「VF h:f,s」の使用を中止し、ＶＦ「VF h:f,s」に対してＦＬＲを発行する。次に、ＳＲ−ＰＣＩＭがＶＦ「VF h:f,s」のＶＦ状態を、「A.M」から「I.U」へ遷移させ、そして、その遷移では、MR VF Migration Status bitをセットし、ＭＲ−ＰＣＩＭへの割り込みを起動する。
【０１６２】
上記のように、実施の形態２（第１の方法）のフェイルオーバー方法及びＶＦマイグレーション処理では、Ｓ2205〜Ｓ2207の処理において、上記ＭＲ−ＩＯＶ標準仕様ではＳＲ−ＰＣＩＭが処理すべきステップを、ＥＰＤ５１内に設けたＶＦ状態制御部２１０４を用いて処理する点が特徴である。
【０１６３】
＜ＶＦマイグレーション処理（２）＞
図２３は、第２の方法を用いて、ＥＰＤ５１において、ＭＲ−ＰＣＩＭが管理ポート２１０５とネットワークＮ００を介したアウトバウンド通信を用いて、ファンクション番号１の機能によりファンクション番号０のＶＦを状態遷移させ、ＶＦマイグレーションを実行する処理（２３００）のフローである。
【０１６４】
第２の方法において、まず最初は図２２（Ａ）のＳ2201〜Ｓ2204等の処理と同じであり、続いて図２３において、第１の方法と異なる部分として、Ｓ2305、Ｓ2306を有する。
【０１６５】
Ｓ2305において、ＭＲ−ＰＣＩＭ等（ＭＲ−ＰＣＩＭ、またはＭＲ−ＰＣＩＭと通信可能なソフトウエア（フェイルオーバー制御プラグラム等））は、アクセス障害が生じているＥＰＤ５１内ＶＦ状態制御部２１０４とネットワークＮ００を介したアウトバウンド通信を行い、ＶＦ状態制御部２１０４にＶＦ（「VF h:f,s」）に対してＦＬＲを発行させる。
【０１６６】
Ｓ2306において、ＭＲ−ＰＣＩＭ等は、アクセス障害が生じているＥＰＤ５１のＶＦ状態制御部２１０４とネットワークＮ００を介したアウトバウンド通信を行い、ＶＦ（「VF h:f,s」）のＶＦ状態を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、ＭＲ−ＰＣＩＭへの割り込みを起動する。以降の処理は前述同様である。
【０１６７】
上記のように、実施の形態２（第２の方法）のフェイルオーバー方法及びＶＦマイグレーション処理では、Ｓ2305〜Ｓ2306において、ＭＲ−ＩＯＶ標準仕様ではＳＲ−ＰＣＩＭが処理すべきステップを、ＥＰＤ５１内に設けたＶＦ状態制御部２１０４とアウトバウンド通信を用いて処理する点が特徴である。
【０１６８】
＜ＶＦマイグレーション処理（３）＞
図２４は、第３の方法を用いて、ＥＰＤ５１において、ＶＦ状態制御部２１０４の自律制御機能が、ファンクション番号０のＶＦを状態遷移させ、ＶＦマイグレーションを実行する処理（２４００）のフローである。
【０１６９】
第３の方法において、まず最初は図２２（Ａ）のＳ2201〜Ｓ2204等の処理と同じであり、また、Ｓ2221〜Ｓ2222、図２２（Ｂ）のＳ2224〜Ｓ2229等の処理も同じであり、続いて図２４において、第１の方法と異なる部分として、Ｓ2405〜Ｓ2410を有する。
【０１７０】
Ｓ2405において、アクセス障害が生じているＥＰＤ５１のＶＦ状態制御部２１０４は、アクセス障害が生じているＶＨのＳＲ−ＰＣＩＭと通信可能かを確認する。例えば、ＲＰ３からエンドポイントデバイス内のＶＦ（VF3:0,1）へアクセスするデータ経路上に障害が発生した場合は、ＶＦ状態制御部２１０４が、ＶＦ（VF3:0,1）と同じＶＨに属するファンクション番号１のＰＦ（PF3,1）を制御する。ＶＦ状態制御部２１０４は、ＲＰ３からＶＦ（VF3:0,1）へのアクセスと同じ物理データ経路を使用する、ＰＦ（PF3,1）からＲＰ３へのアクセステストを実施する。その結果から、ＶＨ３内で動作するＳＲ−ＰＣＩＭがＶＦ（VF3:0,1）と通信可能か否かを判定する。
【０１７１】
Ｓ2406において、アクセス障害が生じているＥＰＤ５１が障害ＶＨ内ＳＲ−ＰＣＩＭと通信可能かを判定する。可能ならばＳ2409へ進む。不可ならばＳ2407へ進む。
【０１７２】
Ｓ2407において、アクセス障害を生じているＥＰＤ５１のＶＦ状態制御部２１０４が、「A.M」へ遷移したＶＦ「VF h:f,s」に対してＦＬＲを発行する。
【０１７３】
Ｓ2408において、アクセス障害が生じているＥＰＤ５１のＶＦ状態制御部２１０４が、ＶＦ「VF h:f,s」を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、ＭＲ−ＰＣＩＭへの割り込みを起動する。
【０１７４】
一方、Ｓ2409において、ＶＦ「VF h:f,s」に関連した「VH h」で動作するＳＲ−ＰＣＩＭが、VF State arrayをスキャンして「A.M」へ遷移したＶＦ「VF h:f,s」を特定し、そのＶＦ「VF h:f,s」の使用を中止し、ＶＦ「VF h:f,s」に対してＦＬＲを発行する。
【０１７５】
Ｓ2410において、ＳＲ−ＰＣＩＭがＶＦ「VF h:f,s」を、「A.M」から「I.U」へ遷移させる。この遷移では、MR VF Migration Status bitをセットし、ＭＲ−ＰＣＩＭへの割り込みを起動する。
【０１７６】
Ｓ2411では、割り込みを受信したＭＲ−ＰＣＩＭは、割り込みの原因を特定するため、「A.M」から「I.U」へ遷移したＶＦ（「VF h:f,s」）を探す。以降の処理は前述同様である。
【０１７７】
上記のように、実施の形態２（第３の方法）のフェイルオーバー方法及びＶＦマイグレーション処理では、Ｓ2405〜Ｓ2410において、ＭＲ−ＩＯＶ標準仕様ではＳＲ−ＰＣＩＭが処理すべきステップを、ＥＰＤ５１内に設けたＶＦ状態制御部２１０４の自律制御により処理する点が特徴である。
【０１７８】
＜ＶＦマイグレーションの状態遷移＞
図２５は、補足のため、ＭＲ−ＩＯＶ仕様に基づくＶＦマイグレーションに係わる状態遷移について示している。ＶＦは、４個の状態（「A.A Active.Available state」，「A.M（Active.MigrateOut state）」，「I.U（Inactive.Unavailable state）」，「D.M（Dormant.MigrateIn state）」）を有する。実線の矢印は、ＭＲ−ＰＣＩＭによる状態遷移を示す。破線の矢印は、ＳＲ−ＰＣＩＭによる状態遷移を示す。「A.A」，「A.M」は、VF active（fully usable by SR）であり、「I.U」は、VF inactive（not usable by SR）であり、「D.M」は、VF Dormant（responds to SR）である。
【０１７９】
フェイルオーバー動作の際には、ＶＦマイグレーションに伴うＶＦ状態遷移制御として、（１）でＭＲ−ＰＣＩＭによる制御により「A.A」から「A.M」へ遷移し、（３）でＳＲ−ＰＣＩＭによる制御により「A.M」から「U.U」へ遷移する。しかしながら、（３）で「A.M」から「U.U」へ遷移する際、ＳＲ−ＰＣＩＭによる制御（ＶＦ状態遷移制御）が、データ経路障害などによって不可能な場合が有り得る。そのために、前述のようにＶＦ状態遷移制御の代替手段を設けている。
【０１８０】
以上説明したように、各実施の形態によれば、ＳＣ２０の内部ネットワーク（ＣＮ）に対してＭＲ−ＩＯＶを適用したストレージ装置１０において、ＲＰからＥＰＤへのデータ経路のフェイルオーバーを、ＭＲ−ＰＣＩＭ等により、当該データ経路におけるアクセス元ＲＰ変更とアクセス先ＥＰＤ内ＶＦのＶＦマイグレーションの動作によって実行可能である。従って、本ストレージ装置１０を用いるシステムでは、データ経路に障害が発生した場合でも、他のデータ経路にフェイルオーバーすることができ、高い信頼性が確保される。
【０１８１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
【産業上の利用可能性】
【０１８２】
本発明は、内部ネットワークを持つストレージ装置のみならず、ブレード型サーバ等の計算機及びその内部ネットワーク技術などに対しても広く適用が可能である。
【図面の簡単な説明】
【０１８３】
【図１】本発明の実施の形態１のストレージ装置のブロック構成を示す図である。
【図２】実施の形態１におけるエンドポイントデバイス（ＥＤ０）のブロック構成を示す図である。
【図３】実施の形態１におけるエンドポイントデバイス（ＥＤ１）のブロック構成を示す図である。
【図４】実施の形態１におけるスイッチポートタイプ管理テーブルの説明図である。
【図５】実施の形態１におけるＶＨ及びＶＦマッピングポリシー管理テーブルの説明図である。
【図６】実施の形態１におけるスイッチ（ＳＷ００）管理テーブルの説明図である。
【図７】実施の形態１におけるスイッチ（ＳＷ０１）管理テーブルの説明図である。
【図８】実施の形態１におけるスイッチ（ＳＷ１０）管理テーブルの説明図である。
【図９】実施の形態１におけるスイッチ（ＳＷ１１）管理テーブルの説明図である。
【図１０】実施の形態１におけるスイッチ（ＳＷ１２）管理テーブルの説明図である。
【図１１】実施の形態１におけるＥＤ０のＶＦマッピング管理テーブルの説明図である。
【図１２】実施の形態１におけるＥＤ１のＶＦマッピング管理テーブルの説明図である。
【図１３】実施の形態１におけるＥＤ２のＶＦマッピング管理テーブルの説明図である。
【図１４】実施の形態１における内部ネットワークの仮想的なトポロジの説明図である。
【図１５】実施の形態１におけるフェイルオーバー管理テーブルの説明図である。
【図１６】実施の形態１におけるフェイルオーバー動作（代替データ経路への切り替え）の説明図である。
【図１７】実施の形態１におけるフェイルオーバー動作（ＶＦマイグレーション）の説明図である。
【図１８】実施の形態１におけるフェイルオーバー処理を示すフロー図である。
【図１９】実施の形態１におけるＥＤ０のＶＦマッピング管理テーブル（その２）の説明図である。
【図２０】実施の形態１におけるＥＤ２のＶＦマッピング管理テーブル（その２）の説明図である。
【図２１】本発明の実施の形態２のストレージ装置におけるエンドポイントデバイスのブロック構成を示す図である。
【図２２（Ａ）】実施の形態２における第１の方法におけるＶＦマイグレーション処理（その１）を示すフロー図である。
【図２２（Ｂ）】実施の形態２における第１の方法におけるＶＦマイグレーション処理（その２）を示すフロー図である。
【図２３】実施の形態２における第２の方法におけるＶＦマイグレーション処理を示すフロー図である。
【図２４】実施の形態２における第３の方法におけるＶＦマイグレーション処理を示すフロー図である。
【図２５】ＭＲ−ＩＯＶ仕様に基づくＶＦマイグレーションに伴うＶＦの状態遷移についての説明図である。
【図２６】一実施の形態におけるストレージ装置の利用例（その１）を示す説明図である。
【図２７】一実施の形態におけるストレージ装置の利用例（その２）を示す説明図である。
【図２８】一実施の形態におけるストレージ装置の利用例（その３）を示す説明図である。
【符号の説明】
【０１８４】
１０…ストレージ装置、１５…ディスクアレイ（ＤＡ）、２０…ストレージコントローラ（ＳＣ）及びその内部ネットワーク（ＣＮ）、２１…プロセッサ（ＣＰＵ０，ＣＰＵ１）、２２…メモリ（ＭＥＭ０，ＭＥＭ１）、２３…キャッシュメモリ（ＣＭ）、３０…ルートコンプレックス（ＲＣ）（ＲＣ０，ＲＣ１）、４０…スイッチ（ＳＷ００，ＳＷ０１，ＳＷ１０，ＳＷ１１，ＳＷ１２）、５０，５１…エンドポイントデバイス（ＥＰＤ）（ＥＤ０，ＥＤ１，ＥＤ２）、１０２…フロントエンドインターフェイス（ＦＥＩ/Ｆ）、１０３，１０５，１０７…コンポーネント、１０４…キャッシュメモリインターフェイス（ＣＭＩ/Ｆ）、１０６…バックエンドインターフェイス（ＢＥＩ/Ｆ）、１０８…プログラム（ＭＲ−ＰＣＩＭ及びＳＲ−ＰＣＩＭ）、１０９…プログラム（ＭＲ−ＰＣＩＭ）、１１０…フェイルオーバー制御プログラム（ＦＰ）、１１１…フェイルオーバー制御テーブル（ＦＴ）、１９０…保守端末（ＳＶＰ）、１９１…管理ポート、２０１，３０１…ポート、２０２，３０２…ベースファンクション（ＢＦ）、２０３，３０３…フィジカルファンクション（ＰＦ）、２０４，３０４…バーチャルファンクション（ＶＦ）、２０５，３０５…内部ルーティング制御部、２０６，３０６…ＶＦマッピング（VF Mapping）制御部、２０７，３０７…ミッションバーチャルファンクション（ＭＶＦ）、２０８，３０８…管理ポート、４００…スイッチポートタイプ管理テーブル、５００…ＶＨ及びＶＦマッピングポリシー管理テーブル、６００，７００，８００，９００，１０００…スイッチ管理テーブル、１１００，１２００，１３００，１１００ｂ，１３００ｂ…ＶＦマッピング（VF Mapping）管理テーブル、１４０１…ルートポート、１４０２…バーチャルスイッチファブリック（ＶＳＦ）、１４０３，１４０４，１４０５…ＭＲ−Ｌｉｎｋ、１４０６…ＶＦ、１４０７…ＶＦマッピング（VF Mapping）、１５００…フェイルオーバー管理テーブル、１７０１…ＭＶＦ、１７０２，１７０３…ＶＦ、１７０４，１７０５…ＶＦマッピング、２１０２…ＢＦ、２１０３…ＰＦ、２１０４…ＶＦ状態制御部、２１０５…管理ポート、ＲＰ０，ＲＰ１，ＲＰ２，ＲＰ３…ルートポート、Ｐ０００，Ｐ００１，Ｐ００２，Ｐ００３，Ｐ００４，Ｐ０１０，Ｐ０１１，Ｐ０１２，Ｐ０１３，Ｐ０１４，Ｐ１００，Ｐ１０１，Ｐ１０２，Ｐ１１０，Ｐ１１１，Ｐ１１２，Ｐ１２０，Ｐ１２１，Ｐ１２２…ポート、Ｎ００…ネットワーク、Ｃ００，Ｄ００…チャネル、ＶＳ０，ＶＳ１…バーチャルスイッチ（ＶＳ）、Ｋ１，Ｋ２，Ｋ３，Ｋ４…データ経路、Ｌ１，Ｌ２，Ｌ３，Ｌ４，Ｌ５…リンク（スイッチ間リンク）。
【図１】
2010108211.tif 000003
【図２】
2010108211.tif 000004
【図３】
2010108211.tif 000005
【図４】
2010108211.tif 000006
【図５】
2010108211.tif 000007
【図６】
2010108211.tif 000008
【図７】
2010108211.tif 000009
【図８】
2010108211.tif 000010
【図９】
2010108211.tif 000011
【図１０】
2010108211.tif 000012
【図１１】
2010108211.tif 000013
【図１２】
2010108211.tif 000014
【図１３】
2010108211.tif 000015
【図１４】
2010108211.tif 000016
【図１５】
2010108211.tif 000017
【図１６】
2010108211.tif 000018
【図１７】
2010108211.tif 000019
【図１８】
2010108211.tif 000020
【図１９】
2010108211.tif 000021
【図２０】
2010108211.tif 000022
【図２１】
2010108211.tif 000023
【図２２（Ａ）】
2010108211.tif 000024
【図２２（Ｂ）】
2010108211.tif 000025
【図２３】
2010108211.tif 000026
【図２４】
2010108211.tif 000027
【図２５】
2010108211.tif 000028
【図２６】
2010108211.tif 000029
【図２７】
2010108211.tif 000030
【図２８】
2010108211.tif 000031