(57)【要約】  情報処理装置が備えるインタフェース部の保守を円滑に行うことができる。  記憶部（１ｅ）は、インタフェース部（１ｃ，１ｄ）のうち仮想マシン（１ａ，１ｂ）がアクセスに用いるインタフェース部（１ｃ）を示す情報を記憶する。制御部（１ｆ）は、仮想マシン（１ａ）においてインタフェース部（１ｃ）を用いたアクセスにエラーが発生すると、記憶部（１ｅ）を参照して、インタフェース部（１ｃ）を用いる仮想マシン（１ｂ）を判定する。制御部（１ｆ）は、仮想マシン（１ｂ）が用いるインタフェース部を、インタフェース部（１ｃ）から情報処理装置（１）に搭載したインタフェース部（１ｄ）に切り換える。
2012176278.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置であって、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶部と、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生すると、前記記憶部を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記情報処理装置に搭載した第２のインタフェース部に切り換える制御部と、
を有する情報処理装置。
【請求項２】
前記第１のインタフェース部は、複数のリソースを含み、
前記複数のリソースのうち第１のリソースが前記第１の仮想マシンに割り当てられ、第２のリソースが前記第２の仮想マシンに割り当てられており、
前記制御部は、前記第１の仮想マシンにおいて前記第１のリソースを用いたアクセスにエラーが発生すると、前記第２のリソースを用いたアクセスにエラーが発生していなくても、前記第２の仮想マシンが用いるインタフェース部を切り換える、
請求の範囲第１項記載の情報処理装置。
【請求項３】
前記制御部は、前記第２の仮想マシンが前記デバイスにアクセス中でないタイミングで前記第２のインタフェース部への切り換えが行われるよう制御する、請求の範囲第１項または第２項記載の情報処理装置。
【請求項４】
前記制御部は、前記第１のインタフェース部を用いてアクセス可能であったデバイスに前記第２のインタフェース部を用いてアクセス可能であることが確認されてから、前記第２のインタフェース部への切り換えが行われるよう制御する、請求の範囲第１項乃至第３項の何れか一項に記載の情報処理装置。
【請求項５】
前記制御部は、前記第１の仮想マシンからの通知に基づいて、前記第１の仮想マシンにおいて前記第１のインタフェース部を用いたアクセスにエラーが発生したことを検知する、請求の範囲第１項乃至第４項の何れか一項に記載の情報処理装置。
【請求項６】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な他の情報処理装置と通信する情報処理装置であって、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶部と、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生すると、前記記憶部を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記情報処理装置に搭載した第２のインタフェース部に切り換える制御部と、
を有する情報処理装置。
【請求項７】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置、または、前記情報処理装置と通信する他の情報処理装置が実行する仮想マシン制御方法であって、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知し、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、
前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記情報処理装置に搭載した第２のインタフェース部に切り換える、
仮想マシン制御方法。
【請求項８】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能なコンピュータを制御するためのプログラムであって、前記コンピュータまたは前記コンピュータと通信する他のコンピュータに、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知し、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、
前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記コンピュータに搭載した第２のインタフェース部に切り換える、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、仮想マシン制御方法およびプログラムに関する。
【背景技術】
【０００２】
現在、情報処理の分野では、物理的なコンピュータ（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、オペレーティングシステム（ＯＳ：Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。【０００３】
例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、ＮＩＣ（Network Interface Card）やＨＢＡ（Host Bus Adapter）などのインタフェース部の処理能力を、通信のリソースとして複数の仮想マシンに割り振ることがある。仮想マシンは、自身に割り振られた通信のリソースを用いて、インタフェース部を介してデバイスにアクセスできる。【０００４】
なお、ＣＰＵに接続されるホストアダプタと記憶装置に接続されるディスクアダプタと共通バスとを二重化し、障害発生時に縮退運転できるようにした記憶システムが提案されている。また、複数のアダプタを含むアダプタブロックを二重化し、一方のアダプタブロック内の１つのアダプタが故障すると、アダプタブロック単位で使用するアダプタを切り換える情報処理装置が提案されている。また、複数の仮想マシンが１つのＨＢＡを共用するとき、障害回数の多い仮想マシンのＩ／Ｏ（Input/Output）要求を遮断することで他の仮想マシンのＩ／Ｏ要求への影響を抑制する仮想計算機システムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３０３２５６号公報
【特許文献２】特開平１０−３１２３０１号公報
【特許文献３】特開２００９−２９４７５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記のように、複数の仮想マシンが動作する情報処理装置では、デバイスへのアクセスのため２以上の仮想マシンが１つのインタフェース部を共用することがある。このとき、１つの仮想マシンで当該インタフェース部を用いたアクセスにエラーが発生しても、他の仮想マシンではエラーが発生しない場合が生じ得る。例えば、インタフェース部が備えるメモリ領域などのリソースを分割して２以上の仮想マシンに割り振った場合、ある仮想マシンに割り振ったメモリ領域のみに障害が発生することが考えられる。【０００７】
しかし、１つのインタフェース部を共用する２以上の仮想マシンの一部のみでエラーが検出された場合に、インタフェース部の保守が容易でないという問題がある。例えば、各仮想マシンは、情報処理が互いに干渉しないよう他の仮想マシンから分離されていることが多く、自身がエラーを検出しない限り、他の仮想マシンでのエラーの検出状況にかかわらず当該インタフェース部を使用し続ける可能性がある。この状態では、エラーが検出されたインタフェース部の停止や交換などの保守を円滑に行えないおそれがある。【０００８】
本発明はこのような点に鑑みてなされたものであり、情報処理装置が備えるインタフェース部の保守を円滑に行うことができる情報処理装置、仮想マシン制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
複数の仮想マシンが動作可能であり複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置が提供される。この情報処理装置は、記憶部と制御部とを有する。記憶部は、複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する。制御部は、第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生すると、記憶部を参照して、第１のインタフェース部を用いる第２の仮想マシンを判定し、第２の仮想マシンが用いるインタフェース部を、第１のインタフェース部から情報処理装置に搭載した第２のインタフェース部に切り換える。【００１０】
また、複数の仮想マシンが動作可能であり複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置、または、情報処理装置と通信する他の情報処理装置が実行する仮想マシン制御方法が提供される。この仮想マシン制御方法では、第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知する。複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、第１のインタフェース部を用いる第２の仮想マシンを判定する。第２の仮想マシンが用いるインタフェース部を、第１のインタフェース部から情報処理装置に搭載した第２のインタフェース部に切り換える。【００１１】
また、複数の仮想マシンが動作可能であり複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能なコンピュータを制御するためのプログラムが提供される。このプログラムは、コンピュータまたはコンピュータと通信する他のコンピュータに、以下の処理を実行させる。第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知する。複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、第１のインタフェース部を用いる第２の仮想マシンを判定する。第２の仮想マシンが用いるインタフェース部を、第１のインタフェース部からコンピュータに搭載した第２のインタフェース部に切り換える。
【発明の効果】
【００１２】
上記情報処理装置、仮想マシン制御方法およびプログラムによれば、情報処理装置が備えるインタフェース部の保守を円滑に行うことができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムの全体構成を示す図である。
【図３】第２の実施の形態のサーバ装置のハードウェア例を示す図である。
【図４】第２の実施の形態のＦＣスイッチ装置のハードウェア例を示す図である。
【図５】第２の実施の形態のストレージ装置のハードウェア例を示す図である。
【図６】仮想マシンの配置例を示す図である。
【図７】ハードウェアの割当例を示すブロック図である。
【図８】第２の実施の形態のサーバ装置の機能を示すブロック図である。
【図９】接続構成管理テーブルの例を示す図である。
【図１０】冗長グループ管理テーブルの例を示す図である。
【図１１】第２の実施の形態の障害検知時の全体処理を示すフローチャートである。
【図１２】第２の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図１３】第２の実施の形態の物理アダプタ追加処理を示すフローチャートである。
【図１４】第２の実施の形態の物理アダプタ追加処理を示すシーケンス図である。
【図１５】第２の実施の形態の接続先装置追加処理を示すフローチャートである。
【図１６】第２の実施の形態の接続先装置追加処理を示すシーケンス図である。
【図１７】第２の実施の形態のアダプタ切り換え処理を示すフローチャートである。
【図１８】第３の実施の形態のサーバ装置の機能を示すブロック図である。
【図１９】第４の実施の形態の管理端末装置の機能を示すブロック図である。
【図２０】第４の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図２１】第５の実施の形態のＦＣスイッチ装置の機能を示すブロック図である。
【図２２】第５の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図２３】第６の実施の形態のストレージ装置の機能を示すブロック図である。
【図２４】第６の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図２５】第７の実施の形態のサーバ装置の機能を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態の情報処理装置１では、仮想マシン１ａ，１ｂを含む複数の仮想マシンが動作可能である。また、情報処理装置１には、当該複数の仮想マシンからデバイス２へのアクセスに用いられる、インタフェース部１ｃ，１ｄを含む複数のインタフェース部を搭載可能である。デバイス２は、例えば、通信装置、ストレージ装置、他の情報処理装置などである。情報処理装置１は、インタフェース部１ｃ，１ｄ、記憶部１ｅおよび制御部１ｆを有する。
【００１５】
インタフェース部１ｃ，１ｄは、信号処理を行い、仮想マシン１ａ，１ｂからデバイス２へのアクセスに用いられる。インタフェース部１ｃ，１ｄは、ＮＩＣやＨＢＡなどのアダプタとして実装してもよい。インタフェース部１ｃ，１ｄとデバイス２とは、ケーブルで直接接続されてもよいし、スイッチなどの中継装置を介して接続されてもよい。なお、インタフェース部１ｄは、インタフェース部１ｃが故障したときに使用される予備のものでもよく、インタフェース部１ｃが故障した後に情報処理装置１に追加されてもよい。
【００１６】
記憶部１ｅは、情報処理装置１に搭載可能な複数のインタフェース部のうち、複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する。記憶部１ｅは、不揮発ＮＶＲＡＭ（Non Volatile RAM）やＲＡＭ、ＨＤＤ（Hard Disk Drive）として実装してもよい。なお、第１の実施の形態では、インタフェース部１ｃ，１ｄが正常に動作しているとき、仮想マシン１ａ，１ｂはインタフェース部１ｃを用いてデバイス２にアクセスするものとする。
【００１７】
制御部１ｆは、情報処理装置１で動作する複数の仮想マシンへのインタフェース部１ｃ，１ｄの割り当てを制御する。制御部１ｆは、ＣＰＵとＲＡＭを用いて実行されるプログラムとして実装してもよく、ハイパーバイザ内のモジュールとして実装してもよい。制御部１ｆは、仮想マシン１ａにおいてインタフェース部１ｃを用いたアクセスにエラーが発生したことを検知する。すると、制御部１ｆは、記憶部１ｅを参照して、仮想マシン１ａの他にインタフェース部１ｃを用いる仮想マシン１ｂを検索する。そして、仮想マシン１ｂが用いるインタフェース部を、インタフェース部１ｃからインタフェース部１ｄに切り換える。制御部１ｆは、仮想マシン１ａが用いるインタフェース部も併せて、インタフェース部１ｃからインタフェース部１ｄに切り換えてもよい。
【００１８】
ここで、制御部１ｆは、インタフェース部１ｃが備える複数のリソース（例えば、複数のメモリ領域など）のうち、第１のリソースを仮想マシン１ａに割り当て、第２のリソースを仮想マシン１ｂに割り当ててもよい。仮想マシン１ａにおいて第１のリソースを用いたアクセスにエラーが発生すると、制御部１ｆは、第２のリソースについてエラーが発生していなくても、仮想マシン１ｂが用いるインタフェース部を切り換えることができる。
【００１９】
また、制御部１ｆは、仮想マシン１ｂがデバイス２にアクセス中でないタイミングで、インタフェース部１ｄへの切り換えが行われるように制御してもよい。そのため、制御部１ｆは、仮想マシン１ｂがアクセス中であるか否かを示す情報を記憶部１ｅに格納して、アクセス状態を管理してもよい。また、制御部１ｆは、インタフェース部１ｃを用いてアクセス可能であったデバイスに、インタフェース部１ｄを用いてアクセス可能であることが確認されてから、インタフェース部１ｄへの切り換えが行われるよう制御してもよい。また、制御部１ｆは、仮想マシン１ａからの通知に基づいて、仮想マシン１ａにおいてインタフェース部１ｃを用いたアクセスにエラーが発生したことを検知してもよい。
【００２０】
なお、第１の実施の形態では、記憶部１ｅおよび制御部１ｆを、仮想マシン１ａ，１ｂが動作する情報処理装置１に設けたが、情報処理装置１と通信する他の装置に設けてもよい。例えば、情報処理装置１と通信する通信装置、ストレージ装置、コンピュータなどが記憶部１ｅおよび制御部１ｆを備え、情報処理装置１を制御してもよい。また、記憶部１ｅは、情報処理装置１（または、制御部１ｆを備える他の装置）の外部に設けてもよい。
【００２１】
第１の実施の形態の情報処理装置１によれば、仮想マシン１ａにおいてインタフェース部１ｃを用いたアクセスにエラーが発生したことが検知される。複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶部１ｅが参照されて、エラーが発生したインタフェース部１ｃを用いる仮想マシン１ｂが判定される。判定された仮想マシン１ｂの用いるインタフェース部が、インタフェース部１ｃからインタフェース部１ｄに切り換えられる。
【００２２】
これにより、複数の仮想マシンが動作可能な情報処理装置１におけるインタフェース部１ｃ，１ｄの保守を円滑に行うことができる。例えば、仮想マシン１ａでインタフェース部１ｃについてのエラーが検出されると、インタフェース部１ｃを共用する仮想マシン１ｂでエラーが検出されなくても、仮想マシン１ｂの使用するインタフェース部が切り換えられる。よって、インタフェース部１ｃは、エラーを認識した仮想マシン１ａに加えて仮想マシン１ｂからも使用されなくなり、停止させて情報処理装置１から取り外すことが容易となる。また、情報処理装置１には複数のインタフェース部を搭載でき、仮想マシン１ｂを停止させずにインタフェース部１ｃを交換することが可能となる。
【００２３】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムの全体構成を示す図である。この情報処理システムは、サーバ装置１００、ＦＣ（ＦＣ：Fibre Channel）スイッチ装置２００、ストレージ装置３００および管理端末装置４００を含む。サーバ装置１００は、ネットワーク１０に接続されている。
【００２４】
サーバ装置１００は、複数の仮想マシンが動作可能なサーバコンピュータである。サーバ装置１００は、複数の仮想マシンの起動や停止を管理する。サーバ装置１００は、ネットワーク１０を介して、ネットワーク１０に接続されたクライアント装置で仮想マシンの機能を利用可能とする。
【００２５】
ＦＣスイッチ装置２００は、ＦＣ用の複数のインタフェースを備え、各インタフェース間を中継する通信経路切り換え機である。ＦＣスイッチ装置２００は、サーバ装置１００およびストレージ装置３００の間のデータ通信を中継する。サーバ装置１００とＦＣスイッチ装置２００との間の通信は、ＦＣによる通信の他にも、Ｉ２Ｃ（Inter Integrated Circuit）やＬＡＮ（Local Area Network）などを介して行える。
【００２６】
ストレージ装置３００は、サーバ装置１００が利用するデータやプログラムを記憶する記憶装置である。ストレージ装置３００は、サーバ装置１００の要求に応じて、自身が記憶する各種のデータをサーバ装置１００に送信する。ストレージ装置３００は、サーバ装置１００の接続先装置の一例である。
【００２７】
管理端末装置４００は、管理者が操作するコンピュータである。管理端末装置４００は、サーバ装置１００に接続されている。管理端末装置４００は、管理者がサーバ装置１００に対する指示を入力するためのものである。
【００２８】
図３は、第２の実施の形態のサーバ装置のハードウェア例を示す図である。サーバ装置１００は、ＣＰＵボード１０１、クロスバースイッチ１０２、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral Component Interconnect Express）コントローラ１０３、ＳＡＳ（Serial Attached SCSI（Small Computer System Interface））インタフェース１０４、ＨＤＤ１０５、ＦＣインタフェース１０６，１０６ａ、ネットワークインタフェース１０７、ＳＶＰ（SerVice Processor）１０８およびディスクドライブ１０９を有する。
【００２９】
ＣＰＵボード１０１は、ＣＰＵやメモリを備えた情報処理部である。ＣＰＵボード１０１は、ＣＰＵ１１１、ＲＡＭ１１２およびＮＶＲＡＭ１１３を有する。
ＣＰＵ１１１は、ハイパーバイザのプログラム、ＯＳプログラムおよびアプリケーションプログラムを実行して、仮想マシンや当該仮想マシン上のアプリケーションを実現する演算装置である。なお、ＣＰＵボード１０１は複数のＣＰＵを備えてもよい。
【００３０】
ＲＡＭ１１２は、ＣＰＵ１１１が実行するハイパーバイザのプログラム、ＯＳプログラムおよびアプリケーションプログラムの少なくとも一部を一時的に記憶する揮発性の記憶装置である。なお、ＣＰＵボード１０１は複数のＲＡＭを備えてもよい。
【００３１】
ＮＶＲＡＭ１１３は、ハイパーバイザの処理に用いるデータを記憶する不揮発性の記憶装置である。なお、ＣＰＵボード１０１は複数のＮＶＲＡＭを備えてもよい。
また、サーバ装置１００は、複数のＣＰＵボードを備えてもよい。
【００３２】
クロスバースイッチ１０２は、ＣＰＵボード１０１、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３の間のデータ通信を中継する。
ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３は、クロスバースイッチ１０２とＳＡＳインタフェース１０４、ＦＣインタフェース１０６，１０６ａおよびネットワークインタフェース１０７との間のデータ通信を制御する。
【００３３】
ＳＡＳインタフェース１０４は、ＨＤＤ１０５とディスクドライブ１０９に接続され、ＨＤＤ１０５とディスクドライブ１０９に対するデータの入出力を制御する。ディスクドライブ１０９は、ＳＡＴＡ（Serial ATA）プロトコルをカプセリングして入出力制御してもよい。
【００３４】
ＨＤＤ１０５は、ハイパーバイザのプログラムやハイパーバイザの処理に用いられるデータを記憶する不揮発性の記憶装置である。ＨＤＤ１０５は、ＣＰＵ１１１の命令に従って、内蔵の磁気ディスクに対する読み書きを行う。なお、サーバ装置１００は、ＨＤＤ以外の不揮発性の記憶装置（例えば、ＳＳＤ（Solid State Drive））を備えていてもよく、複数の記憶装置を備えてもよい。また、ＣＰＵボード１０１で実行するハイパーバイザのプログラムをＮＶＲＡＭ１１３に格納してもよい。
【００３５】
ＦＣインタフェース１０６，１０６ａは、ＦＣスイッチ装置２００と接続され、ＦＣスイッチ装置２００との間のデータ通信を制御するＨＢＡである。ＦＣインタフェース１０６，１０６ａは、当該制御を行う制御装置を有している。
【００３６】
ネットワークインタフェース１０７は、ネットワーク１０と接続され、ネットワーク１０を介した他の装置とのデータ通信を制御する。
ＳＶＰ１０８は、サーバ装置１００を管理するための装置である。ＳＶＰ１０８は、サーバ装置のＣＰＵボード１０１、クロスバースイッチ１０２、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３とＩ２Ｃなどで接続される。ＳＶＰ１０８は、管理端末装置４００に接続される。ＳＶＰ１０８は、サーバ装置１００を管理するためのＧＵＩ（Graphical User Interface）を管理端末装置４００に表示させる。管理者は、管理端末装置４００で当該ＧＵＩを操作してサーバ装置１００に対する指示を行える。
【００３７】
ディスクドライブ１０９は、記録媒体１２に記録されたプログラムやデータを読み取る駆動装置である。記録媒体１２として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０９は、例えば、ＣＰＵ１１１の命令に従って、記録媒体１２から読み取ったプログラムやデータをＲＡＭ１１２またはＨＤＤ１０５に格納する。
【００３８】
なお、管理端末装置４００も、サーバ装置１００と同様に、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、ネットワークインタフェースおよびディスクドライブなどを有する。管理端末装置４００上のＣＰＵが、所定のプログラムを実行することで、管理端末装置４００の機能が実現される。
【００３９】
図４は、第２の実施の形態のＦＣスイッチ装置のハードウェア例を示す図である。ＦＣスイッチ装置２００は、ルーティングコントローラ２０１、メモリ２０２、ＳＶＰ２０３、クロスバースイッチ２０４、Ｉ／Ｆ（InterFace）コントローラ２０５，２０５ａ，２０５ｂ，２０５ｃ，２０５ｄ，２０５ｅ、バッファ２０６，２０６ａ，２０６ｂ，２０６ｃ，２０６ｄ，２０６ｅおよびポート２０７，２０７ａ，２０７ｂ，２０７ｃ，２０７ｄ，２０７ｅを有する。
【００４０】
なお、以下ではＩ／Ｆコントローラ２０５、バッファ２０６およびポート２０７について説明するが、Ｉ／Ｆコントローラ２０５ａ，２０５ｂ，２０５ｃ，２０５ｄ，２０５ｅ、バッファ２０６ａ，２０６ｂ，２０６ｃ，２０６ｄ，２０６ｅおよびポート２０７ａ，２０７ｂ，２０７ｃ，２０７ｄ，２０７ｅに関しても同様である。
【００４１】
ルーティングコントローラ２０１は、複数のＳＡＮ（Storage Area Network）間でのデータ通信を制御する。
メモリ２０２は、ルーティングコントローラ２０１の処理に用いるデータを記憶する。例えば、ＳＡＮ間を接続するためのルーティングテーブルやＦＣのゾーン設定の情報を記憶する。ここで、ゾーンとは、ＦＣスイッチ装置２００内の通信パスを分割して、トラフィックを分離するものである。
【００４２】
ＳＶＰ２０３は、ＦＣスイッチ装置２００を管理するための装置である。ＳＶＰ２０３は、ＦＣスイッチ装置２００上の各種の管理機能（例えば、通信の障害管理や電源管理）を担う。ＳＶＰ２０３は、ＦＣスイッチ装置２００を管理するための管理端末装置（不図示）と接続されてもよい。その場合、ＳＶＰ２０３は、当該管理端末装置に管理用のＧＵＩを表示させることができる。管理者は、当該ＧＵＩを操作して、ＦＣスイッチ装置２００に指示を入力することもできる。また、ＳＶＰ２０３は、当該ＳＶＰ２０３の処理に用いるプログラムやデータを格納するためのメモリを有している。これらプログラムやデータをメモリ２０２に格納してもよい。
【００４３】
クロスバースイッチ２０４は、各ポートを介した装置間のデータ通信を中継する。
Ｉ／Ｆコントローラ２０５は、各ポート間のデータの流れを制御する。
バッファ２０６は、データの流れを制御するためにデータを一時的に格納するための記憶領域である。
【００４４】
ポート２０７は、外部の装置と接続するためのアダプタである。ポート２０７は、ＦＣケーブルを介してサーバ装置１００と接続されている。ポート２０７ｃは、ＦＣケーブルを介してストレージ装置３００と接続されている。ポート２０７ｄは、ＦＣケーブルを介してストレージ装置３００と接続されている。
【００４５】
図５は、第２の実施の形態のストレージ装置のハードウェア例を示す図である。ストレージ装置３００は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部３０１、ストレージ部３０２、Ｉ／Ｆコントローラ３０３，３０３ａ、ＳＶＰ３０４を有する。
【００４６】
ＲＡＩＤ制御部３０１は、ＲＡＩＤを実現するための装置である。ＲＡＩＤ制御部３０１は、ストレージ部３０２に設けられた複数のＨＤＤを論理的な１つの記憶装置として、サーバ装置１００上の仮想マシンから利用可能にする。ＲＡＩＤ制御部３０１は、制御ボード３１０，３１０ａ、Ｉ／Ｆコントローラ３２０，３２０ａ、バッファ３３０，３３０ａおよびポート３４０，３４０ａを有する。
【００４７】
制御ボード３１０，３１０ａは、ポート３４０，３４０ａごとに設けられている。制御ボード３１０，３１０ａは、ポート３４０，３４０ａを介してサーバ装置１００から受けたリクエストに応じて、ストレージ部３０２にアクセスし、データの読み書きを行う。制御ボード３１０は、ＣＰＵ３１１、メモリ３１２およびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３を有する。
【００４８】
ＣＰＵ３１１は、制御ボード３１０の処理を制御する。
メモリ３１２は、ＣＰＵ３１１の処理に用いるデータを記憶する。
ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３は、Ｉ／Ｆコントローラ３０３を介してストレージ部３０２に接続する。ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３は、Ｉ／Ｆコントローラ３２０に接続する。ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３は、インタフェース間の通信を中継する。
【００４９】
制御ボード３１０ａは、ＣＰＵ３１１ａ、メモリ３１２ａおよびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３ａを有する。ＣＰＵ３１１ａ、メモリ３１２ａおよびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３ａは、ＣＰＵ３１１、メモリ３１２およびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３に対応する。
【００５０】
Ｉ／Ｆコントローラ３２０は、ポート３４０から入力、あるいはポート３４０に出力するデータの流れを制御する。Ｉ／Ｆコントローラ３２０ａも同様に、ポート３４０ａとの間のデータの流れを制御する。
【００５１】
バッファ３３０は、Ｉ／Ｆコントローラ３２０およびポート３４０の間のデータの流れを制御する。バッファ３３０ａも同様に、Ｉ／Ｆコントローラ３２０ａおよびポート３４０ａの間のデータの流れを制御する。
【００５２】
ポート３４０は、外部の装置と接続するためのアダプタである。ポート３４０は、ＦＣケーブルを介してＦＣスイッチ装置２００のポート２０７ｃと接続されている。ポート３４０ａは、ＦＣケーブルを介してＦＣスイッチ装置２００のポート２０７ｄに接続されている。
【００５３】
ストレージ部３０２は、Ｉ／Ｆスイッチ３５０，３５０ａおよびＨＤＤ３５１，３５１ａ，３５２，３５２ａ，３５３，３５３ａを有する。
Ｉ／Ｆスイッチ３５０，３５０ａは、制御ボード３１０，３１０ａがアクセスするＨＤＤとＩ／Ｆコントローラ３０３，３０３ａの通信制御を行う。
【００５４】
ＨＤＤ３５１，３５１ａ，３５２，３５２ａ，３５３，３５３ａは、ＣＰＵ３１１，３１１ａの命令に従って、内蔵の磁気ディスクに対する読み書きを行う。ＨＤＤ３５１，３５２，３５３は、Ｉ／Ｆスイッチ３５０に接続されている。ＨＤＤ３５１ａ，３５２ａ，３５３ａは、Ｉ／Ｆスイッチ３５０ａに接続されている。なお、ストレージ部３０２は、ＨＤＤ以外の不揮発性の記憶装置（例えば、ＳＳＤ）を備えていてもよい。
【００５５】
Ｉ／Ｆコントローラ３０３，３０３ａは、ＲＡＩＤ制御部３０１とストレージ部３０２との間のデータ通信を中継する。Ｉ／Ｆコントローラ３０３は、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３およびＩ／Ｆスイッチ３５０，３５０ａと接続される。Ｉ／Ｆコントローラ３０３ａは、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３ａおよびＩ／Ｆスイッチ３５０，３５０ａと接続される。
【００５６】
ＳＶＰ３０４は、ストレージ装置３００を管理するための装置である。ＳＶＰ３０４は、ストレージ装置３００上の各種の機能（例えば、ディスクの障害管理や電源管理など）を担う。ＳＶＰ３０４は、ストレージ装置３００を管理するための管理端末装置（不図示）と接続されてもよい。その場合、ＳＶＰ３０４は、当該管理端末装置に管理用のＧＵＩを表示させることができる。管理者は、当該ＧＵＩを操作して、ストレージ装置３００に指示を入力することもできる。また、ＳＶＰ３０４は、当該ＳＶＰ３０４の処理に用いるプログラムやデータを格納するためのメモリを有している。
【００５７】
図６は、仮想マシンの配置例を示す図である。サーバ装置１００は、ハードウェア１２０、ハイパーバイザ１４０および仮想マシン１５０，１５０ａを有する。
ハードウェア１２０は、サーバ装置１００が備える物理的なリソースである。ハードウェア１２０は、ＣＰＵボード１０１、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３、ＳＡＳインタフェース１０４、ＨＤＤ１０５、ＦＣインタフェース１０６，１０６ａ、ネットワークインタフェース１０７およびディスクドライブ１０９を含む。
【００５８】
ハイパーバイザ１４０は、仮想マシンを実現する。ハイパーバイザ１４０は、各仮想マシンに対するハードウェア１２０の割り当てを行い、各仮想マシンの起動・停止を制御する。また、ハイパーバイザ１４０は、各仮想マシンがハードウェア１２０を共同で利用できるよう各仮想マシンのハードウェア１２０へのアクセスを調停する。更に、ハイパーバイザ１４０は各仮想マシンに割り当てたハードウェア１２０の使用状況を監視する。
【００５９】
仮想マシン１５０，１５０ａは、ハイパーバイザ１４０によりサーバ装置１００上に実現された仮想マシンである。仮想マシン１５０，１５０ａは、それぞれ独立のＯＳを実行している。仮想マシン１５０，１５０ａが実行するＯＳはそれぞれ同一でもよいし、異なっていてもよい。また、サーバ装置１００は３以上の仮想マシンを実行してもよい。
【００６０】
図７は、ハードウェアの割当例を示すブロック図である。仮想マシン１５０，１５０ａはサーバ装置１００上のハードウェア１２０を論理的に分割したリソースにより実現される。図７ではハードウェア１２０に含まれる主要なものとして、ＣＰＵ１１１、ＲＡＭ１１２およびＦＣインタフェース１０６を示している。
【００６１】
ＣＰＵ１１１は、ＣＰＵリソースｌ１，ｌ２，ｌ３，ｌ４に時分割される。ＣＰＵ１１１は、領域分割してもよい。例えば、ＣＰＵリソースｌ１，ｌ２は仮想マシン１５０に割り当てられ、ＣＰＵリソースｌ３，ｌ４は仮想マシン１５０ａに割り当てられる。
【００６２】
ＲＡＭ１１２は、ＲＡＭリソースｍ１，ｍ２に領域分割される。例えば、ＲＡＭリソースｍ１が仮想マシン１５０に割り当てられ、ＲＡＭリソースｍ２が仮想マシン１５０ａに割り当てられる。
【００６３】
ＦＣインタフェース１０６は、ＦＣインタフェースリソースｎ１，ｎ２に分割される。例えば、ＦＣインタフェースリソースｎ１，ｎ２には、ＦＣインタフェース１０６上の制御装置の処理能力を時分割したリソースが含まれる。また、例えば、ＦＣインタフェースリソースｎ１，ｎ２には、バッファ用に確保されたＦＣインタフェース１０６上の物理的なメモリを領域分割したリソースが含まれる。例えば、ＦＣインタフェースリソースｎ１が仮想マシン１５０に割り当てられ、ＦＣインタフェースリソースｎ２が仮想マシン１５０ａに割り当てられる。ＦＣインタフェース１０６を物理ＨＢＡとすれば、ＦＣインタフェースリソースｎ１，ｎ２は当該物理ＨＢＡ上で実現される仮想ＨＢＡである。
【００６４】
図８は、第２の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置１００は、管理情報記憶部１３０、ハイパーバイザ１４０、仮想マシン１５０，１５０ａおよび仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃを有する。
【００６５】
管理情報記憶部１３０、ハイパーバイザ１４０および仮想マシン１５０，１５０ａの機能は、ＣＰＵ１１１が所定のプログラムを実行することによりサーバ装置１００上に実現される。また、仮想アダプタ１６０，１６０ａの機能は、ＦＣインタフェース１０６上の制御装置が所定のプログラムを実行することによりＦＣインタフェース１０６上に実現される。更に、仮想アダプタ１６０ｂ，１６０ｃの機能は、ＦＣインタフェース１０６ａ上の制御装置が所定のプログラムを実行することにより、ＦＣインタフェース１０６ａ上に実現される。ただし、これらのユニットの全部または一部を専用のハードウェアにより実現してもよい。
【００６６】
管理情報記憶部１３０は、管理情報を記憶する。管理情報には、接続構成管理テーブルおよび冗長グループ管理テーブルが含まれる。接続構成管理テーブルは、仮想マシンと仮想アダプタとの対応関係を管理するためのデータである。冗長グループ管理テーブルは、複数の仮想アダプタを束ねた冗長グループを管理するためのデータである。
【００６７】
ハイパーバイザ１４０は、制御部１４１を有する。制御部１４１は、仮想マシン１５０，１５０ａの通信パスを制御する。制御部１４１は、仮想マシンからＦＣインタフェースを介した通信で障害が発生した旨の通知を受ける。すると、制御部１４１は、管理情報記憶部１３０を参照して、当該ＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部１４１は、特定した他の仮想マシンを他のインタフェースに割り当てる。
【００６８】
仮想マシン１５０は、ＯＳ１５１、アダプタドライバ１５２、冗長パス制御部１５３および接続先装置ドライバ１５４を有する。
ＯＳ１５１は、仮想マシン１５０上で動作する基本プログラムである。
【００６９】
アダプタドライバ１５２は、ＯＳ１５１上から仮想アダプタを利用するためのソフトウェアである。
冗長パス制御部１５３は、仮想アダプタを冗長化して、仮想マシン１５０における通信路の信頼性を向上するソフトウェアである。冗長パス制御部１５３は、複数の仮想アダプタを現用系と待機系とに区別して管理する。冗長パス制御部１５３は、現用系の仮想アダプタで故障が発生して仮想マシン１５０が通信不能となった場合に、仮想マシン１５０が利用する仮想アダプタを待機系に切り換える。また、冗長パス制御部１５３は、現用系の仮想アダプタで故障を検知していなくても、制御部１４１からアダプタの切り換え指示を受けると、仮想マシン１５０が利用するアダプタを待機系に切り換える。
【００７０】
接続先装置ドライバ１５４は、仮想マシン１５０上からストレージ装置３００を利用するためのドライバソフトウェアである。
また、仮想マシン１５０ａは、ＯＳ１５１ａ、アダプタドライバ１５２ａ、冗長パス制御部１５３ａおよび接続先装置ドライバ１５４ａを有する。ＯＳ１５１ａ、アダプタドライバ１５２ａ、冗長パス制御部１５３ａおよび接続先装置ドライバ１５４ａは、ＯＳ１５１、アダプタドライバ１５２、冗長パス制御部１５３および接続先装置ドライバ１５４にそれぞれ対応する。
【００７１】
仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃは、ＦＣインタフェース１０６，１０６ａ上のリソースにより実現されたデータ通信用の仮想的なアダプタである。
図９は、接続構成管理テーブルの例を示す図である。接続構成管理テーブル１３１には、スロット、物理アダプタ、仮想アダプタ、仮想マシンＩＤ（IDentifier）、仮想ポートＮｏ．、接続先ＷＷＮ（World Wide Name）およびゾーンの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、仮想マシンと仮想アダプタとの１つの対応関係を示す。
【００７２】
スロットの項目には、物理アダプタが搭載されているＰＣＩのＰＣＩスロットＩＤが設定される。
物理アダプタの項目には、物理アダプタの情報が設定される。物理アダプタの項目には、デバイスパス、インスタンスＮｏ．、ＶＩＤ（Vendor ID）およびＤＩＤ（Device ID）の項目が設けられている。デバイスパスの項目には、物理アダプタにアクセスするためのデバイスパス情報が設定される。インスタンスＮｏ．の項目には、物理アダプタのファンクション識別番号（物理ポート番号）が設定される。物理アダプタのファンクション識別番号に対して複数の物理ポートを持つ場合は、インスタンスＮｏ．に加えて物理ポート番号を管理してもよい。ＶＩＤの項目には、当該物理アダプタを製造したベンダを識別するためのＶＩＤが設定される。ＶＩＤは同一ベンダであれば同一のＩＤとなる。ＤＩＤの項目には、当該物理アダプタのデバイス（機能）を識別するためのＤＩＤが設定される。ＤＩＤはサーバ装置１００内で物理アダプタを一意に識別するためのＩＤである。仮想アダプタの項目には、仮想アダプタの情報が設定される。仮想アダプタの項目には、デバイスパス、インスタンスＮｏ．（仮想アダプタのファンクションに割り当てる識別番号）、ＶＩＤおよびＤＩＤの項目が設けられている。これらの項目の設定内容は、上述した物理アダプタの情報の設定内容と同様である。更に、ＳＶＩＤ（Sub Vendor ID）、ＳＤＩＤ（Sub Device ID）を用いてもよい。
【００７３】
仮想マシンＩＤの項目には、当該仮想アダプタに対応付けられた仮想マシンのＩＤが設定される。仮想ポートＮｏ．の項目には、物理アダプタ上の仮想ポートの識別番号が設定される。接続先ＷＷＮの項目には、接続先ストレージ装置のＦＣインタフェースのＷＷＮが設定される。ゾーンの項目には、ＦＣスイッチ装置２００上の何れのゾーンに属するかが、当該ゾーンのＩＤにより指定される。
【００７４】
例えば、接続構成管理テーブル１３１には、各仮想マシンと各ＦＣインタフェース上の仮想アダプタとについて、次のような対応関係が設定される。
（１）仮想マシン１５０と仮想アダプタ１６０の対応関係。
【００７５】
（２）仮想マシン１５０ａと仮想アダプタ１６０ａの対応関係。
（３）仮想マシン１５０と仮想アダプタ１６０ｂの対応関係。
（４）仮想マシン１５０ａと仮想アダプタ１６０ｃの対応関係。
【００７６】
具体的には、次の通りである。
（１）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“０”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“０”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“０”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“０”、仮想ポートＮｏ．が“００”、接続先ＷＷＮが“ｘｘｙｙ０１”およびゾーンが“Ｚｏｎｅ０”という情報が設定される。
【００７７】
これは、ＦＣインタフェース１０６は、ＰＣＩスロット“０”に接続されており、ＦＣインタフェース１０６のデバイスパス、インスタンスＮｏ．、ＶＩＤ、ＤＩＤが上記設定であることを示している。また、仮想アダプタ１６０のデバイスパス、ポートＮｏ．、ＶＩＤ、ＤＩＤが上記設定であることを示している。また、仮想アダプタ１６０に対して、仮想マシン１５０（仮想マシンＩＤ“０”）が対応付けられている。更に、ＦＣインタフェース１０６において仮想ポートＮｏ．“００”の仮想ポートが割り当てられていることを示す。当該仮想アダプタを介した接続先装置のＷＷＮとして、“ｘｘｙｙ０１”が指定されていることを示す。また、仮想アダプタ１６０による通信経路はＦＣスイッチ装置２００が管理するゾーンのうちの“Ｚｏｎｅ０”に属することを示す。
【００７８】
（２）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“０”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“０”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠１”、インスタンスＮｏ．が“１”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“１”、仮想ポートＮｏ．が“０１”、接続先ＷＷＮが“ｘｘｙｙ０２”およびゾーンが“Ｚｏｎｅ１”という情報が設定される。
【００７９】
（３）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“１”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“１”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠２”、インスタンスＮｏ．が“２”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“０”、仮想ポートＮｏ．が“１０”、接続先ＷＷＮが“ｘｘｙｙ０１”およびゾーンが“Ｚｏｎｅ０”という情報が設定される。
【００８０】
（４）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“１”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“１”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠３”、インスタンスＮｏ．が“３”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“１”、仮想ポートＮｏ．が“１１”、接続先ＷＷＮが“ｘｘｙｙ０２”およびゾーンが“Ｚｏｎｅ１”という情報が設定される。
【００８１】
ここで、接続先ＷＷＮ“ｘｘｙｙ０１”は、ストレージ装置３００のポート３４０に対応する。接続先ＷＷＮ“ｘｘｙｙ０２”は、ストレージ装置３００のポート３４０ａに対応する。
【００８２】
図１０は、冗長グループ管理テーブルの例を示す図である。冗長グループ管理テーブル１３２には、仮想マシンＩＤ、物理アダプタインスタンスＮｏ．、仮想アダプタインスタンスＮｏ．、アダプタ識別情報、運用状態、ＩＯ（Input / Output）要求状態、冗長グループおよび同一物理アダプタの他の仮想アダプタを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つの冗長グループの情報を示す。
【００８３】
仮想マシンＩＤの項目には、仮想マシンＩＤが設定される。物理アダプタインスタンスＮｏ．の項目には、物理アダプタインスタンスＮｏ．が設定される。物理アダプタインスタンスＮｏ．は、物理アダプタのファンクション番号（物理ポート番号）である。仮想アダプタインスタンスＮｏ．の項目には、仮想アダプタインスタンスＮｏ．が設定される。仮想アダプタインスタンスＮｏ．は、仮想アダプタのファンクション番号（仮想アダプタの仮想的なファンクションを識別するための番号）である。
【００８４】
アダプタ識別情報の項目には、接続先装置へのアクセスに用いるアダプタの情報が設定される。アダプタ識別情報の項目には、物理デバイスパスの項目およびスロットの項目が更に設けられている。物理デバイスパスの項目には、物理アダプタのデバイスパス情報が設定される。スロットの項目には、当該物理アダプタが設けられたＰＣＩスロットのＰＣＩスロットＩＤが設定される。運用状態の項目には、当該仮想アダプタを介したデータ通信の運用状態を示す情報が設定される。ＩＯ要求状態の項目には、当該仮想アダプタを介したデータ通信におけるＩＯ要求の状態を示す情報が設定される。
【００８５】
冗長グループの項目には、当該仮想アダプタの属する冗長グループ（仮想アダプタの組み合わせ）の情報が設定される。冗長グループの項目には、更に、グループＩＤの項目および仮想アダプタの項目が設けられている。グループＩＤの項目には、冗長グループのグループＩＤが設定される。仮想アダプタの項目には、当該グループのペアとなる仮想アダプタの仮想アダプタインスタンスＮｏ．が設定される。
【００８６】
同一物理アダプタの他の仮想アダプタの項目には、当該仮想アダプタが属するＦＣインタフェース上の他の仮想アダプタの仮想アダプタインスタンスＮｏ．が設定される。
例えば、冗長グループ管理テーブル１３２には、各仮想アダプタについて、次のような冗長グループが設定される。
【００８７】
（１）仮想アダプタ１６０と仮想アダプタ１６０ｂとをペアとした第１の冗長グループ。第１の冗長グループは仮想マシン１５０に割り当てられる。
（２）仮想アダプタ１６０ａと仮想アダプタ１６０ｃとをペアとした第２の冗長グループ。第２の冗長グループは仮想マシン１５０ａに割り当てられる。
【００８８】
具体的には、次の通りである。
第１の冗長グループ（仮想アダプタ１６０側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“０”、物理アダプタインスタンスＮｏ．が“０”、仮想アダプタインスタンスＮｏ．が“０”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“０”、運用状態が“異常”、ＩＯ要求状態が“停止”、冗長グループにつきグループＩＤが“マルチパスＡ”、対の仮想アダプタのＩＤが“２”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“１”という情報が設定される。
【００８９】
これは、仮想マシン１５０に対して、ＦＣインタフェース１０６（物理アダプタインスタンスＮｏ．“０”）上の仮想アダプタ１６０（仮想アダプタインスタンスＮｏ．“０”）が割り当てられていることを示す。物理アダプタを識別するための情報として、上記物理デバイスパスおよびスロット番号が設定されている。また、当該仮想アダプタ１６０の運用状態が“異常”であり、ＩＯ要求状態が“停止”中であることを示す。更に、仮想アダプタ１６０が属する冗長グループのグループＩＤが“マルチパスＡ”であり、対になる仮想アダプタが仮想アダプタ１６０ｂ（仮想アダプタインスタンスＮｏ．“２”）であることを示す。また、ＦＣインタフェース１０６上の他の仮想アダプタとして仮想アダプタ１６０ａ（仮想アダプタインスタンスＮｏ．“１”）が存在することを示す。
【００９０】
第１の冗長グループ（仮想アダプタ１６０ｂ側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“０”、物理アダプタインスタンスＮｏ．が“１”、仮想アダプタインスタンスＮｏ．が“２”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“１”、運用状態が“待機”、ＩＯ要求状態が“リトライ”、冗長グループにつきグループＩＤが“マルチパスＡ”、対の仮想アダプタインスタンスＮｏ．が“０”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“３”という情報が設定される。
【００９１】
第２の冗長グループ（仮想アダプタ１６０ａ側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“１”、物理アダプタインスタンスＮｏ．が“０”、仮想アダプタインスタンスＮｏ．が“１”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“０”、運用状態が“待機”、ＩＯ要求状態が“停止”、冗長グループにつきグループＩＤが“マルチパスＢ”、対の仮想アダプタインスタンスＮｏ．が“３”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“０”という情報が設定される。
【００９２】
第２の冗長グループ（仮想アダプタ１６０ｃ側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“１”、物理アダプタインスタンスＮｏ．が“１”、仮想アダプタインスタンスＮｏ．が“３”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“１”、運用状態が“運用”、ＩＯ要求状態が“通信中”、冗長グループにつきグループＩＤが“マルチパスＢ”、対の仮想アダプタインスタンスＮｏ．が“１”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“２”という情報が設定される。
【００９３】
ここで、運用状態の各設定内容の意味は次の通りである。“異常”は、当該仮想アダプタの故障や障害の発生を示す。“待機”は、当該仮想アダプタが冗長グループの待機系であることを示す。“運用”は、当該仮想アダプタが冗長グループの現用系であり、通信に利用可能な状態であることを示す。
【００９４】
また、ＩＯ要求状態の各設定内容の意味は次の通りである。“停止”は、当該仮想アダプタでＩＯ（データの送受信動作）が発生していないことを示す。“リトライ”は、当該仮想アダプタを介した通信を試行中であることを示す。“通信中”は、当該仮想アダプタを介した通信が確立されており、通信に利用されている状態であることを示す。
【００９５】
次に、以上の構成のサーバ装置１００の処理手順を説明する。
図１１は、第２の実施の形態の障害検知時の全体処理を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳ１１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介してストレージ装置３００にアクセスしているとする。
【００９６】
（ステップＳ１１）アダプタドライバ１５２は、仮想アダプタ１６０を介した通信で故障を検知する。すると、アダプタドライバ１５２は、プロセス間通信によりハイパーバイザ１４０に仮想アダプタ１６０の故障検知を通知する。制御部１４１は、当該通知を受けて、仮想アダプタ１６０の故障を検知する。
【００９７】
（ステップＳ１２）制御部１４１は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、仮想アダプタの構成を確認する。具体的には、制御部１４１は、故障を検知した仮想アダプタ１６０が属するＦＣインタフェース１０６上の他の仮想アダプタの存在を確認する。制御部１４１は、当該他の仮想アダプタとして仮想アダプタ１６０ａを特定する。制御部１４１は、接続構成管理テーブル１３１を参照して、仮想アダプタ１６０ａに対応する仮想マシン１５０ａを特定する。
【００９８】
（ステップＳ１３）制御部１４１は、仮想マシン１５０ａに対して、他の物理アダプタ上にある退避先の仮想アダプタ（以下、退避先アダプタという）を有しているか問い合わせる。仮想マシン１５０ａの冗長パス制御部１５３ａは、当該問い合わせに対して、退避先アダプタの有無を応答する。冗長パス制御部１５３ａは、退避先アダプタがある場合には、その識別情報を制御部１４１に通知する。制御部１４１は、受け付けた退避先アダプタの識別情報を冗長グループ管理テーブル１３２に設定する。例えば、冗長パス制御部１５３ａは、仮想アダプタ１６０ａに対してＦＣインタフェース１０６ａ上の退避先アダプタ（仮想アダプタ１６０ｃ）が存在する旨を制御部１４１に通知する。すると、制御部１４１は、冗長グループ管理テーブル１３２に、仮想アダプタ１６０ａ，１６０ｃを対応付けて登録する。なお、制御部１４１は、故障した仮想アダプタ１６０と仮想アダプタ１６０ｂとの対応も同様に、冗長パス制御部１５３から情報を取得して冗長グループ管理テーブル１３２に登録する。
【００９９】
（ステップＳ１４）制御部１４１は、ステップＳ１２で確認した他の仮想アダプタのうちから、未退避の仮想アダプタを１つ選択する。例えば、仮想アダプタ１６０ａを選択する。
【０１００】
（ステップＳ１５）制御部１４１は、冗長グループ管理テーブル１３２を参照して、当該仮想アダプタに退避先アダプタがあるか否かを判定する。退避先アダプタがない場合、処理をステップＳ１６に進める。退避先アダプタがある場合、処理をステップＳ１９に進める。
【０１０１】
（ステップＳ１６）制御部１４１は、物理アダプタを追加する処理を行う。例えば、管理者にＦＣインタフェース１０６ａの追加を促すメッセージを報知する。管理者がサーバ装置１００に新たにＦＣインタフェース１０６ａを搭載する作業を行った後、制御部１４１は、ＦＣインタフェース１０６ａを仮想マシン１５０ａから利用可能にするための処理を行う。制御部１４１は、ＦＣインタフェース１０６ａ上の仮想アダプタから仮想マシン１５０ａに退避先の仮想アダプタ１６０ｃを割り当てる。制御部１４１は、追加されたＦＣインタフェース１０６ａに関する接続構成を接続構成管理テーブル１３１に登録する。制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に退避元の仮想アダプタと退避先の仮想アダプタとの対応関係を登録する。
【０１０２】
（ステップＳ１７）制御部１４１は、接続構成管理テーブル１３１を参照して、退避先アダプタに対応するゾーンがＦＣスイッチ装置２００に設定済であるか否かを判定する。ゾーンを設定済である場合、処理をステップＳ１９に進める。ゾーンを未設定である場合、処理をステップＳ１８に進める。
【０１０３】
（ステップＳ１８）制御部１４１は、退避先アダプタに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。
（ステップＳ１９）制御部１４１は、仮想マシン１５０ａに対し、退避先アダプタの接続先装置を組み込む指示をプロセス間通信で通知する。仮想マシン１５０ａは、組み込み指示を受信すると、接続先装置と通信して、退避先アダプタを介した接続先装置の利用を可能とするための処理を行う。仮想マシン１５０ａは、組み込みを完了すると、完了した旨をハイパーバイザ１４０に通知する。
【０１０４】
（ステップＳ２０）制御部１４１は、退避先アダプタへ通信を切り換える旨の指示を仮想マシン１５０ａに通知する。冗長パス制御部１５３ａは、通信に用いるアダプタを仮想アダプタ１６０ａから仮想アダプタ１６０ｃに切り換える。冗長パス制御部１５３ａは、切り換えが完了した旨を制御部１４１に通知する。制御部１４１は、当該通知を受けて、冗長グループ管理テーブル１３２の仮想アダプタ１６０ａ，１６０ｃの運用状態を更新する。
【０１０５】
（ステップＳ２１）制御部１４１は、冗長グループ管理テーブル１３２を参照して、ステップＳ１２で特定した全ての仮想アダプタにつき退避が完了したかを判定する。全ての仮想アダプタを退避済である場合、処理をステップＳ２２に進める。未退避の仮想アダプタが存在する場合、処理をステップＳ１４に進める。
【０１０６】
（ステップＳ２２）制御部１４１は、故障した物理アダプタ（ＦＣインタフェース１０６）を故障状態として、その動作を停止させる。制御部１４１は、仮想マシン１５０，１５０ａなどによる当該物理アダプタへの資源取得の要求を防止し、故障した物理アダプタを閉塞する。そして、制御部１４１は、故障した物理アダプタの電源をＯＦＦにして、サーバ装置１００から切り離す。
【０１０７】
このようにして、制御部１４１は仮想アダプタの切り換えを制御する。ステップＳ１３では、制御部１４１は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、退避先アダプタの有無を確認してもよい。
【０１０８】
なお、ステップＳ２２の処理は、仮想マシン１５０上で故障が検知された仮想アダプタ１６０の仮想アダプタ１６０ｂへの切り換えが完了した後に行われる。故障が検知された仮想アダプタ１６０に関しては、冗長パス制御部１５３により、当該故障検知の後に、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えが行われる。冗長パス制御部１５３は、当該切り換えの完了を制御部１４１に通知する。このようにして、制御部１４１は仮想アダプタ１６０，１６０ｂ間の切り換え状況も管理する。
【０１０９】
例えば、故障検知後、所定期間経過後も、冗長パス制御部１５３によるアダプタ切り換えが実行されない場合、制御部１４１は、冗長パス制御部１５３にも切り換えの指示を行ってもよい。
【０１１０】
また、例えば、故障を検知した仮想マシン１５０の退避先アダプタがない場合も考えられる。その場合には、新たにＦＣインタフェース１０６ａがサーバ装置１００に搭載されるまで、制御部１４１は冗長パス制御部１５３によるアダプタ切り換えを留保することが考えられる。
【０１１１】
図１２は、第２の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図１２に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１０１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介してストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０１１２】
（ステップＳＴ１０１）仮想マシン１５０は、ハイパーバイザ１４０に仮想アダプタ１６０の故障を通知する。
（ステップＳＴ１０２）ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０１１３】
（ステップＳＴ１０３）ハイパーバイザ１４０は、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨をハイパーバイザ１４０に応答する。その後、ハイパーバイザ１４０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、ハイパーバイザ１４０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。
【０１１４】
（ステップＳＴ１０４）ハイパーバイザ１４０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に、仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０１１５】
（ステップＳＴ１０５）ハイパーバイザ１４０は、ＦＣスイッチ装置２００のゾーン情報に仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報（物理アダプタの情報や物理アダプタの仮想ポート番号の情報）を追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。
【０１１６】
（ステップＳＴ１０６）ハイパーバイザ１４０は、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１１７】
（ステップＳＴ１０７）ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０１１８】
（ステップＳＴ１０８）ハイパーバイザ１４０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０１１９】
（ステップＳＴ１０９）ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０１２０】
このようにして、ハイパーバイザ１４０は、仮想アダプタ１６０で故障を検知すると、仮想マシン１５０とＦＣインタフェース１０６を共有する仮想マシン１５０ａについても、ＦＣインタフェース１０６ａに移管する。これによって、ＦＣインタフェース１０６を利用する仮想マシンが全てＦＣインタフェース１０６ａに退避される。
【０１２１】
次に、図１１のステップＳ１６の物理アダプタ追加処理を説明する。以下では、ＦＣインタフェース１０６ａを追加する場合を想定する。
図１３は、第２の実施の形態の物理アダプタ追加処理を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１２２】
（ステップＳ３１）管理者により、ＦＣインタフェース１０６ａが、サーバ装置１００に搭載される。また、管理者により、ＦＣインタフェース１０６ａとＦＣスイッチ装置２００とがＦＣケーブルを介して接続される。制御部１４１は、ＦＣインタフェース１０６ａがサーバ装置１００に追加された旨を検知する。
【０１２３】
（ステップＳ３２）制御部１４１は、ＦＣインタフェース１０６ａおよび仮想アダプタ１６０ｂ，１６０ｃの情報を管理情報記憶部１３０に記憶された接続構成管理テーブル１３１に登録する。制御部１４１は、退避元の仮想アダプタに関する接続先ＷＷＮやゾーンの情報を接続構成管理テーブル１３１から取得し、退避先アダプタの接続先ＷＷＮやゾーンの情報として同テーブルに登録する。制御部１４１は、退避先アダプタの接続先ＷＷＮやゾーンの情報として、管理端末装置４００で管理者が入力した情報を接続構成管理テーブル１３１に登録してもよい。また、制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に、仮想アダプタ１６０，１６０ａの退避先として、仮想アダプタ１６０ｂ，１６０ｃを登録する。何れの仮想アダプタを何れの仮想アダプタとペアにするかは、管理者が管理端末装置４００から指定してもよいし、制御部１４１がＤＩＤの昇順などの条件に基づいて自動で指定してもよい。
【０１２４】
（ステップＳ３３）制御部１４１は、接続構成管理テーブル１３１を参照して、新たに登録したＦＣインタフェース１０６ａおよび仮想アダプタ１６０ｂ，１６０ｃのＶＩＤとＤＩＤを確認する。
【０１２５】
（ステップＳ３４）制御部１４１は、冗長グループ内で、仮想アダプタ同士のＶＩＤとＤＩＤが同一であるか否かを判定する。同一である場合、処理をステップＳ３５に進める。同一でない場合、管理者に対して、同一機能の物理アダプタを搭載するよう指示して、処理をステップＳ３１に進める。
【０１２６】
（ステップＳ３５）制御部１４１は、接続構成管理テーブル１３１を参照して、退避元の仮想アダプタ１６０，１６０ａに対応する仮想マシン１５０，１５０ａを特定する。
（ステップＳ３６）制御部１４１は、アダプタドライバ１５２，１５２ａ、冗長パス制御部１５３，１５３ａおよび接続先装置ドライバ１５４，１５４ａに、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを指示する。
【０１２７】
（ステップＳ３７）アダプタドライバ１５２，１５２ａ、冗長パス制御部１５３，１５３ａおよび接続先装置ドライバ１５４，１５４ａは、制御部１４１からの指示に応じて、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。
【０１２８】
このようにして、新たに追加したＦＣインタフェース１０６ａを利用可能とするための処理が行われる。退避先の仮想アダプタのＶＩＤとＤＩＤが同一であることを確認し、同一でなければ確認を促すことで、退避前後でアダプタの機能が変わらないことを保証できる。
【０１２９】
これにより、通信性能の低下や接続先装置との相性の不一致などが生じる可能性を低減できる。
図１４は、第２の実施の形態の物理アダプタ追加処理を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。
【０１３０】
（ステップＳＴ１１１）管理者により、ＦＣインタフェース１０６ａがサーバ装置１００に搭載される。管理者により、ＦＣインタフェース１０６ａとＦＣスイッチ装置２００とがＦＣケーブルで接続される。
【０１３１】
（ステップＳＴ１１２）ハイパーバイザ１４０は、ＦＣインタフェース１０６ａが追加された旨を検知すると、ＦＣインタフェース１０６ａから、物理アダプタおよび仮想アダプタの情報を取得する。ハイパーバイザ１４０は、取得した情報を管理情報記憶部１３０に記憶された接続構成管理テーブル１３１に登録する。また、ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に、仮想アダプタ１６０，１６０ａの退避先として、仮想アダプタ１６０ｂ，１６０ｃを登録する。
【０１３２】
（ステップＳＴ１１３）ハイパーバイザ１４０は、接続構成管理テーブル１３１を参照して、新たに登録したＦＣインタフェース１０６ａおよび仮想アダプタ１６０ｂ，１６０ｃのＶＩＤとＤＩＤを確認する。ハイパーバイザ１４０は、冗長ペアの仮想アダプタ同士で、ＶＩＤとＤＩＤが同一であることを確認する。具体的には、仮想アダプタ１６０，１６０ｂのＶＩＤとＤＩＤが同一であることを確認する。また、仮想アダプタ１６０ａ，１６０ｃのＶＩＤとＤＩＤが同一であることを確認する。
【０１３３】
（ステップＳＴ１１４）ハイパーバイザ１４０は、接続構成管理テーブル１３１を参照して、仮想アダプタ１６０に対応付けられた仮想マシン１５０を特定する。同様に、仮想アダプタ１６０ａに対応付けられた仮想マシン１５０ａを特定する。
【０１３４】
（ステップＳＴ１１５）ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに、仮想アダプタ１６０ｂ，１６０ｃの組み込みを指示する。
（ステップＳＴ１１６）仮想マシン１５０，１５０ａは、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。これにより、仮想マシン１５０は仮想アダプタ１６０ｂを利用可能となる。また、仮想マシン１５０ａは仮想アダプタ１６０ｃを利用可能となる。
【０１３５】
このように、ＦＣインタフェース１０６ａを追加した後、ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに仮想アダプタ１６０ｂ，１６０ｃの組み込みを実行させる。ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに対する仮想アダプタ１６０ｂ，１６０ｃの割り当て状況を接続構成管理テーブル１３１で管理する。また、ハイパーバイザ１４０は、仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃによる冗長グループの対応関係を冗長グループ管理テーブル１３２で管理する。
【０１３６】
次に、図１１のステップＳ１９の接続先装置追加処理を説明する。
図１５は、第２の実施の形態の接続先装置追加処理を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１３７】
（ステップＳ４１）制御部１４１は、仮想マシン１５０，１５０ａに接続先装置（ストレージ装置３００）の組み込みを指示する。このとき、制御部１４１は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、仮想アダプタ１６０ｂの接続先ＷＷＮを、仮想マシン１５０に通知する。同様に、制御部１４１は、仮想アダプタ１６０ｃの接続先ＷＷＮを仮想マシン１５０ａに通知する。
【０１３８】
（ステップＳ４２）冗長パス制御部１５３は、仮想アダプタ１６０の接続先ＷＷＮを確認する。冗長パス制御部１５３ａは、仮想アダプタ１６０ａの接続先ＷＷＮを確認する。
（ステップＳ４３）冗長パス制御部１５３，１５３ａは、ステップＳ４１で受け付けた接続先ＷＷＮとステップＳ４２で確認した接続先ＷＷＮとが同一であるか否かを判定する。同一である場合、すなわち、ＦＣインタフェースの変更後も、元の接続先装置にアクセスできると確認できた場合、冗長パス制御部１５３，１５３ａはその接続先装置の組み込みを行う。その後、冗長パス制御部１５３，１５３ａは組み込みが完了した旨をハイパーバイザ１４０に通知して、処理をステップＳ４４に進める。接続先ＷＷＮが異なる場合、すなわち、ＦＣインタフェースの変更後に元の接続先装置にアクセスできない場合、その旨をハイパーバイザ１４０に通知して、処理をステップＳ４５に進める。
【０１３９】
（ステップＳ４４）制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２を更新する。具体的には、制御部１４１は、仮想アダプタ１６０ｂ，１６０ｃの運用状態を“待機”に更新する。
【０１４０】
（ステップＳ４５）制御部１４１は、仮想アダプタ１６０ｂ，１６０ｃの接続先装置の確認を管理者に促す。例えば、制御部１４１は、管理端末装置４００に所定のメッセージを通知したり、管理者の電子メールアドレスに所定のメッセージを記述した電子メールを送信したりする。
【０１４１】
このようにして、制御部１４１は、仮想マシン１５０，１５０ａから退避先の仮想アダプタを介してストレージ装置３００を利用可能とする。制御部１４１は、退避先装置が退避の前後で異ならないことを事前に確認するので、退避後の仮想マシン１５０，１５０ａの処理への影響を低減できる。
【０１４２】
図１６は、第２の実施の形態の接続先装置追加処理を示すシーケンス図である。以下、図１６に示す処理をステップ番号に沿って説明する。
（ステップＳＴ１２１）ハイパーバイザ１４０は、仮想マシン１５０，１５０ａにストレージ装置３００の組み込みを指示する。
【０１４３】
（ステップＳＴ１２２）仮想マシン１５０，１５０ａは、新たな接続先となるストレージ装置３００が、現在の接続先であるストレージ装置３００と同一であることを確認する。そして、仮想マシン１５０，１５０ａは、ストレージ装置３００の組み込みを行う。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。また、仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１４４】
（ステップＳＴ１２３）仮想マシン１５０，１５０ａは、ストレージ装置３００の組み込みが完了した旨をハイパーバイザ１４０に応答する。
（ステップＳＴ１２４）ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２を更新する。具体的には、制御部１４１は、仮想アダプタ１６０ｂ，１６０ｃの運用状態を“待機”に更新する。
【０１４５】
これにより、各冗長グループでアダプタ切り換えの準備が整う。
次に、図１１のステップＳ２０のアダプタ切り換え処理を説明する。
図１７は、第２の実施の形態のアダプタ切り換え処理を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１４６】
（ステップＳ５１）制御部１４１は、退避対象の仮想アダプタを確認する。具体的には、制御部１４１は、故障が検知されたＦＣインタフェース１０６上の仮想アダプタ１６０ａを確認する。制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２を参照し、仮想アダプタ１６０ａの退避先アダプタとして、仮想アダプタ１６０ｃを特定する。
【０１４７】
（ステップＳ５２）制御部１４１は、仮想マシン１５０ａに仮想アダプタ１６０ｃへの切り換えを指示する。
（ステップＳ５３）冗長パス制御部１５３ａは、制御部１４１の指示を受け付けると、冗長グループ管理テーブル１３２を参照して、仮想マシン１５０ａのＩＯ要求状態を確認する。冗長パス制御部１５３ａは、接続先装置ドライバ１５４ａのＩＯ要求状態を参照して確認してもよい。冗長パス制御部１５３ａは、仮想マシン１５０ａの仮想アダプタ１６０ａによるＩＯ要求状態が“停止”になると、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへアダプタの切り換えを行う。
【０１４８】
（ステップＳ５４）冗長パス制御部１５３ａは、制御部１４１に切り換え完了を通知する。
（ステップＳ５５）制御部１４１は、冗長パス制御部１５３ａから切り換え完了の通知を受け付けると、冗長グループ管理テーブル１３２を更新する。具体的には、制御部１４１は、仮想アダプタ１６０ａのＩＯ要求状態が“停止”であることを確認し、仮想アダプタ１６０ａにつき運用状態の項目を“待機”に変更し、仮想アダプタ１６０ｃにつき運用状態の項目を“運用”に変更する。
【０１４９】
このようにして、制御部１４１は、冗長グループ内でのアダプタの切り換えを制御する。制御部１４１は、仮想アダプタ１６０で故障が発生した場合、ＦＣインタフェース１０６を共用する仮想マシン１５０ａが存在することを確認する。そして、制御部１４１は、仮想マシン１５０ａの冗長パス制御部１５３ａに対して、仮想アダプタの切り換えを指示する。
【０１５０】
冗長パス制御部１５３ａは、仮想マシン１５０ａがストレージ装置３００にアクセス中でないタイミングでＦＣインタフェース１０６上の仮想アダプタ１６０ａからＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｃへ、アダプタの切り換えを行う。これにより、仮想マシン１５０ａの処理が中断されないようにアダプタの切り換えを行える。
【０１５１】
なお、制御部１４１は、仮想マシン１５０のアダプタ切り換えを留保している場合（例えば、図１２のステップＳＴ１０３参照）には、上記ステップＳ５１において、仮想マシン１５０の退避先アダプタとして、仮想アダプタ１６０ｂを特定する。そして、制御部１４１は、以降のステップＳ５２〜Ｓ５５において、仮想マシン１５０ａと同様に、仮想マシン１５０の冗長パス制御部１５３に対して仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを制御する。
【０１５２】
これにより、故障が検出されたＦＣインタフェース１０６を共用する全ての仮想マシンを他のＦＣインタフェース１０６ａに移管できる。その結果、ＦＣインタフェース１０６の全ての仮想アダプタを介した通信が停止状態となる。このため、ＦＣインタフェース１０６を交換するなどの保守作業を行ったとしても、サーバ装置１００で動作する他の仮想マシンに対する影響を抑えることができる。その結果、保守作業を容易に行えるようになる。
【０１５３】
また、制御部１４１は、ＦＣインタフェース１０６で故障を検知したタイミングで、他の仮想マシンをＦＣインタフェース１０６ａに移管させる。このため、サーバ装置１００の保守作業を迅速に開始でき、保守作業を効率的に行える。
【０１５４】
なお、仮想マシン１５０，１５０ａで同一のＦＣインタフェース１０６ａに移管するものとしたが、各仮想マシンをそれぞれ異なるＦＣインタフェースに移管してもよい。また、仮想マシン１５０，１５０ａの接続先装置をストレージ装置３００としたが、それぞれ異なる接続先装置に接続してもよい。
【０１５５】
［第３の実施の形態］
次に、第３の実施の形態を説明する。前述の第２の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０１５６】
第２の実施の形態では、仮想マシン１５０，１５０ａが冗長パス制御部１５３，１５３ａを備え、制御部１４１の指示に応じて、仮想アダプタの切り換えの処理を行う例を示した。
【０１５７】
一方、冗長パス制御部１５３，１５３ａの機能をハイパーバイザが備えてもよい。第３の実施の形態では、この場合を例示する。
ここで、第３の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第３の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第３の実施の形態では、以下に示すサーバ装置１００ａのハードウェア、ＦＣスイッチ装置、ストレージ装置および管理端末装置を、第２の実施の形態と同一の符号により示す。また、対応する同一の構成については、同一の符号により示す。
【０１５８】
図１８は、第３の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置１００ａは、管理情報記憶部１３０、ハイパーバイザ１４０ａ、仮想マシン１５０ｂ，１５０ｃおよび仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃを有する。管理情報記憶部１３０、ハイパーバイザ１４０ａおよび仮想マシン１５０ｂ，１５０ｃの機能は、ＣＰＵ１１１が所定のプログラムを実行することにより、サーバ装置１００ａ上に実現される。ただし、これらのユニットの全部または一部を専用のハードウェアにより実現してもよい。
【０１５９】
管理情報記憶部１３０は、第２の実施の形態の管理情報記憶部１３０に対応する。
ハイパーバイザ１４０ａは、第２の実施の形態のハイパーバイザ１４０に対応する。ハイパーバイザ１４０ａは、制御部１４１ａを有する。制御部１４１ａは、第２の実施の形態の制御部１４１に対応する。ただし、制御部１４１ａは、制御部１４１の機能に加えて、第２の実施の形態の冗長パス制御部１５３，１５３ａの機能を担う。制御部１４１ａは、仮想マシン１５０ｂ，１５０ｃに割り当てた仮想アダプタを冗長制御する。
【０１６０】
仮想マシン１５０ｂは、ＯＳ１５１、アダプタドライバ１５２ｂおよび接続先装置ドライバ１５４ｂを有する。仮想マシン１５０ｃは、ＯＳ１５１ａ、アダプタドライバ１５２ｃおよび接続先装置ドライバ１５４ｃを有する。ＯＳ１５１ｂ，１５１ｃ、アダプタドライバ１５２ｂ，１５２ｃおよび接続先装置ドライバ１５４ｂ，１５４ｃは、第２の実施の形態のＯＳ１５１，１５１ａ、アダプタドライバ１５２，１５２ａおよび接続先装置ドライバ１５４，１５４ａに対応する。
【０１６１】
仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃは、第２の実施の形態の仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃに対応する。
このような構成によっても、第２の実施の形態と同一の処理を行える。その際、第２の実施の形態において冗長パス制御部１５３，１５３ａに対して行われた処理は、制御部１４１ａに対して行われる。また、第２の実施の形態において冗長パス制御部１５３，１５３ａが実行した処理は、制御部１４１ａが実行する。
【０１６２】
例えば、図１２で示した第２の実施の形態の障害検知時の全体処理のシーケンス図のステップＳＴ１０１では、制御部１４１ａは、アダプタドライバ１５２ｂ，１５２ｃからの通知で、仮想アダプタの故障の有無を判断できる。また、制御部１４１ａは、アダプタドライバ１５２ｂ，１５２ｃと通信し、仮想マシン１５０ｂ，１５０ｃのＩＯ要求状況を監視する。制御部１４１ａは、接続先装置ドライバ１５４ｂ,１５４ｃと通信して、ＩＯ要求状況を監視してもよい。これにより、制御部１４１ａは、ある仮想アダプタにつきＩＯ要求状況を判断でき、アダプタ切り換え完了状態を判断できる。具体的には、制御部１４１ａは、仮想マシン１５０ｃが仮想アダプタ１６０ａによりストレージ装置３００にアクセス中に、仮想アダプタ１６０ａが待機状態としないよう制御する。
【０１６３】
また、例えば、図１２のステップＳＴ１０３の処理は、制御部１４１ａが管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照することで確認する。このため、仮想マシンへの問い合わせによる処理負荷が軽減される。また、ステップＳＴ１０７の仮想アダプタの切り換え処理は、制御部１４１ａが行う。
【０１６４】
これにより、第２の実施の形態と同様の効果を得ることができる。特に、制御部１４１ａが切り換え処理を一括して行うので、仮想マシンごとに生じるアダプタ確認の問い合わせや、切り換え指示などの通信を省ける。このため、高速に切り換え処理を行える。
【０１６５】
［第４の実施の形態］
次に、第４の実施の形態を説明する。前述の第２，第３の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０１６６】
第２，第３の実施の形態では、物理アダプタおよび仮想アダプタの接続構成を管理する制御部の機能をハイパーバイザに設けた。一方、当該制御部を他の装置に設けてもよい。第４の実施の形態では、管理端末装置４００が制御部を備える例を示す。
【０１６７】
ここで、第４の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第４の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第４の実施の形態では、サーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置を第２の実施の形態と同一の符号により指し示す。
【０１６８】
図１９は、第４の実施の形態の管理端末装置の機能を示すブロック図である。管理端末装置４００は、管理情報記憶部４１０および制御部４２０を有する。これらの各機能は、管理端末装置４００上のＣＰＵが、管理端末装置４００上のメモリに格納された所定のプログラムを実行することにより、管理端末装置４００上に実現される。ただし、制御部４２０を専用のハードウェアにより実現してもよい。
【０１６９】
管理情報記憶部４１０は、第２の実施の形態の管理情報記憶部１３０に対応する。管理情報記憶部４１０は、管理情報を記憶する。管理情報は、図９，１０で説明した接続構成管理テーブルおよび冗長グループ管理テーブルを含む。
【０１７０】
制御部４２０は、第２の実施の形態の制御部１４１に対応する。すなわち、第２の実施の形態の制御部１４１の機能を制御部４２０が担う。具体的には、制御部４２０は、ハイパーバイザ１４０から、何れかの仮想マシンでＦＣインタフェースを介した通信で障害が発生した旨の通知を受ける。すると、制御部４２０は、管理情報記憶部４１０を参照して、当該ＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部４２０は、特定した他の仮想マシンの他のＦＣインタフェースへの割り当てをハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、制御部４２０の指示により、当該他の仮想マシンを他のＦＣインタフェースに割り当てる。
【０１７１】
次に、以上の構成の管理端末装置４００の処理を説明する。
図２０は、第４の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図２０に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１３１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介して、ストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０１７２】
（ステップＳＴ１３１）仮想マシン１５０は、ハイパーバイザ１４０を介して制御部４２０に、仮想アダプタ１６０の故障を通知する。ここで、以下の説明では、仮想マシン１５０，１５０ａと制御部４２０の間の通信は当該ステップＳＴ１３１と同様にハイパーバイザ１４０を介して行われるものとする。
【０１７３】
（ステップＳＴ１３２）制御部４２０は、管理情報記憶部４１０に記憶された接続構成管理テーブルを参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０１７４】
（ステップＳＴ１３３）制御部４２０は、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨を制御部４２０に応答する。その後、制御部４２０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、制御部４２０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。
【０１７５】
（ステップＳＴ１３４）制御部４２０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。制御部４２０は、管理情報記憶部４１０に記憶された冗長グループ管理テーブルに仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０１７６】
（ステップＳＴ１３５）制御部４２０は、ＦＣスイッチ装置２００のゾーン情報の追加をハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。なお、制御部４２０からＦＣスイッチ装置２００に対してゾーンの設定を直接行ってもよい。例えば、管理端末装置４００とＦＣスイッチ装置２００のＳＶＰ２０３を接続すれば、制御部４２０からＦＣスイッチ装置２００へ直接指示を送れる。
【０１７７】
（ステップＳＴ１３６）制御部４２０は、冗長グループ管理テーブルを参照して、仮想アダプタ１６０，１６０ａによるＩＯ要求状態が“停止”となったことを確認する。仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１７８】
（ステップＳＴ１３７）制御部４２０は、制御部４２０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０１７９】
（ステップＳＴ１３８）制御部４２０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。制御部４２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の停止を指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０１８０】
（ステップＳＴ１３９）制御部４２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の切り離しを指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０１８１】
このようにして、制御部４２０は、仮想マシン１５０が仮想アダプタ１６０で故障を検知した場合に、ＦＣインタフェース１０６を共用する仮想マシン１５０ａの仮想アダプタの切り換えを制御する。ここで、ステップＳＴ１３７では、制御部４２０は仮想アダプタ１６０，１６０ａのうち、ＩＯ要求状態が“停止”になった方から順にアダプタの切り換えを指示できる。
【０１８２】
これにより、第２の実施の形態と同様の効果を得ることができる。また、管理端末装置４００でアダプタ切り換えの制御を行えば、サーバ装置１００以外の装置（例えば、ＦＣスイッチ装置２００やストレージ装置３００など）を含めた統合的な運用管理を、管理端末装置４００上で行える。すなわち、管理者は、仮想マシンと接続先装置との間の接続構成や冗長グループの割当状況などを管理端末装置４００で管理可能となる。このため、情報処理システム全体の運用管理を効率化できる。
【０１８３】
［第５の実施の形態］
次に、第５の実施の形態を説明する。前述の第２〜第４の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０１８４】
第４の実施の形態では、管理端末装置４００に制御部４２０を設ける例を示した。一方、制御部４２０の機能をＦＣスイッチ装置２００に設けてもよい。第５の実施の形態では、ＦＣスイッチ装置２００が制御部を備える例を示す。
【０１８５】
ここで、第５の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第５の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第５の実施の形態では、サーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置を第２の実施の形態と同一の符号により指し示す。
【０１８６】
図２１は、第５の実施の形態のＦＣスイッチ装置の機能を示すブロック図である。ＦＣスイッチ装置２００は、管理情報記憶部２１０および制御部２２０を有する。これらの各機能は、ＳＶＰ２０３がＳＶＰ２０３上のメモリまたはメモリ２０２に格納された所定のプログラムを実行することにより、ＦＣスイッチ装置２００上に実現される。ただし、制御部２２０を専用のハードウェアにより実現してもよい。
【０１８７】
管理情報記憶部２１０は、第２の実施の形態の管理情報記憶部１３０に対応する。管理情報記憶部２１０は、管理情報を記憶する。管理情報は、図９，１０で説明した接続構成管理テーブルおよび冗長グループ管理テーブルを含む。
【０１８８】
制御部２２０は、第２の実施の形態の制御部１４１に対応する。すなわち、第２の実施の形態の制御部１４１の機能を制御部２２０が担う。具体的には、制御部２２０は、ハイパーバイザ１４０から、何れかの仮想マシンでＦＣインタフェースを介した通信に障害が発生した旨の通知を受ける。すると、制御部２２０は、管理情報記憶部２１０を参照して、当該ＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部２２０は、特定した他の仮想マシンの他のＦＣインタフェースへの割り当てをハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、制御部２２０の指示により、当該他の仮想マシンを他のＦＣインタフェースに割り当てる。
【０１８９】
次に、以上の構成のＦＣスイッチ装置２００の処理を説明する。
図２２は、第５の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図２２に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１４１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介して、ストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０１９０】
（ステップＳＴ１４１）仮想マシン１５０は、ハイパーバイザ１４０を介して制御部２２０に、仮想アダプタ１６０の故障を通知する。ここで、以下の説明では、仮想マシン１５０，１５０ａと制御部２２０の間の通信は当該ステップＳＴ１４１と同様にハイパーバイザ１４０を介して行われるものとする。
【０１９１】
（ステップＳＴ１４２）制御部２２０は、管理情報記憶部２１０に記憶された接続構成管理テーブルを参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０１９２】
（ステップＳＴ１４３）制御部２２０は、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨を制御部２２０に応答する。その後、制御部２２０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、制御部２２０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。
【０１９３】
（ステップＳＴ１４４）制御部２２０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。制御部２２０は、管理情報記憶部２１０に記憶された冗長グループ管理テーブルに仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０１９４】
（ステップＳＴ１４５）制御部２２０は、仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。
【０１９５】
（ステップＳＴ１４６）制御部２２０は、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１９６】
（ステップＳＴ１４７）制御部２２０は、冗長グループ管理テーブルを参照して、仮想アダプタ１６０，１６０ａによるＩＯ要求状態が“停止”となったことを確認する。制御部２２０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０１９７】
（ステップＳＴ１４８）制御部２２０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。制御部２２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の停止を指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０１９８】
（ステップＳＴ１４９）制御部２２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の切り離しを指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０１９９】
このようにして、制御部２２０は、仮想マシン１５０が仮想アダプタ１６０で故障を検知した場合に、ＦＣインタフェース１０６を共用する仮想マシン１５０ａの仮想アダプタの切り換えを制御する。ここで、ステップＳＴ１４７では、制御部２２０は仮想アダプタ１６０，１６０ａのうち、ＩＯ要求状態が“停止”になった方から順にアダプタの切り換えを指示できる。
【０２００】
これにより、第２の実施の形態と同様の効果を得ることができる。また、ＦＣスイッチ装置２００でアダプタ切り換えの制御とゾーンの設定をまとめて行うことで、サーバ装置１００の構成の変化に柔軟に対応できる。
【０２０１】
［第６の実施の形態］
次に、第６の実施の形態を説明する。前述の第２〜第５の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０２０２】
第６の実施の形態では、ストレージ装置３００が制御部を備える例を示す。
ここで、第６の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第６の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第６の実施の形態では、サーバ装置、ＦＣスイッチ装置、ストレージ装置および管理端末装置を第２の実施の形態と同一の符号により指し示す。ここで、サーバ装置１００とストレージ装置３００上のＳＶＰ３０４は、専用の管理ＬＡＮで接続される。
【０２０３】
図２３は、第６の実施の形態のストレージ装置の機能を示すブロック図である。ストレージ装置３００は、管理情報記憶部３６０および制御部３７０を有する。これらの各機能は、ＳＶＰ３０４がＳＶＰ３０４上のメモリに格納された所定のプログラムを実行することにより、ストレージ装置３００上に実現される。ただし、制御部３７０を専用のハードウェアにより実現してもよい。
【０２０４】
管理情報記憶部３６０は、第２の実施の形態の管理情報記憶部１３０に対応する。管理情報記憶部３６０は、管理情報を記憶する。管理情報は、図９，１０で説明した接続構成管理テーブルおよび冗長グループ管理テーブルを含む。
【０２０５】
制御部３７０は、第２の実施の形態の制御部１４１に対応する。すなわち、第２の実施の形態の制御部１４１の機能を制御部３７０が担う。具体的には、制御部３７０は、何れかの仮想マシンでタイムアウトなどのアクセス異常を検知すると、当該仮想マシンに対応する仮想アダプタで故障が発生した旨を検知する。すると、制御部３７０は、管理情報記憶部３６０を参照して、当該仮想マシンに対応するＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部３７０は、特定した他の仮想マシンの他のＦＣインタフェースへの割り当てをハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、制御部３７０の指示により、当該他の仮想マシンを他のＦＣインタフェースに割り当てる。
【０２０６】
次に、以上の構成のストレージ装置３００の処理を説明する。
図２４は、第６の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図２４に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１５１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介して、ストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０２０７】
（ステップＳＴ１５１）制御部３７０は、仮想マシン１５０からのアクセスにつき、タイムアウトなどによるアクセス異常を検知する。制御部３７０は、管理情報記憶部３６０に記憶された接続構成管理テーブルを参照して、仮想マシン１５０に対応する仮想アダプタ１６０を特定する。そして、制御部３７０は、仮想アダプタ１６０の故障を検知する。
【０２０８】
（ステップＳＴ１５２）制御部３７０は、接続構成管理テーブルを参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０２０９】
（ステップＳＴ１５３）制御部３７０は、ハイパーバイザ１４０を介して、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨を制御部３７０に応答する。その後、制御部３７０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、制御部３７０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。ここで、以下の説明では、仮想マシン１５０，１５０ａと制御部３７０の間の通信は当該ステップＳＴ１５３と同様にハイパーバイザ１４０を介して行われるものとする。
【０２１０】
（ステップＳＴ１５４）制御部３７０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。制御部３７０は、管理情報記憶部３６０に記憶された冗長グループ管理テーブルに仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０２１１】
（ステップＳＴ１５５）制御部３７０は、仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。
【０２１２】
（ステップＳＴ１５６）制御部３７０は、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０２１３】
（ステップＳＴ１５７）制御部３７０は、冗長グループ管理テーブルを参照して、仮想アダプタ１６０，１６０ａによるＩＯ要求状態が“停止”となったことを確認する。制御部３７０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０２１４】
（ステップＳＴ１５８）制御部３７０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。制御部３７０は、ハイパーバイザ１４０にＦＣインタフェース１０６の停止を指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０２１５】
（ステップＳＴ１５９）制御部３７０は、ハイパーバイザ１４０にＦＣインタフェース１０６の切り離しを指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０２１６】
このようにして、制御部３７０は、仮想マシン１５０が仮想アダプタ１６０で故障を検知した場合に、ＦＣインタフェース１０６を共用する仮想マシン１５０ａの仮想アダプタの切り換えを制御する。ここで、ステップＳＴ１５７では、制御部３７０は仮想アダプタ１６０，１６０ａのうち、ＩＯ要求状態が“停止”になった方から順にアダプタの切り換えを指示できる。
【０２１７】
これにより、第２の実施の形態と同様の効果を得ることができる。また、ストレージ装置３００の判断で仮想アダプタの故障を検知し、アダプタ切り換えの制御を行うことで、切り換え処理を高速に行うことができる。
【０２１８】
［第７の実施の形態］
次に、第７の実施の形態を説明する。前述の第２〜第６の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０２１９】
第２〜第６の実施の形態では、サーバ装置１００が物理アダプタとしてＦＣインタフェース１０６，１０６ａを備える例を示した。一方で、他の種類の物理アダプタについても制御部１４１の機能を利用できる。その一例として、第７の実施の形態では、ＦＣｏＥ（FC Over Ethernet、Ethernetは登録商標）インタフェースを備えるサーバ装置に制御部１４１の機能を適用する場合を示す。
【０２２０】
ここで、第７の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。ただし、第７の実施の形態の情報処理システムでは、サーバ装置１００に代えてサーバ装置１００ｂを、ＦＣスイッチ装置２００に代えてＦＣｏＥスイッチ装置２００ａを含む。更に、ＦＣｏＥスイッチ装置２００ａは、ネットワーク２０に接続される。ＦＣｏＥスイッチ装置２００ａは、ＣＥＥ（Converged Enhanced Ethernet）スイッチ装置を用いてもよい。
【０２２１】
また、第７の実施の形態のサーバ装置１００ｂ、ＦＣｏＥスイッチ装置２００ａ、ストレージ装置および管理端末装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第７の実施の形態では、ストレージ装置および管理端末装置を第２の実施の形態と同一の符号により指し示す。ここで、サーバ装置１００ｂは、ＦＣインタフェース１０６，１０６ａに代えて、ＦＣｏＥインタフェース１０６ｂ，１０６ｃを有する。
【０２２２】
ここで、ＦＣｏＥは、イーサネット（登録商標）上でＦＣのデータを伝送するための技術である。ＦＣｏＥでは、ＦＣのデータをイーサネットフレームにカプセル化して伝送できる。ＦＣｏＥスイッチ装置２００ａは、ストレージ装置３００との間ではＦＣによる通信を行う。ストレージ装置３００が、ＦＣｏＥによる接続であれば、ＦＣｏＥによる通信でもよい。ＦＣｏＥスイッチ装置３００ａは、ネットワーク２０との間ではイーサネットによる通信を行う。ＦＣｏＥインタフェース１０６ｂ，１０６ｃは、ＨＢＡの一例である。
【０２２３】
図２５は、第７の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置１００ｂは、管理情報記憶部１３０、ハイパーバイザ１４０、仮想マシン１５０ｄ，１５０ｅ、ＦＣ仮想アダプタ１６０ｄ，１６０ｅ，１６０ｆ，１６０ｇおよびＮＩＣ仮想アダプタ１７０，１７０ａ，１７０ｂ，１７０ｃを有する。
【０２２４】
管理情報記憶部１３０、ハイパーバイザ１４０および仮想マシン１５０ｄ，１５０ｅの機能は、ＣＰＵ１１１が所定のプログラムを実行することによりサーバ装置１００ｂ上に実現される。また、ＦＣ仮想アダプタ１６０ｄ，１６０ｅおよびＮＩＣ仮想アダプタ１７０，１７０ａの機能は、ＦＣｏＥインタフェース１０６ｂ上の制御装置が所定のプログラムを実行することにより、ＦＣｏＥインタフェース１０６ｂ上に実現される。更に、ＦＣ仮想アダプタ１６０ｆ，１６０ｇおよびＮＩＣ仮想アダプタ１７０ｂ，１７０ｃの機能は、ＦＣｏＥインタフェース１０６ｃ上の制御装置が所定のプログラムを実行することにより、ＦＣｏＥインタフェース１０６ｃ上に実現される。ただし、これらのユニットの全部または一部を専用のハードウェアにより実現してもよい。
【０２２５】
管理情報記憶部１３０は、第２の実施の形態の管理情報記憶部１３０に対応する。ハイパーバイザ１４０は、第２の実施の形態のハイパーバイザ１４０に対応する。
仮想マシン１５０ｄ，１５０ｅは、第２の実施の形態の仮想マシン１５０，１５０ａに対応する。仮想マシン１５０ｄは、ＯＳ１５１、アダプタドライバ１５２，１５２ｄ、冗長パス制御部１５３，１５３ｄおよび接続先装置ドライバ１５４を有する。
【０２２６】
ＯＳ１５１および接続先装置ドライバ１５４は、第２の実施の形態のＯＳ１５１および接続先装置ドライバ１５４に対応する。
アダプタドライバ１５２は、ＯＳ１５１上からＦＣ仮想アダプタを利用するためのソフトウェアである。アダプタドライバ１５２ｄは、ＯＳ１５１上からＮＩＣ仮想アダプタを利用するためのソフトウェアである。
【０２２７】
冗長パス制御部１５３は、ＦＣ仮想アダプタを冗長化して、仮想マシン１５０ｄにおけるＦＣ通信路の信頼性を向上するソフトウェアである。冗長パス制御部１５３ｄは、ＮＩＣ仮想アダプタを冗長化して、仮想マシン１５０ｄにおけるイーサネット通信路の信頼性を向上するソフトウェアである。
【０２２８】
仮想マシン１５０ｅは、ＯＳ１５１ａ、アダプタドライバ１５２ａ，１５２ｅ、冗長パス制御部１５３ａ，１５３ｅおよび接続先装置ドライバ１５４ａを有する。
ＯＳ１５１ａおよび接続先装置ドライバ１５４ａは、第２の実施の形態のＯＳ１５１ａおよび接続先装置ドライバ１５４ａに対応する。
【０２２９】
アダプタドライバ１５２ａ，１５２ｅは、アダプタドライバ１５２，１５２ｄに対応する。冗長パス制御部１５３ａ，１５３ｅは、冗長パス制御部１５３，１５３ｄに対応する。
【０２３０】
ＦＣ仮想アダプタ１６０ｄ，１６０ｅ，１６０ｆ，１６０ｇは、ＦＣｏＥインタフェース１０６ｂ，１０６ｃ上のリソースにより実現された仮想的なＦＣ用のアダプタである（アクセス部の一例である）。仮想マシン１５０ｄ，１５０ｅは、ＦＣ仮想アダプタ１６０ｄ，１６０ｅ，１６０ｆ，１６０ｇを利用して、ストレージ装置３００とＦＣによるデータ通信を行える。
【０２３１】
ＮＩＣ仮想アダプタ１７０，１７０ａ，１７０ｂ，１７０ｃは、ＦＣｏＥインタフェース１０６ｂ，１０６ｃ上のリソースにより実現された仮想的なＮＩＣ用のアダプタである（アクセス部の一例である）。仮想マシン１５０ｄ，１５０ｅは、ＮＩＣ仮想アダプタ１７０，１７０ａ，１７０ｂ，１７０ｃを利用して、ネットワーク２０に接続された情報処理装置とイーサネットによるデータ通信を行える。
【０２３２】
ＦＣｏＥインタフェース１０６ｂ上のＦＣ仮想アダプタ１６０ｄ，１６０ｅおよびＮＩＣ仮想アダプタ１７０，１７０ａは、単一の物理ポートで実現される（仮想ポート４つ）。なお、例えば、ＦＣ仮想アダプタ１６０ｄ，１６０ｅで１つの物理ポート（仮想ポート２つ）、ＮＩＣ仮想アダプタ１７０，１７０ａで１つの物理ポート（仮想ポート２つ）、というように２つの物理ポートで実現してもよい。このような構成によっても、制御部１４１は第２の実施の形態と同一の処理を行える。具体的には次の通りである。
【０２３３】
例えば、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１で、仮想マシン１５０ｄにＦＣ仮想アダプタ１６０ｄおよびＮＩＣ仮想アダプタ１７０が割り当てられる。同様に、仮想マシン１５０ｅにＦＣ仮想アダプタ１６０ｅおよびＮＩＣ仮想アダプタ１７０ａが割り当てられる。
【０２３４】
また、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２では、ＦＣ仮想アダプタ１６０ｄとＦＣ仮想アダプタ１６０ｆとが冗長グループのペアとして設定される。ＦＣ仮想アダプタ１６０ｅとＦＣ仮想アダプタ１６０ｇとが冗長グループのペアとして設定される。ＮＩＣ仮想アダプタ１７０とＮＩＣ仮想アダプタ１７０ｂとが冗長グループのペアとして設定される。ＮＩＣ仮想アダプタ１７０ａとＮＩＣ仮想アダプタ１７０ｃとが冗長グループのペアとして設定される。
【０２３５】
そして、制御部１４１が仮想マシン１５０ｄの冗長パス制御部１５３からＦＣ仮想アダプタ１６０ｄの故障の通知を受けたとする。すると、制御部１４１は、接続構成管理テーブル１３１を参照して、ＦＣｏＥインタフェース１０６ｂを仮想マシン１５０ｄと共用する仮想マシン１５０ｅを特定する。制御部１４１は、仮想マシン１５０ｄにつき、ＦＣ仮想アダプタ１６０ｆおよびＮＩＣ仮想アダプタ１７０ｂを割り当てる。制御部１４１は、仮想マシン１５０ｅにつき、ＦＣ仮想アダプタ１６０ｇおよびＮＩＣ仮想アダプタ１７０ｃを割り当てる。制御部１４１は、仮想マシン１５０ｄ，１５０ｅに当該割り当てに基づくアダプタ切り換えを指示する。
【０２３６】
なお、切り換えの際、制御部１４１は、第２〜第６の実施の形態と同様に、アダプタドライバ１５２，１５２ａ，１５２ｄ，１５２ｅおよび冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅに対してアダプタドライバおよび接続先装置の組み込みを事前に行う。
【０２３７】
冗長パス制御部１５３ｄは、アダプタ切り換えの指示を受けると、ＮＩＣ仮想アダプタ１７０からＮＩＣ仮想アダプタ１７０ｂへＮＩＣ仮想アダプタを切り換える。
また、冗長パス制御部１５３ａは、アダプタ切り換えの指示を受けると、ＦＣ仮想アダプタ１６０ｅからＦＣ仮想アダプタ１６０ｇへＦＣ仮想アダプタを切り換える。更に、冗長パス制御部１５３ｅは、ＮＩＣ仮想アダプタ１７０ａからＮＩＣ仮想アダプタ１７０ｃへＮＩＣ仮想アダプタを切り換える。
【０２３８】
これにより、第２の実施の形態と同様の効果を得ることができる。特に、同一物理アダプタに異なるインタフェースをもつ仮想アダプタに対して切り換え制御を行える。ＦＣ仮想アダプタ１６０ｄの故障の通知を受けた際に、仮想マシン１５０ｄに対してＮＩＣ仮想アダプタ１７０の切り換えを指示する。このため、冗長パス制御部１５３ｄでＮＩＣ仮想アダプタ１７０の故障が検知されない場合でも、冗長パス制御部１５３ｄは当該指示に応じてＮＩＣ仮想アダプタ１７０ｂへの切り換えを行える。
【０２３９】
なお、制御部１４１が冗長パス制御部１５３ｄからＮＩＣ仮想アダプタ１７０の故障の通知を受けた場合も、制御部１４１は同様にして、仮想マシン１５０ｄ，１５０ｅのアダプタの切り換えを制御する。
【０２４０】
ここで、冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅは、第２の実施の形態と同様に、仮想アダプタの切り換え前後で仮想マシン１５０ｄ，１５０ｅがストレージ装置３００にアクセス可能であることを確認した後に、各仮想アダプタの切り換えを行う。また、冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅは、仮想マシン１５０ｄ，１５０ｅが各仮想アダプタによりストレージ装置３００にアクセス中でないタイミングで、各仮想アダプタの切り換えを行う。
【０２４１】
更に、第３の実施の形態と同様に、冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅの機能を制御部１４１が備えてもよい。また、ＦＣ仮想アダプタおよびＮＩＣ仮想アダプタのように異なる種類のプロトコルで通信する仮想アダプタを示したが、同一のプロトコルでもよい。
【０２４２】
また、第２〜第７の実施の形態では、ＦＣインタフェースやＦＣｏＥインタフェースを用いる場合を例示したが、それ以外の物理アダプタを用いても同様である。例えば、制御部１４１は、ＮＩＣインタフェースやＳＡＳインタフェース、Ｉｎｆｉｎｉｂａｎｄインタフェース、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースに対しても、同様にしてアダプタ切り換えの制御を行える。
【０２４３】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０２４４】
１  情報処理装置
１ａ，１ｂ  仮想マシン
１ｃ，１ｄ  インタフェース部
１ｅ  記憶部
１ｆ  制御部
２  デバイス
【図１】
2012176278.tif 000003
【図２】
2012176278.tif 000004
【図３】
2012176278.tif 000005
【図４】
2012176278.tif 000006
【図５】
2012176278.tif 000007
【図６】
2012176278.tif 000008
【図７】
2012176278.tif 000009
【図８】
2012176278.tif 000010
【図９】
2012176278.tif 000011
【図１０】
2012176278.tif 000012
【図１１】
2012176278.tif 000013
【図１２】
2012176278.tif 000014
【図１３】
2012176278.tif 000015
【図１４】
2012176278.tif 000016
【図１５】
2012176278.tif 000017
【図１６】
2012176278.tif 000018
【図１７】
2012176278.tif 000019
【図１８】
2012176278.tif 000020
【図１９】
2012176278.tif 000021
【図２０】
2012176278.tif 000022
【図２１】
2012176278.tif 000023
【図２２】
2012176278.tif 000024
【図２３】
2012176278.tif 000025
【図２４】
2012176278.tif 000026
【図２５】
2012176278.tif 000027
【手続補正書】
【提出日】平成25年10月25日(2013.10.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、仮想マシン制御方法およびプログラムに関する。
【背景技術】
【０００２】
現在、情報処理の分野では、物理的なコンピュータ（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、オペレーティングシステム（ＯＳ：Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。
【０００３】
例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振る。また、例えば、ハイパーバイザが、ＮＩＣ（Network Interface Card）やＨＢＡ（Host Bus Adapter）などのインタフェース部の処理能力を、通信のリソースとして複数の仮想マシンに割り振ることがある。仮想マシンは、自身に割り振られた通信のリソースを用いて、インタフェース部を介してデバイスにアクセスできる。
【０００４】
なお、ＣＰＵに接続されるホストアダプタと記憶装置に接続されるディスクアダプタと共通バスとを二重化し、障害発生時に縮退運転できるようにした記憶システムが提案されている。また、複数のアダプタを含むアダプタブロックを二重化し、一方のアダプタブロック内の１つのアダプタが故障すると、アダプタブロック単位で使用するアダプタを切り換える情報処理装置が提案されている。また、複数の仮想マシンが１つのＨＢＡを共用するとき、障害回数の多い仮想マシンのＩ／Ｏ（Input/Output）要求を遮断することで他の仮想マシンのＩ／Ｏ要求への影響を抑制する仮想計算機システムが提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−３０３２５６号公報
【特許文献２】特開平１０−３１２３０１号公報
【特許文献３】特開２００９−２９４７５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上記のように、複数の仮想マシンが動作する情報処理装置では、デバイスへのアクセスのため２以上の仮想マシンが１つのインタフェース部を共用することがある。このとき、１つの仮想マシンで当該インタフェース部を用いたアクセスにエラーが発生しても、他の仮想マシンではエラーが発生しない場合が生じ得る。例えば、インタフェース部が備えるメモリ領域などのリソースを分割して２以上の仮想マシンに割り振った場合、ある仮想マシンに割り振ったメモリ領域のみに障害が発生することが考えられる。
【０００７】
しかし、１つのインタフェース部を共用する２以上の仮想マシンの一部のみでエラーが検出された場合に、インタフェース部の保守が容易でないという問題がある。例えば、各仮想マシンは、情報処理が互いに干渉しないよう他の仮想マシンから分離されていることが多く、自身がエラーを検出しない限り、他の仮想マシンでのエラーの検出状況にかかわらず当該インタフェース部を使用し続ける可能性がある。この状態では、エラーが検出されたインタフェース部の停止や交換などの保守を円滑に行えないおそれがある。
【０００８】
本発明はこのような点に鑑みてなされたものであり、情報処理装置が備えるインタフェース部の保守を円滑に行うことができる情報処理装置、仮想マシン制御方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
複数の仮想マシンが動作可能であり複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置が提供される。この情報処理装置は、記憶部と制御部とを有する。記憶部は、複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する。制御部は、第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生すると、記憶部を参照して、第１のインタフェース部を用いる第２の仮想マシンを判定し、第２の仮想マシンが用いるインタフェース部を、第１のインタフェース部から情報処理装置に搭載した第２のインタフェース部に切り換える。
【００１０】
また、複数の仮想マシンが動作可能であり複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置、または、情報処理装置と通信する他の情報処理装置が実行する仮想マシン制御方法が提供される。この仮想マシン制御方法では、第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知する。複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、第１のインタフェース部を用いる第２の仮想マシンを判定する。第２の仮想マシンが用いるインタフェース部を、第１のインタフェース部から情報処理装置に搭載した第２のインタフェース部に切り換える。
【００１１】
また、複数の仮想マシンが動作可能であり複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能なコンピュータを制御するためのプログラムが提供される。このプログラムは、コンピュータまたはコンピュータと通信する他のコンピュータに、以下の処理を実行させる。第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知する。複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、第１のインタフェース部を用いる第２の仮想マシンを判定する。第２の仮想マシンが用いるインタフェース部を、第１のインタフェース部からコンピュータに搭載した第２のインタフェース部に切り換える。
【発明の効果】
【００１２】
上記情報処理装置、仮想マシン制御方法およびプログラムによれば、情報処理装置が備えるインタフェース部の保守を円滑に行うことができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態の情報処理システムの全体構成を示す図である。
【図３】第２の実施の形態のサーバ装置のハードウェア例を示す図である。
【図４】第２の実施の形態のＦＣスイッチ装置のハードウェア例を示す図である。
【図５】第２の実施の形態のストレージ装置のハードウェア例を示す図である。
【図６】仮想マシンの配置例を示す図である。
【図７】ハードウェアの割当例を示すブロック図である。
【図８】第２の実施の形態のサーバ装置の機能を示すブロック図である。
【図９】接続構成管理テーブルの例を示す図である。
【図１０】冗長グループ管理テーブルの例を示す図である。
【図１１】第２の実施の形態の障害検知時の全体処理を示すフローチャートである。
【図１２】第２の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図１３】第２の実施の形態の物理アダプタ追加処理を示すフローチャートである。
【図１４】第２の実施の形態の物理アダプタ追加処理を示すシーケンス図である。
【図１５】第２の実施の形態の接続先装置追加処理を示すフローチャートである。
【図１６】第２の実施の形態の接続先装置追加処理を示すシーケンス図である。
【図１７】第２の実施の形態のアダプタ切り換え処理を示すフローチャートである。
【図１８】第３の実施の形態のサーバ装置の機能を示すブロック図である。
【図１９】第４の実施の形態の管理端末装置の機能を示すブロック図である。
【図２０】第４の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図２１】第５の実施の形態のＦＣスイッチ装置の機能を示すブロック図である。
【図２２】第５の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図２３】第６の実施の形態のストレージ装置の機能を示すブロック図である。
【図２４】第６の実施の形態の障害検知時の全体処理を示すシーケンス図である。
【図２５】第７の実施の形態のサーバ装置の機能を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。第１の実施の形態の情報処理装置１では、仮想マシン１ａ，１ｂを含む複数の仮想マシンが動作可能である。また、情報処理装置１には、当該複数の仮想マシンからデバイス２へのアクセスに用いられる、インタフェース部１ｃ，１ｄを含む複数のインタフェース部を搭載可能である。デバイス２は、例えば、通信装置、ストレージ装置、他の情報処理装置などである。情報処理装置１は、インタフェース部１ｃ，１ｄ、記憶部１ｅおよび制御部１ｆを有する。
【００１５】
インタフェース部１ｃ，１ｄは、信号処理を行い、仮想マシン１ａ，１ｂからデバイス２へのアクセスに用いられる。インタフェース部１ｃ，１ｄは、ＮＩＣやＨＢＡなどのアダプタとして実装してもよい。インタフェース部１ｃ，１ｄとデバイス２とは、ケーブルで直接接続されてもよいし、スイッチなどの中継装置を介して接続されてもよい。なお、インタフェース部１ｄは、インタフェース部１ｃが故障したときに使用される予備のものでもよく、インタフェース部１ｃが故障した後に情報処理装置１に追加されてもよい。
【００１６】
記憶部１ｅは、情報処理装置１に搭載可能な複数のインタフェース部のうち、複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する。記憶部１ｅは、不揮発ＮＶＲＡＭ（Non Volatile RAM）やＲＡＭ、ＨＤＤ（Hard Disk Drive）として実装してもよい。なお、第１の実施の形態では、インタフェース部１ｃ，１ｄが正常に動作しているとき、仮想マシン１ａ，１ｂはインタフェース部１ｃを用いてデバイス２にアクセスするものとする。
【００１７】
制御部１ｆは、情報処理装置１で動作する複数の仮想マシンへのインタフェース部１ｃ，１ｄの割り当てを制御する。制御部１ｆは、ＣＰＵとＲＡＭを用いて実行されるプログラムとして実装してもよく、ハイパーバイザ内のモジュールとして実装してもよい。制御部１ｆは、仮想マシン１ａにおいてインタフェース部１ｃを用いたアクセスにエラーが発生したことを検知する。すると、制御部１ｆは、記憶部１ｅを参照して、仮想マシン１ａの他にインタフェース部１ｃを用いる仮想マシン１ｂを検索する。そして、仮想マシン１ｂが用いるインタフェース部を、インタフェース部１ｃからインタフェース部１ｄに切り換える。制御部１ｆは、仮想マシン１ａが用いるインタフェース部も併せて、インタフェース部１ｃからインタフェース部１ｄに切り換えてもよい。
【００１８】
ここで、制御部１ｆは、インタフェース部１ｃが備える複数のリソース（例えば、複数のメモリ領域など）のうち、第１のリソースを仮想マシン１ａに割り当て、第２のリソースを仮想マシン１ｂに割り当ててもよい。仮想マシン１ａにおいて第１のリソースを用いたアクセスにエラーが発生すると、制御部１ｆは、第２のリソースについてエラーが発生していなくても、仮想マシン１ｂが用いるインタフェース部を切り換えることができる。
【００１９】
また、制御部１ｆは、仮想マシン１ｂがデバイス２にアクセス中でないタイミングで、インタフェース部１ｄへの切り換えが行われるように制御してもよい。そのため、制御部１ｆは、仮想マシン１ｂがアクセス中であるか否かを示す情報を記憶部１ｅに格納して、アクセス状態を管理してもよい。また、制御部１ｆは、インタフェース部１ｃを用いてアクセス可能であったデバイスに、インタフェース部１ｄを用いてアクセス可能であることが確認されてから、インタフェース部１ｄへの切り換えが行われるよう制御してもよい。また、制御部１ｆは、仮想マシン１ａからの通知に基づいて、仮想マシン１ａにおいてインタフェース部１ｃを用いたアクセスにエラーが発生したことを検知してもよい。
【００２０】
なお、第１の実施の形態では、記憶部１ｅおよび制御部１ｆを、仮想マシン１ａ，１ｂが動作する情報処理装置１に設けたが、情報処理装置１と通信する他の装置に設けてもよい。例えば、情報処理装置１と通信する通信装置、ストレージ装置、コンピュータなどが記憶部１ｅおよび制御部１ｆを備え、情報処理装置１を制御してもよい。また、記憶部１ｅは、情報処理装置１（または、制御部１ｆを備える他の装置）の外部に設けてもよい。
【００２１】
第１の実施の形態の情報処理装置１によれば、仮想マシン１ａにおいてインタフェース部１ｃを用いたアクセスにエラーが発生したことが検知される。複数のインタフェース部のうち複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶部１ｅが参照されて、エラーが発生したインタフェース部１ｃを用いる仮想マシン１ｂが判定される。判定された仮想マシン１ｂの用いるインタフェース部が、インタフェース部１ｃからインタフェース部１ｄに切り換えられる。
【００２２】
これにより、複数の仮想マシンが動作可能な情報処理装置１におけるインタフェース部１ｃ，１ｄの保守を円滑に行うことができる。例えば、仮想マシン１ａでインタフェース部１ｃについてのエラーが検出されると、インタフェース部１ｃを共用する仮想マシン１ｂでエラーが検出されなくても、仮想マシン１ｂの使用するインタフェース部が切り換えられる。よって、インタフェース部１ｃは、エラーを認識した仮想マシン１ａに加えて仮想マシン１ｂからも使用されなくなり、停止させて情報処理装置１から取り外すことが容易となる。また、情報処理装置１には複数のインタフェース部を搭載でき、仮想マシン１ｂを停止させずにインタフェース部１ｃを交換することが可能となる。
【００２３】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムの全体構成を示す図である。この情報処理システムは、サーバ装置１００、ＦＣ（ＦＣ：Fibre Channel）スイッチ装置２００、ストレージ装置３００および管理端末装置４００を含む。サーバ装置１００は、ネットワーク１０に接続されている。
【００２４】
サーバ装置１００は、複数の仮想マシンが動作可能なサーバコンピュータである。サーバ装置１００は、複数の仮想マシンの起動や停止を管理する。サーバ装置１００は、ネットワーク１０を介して、ネットワーク１０に接続されたクライアント装置で仮想マシンの機能を利用可能とする。
【００２５】
ＦＣスイッチ装置２００は、ＦＣ用の複数のインタフェースを備え、各インタフェース間を中継する通信経路切り換え機である。ＦＣスイッチ装置２００は、サーバ装置１００およびストレージ装置３００の間のデータ通信を中継する。サーバ装置１００とＦＣスイッチ装置２００との間の通信は、ＦＣによる通信の他にも、Ｉ２Ｃ（Inter Integrated Circuit）やＬＡＮ（Local Area Network）などを介して行える。
【００２６】
ストレージ装置３００は、サーバ装置１００が利用するデータやプログラムを記憶する記憶装置である。ストレージ装置３００は、サーバ装置１００の要求に応じて、自身が記憶する各種のデータをサーバ装置１００に送信する。ストレージ装置３００は、サーバ装置１００の接続先装置の一例である。
【００２７】
管理端末装置４００は、管理者が操作するコンピュータである。管理端末装置４００は、サーバ装置１００に接続されている。管理端末装置４００は、管理者がサーバ装置１００に対する指示を入力するためのものである。
【００２８】
図３は、第２の実施の形態のサーバ装置のハードウェア例を示す図である。サーバ装置１００は、ＣＰＵボード１０１、クロスバースイッチ１０２、ＰＣＩ  Ｅｘｐｒｅｓｓ（Peripheral Component Interconnect Express）コントローラ１０３、ＳＡＳ（Serial Attached SCSI（Small Computer System Interface））インタフェース１０４、ＨＤＤ１０５、ＦＣインタフェース１０６，１０６ａ、ネットワークインタフェース１０７、ＳＶＰ（SerVice Processor）１０８およびディスクドライブ１０９を有する。
【００２９】
ＣＰＵボード１０１は、ＣＰＵやメモリを備えた情報処理部である。ＣＰＵボード１０１は、ＣＰＵ１１１、ＲＡＭ１１２およびＮＶＲＡＭ１１３を有する。
ＣＰＵ１１１は、ハイパーバイザのプログラム、ＯＳプログラムおよびアプリケーションプログラムを実行して、仮想マシンや当該仮想マシン上のアプリケーションを実現する演算装置である。なお、ＣＰＵボード１０１は複数のＣＰＵを備えてもよい。
【００３０】
ＲＡＭ１１２は、ＣＰＵ１１１が実行するハイパーバイザのプログラム、ＯＳプログラムおよびアプリケーションプログラムの少なくとも一部を一時的に記憶する揮発性の記憶装置である。なお、ＣＰＵボード１０１は複数のＲＡＭを備えてもよい。
【００３１】
ＮＶＲＡＭ１１３は、ハイパーバイザの処理に用いるデータを記憶する不揮発性の記憶装置である。なお、ＣＰＵボード１０１は複数のＮＶＲＡＭを備えてもよい。
また、サーバ装置１００は、複数のＣＰＵボードを備えてもよい。
【００３２】
クロスバースイッチ１０２は、ＣＰＵボード１０１、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３の間のデータ通信を中継する。
ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３は、クロスバースイッチ１０２とＳＡＳインタフェース１０４、ＦＣインタフェース１０６，１０６ａおよびネットワークインタフェース１０７との間のデータ通信を制御する。
【００３３】
ＳＡＳインタフェース１０４は、ＨＤＤ１０５とディスクドライブ１０９に接続され、ＨＤＤ１０５とディスクドライブ１０９に対するデータの入出力を制御する。ディスクドライブ１０９は、ＳＡＴＡ（Serial ATA）プロトコルをカプセリングして入出力制御してもよい。
【００３４】
ＨＤＤ１０５は、ハイパーバイザのプログラムやハイパーバイザの処理に用いられるデータを記憶する不揮発性の記憶装置である。ＨＤＤ１０５は、ＣＰＵ１１１の命令に従って、内蔵の磁気ディスクに対する読み書きを行う。なお、サーバ装置１００は、ＨＤＤ以外の不揮発性の記憶装置（例えば、ＳＳＤ（Solid State Drive））を備えていてもよく、複数の不揮発性記憶装置を備えてもよい。また、ＣＰＵボード１０１で実行するハイパーバイザのプログラムをＮＶＲＡＭ１１３に格納してもよい。
【００３５】
ＦＣインタフェース１０６，１０６ａは、ＦＣスイッチ装置２００と接続され、ＦＣスイッチ装置２００との間のデータ通信を制御するＨＢＡである。ＦＣインタフェース１０６，１０６ａは、当該制御を行う制御装置を有している。
【００３６】
ネットワークインタフェース１０７は、ネットワーク１０と接続され、ネットワーク１０を介した他の装置とのデータ通信を制御する。
ＳＶＰ１０８は、サーバ装置１００を管理するための装置である。ＳＶＰ１０８は、サーバ装置のＣＰＵボード１０１、クロスバースイッチ１０２、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３とＩ２Ｃなどで接続される。ＳＶＰ１０８は、管理端末装置４００に接続される。ＳＶＰ１０８は、サーバ装置１００を管理するためのＧＵＩ（Graphical User Interface）を管理端末装置４００に表示させる。管理者は、管理端末装置４００で当該ＧＵＩを操作してサーバ装置１００に対する指示を行える。
【００３７】
ディスクドライブ１０９は、記録媒体１２に記録されたプログラムやデータを読み取る駆動装置である。記録媒体１２として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。ディスクドライブ１０９は、例えば、ＣＰＵ１１１の命令に従って、記録媒体１２から読み取ったプログラムやデータをＲＡＭ１１２またはＨＤＤ１０５に格納する。
【００３８】
なお、管理端末装置４００も、サーバ装置１００と同様に、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、ネットワークインタフェースおよびディスクドライブなどを有する。管理端末装置４００上のＣＰＵが、所定のプログラムを実行することで、管理端末装置４００の機能が実現される。
【００３９】
図４は、第２の実施の形態のＦＣスイッチ装置のハードウェア例を示す図である。ＦＣスイッチ装置２００は、ルーティングコントローラ２０１、メモリ２０２、ＳＶＰ２０３、クロスバースイッチ２０４、Ｉ／Ｆ（InterFace）コントローラ２０５，２０５ａ，２０５ｂ，２０５ｃ，２０５ｄ，２０５ｅ、バッファ２０６，２０６ａ，２０６ｂ，２０６ｃ，２０６ｄ，２０６ｅおよびポート２０７，２０７ａ，２０７ｂ，２０７ｃ，２０７ｄ，２０７ｅを有する。
【００４０】
なお、以下ではＩ／Ｆコントローラ２０５、バッファ２０６およびポート２０７について説明するが、Ｉ／Ｆコントローラ２０５ａ，２０５ｂ，２０５ｃ，２０５ｄ，２０５ｅ、バッファ２０６ａ，２０６ｂ，２０６ｃ，２０６ｄ，２０６ｅおよびポート２０７ａ，２０７ｂ，２０７ｃ，２０７ｄ，２０７ｅに関しても同様である。
【００４１】
ルーティングコントローラ２０１は、複数のＳＡＮ（Storage Area Network）間でのデータ通信を制御する。
メモリ２０２は、ルーティングコントローラ２０１の処理に用いるデータを記憶する。例えば、ＳＡＮ間を接続するためのルーティングテーブルやＦＣのゾーン設定の情報を記憶する。ここで、ゾーンとは、ＦＣスイッチ装置２００内の通信パスを分割して、トラフィックを分離するものである。
【００４２】
ＳＶＰ２０３は、ＦＣスイッチ装置２００を管理するための装置である。ＳＶＰ２０３は、ＦＣスイッチ装置２００上の各種の管理機能（例えば、通信の障害管理や電源管理）を担う。ＳＶＰ２０３は、ＦＣスイッチ装置２００を管理するための管理端末装置（不図示）と接続されてもよい。その場合、ＳＶＰ２０３は、当該管理端末装置に管理用のＧＵＩを表示させることができる。管理者は、当該ＧＵＩを操作して、ＦＣスイッチ装置２００に指示を入力することもできる。また、ＳＶＰ２０３は、当該ＳＶＰ２０３の処理に用いるプログラムやデータを格納するためのメモリを有している。これらプログラムやデータをメモリ２０２に格納してもよい。
【００４３】
クロスバースイッチ２０４は、各ポートを介した装置間のデータ通信を中継する。
Ｉ／Ｆコントローラ２０５は、各ポート間のデータの流れを制御する。
バッファ２０６は、データの流れを制御するためにデータを一時的に格納するための記憶領域である。
【００４４】
ポート２０７は、外部の装置と接続するためのアダプタである。ポート２０７は、ＦＣケーブルを介してサーバ装置１００と接続されている。ポート２０７ｃは、ＦＣケーブルを介してストレージ装置３００と接続されている。ポート２０７ｄは、ＦＣケーブルを介してストレージ装置３００と接続されている。
【００４５】
図５は、第２の実施の形態のストレージ装置のハードウェア例を示す図である。ストレージ装置３００は、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）制御部３０１、ストレージ部３０２、Ｉ／Ｆコントローラ３０３，３０３ａ、ＳＶＰ３０４を有する。
【００４６】
ＲＡＩＤ制御部３０１は、ＲＡＩＤを実現するための装置である。ＲＡＩＤ制御部３０１は、ストレージ部３０２に設けられた複数のＨＤＤを論理的な１つの記憶装置として、サーバ装置１００上の仮想マシンから利用可能にする。ＲＡＩＤ制御部３０１は、制御ボード３１０，３１０ａ、Ｉ／Ｆコントローラ３２０，３２０ａ、バッファ３３０，３３０ａおよびポート３４０，３４０ａを有する。
【００４７】
制御ボード３１０，３１０ａは、ポート３４０，３４０ａごとに設けられている。制御ボード３１０，３１０ａは、ポート３４０，３４０ａを介してサーバ装置１００から受けたリクエストに応じて、ストレージ部３０２にアクセスし、データの読み書きを行う。制御ボード３１０は、ＣＰＵ３１１、メモリ３１２およびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３を有する。
【００４８】
ＣＰＵ３１１は、制御ボード３１０の処理を制御する。
メモリ３１２は、ＣＰＵ３１１の処理に用いるデータを記憶する。
ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３は、Ｉ／Ｆコントローラ３０３を介してストレージ部３０２に接続する。ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３は、Ｉ／Ｆコントローラ３２０に接続する。ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３は、インタフェース間の通信を中継する。
【００４９】
制御ボード３１０ａは、ＣＰＵ３１１ａ、メモリ３１２ａおよびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３ａを有する。ＣＰＵ３１１ａ、メモリ３１２ａおよびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３ａは、ＣＰＵ３１１、メモリ３１２およびＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３に対応する。
【００５０】
Ｉ／Ｆコントローラ３２０は、ポート３４０から入力、あるいはポート３４０に出力するデータの流れを制御する。Ｉ／Ｆコントローラ３２０ａも同様に、ポート３４０ａとの間のデータの流れを制御する。
【００５１】
バッファ３３０は、Ｉ／Ｆコントローラ３２０およびポート３４０の間のデータの流れを制御する。バッファ３３０ａも同様に、Ｉ／Ｆコントローラ３２０ａおよびポート３４０ａの間のデータの流れを制御する。
【００５２】
ポート３４０は、外部の装置と接続するためのアダプタである。ポート３４０は、ＦＣケーブルを介してＦＣスイッチ装置２００のポート２０７ｃと接続されている。ポート３４０ａは、ＦＣケーブルを介してＦＣスイッチ装置２００のポート２０７ｄに接続されている。
【００５３】
ストレージ部３０２は、Ｉ／Ｆスイッチ３５０，３５０ａおよびＨＤＤ３５１，３５１ａ，３５２，３５２ａ，３５３，３５３ａを有する。
Ｉ／Ｆスイッチ３５０，３５０ａは、制御ボード３１０，３１０ａがアクセスするＨＤＤとＩ／Ｆコントローラ３０３，３０３ａの通信制御を行う。
【００５４】
ＨＤＤ３５１，３５１ａ，３５２，３５２ａ，３５３，３５３ａは、ＣＰＵ３１１，３１１ａの命令に従って、内蔵の磁気ディスクに対する読み書きを行う。ＨＤＤ３５１，３５２，３５３は、Ｉ／Ｆスイッチ３５０に接続されている。ＨＤＤ３５１ａ，３５２ａ，３５３ａは、Ｉ／Ｆスイッチ３５０ａに接続されている。なお、ストレージ部３０２は、ＨＤＤ以外の不揮発性の記憶装置（例えば、ＳＳＤ）を備えていてもよい。
【００５５】
Ｉ／Ｆコントローラ３０３，３０３ａは、ＲＡＩＤ制御部３０１とストレージ部３０２との間のデータ通信を中継する。Ｉ／Ｆコントローラ３０３は、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３およびＩ／Ｆスイッチ３５０，３５０ａと接続される。Ｉ／Ｆコントローラ３０３ａは、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ３１３ａおよびＩ／Ｆスイッチ３５０，３５０ａと接続される。
【００５６】
ＳＶＰ３０４は、ストレージ装置３００を管理するための装置である。ＳＶＰ３０４は、ストレージ装置３００上の各種の機能（例えば、ディスクの障害管理や電源管理など）を担う。ＳＶＰ３０４は、ストレージ装置３００を管理するための管理端末装置（不図示）と接続されてもよい。その場合、ＳＶＰ３０４は、当該管理端末装置に管理用のＧＵＩを表示させることができる。管理者は、当該ＧＵＩを操作して、ストレージ装置３００に指示を入力することもできる。また、ＳＶＰ３０４は、当該ＳＶＰ３０４の処理に用いるプログラムやデータを格納するためのメモリを有している。
【００５７】
図６は、仮想マシンの配置例を示す図である。サーバ装置１００は、ハードウェア１２０、ハイパーバイザ１４０および仮想マシン１５０，１５０ａを有する。
ハードウェア１２０は、サーバ装置１００が備える物理的なリソースである。ハードウェア１２０は、ＣＰＵボード１０１、ＰＣＩ  Ｅｘｐｒｅｓｓコントローラ１０３、ＳＡＳインタフェース１０４、ＨＤＤ１０５、ＦＣインタフェース１０６，１０６ａ、ネットワークインタフェース１０７およびディスクドライブ１０９を含む。
【００５８】
ハイパーバイザ１４０は、仮想マシンを実現する。ハイパーバイザ１４０は、各仮想マシンに対するハードウェア１２０の割り当てを行い、各仮想マシンの起動・停止を制御する。また、ハイパーバイザ１４０は、各仮想マシンがハードウェア１２０を共同で利用できるよう各仮想マシンのハードウェア１２０へのアクセスを調停する。更に、ハイパーバイザ１４０は各仮想マシンに割り当てたハードウェア１２０の使用状況を監視する。
【００５９】
仮想マシン１５０，１５０ａは、ハイパーバイザ１４０によりサーバ装置１００上に実現された仮想マシンである。仮想マシン１５０，１５０ａは、それぞれ独立のＯＳを実行している。仮想マシン１５０，１５０ａが実行するＯＳはそれぞれ同一でもよいし、異なっていてもよい。また、サーバ装置１００は３以上の仮想マシンを実行してもよい。
【００６０】
図７は、ハードウェアの割当例を示すブロック図である。仮想マシン１５０，１５０ａはサーバ装置１００上のハードウェア１２０を論理的に分割したリソースにより実現される。図７ではハードウェア１２０に含まれる主要なものとして、ＣＰＵ１１１、ＲＡＭ１１２およびＦＣインタフェース１０６を示している。
【００６１】
ＣＰＵ１１１は、ＣＰＵリソースｌ１，ｌ２，ｌ３，ｌ４に時分割される。ＣＰＵ１１１は、領域分割してもよい。例えば、ＣＰＵリソースｌ１，ｌ２は仮想マシン１５０に割り当てられ、ＣＰＵリソースｌ３，ｌ４は仮想マシン１５０ａに割り当てられる。
【００６２】
ＲＡＭ１１２は、ＲＡＭリソースｍ１，ｍ２に領域分割される。例えば、ＲＡＭリソースｍ１が仮想マシン１５０に割り当てられ、ＲＡＭリソースｍ２が仮想マシン１５０ａに割り当てられる。
【００６３】
ＦＣインタフェース１０６は、ＦＣインタフェースリソースｎ１，ｎ２に分割される。例えば、ＦＣインタフェースリソースｎ１，ｎ２には、ＦＣインタフェース１０６上の制御装置の処理能力を時分割したリソースが含まれる。また、例えば、ＦＣインタフェースリソースｎ１，ｎ２には、バッファ用に確保されたＦＣインタフェース１０６上の物理的なメモリを領域分割したリソースが含まれる。例えば、ＦＣインタフェースリソースｎ１が仮想マシン１５０に割り当てられ、ＦＣインタフェースリソースｎ２が仮想マシン１５０ａに割り当てられる。ＦＣインタフェース１０６を物理ＨＢＡとすれば、ＦＣインタフェースリソースｎ１，ｎ２は当該物理ＨＢＡ上で実現される仮想ＨＢＡである。
【００６４】
図８は、第２の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置１００は、管理情報記憶部１３０、ハイパーバイザ１４０、仮想マシン１５０，１５０ａおよび仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃを有する。
【００６５】
管理情報記憶部１３０、ハイパーバイザ１４０および仮想マシン１５０，１５０ａの機能は、ＣＰＵ１１１が所定のプログラムを実行することによりサーバ装置１００上に実現される。また、仮想アダプタ１６０，１６０ａの機能は、ＦＣインタフェース１０６上の制御装置が所定のプログラムを実行することによりＦＣインタフェース１０６上に実現される。更に、仮想アダプタ１６０ｂ，１６０ｃの機能は、ＦＣインタフェース１０６ａ上の制御装置が所定のプログラムを実行することにより、ＦＣインタフェース１０６ａ上に実現される。ただし、これらのユニットの全部または一部を専用のハードウェアにより実現してもよい。
【００６６】
管理情報記憶部１３０は、管理情報を記憶する。管理情報には、接続構成管理テーブルおよび冗長グループ管理テーブルが含まれる。接続構成管理テーブルは、仮想マシンと仮想アダプタとの対応関係を管理するためのデータである。冗長グループ管理テーブルは、複数の仮想アダプタを束ねた冗長グループを管理するためのデータである。
【００６７】
ハイパーバイザ１４０は、制御部１４１を有する。制御部１４１は、仮想マシン１５０，１５０ａの通信パスを制御する。制御部１４１は、仮想マシンからＦＣインタフェースを介した通信で障害が発生した旨の通知を受ける。すると、制御部１４１は、管理情報記憶部１３０を参照して、当該ＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部１４１は、特定した他の仮想マシンを他のインタフェースに割り当てる。
【００６８】
仮想マシン１５０は、ＯＳ１５１、アダプタドライバ１５２、冗長パス制御部１５３および接続先装置ドライバ１５４を有する。
ＯＳ１５１は、仮想マシン１５０上で動作する基本プログラムである。
【００６９】
アダプタドライバ１５２は、ＯＳ１５１上から仮想アダプタを利用するためのソフトウェアである。
冗長パス制御部１５３は、仮想アダプタを冗長化して、仮想マシン１５０における通信路の信頼性を向上するソフトウェアである。冗長パス制御部１５３は、複数の仮想アダプタを現用系と待機系とに区別して管理する。冗長パス制御部１５３は、現用系の仮想アダプタで故障が発生して仮想マシン１５０が通信不能となった場合に、仮想マシン１５０が利用する仮想アダプタを待機系に切り換える。また、冗長パス制御部１５３は、現用系の仮想アダプタで故障を検知していなくても、制御部１４１からアダプタの切り換え指示を受けると、仮想マシン１５０が利用するアダプタを待機系に切り換える。
【００７０】
接続先装置ドライバ１５４は、仮想マシン１５０上からストレージ装置３００を利用するためのドライバソフトウェアである。
また、仮想マシン１５０ａは、ＯＳ１５１ａ、アダプタドライバ１５２ａ、冗長パス制御部１５３ａおよび接続先装置ドライバ１５４ａを有する。ＯＳ１５１ａ、アダプタドライバ１５２ａ、冗長パス制御部１５３ａおよび接続先装置ドライバ１５４ａは、ＯＳ１５１、アダプタドライバ１５２、冗長パス制御部１５３および接続先装置ドライバ１５４にそれぞれ対応する。
【００７１】
仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃは、ＦＣインタフェース１０６，１０６ａ上のリソースにより実現されたデータ通信用の仮想的なアダプタである。
図９は、接続構成管理テーブルの例を示す図である。接続構成管理テーブル１３１には、スロット、物理アダプタ、仮想アダプタ、仮想マシンＩＤ（IDentifier）、仮想ポートＮｏ．、接続先ＷＷＮ（World Wide Name）およびゾーンの項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、仮想マシンと仮想アダプタとの１つの対応関係を示す。
【００７２】
スロットの項目には、物理アダプタが搭載されているＰＣＩスロットのＰＣＩスロットＩＤが設定される。
物理アダプタの項目には、物理アダプタの情報が設定される。物理アダプタの項目には、デバイスパス、インスタンスＮｏ．、ＶＩＤ（Vendor ID）およびＤＩＤ（Device ID）の項目が設けられている。デバイスパスの項目には、物理アダプタにアクセスするためのデバイスパス情報が設定される。インスタンスＮｏ．の項目には、当該物理アダプタのファンクション識別番号（物理ポート番号）が設定される。物理アダプタのファンクション識別番号に対して複数の物理ポートを持つ場合は、インスタンスＮｏ．に加えて物理ポート番号を管理してもよい。ＶＩＤの項目には、当該物理アダプタを製造したベンダを識別するためのＶＩＤが設定される。ＶＩＤは同一ベンダであれば同一となる。ＤＩＤの項目には、当該物理アダプタのデバイス（機能）を識別するためのＤＩＤが設定される。ＤＩＤはサーバ装置１００内で物理アダプタを一意に識別するためのＩＤである。仮想アダプタの項目には、仮想アダプタの情報が設定される。仮想アダプタの項目には、デバイスパス、インスタンスＮｏ．（仮想アダプタのファンクションに割り当てる識別番号）、ＶＩＤおよびＤＩＤの項目が設けられている。これらの項目の設定内容は、上述した物理アダプタの情報の設定内容と同様である。更に、ＳＶＩＤ（Sub Vendor ID）、ＳＤＩＤ（Sub Device ID）を用いてもよい。
【００７３】
仮想マシンＩＤの項目には、当該仮想アダプタに対応付けられた仮想マシンのＩＤが設定される。仮想ポートＮｏ．の項目には、物理アダプタ上の仮想ポートの識別番号が設定される。接続先ＷＷＮの項目には、接続先ストレージ装置のＦＣインタフェースのＷＷＮが設定される。ゾーンの項目には、ＦＣスイッチ装置２００上の何れのゾーンに属するかが、当該ゾーンのＩＤにより指定される。
【００７４】
例えば、接続構成管理テーブル１３１には、各仮想マシンと各ＦＣインタフェース上の仮想アダプタとについて、次のような対応関係が設定される。
（１）仮想マシン１５０と仮想アダプタ１６０の対応関係。
【００７５】
（２）仮想マシン１５０ａと仮想アダプタ１６０ａの対応関係。
（３）仮想マシン１５０と仮想アダプタ１６０ｂの対応関係。
（４）仮想マシン１５０ａと仮想アダプタ１６０ｃの対応関係。
【００７６】
具体的には、次の通りである。
（１）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“０”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“０”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“０”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“０”、仮想ポートＮｏ．が“００”、接続先ＷＷＮが“ｘｘｙｙ０１”およびゾーンが“Ｚｏｎｅ０”という情報が設定される。
【００７７】
これは、ＦＣインタフェース１０６は、ＰＣＩスロット“０”に接続されており、ＦＣインタフェース１０６のデバイスパス、インスタンスＮｏ．、ＶＩＤ、ＤＩＤが上記設定であることを示している。また、仮想アダプタ１６０のデバイスパス、インスタンスＮｏ．、ＶＩＤ、ＤＩＤが上記設定であることを示している。また、仮想アダプタ１６０に対して、仮想マシン１５０（仮想マシンＩＤ“０”）が対応付けられている。更に、ＦＣインタフェース１０６において仮想ポートＮｏ．“００”の仮想ポートが割り当てられていることを示す。当該仮想アダプタを介した接続先装置のＷＷＮとして、“ｘｘｙｙ０１”が指定されていることを示す。また、仮想アダプタ１６０による通信経路はＦＣスイッチ装置２００が管理するゾーンのうちの“Ｚｏｎｅ０”に属することを示す。
【００７８】
（２）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“０”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“０”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠１”、インスタンスＮｏ．が“１”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“１”、仮想ポートＮｏ．が“０１”、接続先ＷＷＮが“ｘｘｙｙ０２”およびゾーンが“Ｚｏｎｅ１”という情報が設定される。
【００７９】
（３）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“１”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“１”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠２”、インスタンスＮｏ．が“２”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“０”、仮想ポートＮｏ．が“１０”、接続先ＷＷＮが“ｘｘｙｙ０１”およびゾーンが“Ｚｏｎｅ０”という情報が設定される。
【００８０】
（４）の対応関係に関して、接続構成管理テーブル１３１には、スロットが“１”、物理アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、インスタンスＮｏ．が“１”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想アダプタにつき、デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠３”、インスタンスＮｏ．が“３”、ＶＩＤが“１０ＣＦ”、ＤＩＤが“０００１”、仮想マシンＩＤが“１”、仮想ポートＮｏ．が“１１”、接続先ＷＷＮが“ｘｘｙｙ０２”およびゾーンが“Ｚｏｎｅ１”という情報が設定される。
【００８１】
ここで、接続先ＷＷＮ“ｘｘｙｙ０１”は、ストレージ装置３００のポート３４０に対応する。接続先ＷＷＮ“ｘｘｙｙ０２”は、ストレージ装置３００のポート３４０ａに対応する。
【００８２】
図１０は、冗長グループ管理テーブルの例を示す図である。冗長グループ管理テーブル１３２には、仮想マシンＩＤ、物理アダプタインスタンスＮｏ．、仮想アダプタインスタンスＮｏ．、アダプタ識別情報、運用状態、ＩＯ（Input / Output）要求状態、冗長グループおよび同一物理アダプタの他の仮想アダプタを示す項目が設けられている。各項目の横方向に並べられた情報同士が互いに関連付けられて、１つの冗長グループの情報を示す。
【００８３】
仮想マシンＩＤの項目には、仮想マシンＩＤが設定される。物理アダプタインスタンスＮｏ．の項目には、物理アダプタインスタンスＮｏ．が設定される。物理アダプタインスタンスＮｏ．は、物理アダプタのファンクション番号（物理ポート番号）である。仮想アダプタインスタンスＮｏ．の項目には、仮想アダプタインスタンスＮｏ．が設定される。仮想アダプタインスタンスＮｏ．は、仮想アダプタのファンクション番号（仮想アダプタの仮想的なファンクションを識別するための番号）である。
【００８４】
アダプタ識別情報の項目には、接続先装置へのアクセスに用いるアダプタの情報が設定される。アダプタ識別情報の項目には、物理デバイスパスの項目およびスロットの項目が更に設けられている。物理デバイスパスの項目には、物理アダプタのデバイスパス情報が設定される。スロットの項目には、当該物理アダプタが設けられたＰＣＩスロットのＰＣＩスロットＩＤが設定される。運用状態の項目には、当該仮想アダプタを介したデータ通信の運用状態を示す情報が設定される。ＩＯ要求状態の項目には、当該仮想アダプタを介したデータ通信におけるＩＯ要求の状態を示す情報が設定される。
【００８５】
冗長グループの項目には、当該仮想アダプタの属する冗長グループ（仮想アダプタの組み合わせ）の情報が設定される。冗長グループの項目には、更に、グループＩＤの項目および仮想アダプタの項目が設けられている。グループＩＤの項目には、冗長グループのグループＩＤが設定される。仮想アダプタの項目には、当該グループのペアとなる仮想アダプタの仮想アダプタインスタンスＮｏ．が設定される。
【００８６】
同一物理アダプタの他の仮想アダプタの項目には、当該仮想アダプタが属するＦＣインタフェース上の他の仮想アダプタの仮想アダプタインスタンスＮｏ．が設定される。
例えば、冗長グループ管理テーブル１３２には、各仮想アダプタについて、次のような冗長グループが設定される。
【００８７】
（１）仮想アダプタ１６０と仮想アダプタ１６０ｂとをペアとした第１の冗長グループ。第１の冗長グループは仮想マシン１５０に割り当てられる。
（２）仮想アダプタ１６０ａと仮想アダプタ１６０ｃとをペアとした第２の冗長グループ。第２の冗長グループは仮想マシン１５０ａに割り当てられる。
【００８８】
具体的には、次の通りである。
第１の冗長グループ（仮想アダプタ１６０側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“０”、物理アダプタインスタンスＮｏ．が“０”、仮想アダプタインスタンスＮｏ．が“０”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“０”、運用状態が“異常”、ＩＯ要求状態が“停止”、冗長グループにつきグループＩＤが“マルチパスＡ”、対の仮想アダプタのインスタンスＮｏ．が“２”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“１”という情報が設定される。
【００８９】
これは、仮想マシン１５０に対して、ＦＣインタフェース１０６（物理アダプタインスタンスＮｏ．“０”）上の仮想アダプタ１６０（仮想アダプタインスタンスＮｏ．“０”）が割り当てられていることを示す。物理アダプタを識別するための情報として、上記物理デバイスパスおよびスロット番号が設定されている。また、当該仮想アダプタ１６０の運用状態が“異常”であり、ＩＯ要求状態が“停止”中であることを示す。更に、仮想アダプタ１６０が属する冗長グループのグループＩＤが“マルチパスＡ”であり、対になる仮想アダプタが仮想アダプタ１６０ｂ（仮想アダプタインスタンスＮｏ．“２”）であることを示す。また、ＦＣインタフェース１０６上の他の仮想アダプタとして仮想アダプタ１６０ａ（仮想アダプタインスタンスＮｏ．“１”）が存在することを示す。
【００９０】
第１の冗長グループ（仮想アダプタ１６０ｂ側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“０”、物理アダプタインスタンスＮｏ．が“１”、仮想アダプタインスタンスＮｏ．が“２”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“１”、運用状態が“待機”、ＩＯ要求状態が“リトライ”、冗長グループにつきグループＩＤが“マルチパスＡ”、対の仮想アダプタインスタンスＮｏ．が“０”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“３”という情報が設定される。
【００９１】
第２の冗長グループ（仮想アダプタ１６０ａ側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“１”、物理アダプタインスタンスＮｏ．が“０”、仮想アダプタインスタンスＮｏ．が“１”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠０／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“０”、運用状態が“待機”、ＩＯ要求状態が“停止”、冗長グループにつきグループＩＤが“マルチパスＢ”、対の仮想アダプタインスタンスＮｏ．が“３”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“０”という情報が設定される。
【００９２】
第２の冗長グループ（仮想アダプタ１６０ｃ側）に関して、冗長グループ管理テーブル１３２には、仮想マシンＩＤが“１”、物理アダプタインスタンスＮｏ．が“１”、仮想アダプタインスタンスＮｏ．が“３”、アダプタ識別情報につき物理デバイスパスが“／ｐｃｉ＠１／ｐｃｉ＠０／ｆｉｂｒｅ−ｃｈａｎｎｅｌ＠０”、スロットが“１”、運用状態が“運用”、ＩＯ要求状態が“通信中”、冗長グループにつきグループＩＤが“マルチパスＢ”、対の仮想アダプタインスタンスＮｏ．が“１”、同一物理アダプタの他の仮想アダプタインスタンスＮｏ．が“２”という情報が設定される。
【００９３】
ここで、運用状態の各設定内容の意味は次の通りである。“異常”は、当該仮想アダプタの故障や障害の発生を示す。“待機”は、当該仮想アダプタが冗長グループの待機系であることを示す。“運用”は、当該仮想アダプタが冗長グループの現用系であり、通信に利用可能な状態であることを示す。
【００９４】
また、ＩＯ要求状態の各設定内容の意味は次の通りである。“停止”は、当該仮想アダプタでＩＯ（データの送受信動作）が発生していないことを示す。“リトライ”は、当該仮想アダプタを介した通信を再試行中であることを示す。“通信中”は、当該仮想アダプタを介した通信が確立されており、通信に利用されている状態であることを示す。
【００９５】
次に、以上の構成のサーバ装置１００の処理手順を説明する。
図１１は、第２の実施の形態の障害検知時の全体処理を示すフローチャートである。以下、図１１に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳ１１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介してストレージ装置３００にアクセスしているとする。
【００９６】
（ステップＳ１１）アダプタドライバ１５２は、仮想アダプタ１６０を介した通信で故障を検知する。すると、アダプタドライバ１５２は、プロセス間通信によりハイパーバイザ１４０に仮想アダプタ１６０の故障検知を通知する。制御部１４１は、当該通知を受けて、仮想アダプタ１６０の故障を検知する。
【００９７】
（ステップＳ１２）制御部１４１は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、仮想アダプタの構成を確認する。具体的には、制御部１４１は、故障を検知した仮想アダプタ１６０が属するＦＣインタフェース１０６上の他の仮想アダプタの存在を確認する。制御部１４１は、当該他の仮想アダプタとして仮想アダプタ１６０ａを特定する。制御部１４１は、接続構成管理テーブル１３１を参照して、仮想アダプタ１６０ａに対応する仮想マシン１５０ａを特定する。
【００９８】
（ステップＳ１３）制御部１４１は、仮想マシン１５０ａに対して、他の物理アダプタ上にある退避先の仮想アダプタ（以下、退避先アダプタという）を有しているか問い合わせる。仮想マシン１５０ａの冗長パス制御部１５３ａは、当該問い合わせに対して、退避先アダプタの有無を応答する。冗長パス制御部１５３ａは、退避先アダプタがある場合には、その識別情報を制御部１４１に通知する。制御部１４１は、受け付けた退避先アダプタの識別情報を冗長グループ管理テーブル１３２に設定する。例えば、冗長パス制御部１５３ａは、仮想アダプタ１６０ａに対してＦＣインタフェース１０６ａ上の退避先アダプタ（仮想アダプタ１６０ｃ）が存在する旨を制御部１４１に通知する。すると、制御部１４１は、冗長グループ管理テーブル１３２に、仮想アダプタ１６０ａ，１６０ｃを対応付けて登録する。なお、制御部１４１は、故障した仮想アダプタ１６０と仮想アダプタ１６０ｂとの対応も同様に、冗長パス制御部１５３から情報を取得して冗長グループ管理テーブル１３２に登録する。
【００９９】
（ステップＳ１４）制御部１４１は、ステップＳ１２で確認した他の仮想アダプタのうちから、未退避の仮想アダプタを１つ選択する。例えば、仮想アダプタ１６０ａを選択する。
【０１００】
（ステップＳ１５）制御部１４１は、冗長グループ管理テーブル１３２を参照して、当該仮想アダプタに退避先アダプタがあるか否かを判定する。退避先アダプタがない場合、処理をステップＳ１６に進める。退避先アダプタがある場合、処理をステップＳ１９に進める。
【０１０１】
（ステップＳ１６）制御部１４１は、物理アダプタを追加する処理を行う。例えば、管理者にＦＣインタフェース１０６ａの追加を促すメッセージを報知する。管理者がサーバ装置１００に新たにＦＣインタフェース１０６ａを搭載する作業を行った後、制御部１４１は、ＦＣインタフェース１０６ａを仮想マシン１５０ａから利用可能にするための処理を行う。制御部１４１は、ＦＣインタフェース１０６ａ上の仮想アダプタから仮想マシン１５０ａに退避先の仮想アダプタ１６０ｃを割り当てる。制御部１４１は、追加されたＦＣインタフェース１０６ａに関する接続構成を接続構成管理テーブル１３１に登録する。制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に退避元の仮想アダプタと退避先の仮想アダプタとの対応関係を登録する。
【０１０２】
（ステップＳ１７）制御部１４１は、接続構成管理テーブル１３１を参照して、退避先アダプタに対応するゾーンがＦＣスイッチ装置２００に設定済であるか否かを判定する。ゾーンを設定済である場合、処理をステップＳ１９に進める。ゾーンを未設定である場合、処理をステップＳ１８に進める。
【０１０３】
（ステップＳ１８）制御部１４１は、退避先アダプタに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。
（ステップＳ１９）制御部１４１は、仮想マシン１５０ａに対し、退避先アダプタの接続先装置を組み込む指示をプロセス間通信で通知する。仮想マシン１５０ａは、組み込み指示を受信すると、接続先装置と通信して、退避先アダプタを介した接続先装置の利用を可能とするための処理を行う。仮想マシン１５０ａは、組み込みを完了すると、完了した旨をハイパーバイザ１４０に通知する。
【０１０４】
（ステップＳ２０）制御部１４１は、退避先アダプタへ通信を切り換える旨の指示を仮想マシン１５０ａに通知する。冗長パス制御部１５３ａは、通信に用いるアダプタを仮想アダプタ１６０ａから仮想アダプタ１６０ｃに切り換える。冗長パス制御部１５３ａは、切り換えが完了した旨を制御部１４１に通知する。制御部１４１は、当該通知を受けて、冗長グループ管理テーブル１３２の仮想アダプタ１６０ａ，１６０ｃの運用状態を更新する。
【０１０５】
（ステップＳ２１）制御部１４１は、冗長グループ管理テーブル１３２を参照して、ステップＳ１２で特定した全ての仮想アダプタにつき退避が完了したかを判定する。全ての仮想アダプタを退避済である場合、処理をステップＳ２２に進める。未退避の仮想アダプタが存在する場合、処理をステップＳ１４に進める。
【０１０６】
（ステップＳ２２）制御部１４１は、故障した物理アダプタ（ＦＣインタフェース１０６）を故障状態として、その動作を停止させる。制御部１４１は、仮想マシン１５０，１５０ａなどによる当該物理アダプタへの資源取得の要求を防止し、故障した物理アダプタを閉塞する。そして、制御部１４１は、故障した物理アダプタの電源をＯＦＦにして、サーバ装置１００から切り離す。
【０１０７】
このようにして、制御部１４１は仮想アダプタの切り換えを制御する。ステップＳ１３では、制御部１４１は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、退避先アダプタの有無を確認してもよい。
【０１０８】
なお、ステップＳ２２の処理は、仮想マシン１５０上で故障が検知された仮想アダプタ１６０の仮想アダプタ１６０ｂへの切り換えが完了した後に行われる。故障が検知された仮想アダプタ１６０に関しては、冗長パス制御部１５３により、当該故障検知の後に、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えが行われる。冗長パス制御部１５３は、当該切り換えの完了を制御部１４１に通知する。このようにして、制御部１４１は仮想アダプタ１６０，１６０ｂ間の切り換え状況も管理する。
【０１０９】
例えば、故障検知後、所定期間経過後も、冗長パス制御部１５３によるアダプタ切り換えが実行されない場合、制御部１４１は、冗長パス制御部１５３にも切り換えの指示を行ってもよい。
【０１１０】
また、例えば、故障を検知した仮想マシン１５０の退避先アダプタがない場合も考えられる。その場合には、新たにＦＣインタフェース１０６ａがサーバ装置１００に搭載されるまで、制御部１４１は冗長パス制御部１５３によるアダプタ切り換えを留保することが考えられる。
【０１１１】
図１２は、第２の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図１２に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１０１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介してストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０１１２】
（ステップＳＴ１０１）仮想マシン１５０は、ハイパーバイザ１４０に仮想アダプタ１６０の故障を通知する。
（ステップＳＴ１０２）ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０１１３】
（ステップＳＴ１０３）ハイパーバイザ１４０は、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨をハイパーバイザ１４０に応答する。その後、ハイパーバイザ１４０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、ハイパーバイザ１４０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。
【０１１４】
（ステップＳＴ１０４）ハイパーバイザ１４０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に、仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０１１５】
（ステップＳＴ１０５）ハイパーバイザ１４０は、ＦＣスイッチ装置２００のゾーン情報に仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報（物理アダプタの情報や物理アダプタの仮想ポート番号の情報）を追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。
【０１１６】
（ステップＳＴ１０６）ハイパーバイザ１４０は、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１１７】
（ステップＳＴ１０７）ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０１１８】
（ステップＳＴ１０８）ハイパーバイザ１４０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０１１９】
（ステップＳＴ１０９）ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０１２０】
このようにして、ハイパーバイザ１４０は、仮想アダプタ１６０で故障を検知すると、仮想マシン１５０とＦＣインタフェース１０６を共有する仮想マシン１５０ａについても、ＦＣインタフェース１０６ａに移管する。これによって、ＦＣインタフェース１０６を利用する仮想マシンが全てＦＣインタフェース１０６ａに退避される。
【０１２１】
次に、図１１のステップＳ１６の物理アダプタ追加処理を説明する。以下では、ＦＣインタフェース１０６ａを追加する場合を想定する。
図１３は、第２の実施の形態の物理アダプタ追加処理を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
【０１２２】
（ステップＳ３１）管理者により、ＦＣインタフェース１０６ａが、サーバ装置１００に搭載される。また、管理者により、ＦＣインタフェース１０６ａとＦＣスイッチ装置２００とがＦＣケーブルを介して接続される。制御部１４１は、ＦＣインタフェース１０６ａがサーバ装置１００に追加された旨を検知する。
【０１２３】
（ステップＳ３２）制御部１４１は、ＦＣインタフェース１０６ａおよび仮想アダプタ１６０ｂ，１６０ｃの情報を管理情報記憶部１３０に記憶された接続構成管理テーブル１３１に登録する。制御部１４１は、退避元の仮想アダプタに関する接続先ＷＷＮやゾーンの情報を接続構成管理テーブル１３１から取得し、退避先アダプタの接続先ＷＷＮやゾーンの情報として同テーブルに登録する。制御部１４１は、退避先アダプタの接続先ＷＷＮやゾーンの情報として、管理端末装置４００で管理者が入力した情報を接続構成管理テーブル１３１に登録してもよい。また、制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に、仮想アダプタ１６０，１６０ａの退避先として、仮想アダプタ１６０ｂ，１６０ｃを登録する。何れの仮想アダプタを何れの仮想アダプタとペアにするかは、管理者が管理端末装置４００から指定してもよいし、制御部１４１がＤＩＤの昇順などの条件に基づいて自動で指定してもよい。
【０１２４】
（ステップＳ３３）制御部１４１は、接続構成管理テーブル１３１を参照して、新たに登録したＦＣインタフェース１０６ａおよび仮想アダプタ１６０ｂ，１６０ｃのＶＩＤとＤＩＤを確認する。
【０１２５】
（ステップＳ３４）制御部１４１は、冗長グループ内で、仮想アダプタ同士のＶＩＤとＤＩＤが同一であるか否かを判定する。同一である場合、処理をステップＳ３５に進める。同一でない場合、管理者に対して、同一機能の物理アダプタを搭載するよう指示して、処理をステップＳ３１に進める。
【０１２６】
（ステップＳ３５）制御部１４１は、接続構成管理テーブル１３１を参照して、退避元の仮想アダプタ１６０，１６０ａに対応する仮想マシン１５０，１５０ａを特定する。
（ステップＳ３６）制御部１４１は、アダプタドライバ１５２，１５２ａ、冗長パス制御部１５３，１５３ａおよび接続先装置ドライバ１５４，１５４ａに、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを指示する。
【０１２７】
（ステップＳ３７）アダプタドライバ１５２，１５２ａ、冗長パス制御部１５３，１５３ａおよび接続先装置ドライバ１５４，１５４ａは、制御部１４１からの指示に応じて、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。
【０１２８】
このようにして、新たに追加したＦＣインタフェース１０６ａを利用可能とするための処理が行われる。冗長グループ内で仮想アダプタのＶＩＤとＤＩＤが同一であることを確認し、同一でなければ交換を促すことで、退避前後でアダプタの機能が変わらないことを保証できる。
【０１２９】
これにより、通信性能の低下や接続先装置との相性の不一致などが生じる可能性を低減できる。
図１４は、第２の実施の形態の物理アダプタ追加処理を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。
【０１３０】
（ステップＳＴ１１１）管理者により、ＦＣインタフェース１０６ａがサーバ装置１００に搭載される。管理者により、ＦＣインタフェース１０６ａとＦＣスイッチ装置２００とがＦＣケーブルで接続される。
【０１３１】
（ステップＳＴ１１２）ハイパーバイザ１４０は、ＦＣインタフェース１０６ａが追加された旨を検知すると、ＦＣインタフェース１０６ａから、物理アダプタおよび仮想アダプタの情報を取得する。ハイパーバイザ１４０は、取得した情報を管理情報記憶部１３０に記憶された接続構成管理テーブル１３１に登録する。また、ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２に、仮想アダプタ１６０，１６０ａの退避先として、仮想アダプタ１６０ｂ，１６０ｃを登録する。
【０１３２】
（ステップＳＴ１１３）ハイパーバイザ１４０は、接続構成管理テーブル１３１を参照して、新たに登録したＦＣインタフェース１０６ａおよび仮想アダプタ１６０ｂ，１６０ｃのＶＩＤとＤＩＤを確認する。ハイパーバイザ１４０は、冗長グループの仮想アダプタ同士で、ＶＩＤとＤＩＤが同一であることを確認する。具体的には、仮想アダプタ１６０，１６０ｂのＶＩＤとＤＩＤが同一であることを確認する。また、仮想アダプタ１６０ａ，１６０ｃのＶＩＤとＤＩＤが同一であることを確認する。
【０１３３】
（ステップＳＴ１１４）ハイパーバイザ１４０は、接続構成管理テーブル１３１を参照して、仮想アダプタ１６０に対応付けられた仮想マシン１５０を特定する。同様に、仮想アダプタ１６０ａに対応付けられた仮想マシン１５０ａを特定する。
【０１３４】
（ステップＳＴ１１５）ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに、仮想アダプタ１６０ｂ，１６０ｃの組み込みを指示する。
（ステップＳＴ１１６）仮想マシン１５０，１５０ａは、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。これにより、仮想マシン１５０は仮想アダプタ１６０ｂを利用可能となる。また、仮想マシン１５０ａは仮想アダプタ１６０ｃを利用可能となる。
【０１３５】
このように、ＦＣインタフェース１０６ａを追加した後、ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに仮想アダプタ１６０ｂ，１６０ｃの組み込みを実行させる。ハイパーバイザ１４０は、仮想マシン１５０，１５０ａに対する仮想アダプタ１６０ｂ，１６０ｃの割り当て状況を接続構成管理テーブル１３１で管理する。また、ハイパーバイザ１４０は、仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃによる冗長グループの対応関係を冗長グループ管理テーブル１３２で管理する。
【０１３６】
次に、図１１のステップＳ１９の接続先装置追加処理を説明する。
図１５は、第２の実施の形態の接続先装置追加処理を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
【０１３７】
（ステップＳ４１）制御部１４１は、仮想マシン１５０，１５０ａに接続先装置（ストレージ装置３００）の組み込みを指示する。このとき、制御部１４１は、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照して、仮想アダプタ１６０ｂの接続先ＷＷＮを、仮想マシン１５０に通知する。同様に、制御部１４１は、仮想アダプタ１６０ｃの接続先ＷＷＮを仮想マシン１５０ａに通知する。
【０１３８】
（ステップＳ４２）冗長パス制御部１５３は、仮想アダプタ１６０の接続先ＷＷＮを確認する。冗長パス制御部１５３ａは、仮想アダプタ１６０ａの接続先ＷＷＮを確認する。
（ステップＳ４３）冗長パス制御部１５３，１５３ａは、ステップＳ４１で受け付けた接続先ＷＷＮとステップＳ４２で確認した接続先ＷＷＮとが同一であるか否かを判定する。同一である場合、すなわち、ＦＣインタフェースの変更後も、元の接続先装置にアクセスできると確認できた場合、冗長パス制御部１５３，１５３ａはその接続先装置の組み込みを行う。その後、冗長パス制御部１５３，１５３ａは組み込みが完了した旨をハイパーバイザ１４０に通知して、処理をステップＳ４４に進める。接続先ＷＷＮが異なる場合、すなわち、ＦＣインタフェースの変更後に元の接続先装置にアクセスできない場合、その旨をハイパーバイザ１４０に通知して、処理をステップＳ４５に進める。
【０１３９】
（ステップＳ４４）制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２を更新する。具体的には、制御部１４１は、仮想アダプタ１６０ｂ，１６０ｃの運用状態を“待機”に更新する。
【０１４０】
（ステップＳ４５）制御部１４１は、仮想アダプタ１６０ｂ，１６０ｃの接続先装置の確認を管理者に促す。例えば、制御部１４１は、管理端末装置４００に所定のメッセージを通知したり、管理者の電子メールアドレスに所定のメッセージを記述した電子メールを送信したりする。
【０１４１】
このようにして、制御部１４１は、仮想マシン１５０，１５０ａから退避先の仮想アダプタを介してストレージ装置３００を利用可能とする。制御部１４１は、接続先装置が退避の前後で異ならないことを事前に確認するので、退避後の仮想マシン１５０，１５０ａの処理への影響を低減できる。
【０１４２】
図１６は、第２の実施の形態の接続先装置追加処理を示すシーケンス図である。以下、図１６に示す処理をステップ番号に沿って説明する。
（ステップＳＴ１２１）ハイパーバイザ１４０は、仮想マシン１５０，１５０ａにストレージ装置３００の組み込みを指示する。
【０１４３】
（ステップＳＴ１２２）仮想マシン１５０，１５０ａは、新たな接続先となるストレージ装置３００が、現在の接続先であるストレージ装置３００と同一であることを確認する。そして、仮想マシン１５０，１５０ａは、ストレージ装置３００の組み込みを行う。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。また、仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１４４】
（ステップＳＴ１２３）仮想マシン１５０，１５０ａは、ストレージ装置３００の組み込みが完了した旨をハイパーバイザ１４０に応答する。
（ステップＳＴ１２４）ハイパーバイザ１４０は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２を更新する。具体的には、制御部１４１は、仮想アダプタ１６０ｂ，１６０ｃの運用状態を“待機”に更新する。
【０１４５】
これにより、各冗長グループでアダプタ切り換えの準備が整う。
次に、図１１のステップＳ２０のアダプタ切り換え処理を説明する。
図１７は、第２の実施の形態のアダプタ切り換え処理を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。
【０１４６】
（ステップＳ５１）制御部１４１は、退避対象の仮想アダプタを確認する。具体的には、制御部１４１は、故障が検知されたＦＣインタフェース１０６上の仮想アダプタ１６０ａを確認する。制御部１４１は、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２を参照し、仮想アダプタ１６０ａの退避先アダプタとして、仮想アダプタ１６０ｃを特定する。
【０１４７】
（ステップＳ５２）制御部１４１は、仮想マシン１５０ａに仮想アダプタ１６０ｃへの切り換えを指示する。
（ステップＳ５３）冗長パス制御部１５３ａは、制御部１４１の指示を受け付けると、冗長グループ管理テーブル１３２を参照して、仮想マシン１５０ａのＩＯ要求状態を確認する。冗長パス制御部１５３ａは、接続先装置ドライバ１５４ａのＩＯ要求状態を参照して確認してもよい。冗長パス制御部１５３ａは、仮想マシン１５０ａの仮想アダプタ１６０ａによるＩＯ要求状態が“停止”になると、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへアダプタの切り換えを行う。
【０１４８】
（ステップＳ５４）冗長パス制御部１５３ａは、制御部１４１に切り換え完了を通知する。
（ステップＳ５５）制御部１４１は、冗長パス制御部１５３ａから切り換え完了の通知を受け付けると、冗長グループ管理テーブル１３２を更新する。具体的には、制御部１４１は、仮想アダプタ１６０ａのＩＯ要求状態が“停止”であることを確認し、仮想アダプタ１６０ａにつき運用状態の項目を“待機”に変更し、仮想アダプタ１６０ｃにつき運用状態の項目を“運用”に変更する。
【０１４９】
このようにして、制御部１４１は、冗長グループ内でのアダプタの切り換えを制御する。制御部１４１は、仮想アダプタ１６０で故障が発生した場合、ＦＣインタフェース１０６を共用する仮想マシン１５０ａが存在することを確認する。そして、制御部１４１は、仮想マシン１５０ａの冗長パス制御部１５３ａに対して、仮想アダプタの切り換えを指示する。
【０１５０】
冗長パス制御部１５３ａは、仮想マシン１５０ａがストレージ装置３００にアクセス中でないタイミングでＦＣインタフェース１０６上の仮想アダプタ１６０ａからＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｃへ、アダプタの切り換えを行う。これにより、仮想マシン１５０ａの処理が中断されないようにアダプタの切り換えを行える。
【０１５１】
なお、制御部１４１は、仮想マシン１５０のアダプタ切り換えを留保している場合（例えば、図１２のステップＳＴ１０３参照）には、上記ステップＳ５１において、仮想マシン１５０の退避先アダプタとして、仮想アダプタ１６０ｂを特定する。そして、制御部１４１は、以降のステップＳ５２〜Ｓ５５において、仮想マシン１５０ａと同様に、仮想マシン１５０の冗長パス制御部１５３に対して仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを制御する。
【０１５２】
これにより、故障が検出されたＦＣインタフェース１０６を共用する全ての仮想マシンを他のＦＣインタフェース１０６ａに移管できる。その結果、ＦＣインタフェース１０６の全ての仮想アダプタを介した通信が停止状態となる。このため、ＦＣインタフェース１０６を交換するなどの保守作業を行ったとしても、サーバ装置１００で動作する仮想マシンに対する影響を抑えることができる。その結果、保守作業を容易に行えるようになる。
【０１５３】
また、制御部１４１は、ＦＣインタフェース１０６で故障を検知したタイミングで、仮想マシンをＦＣインタフェース１０６ａに移管させる。このため、サーバ装置１００の保守作業を迅速に開始でき、保守作業を効率的に行える。
【０１５４】
なお、仮想マシン１５０，１５０ａで同一のＦＣインタフェース１０６ａに移管するものとしたが、各仮想マシンをそれぞれ異なるＦＣインタフェースに移管してもよい。また、仮想マシン１５０，１５０ａの接続先装置をストレージ装置３００としたが、それぞれ異なる接続先装置に接続してもよい。
【０１５５】
［第３の実施の形態］
次に、第３の実施の形態を説明する。前述の第２の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０１５６】
第２の実施の形態では、仮想マシン１５０，１５０ａが冗長パス制御部１５３，１５３ａを備え、制御部１４１の指示に応じて、仮想アダプタの切り換えの処理を行う例を示した。
【０１５７】
一方、冗長パス制御部１５３，１５３ａの機能をハイパーバイザが備えてもよい。第３の実施の形態では、この場合を例示する。
ここで、第３の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第３の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第３の実施の形態では、以下に示すサーバ装置１００ａの機能、ＦＣスイッチ装置、ストレージ装置を、第２の実施の形態と同一の符号により示す。
【０１５８】
図１８は、第３の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置１００ａは、管理情報記憶部１３０、ハイパーバイザ１４０ａ、仮想マシン１５０ｂ，１５０ｃおよび仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃを有する。管理情報記憶部１３０、ハイパーバイザ１４０ａおよび仮想マシン１５０ｂ，１５０ｃの機能は、ＣＰＵ１１１が所定のプログラムを実行することにより、サーバ装置１００ａ上に実現される。ただし、これらのユニットの全部または一部を専用のハードウェアにより実現してもよい。
【０１５９】
管理情報記憶部１３０は、第２の実施の形態の管理情報記憶部１３０に対応する。
ハイパーバイザ１４０ａは、第２の実施の形態のハイパーバイザ１４０に対応する。ハイパーバイザ１４０ａは、制御部１４１ａを有する。制御部１４１ａは、第２の実施の形態の制御部１４１に対応する。ただし、制御部１４１ａは、制御部１４１の機能に加えて、第２の実施の形態の冗長パス制御部１５３，１５３ａの機能を担う。制御部１４１ａは、仮想マシン１５０ｂ，１５０ｃに割り当てた仮想アダプタを冗長制御する。
【０１６０】
仮想マシン１５０ｂは、ＯＳ１５１、アダプタドライバ１５２ｂおよび接続先装置ドライバ１５４ｂを有する。仮想マシン１５０ｃは、ＯＳ１５１ａ、アダプタドライバ１５２ｃおよび接続先装置ドライバ１５４ｃを有する。ＯＳ１５１ｂ，１５１ｃ、アダプタドライバ１５２ｂ，１５２ｃおよび接続先装置ドライバ１５４ｂ，１５４ｃは、第２の実施の形態のＯＳ１５１，１５１ａ、アダプタドライバ１５２，１５２ａおよび接続先装置ドライバ１５４，１５４ａに対応する。
【０１６１】
仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃは、第２の実施の形態の仮想アダプタ１６０，１６０ａ，１６０ｂ，１６０ｃに対応する。
このような構成によっても、第２の実施の形態と同一の処理を行える。その際、第２の実施の形態において冗長パス制御部１５３，１５３ａに対して行われた処理は、制御部１４１ａに対して行われる。また、第２の実施の形態において冗長パス制御部１５３，１５３ａが実行した処理は、制御部１４１ａが実行する。
【０１６２】
例えば、図１２で示した第２の実施の形態の障害検知時の全体処理のシーケンス図のステップＳＴ１０１では、制御部１４１ａは、アダプタドライバ１５２ｂ，１５２ｃからの通知で、仮想アダプタの故障の有無を判断できる。また、制御部１４１ａは、アダプタドライバ１５２ｂ，１５２ｃと通信し、仮想マシン１５０ｂ，１５０ｃのＩＯ要求状況を監視する。制御部１４１ａは、接続先装置ドライバ１５４ｂ,１５４ｃと通信して、ＩＯ要求状況を監視してもよい。これにより、制御部１４１ａは、ある仮想アダプタにつきＩＯ要求状況を判断でき、アダプタ切り換え完了状態を判断できる。具体的には、制御部１４１ａは、仮想マシン１５０ｃが仮想アダプタ１６０ａによりストレージ装置３００にアクセス中に、仮想アダプタ１６０ａが待機状態としないよう制御する。
【０１６３】
また、例えば、図１２のステップＳＴ１０３の処理は、制御部１４１ａが管理情報記憶部１３０に記憶された接続構成管理テーブル１３１を参照することで確認する。このため、仮想マシンへの問い合わせによる処理負荷が軽減される。また、ステップＳＴ１０７の仮想アダプタの切り換え処理は、制御部１４１ａが行う。
【０１６４】
これにより、第２の実施の形態と同様の効果を得ることができる。特に、制御部１４１ａが切り換え処理を一括して行うので、仮想マシンごとに生じるアダプタ確認の問い合わせや、切り換え指示などの通信を省ける。このため、高速に切り換え処理を行える。
【０１６５】
［第４の実施の形態］
次に、第４の実施の形態を説明する。前述の第２，第３の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０１６６】
第２，第３の実施の形態では、物理アダプタおよび仮想アダプタの接続構成を管理する制御部の機能をハイパーバイザに設けた。一方、当該制御部を他の装置に設けてもよい。第４の実施の形態では、管理端末装置４００が制御部を備える例を示す。
【０１６７】
ここで、第４の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第４の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第４の実施の形態では、サーバ装置、ＦＣスイッチ装置、ストレージ装置を第２の実施の形態と同一の符号により指し示す。
【０１６８】
図１９は、第４の実施の形態の管理端末装置の機能を示すブロック図である。管理端末装置４００は、管理情報記憶部４１０および制御部４２０を有する。これらの各機能は、管理端末装置４００上のＣＰＵが、管理端末装置４００上のメモリに格納された所定のプログラムを実行することにより、管理端末装置４００上に実現される。ただし、制御部４２０を専用のハードウェアにより実現してもよい。
【０１６９】
管理情報記憶部４１０は、第２の実施の形態の管理情報記憶部１３０に対応する。管理情報記憶部４１０は、管理情報を記憶する。管理情報は、図９，１０で説明した接続構成管理テーブルおよび冗長グループ管理テーブルを含む。
【０１７０】
制御部４２０は、第２の実施の形態の制御部１４１に対応する。すなわち、第２の実施の形態の制御部１４１の機能を制御部４２０が担う。具体的には、制御部４２０は、ハイパーバイザ１４０から、何れかの仮想マシンでＦＣインタフェースを介した通信で障害が発生した旨の通知を受ける。すると、制御部４２０は、管理情報記憶部４１０を参照して、当該ＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部４２０は、特定した他の仮想マシンの他のＦＣインタフェースへの割り当てをハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、制御部４２０の指示により、当該他の仮想マシンを他のＦＣインタフェースに割り当てる。
【０１７１】
次に、以上の構成の管理端末装置４００の処理を説明する。
図２０は、第４の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図２０に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１３１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介して、ストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０１７２】
（ステップＳＴ１３１）仮想マシン１５０は、ハイパーバイザ１４０を介して制御部４２０に、仮想アダプタ１６０の故障を通知する。ここで、以下の説明では、仮想マシン１５０，１５０ａと制御部４２０の間の通信は当該ステップＳＴ１３１と同様にハイパーバイザ１４０を介して行われるものとする。
【０１７３】
（ステップＳＴ１３２）制御部４２０は、管理情報記憶部４１０に記憶された接続構成管理テーブルを参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０１７４】
（ステップＳＴ１３３）制御部４２０は、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨を制御部４２０に応答する。その後、制御部４２０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、制御部４２０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。
【０１７５】
（ステップＳＴ１３４）制御部４２０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。制御部４２０は、管理情報記憶部４１０に記憶された冗長グループ管理テーブルに仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０１７６】
（ステップＳＴ１３５）制御部４２０は、ＦＣスイッチ装置２００のゾーン情報の追加をハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。なお、制御部４２０からＦＣスイッチ装置２００に対してゾーンの設定を直接行ってもよい。例えば、管理端末装置４００とＦＣスイッチ装置２００のＳＶＰ２０３を接続すれば、制御部４２０からＦＣスイッチ装置２００へ直接指示を送れる。
【０１７７】
（ステップＳＴ１３６）制御部４２０は、冗長グループ管理テーブルを参照して、仮想アダプタ１６０，１６０ａによるＩＯ要求状態が“停止”となったことを確認する。仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１７８】
（ステップＳＴ１３７）制御部４２０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０１７９】
（ステップＳＴ１３８）制御部４２０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。制御部４２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の停止を指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０１８０】
（ステップＳＴ１３９）制御部４２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の切り離しを指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０１８１】
このようにして、制御部４２０は、仮想マシン１５０が仮想アダプタ１６０で故障を検知した場合に、ＦＣインタフェース１０６を共用する仮想マシン１５０ａの仮想アダプタの切り換えを制御する。ここで、ステップＳＴ１３７では、制御部４２０は仮想アダプタ１６０，１６０ａのうち、ＩＯ要求状態が“停止”になった方から順にアダプタの切り換えを指示できる。
【０１８２】
これにより、第２の実施の形態と同様の効果を得ることができる。また、管理端末装置４００でアダプタ切り換えの制御を行えば、サーバ装置１００以外の装置（例えば、ＦＣスイッチ装置２００やストレージ装置３００など）を含めた統合的な運用管理を、管理端末装置４００上で行える。すなわち、管理者は、仮想マシンと接続先装置との間の接続構成や冗長グループの割当状況などを管理端末装置４００で管理可能となる。このため、情報処理システム全体の運用管理を効率化できる。
【０１８３】
［第５の実施の形態］
次に、第５の実施の形態を説明する。前述の第２〜第４の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０１８４】
第４の実施の形態では、管理端末装置４００に制御部４２０を設ける例を示した。一方、制御部４２０の機能をＦＣスイッチ装置２００に設けてもよい。第５の実施の形態では、ＦＣスイッチ装置２００が制御部を備える例を示す。
【０１８５】
ここで、第５の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第５の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第５の実施の形態では、サーバ装置、ＦＣスイッチ装置、ストレージ装置を第２の実施の形態と同一の符号により指し示す。
【０１８６】
図２１は、第５の実施の形態のＦＣスイッチ装置の機能を示すブロック図である。ＦＣスイッチ装置２００は、管理情報記憶部２１０および制御部２２０を有する。これらの各機能は、ＳＶＰ２０３がＳＶＰ２０３上のメモリまたはメモリ２０２に格納された所定のプログラムを実行することにより、ＦＣスイッチ装置２００上に実現される。ただし、制御部２２０を専用のハードウェアにより実現してもよい。
【０１８７】
管理情報記憶部２１０は、第２の実施の形態の管理情報記憶部１３０に対応する。管理情報記憶部２１０は、管理情報を記憶する。管理情報は、図９，１０で説明した接続構成管理テーブルおよび冗長グループ管理テーブルを含む。
【０１８８】
制御部２２０は、第２の実施の形態の制御部１４１に対応する。すなわち、第２の実施の形態の制御部１４１の機能を制御部２２０が担う。具体的には、制御部２２０は、ハイパーバイザ１４０から、何れかの仮想マシンでＦＣインタフェースを介した通信に障害が発生した旨の通知を受ける。すると、制御部２２０は、管理情報記憶部２１０を参照して、当該ＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部２２０は、特定した他の仮想マシンの他のＦＣインタフェースへの割り当てをハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、制御部２２０の指示により、当該他の仮想マシンを他のＦＣインタフェースに割り当てる。
【０１８９】
次に、以上の構成のＦＣスイッチ装置２００の処理を説明する。
図２２は、第５の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図２２に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１４１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介して、ストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０１９０】
（ステップＳＴ１４１）仮想マシン１５０は、ハイパーバイザ１４０を介して制御部２２０に、仮想アダプタ１６０の故障を通知する。ここで、以下の説明では、仮想マシン１５０，１５０ａと制御部２２０の間の通信は当該ステップＳＴ１４１と同様にハイパーバイザ１４０を介して行われるものとする。
【０１９１】
（ステップＳＴ１４２）制御部２２０は、管理情報記憶部２１０に記憶された接続構成管理テーブルを参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０１９２】
（ステップＳＴ１４３）制御部２２０は、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨を制御部２２０に応答する。その後、制御部２２０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、制御部２２０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。
【０１９３】
（ステップＳＴ１４４）制御部２２０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。制御部２２０は、管理情報記憶部２１０に記憶された冗長グループ管理テーブルに仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０１９４】
（ステップＳＴ１４５）制御部２２０は、仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。
【０１９５】
（ステップＳＴ１４６）制御部２２０は、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０１９６】
（ステップＳＴ１４７）制御部２２０は、冗長グループ管理テーブルを参照して、仮想アダプタ１６０，１６０ａによるＩＯ要求状態が“停止”となったことを確認する。制御部２２０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０１９７】
（ステップＳＴ１４８）制御部２２０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。制御部２２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の停止を指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０１９８】
（ステップＳＴ１４９）制御部２２０は、ハイパーバイザ１４０にＦＣインタフェース１０６の切り離しを指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０１９９】
このようにして、制御部２２０は、仮想マシン１５０が仮想アダプタ１６０で故障を検知した場合に、ＦＣインタフェース１０６を共用する仮想マシン１５０ａの仮想アダプタの切り換えを制御する。ここで、ステップＳＴ１４７では、制御部２２０は仮想アダプタ１６０，１６０ａのうち、ＩＯ要求状態が“停止”になった方から順にアダプタの切り換えを指示できる。
【０２００】
これにより、第２の実施の形態と同様の効果を得ることができる。また、ＦＣスイッチ装置２００でアダプタ切り換えの制御とゾーンの設定をまとめて行うことで、サーバ装置１００の構成の変化に柔軟に対応できる。
【０２０１】
［第６の実施の形態］
次に、第６の実施の形態を説明する。前述の第２〜第５の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０２０２】
第６の実施の形態では、ストレージ装置３００が制御部を備える例を示す。
ここで、第６の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。また、第６の実施の形態のサーバ装置、ＦＣスイッチ装置、ストレージ装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第６の実施の形態では、サーバ装置、ＦＣスイッチ装置、ストレージ装置を第２の実施の形態と同一の符号により指し示す。ここで、サーバ装置１００とストレージ装置３００上のＳＶＰ３０４は、専用の管理ＬＡＮで接続される。
【０２０３】
図２３は、第６の実施の形態のストレージ装置の機能を示すブロック図である。ストレージ装置３００は、管理情報記憶部３６０および制御部３７０を有する。これらの各機能は、ＳＶＰ３０４がＳＶＰ３０４上のメモリに格納された所定のプログラムを実行することにより、ストレージ装置３００上に実現される。ただし、制御部３７０を専用のハードウェアにより実現してもよい。
【０２０４】
管理情報記憶部３６０は、第２の実施の形態の管理情報記憶部１３０に対応する。管理情報記憶部３６０は、管理情報を記憶する。管理情報は、図９，１０で説明した接続構成管理テーブルおよび冗長グループ管理テーブルを含む。
【０２０５】
制御部３７０は、第２の実施の形態の制御部１４１に対応する。すなわち、第２の実施の形態の制御部１４１の機能を制御部３７０が担う。具体的には、制御部３７０は、何れかの仮想マシンでタイムアウトなどのアクセス異常を検知すると、当該仮想マシンに対応する仮想アダプタで故障が発生した旨を検知する。すると、制御部３７０は、管理情報記憶部３６０を参照して、当該仮想マシンに対応するＦＣインタフェースを用いて通信する他の仮想マシンを特定する。制御部３７０は、特定した他の仮想マシンの他のＦＣインタフェースへの割り当てをハイパーバイザ１４０に指示する。ハイパーバイザ１４０は、制御部３７０の指示により、当該他の仮想マシンを他のＦＣインタフェースに割り当てる。
【０２０６】
次に、以上の構成のストレージ装置３００の処理を説明する。
図２４は、第６の実施の形態の障害検知時の全体処理を示すシーケンス図である。以下、図２４に示す処理をステップ番号に沿って説明する。なお、以下に示すステップＳＴ１５１の直前では、仮想マシン１５０は仮想アダプタ１６０を介して、仮想マシン１５０ａは仮想アダプタ１６０ａを介して、ストレージ装置３００にアクセスしているとする。また、ＦＣインタフェース１０６ａは、サーバ装置１００に未設置であるとする。
【０２０７】
（ステップＳＴ１５１）制御部３７０は、仮想マシン１５０からのアクセスにつき、タイムアウトなどによるアクセス異常を検知する。制御部３７０は、管理情報記憶部３６０に記憶された接続構成管理テーブルを参照して、仮想マシン１５０に対応する仮想アダプタ１６０を特定する。そして、制御部３７０は、仮想アダプタ１６０の故障を検知する。
【０２０８】
（ステップＳＴ１５２）制御部３７０は、接続構成管理テーブルを参照して、仮想アダプタ１６０とＦＣインタフェース１０６を共用する仮想アダプタ１６０ａを確認する。また、当該仮想アダプタ１６０ａに対して仮想マシン１５０ａが対応付けられていることを確認する。
【０２０９】
（ステップＳＴ１５３）制御部３７０は、ハイパーバイザ１４０を介して、仮想マシン１５０ａに、退避先アダプタがあるかを問い合わせる。仮想マシン１５０ａは、退避先アダプタがない旨を制御部３７０に応答する。その後、制御部３７０は、管理者に対してＦＣインタフェース１０６ａをサーバ装置１００に新たに設けるよう通知する。管理者は当該通知に応じて、ＦＣインタフェース１０６ａをサーバ装置１００に設置する。なお、ここでは、仮想マシン１５０も退避先アダプタが存在しない。このため、故障検知後から追加されたＦＣインタフェース１０６ａが利用可能になるまで、制御部３７０は、冗長パス制御部１５３による仮想アダプタの切り換え処理を留保させる。ここで、以下の説明では、仮想マシン１５０，１５０ａと制御部３７０の間の通信は当該ステップＳＴ１５３と同様にハイパーバイザ１４０を介して行われるものとする。
【０２１０】
（ステップＳＴ１５４）制御部３７０は、ＦＣインタフェース１０６ａ上の仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールの組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じて、仮想アダプタ１６０ｂ，１６０ｃのドライバモジュールを組み込む。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを利用可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを利用可能となる。制御部３７０は、管理情報記憶部３６０に記憶された冗長グループ管理テーブルに仮想アダプタ１６０，１６０ｂを冗長グループのペアとして登録する。同様に、仮想アダプタ１６０ａ，１６０ｃを冗長グループのペアとして登録する。
【０２１１】
（ステップＳＴ１５５）制御部３７０は、仮想アダプタ１６０ｂ，１６０ｃに対応するポート情報をＦＣスイッチ装置２００のゾーン情報に追加する。これにより、仮想アダプタ１６０ｂ，１６０ｃからＦＣスイッチ装置２００の当該ゾーンを介した通信が可能となる。
【０２１２】
（ステップＳＴ１５６）制御部３７０は、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の組み込みを仮想マシン１５０，１５０ａに指示する。仮想マシン１５０，１５０ａは、当該指示に応じてストレージ装置３００と通信し、仮想アダプタ１６０ｂ，１６０ｃを介したストレージ装置３００の利用を可能な状態とする。これにより、仮想マシン１５０は、仮想アダプタ１６０ｂを介してストレージ装置３００へアクセス可能となる。仮想マシン１５０ａは、仮想アダプタ１６０ｃを介してストレージ装置３００へアクセス可能となる。
【０２１３】
（ステップＳＴ１５７）制御部３７０は、冗長グループ管理テーブルを参照して、仮想アダプタ１６０，１６０ａによるＩＯ要求状態が“停止”となったことを確認する。制御部３７０は、仮想マシン１５０，１５０ａに仮想アダプタの切り換えを指示する。当該指示に応じて、仮想マシン１５０は、仮想アダプタ１６０から仮想アダプタ１６０ｂへの切り換えを行う。また、仮想マシン１５０ａは、仮想アダプタ１６０ａから仮想アダプタ１６０ｃへの切り換えを行う。
【０２１４】
（ステップＳＴ１５８）制御部３７０は、ＦＣインタフェース１０６を共用する全ての仮想マシンが他のＦＣインタフェースに移管済であり、ＦＣインタフェース１０６上の全ての仮想アダプタで通信が停止されたことを確認する。制御部３７０は、ハイパーバイザ１４０にＦＣインタフェース１０６の停止を指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６を閉塞させて電源ＯＦＦし、停止させる。
【０２１５】
（ステップＳＴ１５９）制御部３７０は、ハイパーバイザ１４０にＦＣインタフェース１０６の切り離しを指示する。ハイパーバイザ１４０は、ＦＣインタフェース１０６をサーバ装置１００から切り離す。ＦＣインタフェース１０６は、サーバ装置１００から取り外し可能な状態となる。
【０２１６】
このようにして、制御部３７０は、仮想マシン１５０が仮想アダプタ１６０で故障を検知した場合に、ＦＣインタフェース１０６を共用する仮想マシン１５０ａの仮想アダプタの切り換えを制御する。ここで、ステップＳＴ１５７では、制御部３７０は仮想アダプタ１６０，１６０ａのうち、ＩＯ要求状態が“停止”になった方から順にアダプタの切り換えを指示できる。
【０２１７】
これにより、第２の実施の形態と同様の効果を得ることができる。また、ストレージ装置３００の判断で仮想アダプタの故障を検知し、アダプタ切り換えの制御を行うことで、切り換え処理を高速に行うことができる。
【０２１８】
［第７の実施の形態］
次に、第７の実施の形態を説明する。前述の第２〜第６の実施の形態との相違点を主に説明し、同様の事項は説明を省略する。
【０２１９】
第２〜第６の実施の形態では、サーバ装置１００が物理アダプタとしてＦＣインタフェース１０６，１０６ａを備える例を示した。一方で、他の種類の物理アダプタについても制御部１４１の機能を利用できる。その一例として、第７の実施の形態では、ＦＣｏＥ（FC Over Ethernet、Ethernetは登録商標）インタフェースを備えるサーバ装置に制御部１４１の機能を適用する場合を示す。
【０２２０】
ここで、第７の実施の形態の情報処理システムの全体構成は、図２で説明した第２の実施の形態の情報処理システムの全体構成と同様であるため説明を省略する。ただし、第７の実施の形態の情報処理システムでは、サーバ装置１００に代えてサーバ装置１００ｂを、ＦＣスイッチ装置２００に代えてＦＣｏＥスイッチ装置２００ａを含む。更に、ＦＣｏＥスイッチ装置２００ａは、ネットワーク２０に接続される。ＦＣｏＥスイッチ装置２００ａは、ＣＥＥ（Converged Enhanced Ethernet）スイッチ装置を用いてもよい。
【０２２１】
また、第７の実施の形態のサーバ装置１００ｂ、ＦＣｏＥスイッチ装置２００ａ、ストレージ装置のハードウェア例は、図３〜５で説明した通りであるため説明を省略する。第７の実施の形態では、ストレージ装置を第２の実施の形態と同一の符号により指し示す。ここで、サーバ装置１００ｂは、ＦＣインタフェース１０６，１０６ａに代えて、ＦＣｏＥインタフェース１０６ｂ，１０６ｃを有する。
【０２２２】
ここで、ＦＣｏＥは、イーサネット（登録商標）上でＦＣのデータを伝送するための技術である。ＦＣｏＥでは、ＦＣのデータをイーサネットフレームにカプセル化して伝送できる。ＦＣｏＥスイッチ装置２００ａは、ストレージ装置３００との間ではＦＣによる通信を行う。ストレージ装置３００が、ＦＣｏＥによる接続であれば、ＦＣｏＥによる通信でもよい。ＦＣｏＥスイッチ装置２００ａは、ネットワーク２０との間ではイーサネットによる通信を行う。ＦＣｏＥインタフェース１０６ｂ，１０６ｃは、ＨＢＡの一例である。
【０２２３】
図２５は、第７の実施の形態のサーバ装置の機能を示すブロック図である。サーバ装置１００ｂは、管理情報記憶部１３０、ハイパーバイザ１４０、仮想マシン１５０ｄ，１５０ｅ、ＦＣ仮想アダプタ１６０ｄ，１６０ｅ，１６０ｆ，１６０ｇおよびＮＩＣ仮想アダプタ１７０，１７０ａ，１７０ｂ，１７０ｃを有する。
【０２２４】
管理情報記憶部１３０、ハイパーバイザ１４０および仮想マシン１５０ｄ，１５０ｅの機能は、ＣＰＵ１１１が所定のプログラムを実行することによりサーバ装置１００ｂ上に実現される。また、ＦＣ仮想アダプタ１６０ｄ，１６０ｅおよびＮＩＣ仮想アダプタ１７０，１７０ａの機能は、ＦＣｏＥインタフェース１０６ｂ上の制御装置が所定のプログラムを実行することにより、ＦＣｏＥインタフェース１０６ｂ上に実現される。更に、ＦＣ仮想アダプタ１６０ｆ，１６０ｇおよびＮＩＣ仮想アダプタ１７０ｂ，１７０ｃの機能は、ＦＣｏＥインタフェース１０６ｃ上の制御装置が所定のプログラムを実行することにより、ＦＣｏＥインタフェース１０６ｃ上に実現される。ただし、これらのユニットの全部または一部を専用のハードウェアにより実現してもよい。
【０２２５】
管理情報記憶部１３０は、第２の実施の形態の管理情報記憶部１３０に対応する。ハイパーバイザ１４０は、第２の実施の形態のハイパーバイザ１４０に対応する。
仮想マシン１５０ｄ，１５０ｅは、第２の実施の形態の仮想マシン１５０，１５０ａに対応する。仮想マシン１５０ｄは、ＯＳ１５１、アダプタドライバ１５２，１５２ｄ、冗長パス制御部１５３，１５３ｄおよび接続先装置ドライバ１５４を有する。
【０２２６】
ＯＳ１５１および接続先装置ドライバ１５４は、第２の実施の形態のＯＳ１５１および接続先装置ドライバ１５４に対応する。
アダプタドライバ１５２は、ＯＳ１５１上からＦＣ仮想アダプタを利用するためのソフトウェアである。アダプタドライバ１５２ｄは、ＯＳ１５１上からＮＩＣ仮想アダプタを利用するためのソフトウェアである。
【０２２７】
冗長パス制御部１５３は、ＦＣ仮想アダプタを冗長化して、仮想マシン１５０ｄにおけるＦＣ通信路の信頼性を向上するソフトウェアである。冗長パス制御部１５３ｄは、ＮＩＣ仮想アダプタを冗長化して、仮想マシン１５０ｄにおけるイーサネット通信路の信頼性を向上するソフトウェアである。
【０２２８】
仮想マシン１５０ｅは、ＯＳ１５１ａ、アダプタドライバ１５２ａ，１５２ｅ、冗長パス制御部１５３ａ，１５３ｅおよび接続先装置ドライバ１５４ａを有する。
ＯＳ１５１ａおよび接続先装置ドライバ１５４ａは、第２の実施の形態のＯＳ１５１ａおよび接続先装置ドライバ１５４ａに対応する。
【０２２９】
アダプタドライバ１５２ａ，１５２ｅは、アダプタドライバ１５２，１５２ｄに対応する。冗長パス制御部１５３ａ，１５３ｅは、冗長パス制御部１５３，１５３ｄに対応する。
【０２３０】
ＦＣ仮想アダプタ１６０ｄ，１６０ｅ，１６０ｆ，１６０ｇは、ＦＣｏＥインタフェース１０６ｂ，１０６ｃ上のリソースにより実現された仮想的なＦＣ用のアダプタである（アクセス部の一例である）。仮想マシン１５０ｄ，１５０ｅは、ＦＣ仮想アダプタ１６０ｄ，１６０ｅ，１６０ｆ，１６０ｇを利用して、ストレージ装置３００とＦＣによるデータ通信を行える。
【０２３１】
ＮＩＣ仮想アダプタ１７０，１７０ａ，１７０ｂ，１７０ｃは、ＦＣｏＥインタフェース１０６ｂ，１０６ｃ上のリソースにより実現された仮想的なＮＩＣ用のアダプタである（アクセス部の一例である）。仮想マシン１５０ｄ，１５０ｅは、ＮＩＣ仮想アダプタ１７０，１７０ａ，１７０ｂ，１７０ｃを利用して、ネットワーク２０に接続された情報処理装置とイーサネットによるデータ通信を行える。
【０２３２】
ＦＣｏＥインタフェース１０６ｂ上のＦＣ仮想アダプタ１６０ｄ，１６０ｅおよびＮＩＣ仮想アダプタ１７０，１７０ａは、単一の物理ポートで実現される（仮想ポート４つ）。なお、例えば、ＦＣ仮想アダプタ１６０ｄ，１６０ｅで１つの物理ポート（仮想ポート２つ）、ＮＩＣ仮想アダプタ１７０，１７０ａで１つの物理ポート（仮想ポート２つ）、というように２つの物理ポートで実現してもよい。このような構成によっても、制御部１４１は第２の実施の形態と同一の処理を行える。具体的には次の通りである。
【０２３３】
例えば、管理情報記憶部１３０に記憶された接続構成管理テーブル１３１で、仮想マシン１５０ｄにＦＣ仮想アダプタ１６０ｄおよびＮＩＣ仮想アダプタ１７０が割り当てられる。同様に、仮想マシン１５０ｅにＦＣ仮想アダプタ１６０ｅおよびＮＩＣ仮想アダプタ１７０ａが割り当てられる。
【０２３４】
また、管理情報記憶部１３０に記憶された冗長グループ管理テーブル１３２では、ＦＣ仮想アダプタ１６０ｄとＦＣ仮想アダプタ１６０ｆとが冗長グループのペアとして設定される。ＦＣ仮想アダプタ１６０ｅとＦＣ仮想アダプタ１６０ｇとが冗長グループのペアとして設定される。ＮＩＣ仮想アダプタ１７０とＮＩＣ仮想アダプタ１７０ｂとが冗長グループのペアとして設定される。ＮＩＣ仮想アダプタ１７０ａとＮＩＣ仮想アダプタ１７０ｃとが冗長グループのペアとして設定される。
【０２３５】
そして、制御部１４１が仮想マシン１５０ｄの冗長パス制御部１５３からＦＣ仮想アダプタ１６０ｄの故障の通知を受けたとする。すると、制御部１４１は、接続構成管理テーブル１３１を参照して、ＦＣｏＥインタフェース１０６ｂを仮想マシン１５０ｄと共用する仮想マシン１５０ｅを特定する。制御部１４１は、仮想マシン１５０ｄにつき、ＦＣ仮想アダプタ１６０ｆおよびＮＩＣ仮想アダプタ１７０ｂを割り当てる。制御部１４１は、仮想マシン１５０ｅにつき、ＦＣ仮想アダプタ１６０ｇおよびＮＩＣ仮想アダプタ１７０ｃを割り当てる。制御部１４１は、仮想マシン１５０ｄ，１５０ｅに当該割り当てに基づくアダプタ切り換えを指示する。
【０２３６】
なお、切り換えの際、制御部１４１は、第２〜第６の実施の形態と同様に、アダプタドライバ１５２，１５２ａ，１５２ｄ，１５２ｅおよび冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅに対してドライバモジュールおよび接続先装置の組み込みを事前に行う。
【０２３７】
冗長パス制御部１５３ｄは、アダプタ切り換えの指示を受けると、ＮＩＣ仮想アダプタ１７０からＮＩＣ仮想アダプタ１７０ｂへＮＩＣ仮想アダプタを切り換える。
また、冗長パス制御部１５３ａは、アダプタ切り換えの指示を受けると、ＦＣ仮想アダプタ１６０ｅからＦＣ仮想アダプタ１６０ｇへＦＣ仮想アダプタを切り換える。更に、冗長パス制御部１５３ｅは、ＮＩＣ仮想アダプタ１７０ａからＮＩＣ仮想アダプタ１７０ｃへＮＩＣ仮想アダプタを切り換える。
【０２３８】
これにより、第２の実施の形態と同様の効果を得ることができる。特に、同一物理アダプタに異なるインタフェースをもつ仮想アダプタに対して切り換え制御を行える。ＦＣ仮想アダプタ１６０ｄの故障の通知を受けた際に、仮想マシン１５０ｄに対してＮＩＣ仮想アダプタ１７０の切り換えを指示する。このため、冗長パス制御部１５３ｄでＮＩＣ仮想アダプタ１７０の故障が検知されない場合でも、冗長パス制御部１５３ｄは当該指示に応じてＮＩＣ仮想アダプタ１７０ｂへの切り換えを行える。
【０２３９】
なお、制御部１４１が冗長パス制御部１５３ｄからＮＩＣ仮想アダプタ１７０の故障の通知を受けた場合も、制御部１４１は同様にして、仮想マシン１５０ｄ，１５０ｅのアダプタの切り換えを制御する。
【０２４０】
ここで、冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅは、第２の実施の形態と同様に、仮想アダプタの切り換え前後で仮想マシン１５０ｄ，１５０ｅがストレージ装置３００にアクセス可能であることを確認した後に、各仮想アダプタの切り換えを行う。また、冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅは、仮想マシン１５０ｄ，１５０ｅが各仮想アダプタによりストレージ装置３００にアクセス中でないタイミングで、各仮想アダプタの切り換えを行う。
【０２４１】
更に、第３の実施の形態と同様に、冗長パス制御部１５３，１５３ａ，１５３ｄ，１５３ｅの機能を制御部１４１が備えてもよい。また、ＦＣ仮想アダプタおよびＮＩＣ仮想アダプタのように異なる種類のプロトコルで通信する仮想アダプタを示したが、同一のプロトコルでもよい。
【０２４２】
また、第２〜第７の実施の形態では、ＦＣインタフェースやＦＣｏＥインタフェースを用いる場合を例示したが、それ以外の物理アダプタを用いても同様である。例えば、制御部１４１は、ＮＩＣインタフェースやＳＡＳインタフェース、Ｉｎｆｉｎｉｂａｎｄインタフェース、ＰＣＩ  Ｅｘｐｒｅｓｓインタフェースに対しても、同様にしてアダプタ切り換えの制御を行える。
【０２４３】
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０２４４】
１  情報処理装置
１ａ，１ｂ  仮想マシン
１ｃ，１ｄ  インタフェース部
１ｅ  記憶部
１ｆ  制御部
２  デバイス
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置であって、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶部と、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生すると、前記記憶部を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記情報処理装置に搭載した第２のインタフェース部に切り換える制御部と、
を有する情報処理装置。
【請求項２】
前記第１のインタフェース部は、複数のリソースを含み、
前記複数のリソースのうち第１のリソースが前記第１の仮想マシンに割り当てられ、第２のリソースが前記第２の仮想マシンに割り当てられており、
前記制御部は、前記第１の仮想マシンにおいて前記第１のリソースを用いたアクセスにエラーが発生すると、前記第２のリソースを用いたアクセスにエラーが発生していなくても、前記第２の仮想マシンが用いるインタフェース部を切り換える、
請求項１記載の情報処理装置。
【請求項３】
前記制御部は、前記第２の仮想マシンが前記デバイスにアクセス中でないタイミングで前記第２のインタフェース部への切り換えが行われるよう制御する、請求項１または２記載の情報処理装置。
【請求項４】
前記制御部は、前記第１のインタフェース部を用いてアクセス可能であったデバイスに前記第２のインタフェース部を用いてアクセス可能であることが確認されてから、前記第２のインタフェース部への切り換えが行われるよう制御する、請求項１乃至３の何れか一項に記載の情報処理装置。
【請求項５】
前記制御部は、前記第１の仮想マシンからの通知に基づいて、前記第１の仮想マシンにおいて前記第１のインタフェース部を用いたアクセスにエラーが発生したことを検知する、請求項１乃至４の何れか一項に記載の情報処理装置。
【請求項６】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な他の情報処理装置と通信する情報処理装置であって、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶部と、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生すると、前記記憶部を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記他の情報処理装置に搭載した第２のインタフェース部に切り換える制御部と、
を有する情報処理装置。
【請求項７】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能な情報処理装置、または、前記情報処理装置と通信する他の情報処理装置が実行する仮想マシン制御方法であって、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知し、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、
前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記情報処理装置に搭載した第２のインタフェース部に切り換える、
仮想マシン制御方法。
【請求項８】
複数の仮想マシンが動作可能であり前記複数の仮想マシンからデバイスへのアクセスに用いられる複数のインタフェース部を搭載可能なコンピュータを制御するためのプログラムであって、前記コンピュータまたは前記コンピュータと通信する他のコンピュータに、
第１の仮想マシンにおいて第１のインタフェース部を用いたアクセスにエラーが発生したことを検知し、
前記複数のインタフェース部のうち前記複数の仮想マシンそれぞれがアクセスに用いるインタフェース部を示す情報を記憶する記憶装置を参照して、前記第１のインタフェース部を用いる第２の仮想マシンを判定し、
前記第２の仮想マシンが用いるインタフェース部を、前記第１のインタフェース部から前記コンピュータに搭載した第２のインタフェース部に切り換える、
処理を実行させるプログラム。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2012176278.tif 000028
【国際調査報告】
2012176278.tif 000029
2012176278.tif 000030