(57)【要約】 【課題】仮想化環境において、物理資源の障害をアプリケーション（プロセス）に隠蔽しつつ、高速フェールオーバーを行うことが困難である。【解決手段】 システム内の物理資源の集合であるハードウェア空間６１００と、ソフトウェアプログラムの集合であるソフトウェア空間６５００からなり、ハードウェア空間にはひとつ以上の中央演算部６１２１とその他の物理資源がデータ転送路６１３１によって接続されており、また物理資源の一部もしくは全部には死活確認部を有し、ソフトウェア空間は仮想化手段６５５０と、少なくともひとつ以上の仮想資源空間６５２０およびその上で動作する仮想装置６５１０を有し、仮想化手段は、資源割当手段６５５１、障害管理手段６５５２、資源アクセス手段６５５４を有する。このような構成を採用し、障害管理手段がハードウェアによる障害管理とソフトウェアによる障害管理間の連携をとり、資源割当手段を制御する。【選択図】図１
2008107896.tif 000002
【特許請求の範囲】
【請求項１】
複数の物理資源と、
少なくとも一つのソフトウェアプログラムが動作する仮想装置、および前記仮想装置で前記複数の物理資源を共有することを可能とする仮想化手段、として機能するソフトウェアを搭載するコンピュータ構成部と、を備え、
前記仮想化手段は、前記複数の物理資源の前記仮想装置への割り当てを行う資源割当手段と、前記複数の物理資源の一つ又は複数で障害が発生し、ハードウェアによる他の物理資源への切り替え制御が実行された場合に、該切り替え制御と連携して、前記資源割当手段でのソフトウェアによる前記他の物理資源への切り替えを制御する障害管理手段とを有することを特徴とする物理資源制御管理システム。
【請求項２】
請求項１に記載の物理資源制御管理システムにおいて、前記複数の物理資源の二以上又は全部は死活確認部を有し、
前記死活確認部を有する物理資源は、該死活確認部により他の物理資源の障害を検出した場合にあらかじめ設定された動作による状態変更を行い、前記障害管理手段に通知することを特徴とする物理資源制御管理システム。
【請求項３】
請求項１に記載の物理資源制御管理システムにおいて、前記障害管理手段は、障害発生時に行うべき動作の情報を格納する情報格納手段と、他の物理資源への切り替えを行うべき契機信号により、前記情報格納手段の情報に基づき前記資源割当手段を制御し、障害回復処理を行う処理管理手段とを有することを特徴とする物理資源制御管理システム。
【請求項４】
請求項３に記載の物理資源制御管理システムにおいて、前記情報格納手段は、障害発生時に行うべき動作と、前記契機信号から判別する識別情報とを対応づけた一覧テーブルを有することを特徴とする物理資源制御管理システム。
【請求項５】
請求項３に記載の物理資源制御管理システムにおいて、前記複数の物理資源の二以上又は全部は死活確認部を有し、
前記死活確認部を有する物理資源は、該死活確認部により他の物理資源の障害を検出した場合にあらかじめ設定された動作による状態変更を行い、前記契機信号は状態変更を行った物理資源により通知された信号であることを特徴とする物理資源制御管理システム。
【請求項６】
請求項１から５のいずれか１項に記載の物理資源制御管理システムにおいて、前記複数の物理資源の少なくとも１つの物理資源は、他の物理資源と比べて、物理資源の信頼性、帯域、遅延のいずれかを含む性能、物理資源の種類、死活確認機能の有無、および障害リスクのいずれかが異なることを特徴とする物理資源制御管理システム。
【請求項７】
請求項１に記載の物理資源制御管理システムにおいて、前記障害管理手段は、システム内の物理資源の信頼性、帯域、遅延のいずれかを含む性能、物理資源識別情報、物理資源の種類、死活確認機能の有無、および障害リスクの少なくともいずれかの物理資源情報を管理する物理資源管理手段を有することを特徴とする物理資源制御管理システム。
【請求項８】
請求項７に記載の物理資源制御管理システムにおいて、前記障害管理手段は、前記物理資源管理手段から取得する物理資源情報と、管理者から入力される仮想装置毎に設定された資源の冗長構成、可用性レベルに関する情報を少なくとも１つ含む構成設定情報と、仮想装置に対するプライオリティ情報に関する管理ポリシーとから、前記仮想装置の資源に対して物理資源割当計算を行い、前記資源割当手段の設定制御を行う設定管理手段を有することを特徴とする物理資源制御管理システム。
【請求項９】
請求項８に記載の物理資源制御管理システムにおいて、前記物理資源管理手段は障害リスクの情報として、故障確率を有し、前記設定管理手段は、当該故障確率を考慮に入れて前記資源割当手段の設定制御を行うことを特徴とする物理資源制御管理システム。
【請求項１０】
請求項１に記載の物理資源制御管理システムにおいて、前記障害管理手段は、物理資源に搭載されたハードウェア監視手段によって測定された統計値をメトリックに前記資源割当手段の設定制御を行うことを特徴とする物理資源制御管理システム。
【請求項１１】
請求項１０に記載の物理資源制御管理システムにおいて、前記統計値は、帯域、遅延、ビットエラー率の少なくとも１つの動的な性能の測定値であることを特徴とする物理資源制御管理システム。
【請求項１２】
請求項７に記載の物理資源制御管理システムにおいて、前記複数の物理資源はそれぞれネットワークを通じてグループ化された物理資源に接続され、前記物理資源管理手段はグループ化構成を管理する物理資源制御管理システム。
【請求項１３】
複数の物理資源と、少なくとも一つのソフトウェアプログラムが動作する仮想装置、および前記仮想装置で前記複数の物理資源を共有することを可能とする仮想化手段、として機能するソフトウェアを搭載するコンピュータ構成部と、を備え、
前記仮想化手段は、前記複数の物理資源の前記仮想装置への割り当てを行う資源割当手段を有する物理資源制御管理システムの物理資源制御管理方法において、
複数の物理資源の一つ又は複数で障害が発生した場合に、ハードウェアによる他の物理資源への切り替えを行うステップと、
前記切り替え制御に連携して、前記資源割当手段でのソフトウェアによる前記他の物理資源への切り替えを行うステップと、とを有することを特徴とする物理資源制御管理方法。
【請求項１４】
コンピュータを、少なくとも一つのソフトウェアプログラムが動作する仮想装置、および前記仮想装置で複数の物理資源を共有することを可能とする仮想化手段、として機能させるための物理資源制御管理用プログラムであって、
前記仮想化手段は、前記複数の物理資源の前記仮想装置への割り当てを行う資源割当手段と、前記複数の物理資源の一つ又は複数で障害が発生し、ハードウェアによる他の物理資源への切り替え制御が実行された場合に、該切り替え制御と連携して、前記資源割当手段でのソフトウェアによる前記他の物理資源への切り替えを制御する障害管理手段として機能することを特徴とする物理資源制御管理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、CPUおよびＩ／Ｏデバイスなどを物理資源として利用するITシステムやCPUとラインカードなどを物理資源として利用するネットワーク（NW）システムにおける制御管理手法、特に障害管理の制御管理手法に関する。
【背景技術】
【０００２】
ITやネットワークシステムなどにおける障害管理システムとして、耐障害性を高めるために、二重化構造がよく採用される。二重化構造とは現用資源に加え、待機資源を設定し、冗長度を高めることで、現用系に何らかの障害が発生しても、待機資源に切替え、サービスの停止を防ぐ手法である。一般にはN+M構成(N：現用系の数、M：待機系の数)の構成が取れる。また、障害からの復旧はサービスと物理資源の間で行い、サービスには障害を隠蔽する構成をとり、サービスに特別な仕組みを組み込まずにすむようにすることが一般的である。
【０００３】
この障害管理の方式として、ソフトウェア的、ハードウェア的に行う２つに分類される。
【０００４】
ソフトウェア的管理の例として１．VMM、２．SW RAIDなどがあげられ、ハードウェア的管理の例としてH/W RAIDなどがあげられる （非特許文献２） 。
【０００５】
近年、コンピュータ環境において、資源の仮想化による仮想装置構成が主流となってきている。この仮想化はたとえば図８に示すように物理資源１００１と従来のデバイスアクセス手段１００６の間に仮想化層を挟み、仮想化手段１００３が仮想資源１００２を、複数のデバイスアクセス手段１００６を含む仮想装置１００４に提供することで、一組の資源の上で複数の異なる仮想装置１００４を駆動することが可能となる。仮想化手段１００３は複数の仮想装置１００４からの物理資源１００１へのアクセスをスケジューリングすることで、仮想的に各プロセス１００５は従来と変更なくデバイスアクセス手段１００６を用いてデバイスにアクセスすることが可能になる。仮想化により、物理資源１００１の詳細は仮想装置１００４（もしくは仮想装置１００４にインストールされるゲストOS）には隠蔽される。
【０００６】
仮想化のアーキテクチャは様々だが、一例として、非特許文献１に記載のXENのアーキテクチャを図９に示す。XENでは、物理資源２００１に対して、仮想化層としてハイパーバイザー（hypervisor）２００２を有し、また、デバイスアクセスのためにデバイスドライバなどを有し、仮想装置２００４の物理資源２００１へのアクセスを仲介する専用の特権ドメイン２００３を有する。
【０００７】
この隠蔽構造を利用して、物理資源に障害が起きてもゲストOSには隠蔽したまま対応する仮想資源を切り替えることで障害を隠蔽することが原理的に可能になる。この方式は特許文献１などに記載がある。
【０００８】
図１０に示すように、ソフトウェアによる冗長管理方式の基本的な構成は、ハードウェア空間３００２に属する物理資源３００１とソフトウェア空間３００３に属するデバイスアクセス手段３００４と冗長管理手段３００５とプロセス３００６からなる。冗長管理手段３００５は複数の物理資源３００１および対応するデバイスアクセス手段３００４にアクセス可能であり、たとえば二重化構成をとる物理資源の組をひとつの抽象的なデバイスとしてプロセス３００６に見せる。プロセス３００６は実際の物理資源３００１の状態にかかわらず冗長管理手段３００５との間で規定されたインターフェースに従ってデバイスアクセスを行うため、実際は二重化されていても、ひとつのデバイスにアクセスするようにプロセスを設計することが可能である。もし二重化された物理資源のうち一方が故障しても、冗長化手段３００５はもう一方のデバイスアクセス手段、および物理資源に設定を切り替えることで、障害をプロセス３００６に隠蔽することが可能である。
【０００９】
上記のソフトウェア処理は専用ハードウェアが必要ないことなどから柔軟性に優れるが、障害検出から切替処理がソフトウェアプロセスで行われるため、どうしても処理時間が長いという欠点がある。
【００１０】
また、その他の例としてハードウェア方式によるRAIDシステムがある。
【００１１】
図１１に、ハードウェア的冗長管理方式の一例としてRAIDシステムの概要図を示す。本システムはディスク装置４００５とソフトウェアプログラム４００４からなり、ディスク装置４００５はハードディスクなどの物理ディスク４００１とメモリ４００７を有し、ソフトウェアプログラム４００４はプロセス４００６とデバイスアクセス手段４００８を有する。ある物理ディスクに格納されるデータ４０１１は常に他の物理ディスクのデータ４０１２としてミラーリング（コピー）しておいて、ユーザ（プロセス４００６、デバイスアクセス手段４００８などのソフトウェア演算手段４００４）にはその詳細を隠蔽し、メモリ４００７にあるひとつのデータ４０１３にアクセスしているようにする手法である。これにより、たとえそのデータ４０１１が存在する一方の物理ディスクが故障しても、もう一方の物理ディスクのデータ４０１２をプロセスに供給することで、プロセスには障害の影響は及ばない。この冗長化管理、専用HWであるコントローラ４００２が行っており、デバイスアクセス手段４００８およびプロセス４００６といったソフトウェア演算手段４００４は意識する必要がない。これは専用ハードウェアを用いたハードウェアレベルでの冗長管理の隠蔽である。
【００１２】
また、障害復旧の高速化手法としては冗長構成をとるハードウェア同士で、自立的に死活を監視する方法がある。マスタ（現用）とスレーブ（待機）を決め、お互いに死活を監視しあう事で、たとえばマスタに障害が生じ、スレーブがそれを感知すると、スレーブがマスタとして動作するように設定しておく方式である。障害をハードウェア的に検出し、切り替えるため、障害回復が高速に行える。これはたとえば図１２に示すように、ネットワークにおける現用パス５００３と待機パス５００４において、正常時は分岐点５００１でデータをコピーし、常に両方とものパスでデータを転送しておき、分岐点５００２で現用パスからデータを受け取り転送する。現用パスと待機パスはたとえば定期的に試験信号を送信するなどして常にハードウェア的に死活が確認されており、現用パスに障害が観測されると、ハードウェア的に待機パスからのデータを転送するように分岐点５００２で切り替える。本方式により、高速な障害回復が可能となる。
【００１３】
以上のハードウェア的処理は復旧が早いが専用ハードウェアが必要であったり、冗長構成設定などの管理柔軟性にかけるなどの欠点がある。
【特許文献１】米国特許出願公開第2005/0246718明細書
【非特許文献１】Paul Barham et. Al. “Xen and the Art of Virtualization” Proceedings of the nineteenth ACM symposium on Operating systems principles, pp 164-177, Bolton Landing, NY, USA, 2003
【非特許文献２】David A. Patterson, et. Al. “A case for redundant arrays of inexpensive disks (RAID)”, Proceedings of the 1988 ACM SIGMOD international conference on Management of data, Pages: 109 - 116
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上記の構成では、仮想化環境において、専用のハードウェアコントローラを用いることなく、物理資源の障害をアプリケーション（プロセス）に隠蔽しつつ、高速フェールオーバーを行うことが困難であるということである。
【００１５】
その理由は、現在の仮想化環境でのフェールオーバーはソフトウェア的な障害管理であるため、復旧に時間がかかるためである。また、ハードウェア的な高速復旧方式とソフトウェア復旧方式の連携ができないため、専用のハードウェアコントローラを用いてソフトウェアに対して隠蔽しない限り、キープアライブ方式などのハードウェア的な高速自立復旧方式をそのまま高速性を保ったまま仮想化環境に適用することが困難であったためである。
【００１６】
（発明の目的）
本発明の目的は、高価で専用ハードウェアコントローラを用いずに、仮想化環境において、物理障害を仮想装置、仮想装置内にインストールされるゲストOS、もしくはプロセスに隠蔽しながら、ハードウェア方式とソフトウェア方式が連携可能な柔軟な高速フェールオーバーを行うシステムを提供することにある。
【００１７】
また、本発明のほかの目的は、キープアライブ方式などの高速障害復旧機能を持ったハードウェアとそうでない通常ハードウェアが混在するような複雑な管理環境でも、各仮想装置の優先度などの管理ポリシーを満足するよう自立的に最適な冗長化設定ができるシステムを提供することにある。
【課題を解決するための手段】
【００１８】
本発明の物理資源制御管理システムは、複数の物理資源と、
少なくとも一つのソフトウェアプログラムが動作する仮想装置、および前記仮想装置で前記複数の物理資源を共有することを可能とする仮想化手段、として機能するソフトウェアを搭載するコンピュータ構成部と、を備え、
前記仮想化手段は、前記複数の物理資源の前記仮想装置への割り当てを行う資源割当手段と、前記複数の物理資源の一つ又は複数で障害が発生し、ハードウェアによる他の物理資源への切り替え制御が実行された場合に、該切り替え制御と連携して、前記資源割当手段でのソフトウェアによる前記他の物理資源への切り替えを制御する障害管理手段とを有することを特徴とする。
【００１９】
本発明の物理資源制御管理方法は、複数の物理資源と、少なくとも一つのソフトウェアプログラムが動作する仮想装置、および前記仮想装置で前記複数の物理資源を共有することを可能とする仮想化手段、として機能するソフトウェアを搭載するコンピュータ構成部と、を備え、
前記仮想化手段は、前記複数の物理資源の前記仮想装置への割り当てを行う資源割当手段を有する物理資源制御管理システムの物理資源制御管理方法において、
複数の物理資源の一つ又は複数で障害が発生した場合に、ハードウェアによる他の物理資源への切り替えを行うステップと、
前記切り替え制御に連携して、前記資源割当手段でのソフトウェアによる前記他の物理資源への切り替えを行うステップと、とを有することを特徴とする。
【００２０】
本発明の物理資源制御管理用プログラムは、コンピュータを、少なくとも一つのソフトウェアプログラムが動作する仮想装置、および前記仮想装置で複数の物理資源を共有することを可能とする仮想化手段、として機能させるための物理資源制御管理用プログラムであって、
前記仮想化手段は、前記複数の物理資源の前記仮想装置への割り当てを行う資源割当手段と、前記複数の物理資源の一つ又は複数で障害が発生し、ハードウェアによる他の物理資源への切り替え制御が実行された場合に、該切り替え制御と連携して、前記資源割当手段でのソフトウェアによる前記他の物理資源への切り替えを制御する障害管理手段として機能することを特徴とする。
【発明の効果】
【００２１】
本発明によれば、仮想化環境において、専用のハードウェアコントローラを用いることなく、物理資源の障害をアプリケーションおよびプロセスに隠蔽しつつ、高速フェールオーバーを行うことができる。その理由は、仮想化環境における隠蔽構造の中で、ハードウェア障害復旧方式とソフトウェア障害復旧方式が復旧速度を損なわずに連携するためである。
【発明を実施するための最良の形態】
【００２２】
本発明の代表的な実施形態は、システムシステム内の物理資源の集合であるハードウェア空間と、その上で動作するソフトウェアプログラムの集合であるソフトウェア空間からなり、ハードウェア空間には少なくともひとつ以上の中央演算部とその他の物理資源がデータ転送路によって接続されており、また物理資源の一部もしくは全部には死活確認部を有し、ソフトウェア空間は仮想化手段と、少なくともひとつ以上の仮想資源空間およびその上で動作する仮想装置を有し、仮想化手段は、資源割当手段、障害管理手段、資源アクセス手段を有する構成である。このような構成を採用し、障害管理手段がハードウェアによる障害管理とソフトウェアによる障害管理間の連携をとり、資源割当手段を制御することができる。
【００２３】
以下図面を用いた本発明の各実施形態について説明する。
【００２４】
［第１の実施形態］
まず、本発明の第１の実施形態について図面を参照して詳細に説明する。
【００２５】
図１を参照すると、本発明の第１の実施の形態は、ハードウェア空間６１００とソフトウェア空間６５００からなる。ハードウェア空間６１００には少なくともI/Oデバイスなどに代表される物理資源６１０１、物理資源６１０２、CPUなどに代表される中央演算部（中央演算手段）６１２１が設けられ、これらはデータ転送路（データ転送手段）６１３１によって接続されている。データ転送路は例えばPCIバスなどに代表されるシステムバスであるが、これに限定されるものではない。また、物理資源６１０１には死活確認部（死活確認手段）６１１１が設けられ、物理資源６１０２には死活確認部６１１２が設けられている。
【００２６】
ソフトウェア空間６５００は、仮想化手段６５５０と、少なくともひとつ以上の仮想資源空間６５２０およびその上で動作する仮想装置６５１０を有する。仮想化手段６５５０は、資源割当手段６５５１、障害管理手段６５５２、資源アクセス手段６５５３、資源アクセス手段６５５４を有する。仮想装置６５１０は資源アクセス手段６５１１を有する。仮想化手段６５５０、仮想資源空間６５２０、仮想装置６５１０はＤＲＡＭ等の半導体メモリやハードディスク装置に記憶されたプログラムやデータであり、ハードウェア空間６１００のCPUなどに代表される中央演算部により処理が実行される。
【００２７】
次にこれらの手段の動作の概略を説明する。
【００２８】
ハードウェア空間６１００において、I/Oデバイスなどに代表される物理資源６１０１と、物理資源６１０２と、CPUなどに代表される中央演算部６１２１とが、PCIバスなどに代表されるデータ転送路６１３１によって接続されている。現用系に設定された物理資源６１０１と、待機系に設定された物理資源６１０２とは、それぞれ死活確認部６１１１と死活確認部６１１２によってキープアライブ信号に代表される死活確認信号６１１３を交換することでお互いに死活確認を行う。物理資源６１０１と物理資源６１０２とは、冗長ペアを構成する。死活確認信号６１１３が途切れて、相手の物理資源の障害を検出すると、それを通知する信号を、データ転送路６１３１を通して中央演算部６１２１に送信する。中央演算部６１２１はその信号を受信すると、現在の処理を中断し、障害発生信号をソフトウェア空間６５００内の障害管理手段６５５２に送信する。
【００２９】
ソフトウェア空間６５００はハードウェア空間（物理資源空間）６１００上で動作するソフトウェアプログラムである。ソフトウェア空間６５００に属する仮想化手段６５５０は仮想装置６５１０に対して、ハードウェア空間６１００を仮想化した、仮想資源６５２１を有する仮想資源空間６５２０を提供する。仮想装置６５１０はその仮想資源空間６５２０上で、あたかも同様のハードウェア空間上で動作するかのごとくに動作する。仮想装置６５１０はデバイスドライバに代表される資源アクセス手段６５１１を有し、仮想装置６５１０内で動作する各種ソフトウェアプロセスに資源へのアクセス手段を提供する。資源アクセス手段６５１１は、各種ソフトウェアプロセスに仮想資源６５１０空間の存在を提示し、その仮想資源空間６５１０内の資源のアクセス要求に対し、実際はその処理を仮想化手段６５５０の資源割当手段６５５１に転送する。
【００３０】
仮想化手段６５５０は一般に複数の仮想装置６５１０を同一システム内に有することができ、それぞれに仮想資源空間６５２０を提供し、それらからの物理資源アクセスを仲介することで、それらの複数の仮想装置６５１０でハードウェア空間６１００を共有することを可能とする。
【００３１】
この目的のために、仮想化手段６５５０において、物理資源６１０１および物理資源６１０２に直接アクセスする資源アクセス手段６５５３および資源アクセス手段６５５４を制御するとともに、それらの資源アクセス手段と仮想装置６５１０内の資源アクセス手段６５１１との接続を、資源割当手段６５５１で制御することで、ハードウェア空間（物理資源空間）６１００の共有を実現する。
【００３２】
資源割当手段６５５１は、あらかじめ指定された設定により、仮想装置６５１０に対してアクセス可能な物理資源への資源アクセス手段との接続を容認することで、複数の仮想装置６５１０の資源アクセス手段６５１１からの物理資源アクセスを制御する。また、資源割当手段６５５１は冗長構成の設定も行う。たとえば、仮想資源６５２１の可用性レベルを高めるため、実際は物理資源６１０１と物理資源６１０２を二重化して用いるとする。現用系を物理資源６１０１、待機系を物理資源６１０２とすると、通常時は、資源割当手段６５５１は仮想装置６５１０の資源アクセス手段６５１１と資源アクセス手段６５５３を接続しておく。物理資源６１０１に障害が発生した段階で接続を資源アクセス手段６５５３から資源アクセス手段６５５４に切り替えることで障害復旧が可能である。これは上記のソフトウェア的障害復旧手法であり、仮想装置６５１０に対して障害が隠蔽され、仮想装置６５１０は冗長構成をとるための何ら設定を行う必要はない。
【００３３】
さらに仮想化手段６５５０は障害管理手段６５５２を有する。障害管理手段６５５２は中央演算処理手段６１２１からの割り込みに代表される信号により、どの処理を行うかをあらかじめ登録しておいたテーブルから検索し、実行する機能を有する。たとえば、障害時に割り込みを契機に上記の接続設定を変更する命令を出す、などの動作を行う。
【００３４】
次に本発明の実施の形態における障害発生から障害復旧までの動作を図２に示すフローチャートを用いて説明する。
【００３５】
（ステップＳ１０１）  
物理資源６１０１は現用系資源に設定され、物理資源６１０２は待機系資源に設定されているとする。両者の物理資源は死活確認部６１１１および６１１２の死活確認信号６１１３の交信を通して定期的にお互いの死活状態を確認している。また、仮想装置６５１０の仮想資源６５２１は１＋１冗長が設定されており、資源割当手段６５５１によって、正常動作時は現用系の物理資源６１０１にアクセスする資源アクセス手段６５５３と、仮想装置６５１０の資源アクセス手段６５１１とを接続している。
【００３６】
（ステップＳ１０２）
現用系に設定されている物理資源６１０１に電源故障などに代表される障害が発生し、サービス継続が不可能となる。
【００３７】
（ステップＳ１０３）
死活確認部６１１１は物理資源６１０２の死活確認部６１１２と死活確認信号６１１３の交信不可となるため、死活確認部６１１２は最短で信号送信間隔時間で応答なしを検出することで物理資源６１０１の障害を確認し、物理資源６１０２を現用系に状態設定変更する。
【００３８】
（ステップＳ１０４）
物理資源６１０２は割り込み信号に代表される障害検出通知信号および待機系から現用系への状態変更通知信号を中央演算部６１２１に送信する。
【００３９】
（ステップＳ１０５）
中央演算部６１２１は物理資源６１１２からの信号を受信すると、現在行っている処理を停止し、割り込み信号を障害管理手段６５５２に通知する。
【００４０】
（ステップＳ１０６）
障害管理手段６５５２は割り込み信号に対して、あらかじめ登録しておいたテーブルから該当する処理を検索する。
【００４１】
（ステップＳ１０７）
障害管理手段６５５２は検索した処理に応じて、接続変更命令を資源割当手段６５５１に送信し、資源割当手段６５５１は命令に従い、接続先を資源アクセス手段６５５３から資源アクセス手段６５５４へと切替制御を行い、現用系が物理資源６１０２に状態設定変更された、ハードウェア空間での運用状態との同期をとる。
【００４２】
（ステップＳ１０８）
資源アクセス手段６５１１は物理資源６１０２へのアクセスが可能となり、サービス継続が可能となる。
【００４３】
次に本実施形態の効果を説明する。
【００４４】
従来のソフトウェア的障害復旧手法は、物理資源での障害発生時に、仮想装置の資源アクセス手段対する物理資源６１０１からの応答がなくなり、タイムアウトなどの処理により障害を検出し、現用系から待機系に接続を変更し、必要に応じてその他ソフトウェアおよびハードウェアの運用状態を変更して障害復旧処理が終了する。このため障害発生から復旧までの処理時間は一般に長い。処理時間を早くするために常に仮想化手段の資源アクセス手段から死活確認信号を送るなどの代替手段が考えられるが、障害検出時間を短くするにはその分ＣＰＵ負荷が増加する。それに対し、本実施形態によれば、死活確認はハードウェア手法によって行うことで高速性を最大限に引き出し、ハードウェアから割り込みをあげることで大きな遅延なく資源割当手段６５５１によるソフトウェア的な切替と同期を図ることが可能になるため、仮想装置には隠蔽したまま特別なハードウェア障害隠蔽構造をとらずに高速な障害復旧が可能となる。
【００４５】
［第２の実施形態］
次に本発明の第２の実施の形態について図３を参照して詳細に説明する。
【００４６】
本発明の第２の実施の形態は、ハードウェア空間７１００とソフトウェア空間７５００とから構成される。
【００４７】
ハードウェア空間７１００は、データ転送路７１５０によって相互に接続されたI/Oデバイス７１０１、I/Oデバイス７１０２、およびCPU７１０３を少なくともひとつずつ以上有する。I/Oデバイス７１０１および７１０２は死活確認部７１１１および７１１２によってキープアライブ信号７２０１を通して互いに死活確認を行っている。ここで、Ｉ／Ｏデバイス７１０１および７１０２がネットワークカードであった場合、Ｉ／Ｏデバイス７１０１および７１０２との間での死活確認部部７１１１および７１１２によるネットワークの端点同士の死活確認のほかに、ネットワーク上のノードとの死活確認信号によるそれぞれのパスの死活確認部が別に搭載されていてもよい。
【００４８】
ソフトウェア空間７５００は、オペレーティングシステムなどに代表される仮想化手段７５８０および一つ以上の仮想装置７５３０を有する。仮想化手段７５８０は、Ｉ／Ｏデバイス７１０１へのアクセス手段であるデバイスドライバ７５０１、Ｉ／Ｏデバイス７１０２へのアクセス手段であるデバイスドライバ７５０２、障害管理手段７５５０、資源割当手段７５０３、バックエンドデバイスドライバ７５０４を有する。さらに障害管理手段７５５０は、管理者７９００にアクセス手段を提供するインターフェース手段７５５１、処理管理手段７５５４、情報格納手段７５５３を有する。また、仮想装置７５３０はプロセス７５３２およびフロントエンドデバイスドライバ７５３１を有する。
【００４９】
次に、これらの手段の動作について説明する。I/Oデバイス７１０１および７１０２はNIC（ネットワークインターフェースカード）やディスクに代表されるInput/Outputデバイスであるが、必ずしもこれらに限定するものではない。一般にユーザプロセスはこれらのI/Oデバイスを外部システムとの通信やディスクへのデータアクセスなどの目的に用いる。CPU７１０３はPentium（登録商標）やXeonなどに代表される中央演算処理装置であり、データ転送路７１５０はPCIバスなどに代表されるシステムバスであるが必ずしもこれらに限定されるものではない。I/Oデバイス７１０１および７１０２は冗長ペアを構成しており片方が現用系、もう一方が待機系に設定される（ここではI/Oデバイス７１０１が現用系とする）。死活確認部７１１１および７１１２はキープアライブ信号７２０１を一定間隔で交信することで互いに死活確認をしている。
【００５０】
もしI/Oデバイス７１０１に障害が発生し、死活確認部７１１２がキープアライブ信号７２０１の交信に異常を検出すると、I/Oデバイス７１０１を障害と判定し、自分の運用状態を待機系から現用系に変更し、障害通知割り込み信号７２０２をCPU７１０３に送信する。CPU７１０３はこの割り込み信号７２０２を検出すると、現在の処理を一旦停止し、障害管理手段７５５０に割り込み信号７２０３を送信する。
【００５１】
デバイスドライバ７５０１および７５０２はそれぞれI/Oデバイス７１０１および７１０２へのアクセス手段を提供するソフトウェアプログラムであり、デバイス固有に作成される。仮想装置７５３０内のフロントエンドデバイスドライバ７５３１は、プロセス７５３２に、仮想資源７３０１の存在を示し、プロセス７５３２が普通の物理資源にアクセスする場合と同様のインターフェースを提供している。なお、プロセス７５３２が直接フロントエンドデバイスドライバ７５３１にアクセスする場合もあり、またカーネルプロセスのような別プロセスが間に介在する場合もある。フロントエンドデバイスドライバ７５３１は仮想資源７３０１へのアクセス要求を受け、あらかじめ対応付けされているバックエンドデバイスドライバ７５０４に対してアクセス要求を転送する。この対応付けは非特許文献１に記載のXENのように、実態は共有メモリへのアクセスという形でデータ転送を行う手法などによって実現されるが、必ずしもこれに限定するものではない。
【００５２】
バックエンドデバイスドライバ７５０４はフロントエンドデバイスドライバ７５３１およびデバイスドライバ７５０１，７５０２と対応付けられており、デバイスドライバ７５０１，７５０２との仲介を行う。バックエンドデバイスドライバ７５０４とデバイスドライバ７５０１，７５０２の間に資源割当手段７５０３を介することで、ソフトウェア方式による障害隠蔽構造を形成している。正常動作時はバックエンドデバイスドライバ７５０４は現用系I/Oデバイスへのアクセス手段であるデバイスドライバ７５０１に接続されている。
【００５３】
障害管理手段７５５０は物理資源に障害が発生したときにハードウェア障害復旧方式とソフトウェア障害復旧方式を同期動作させるものである。この目的のため、管理者７９００とのインターフェース手段７５５１、情報格納手段７５５３、処理管理手段７５５４を有する。管理者７９００はあらかじめ、仮想資源７３０１の冗長構成、障害が発生した時の処理方法についての設定をインターフェース手段７５５１を通して行う。たとえば具体的には、冗長構成としてI/Oデバイス７１０１を現用系、I/Oデバイス７１０２を待機系とする１＋１冗長とし、I/Oデバイス７１０２からの障害通知の割り込み信号が検出されたら、資源割当手段７５０３でのバックエンドデバイスドライバ７５０４とデバイスドライバ７５０１との接続を、バックエンドデバイスドライバ７５０４とデバイスドライバ７５０２との接続に切り替える、という処理を登録しておく。割り込み信号はたとえば各障害や割り込み信号送信元デバイスに対して唯一の値となるＩＤとして管理される。この処理情報はたとえば各割り込み信号のＩＤに対してテーブルとして管理され、メモリやディスクに代表される情報格納手段７５５３に格納される。処理管理手段７５５４はCPU７１０３からの割り込み信号を契機に、その割り込み信号IDから該当処理を上記の情報格納手段７５５３内のテーブルを検索し、その処理を実行する（ここでは資源制御手段７５０３に接続切替命令を発行する）。ここで、該当処理が見つからない場合はエラーメッセージをインターフェース手段７５５１を通して管理者７９００に通知する、などの処理も登録しておくことも可能である。
【００５４】
死活確認部７１１１が搭載されたＩ／Ｏデバイス７１０１および死活確認部７１１１が搭載された７１０２が、たとえばネットワークカードであった場合、ネットワーク上のノードの障害によるサービス断も、Ｉ／Ｏデバイス７１０１および７１０２のハードウェアカウンタなどの値を監視し、カウンタ値の変化の異常の検出により、障害と判断することができる。そして、キープアライブ信号を通してマスタからスレーブに障害通知を行うことで同様の障害切り替えが可能である。
【００５５】
また、ネットワークカードとネットワーク上のノードとの死活確認信号により、ネットワーク上の障害においても同様に割り込み信号７２０３を発行し、高速切り替えが可能である。
【００５６】
以下、Ｉ／Ｏデバイス７１０１での障害発生から障害復旧までの動作を図４に示すフローチャートを用いて詳細に説明する。ここで、上記のとおり、管理者７９００によって必要設定および処理登録はすでに行われているとする。
【００５７】
（ステップＳ２０１）
Ｉ／Ｏデバイス７１０１に障害が発生し、デバイスドライバ７５０１、バックエンドデバイスドライバ７５０４、フロントエンドデバイスドライバ７５３１およびプロセス７５３２はＩ／Ｏデバイス７１０１へのアクセスが不可となり、サービスが停止する。またその障害により、キープアライブ信号７２０１の交信異常が発生する。
【００５８】
（ステップＳ２０２）
Ｉ／Ｏデバイス７１０２は死活確認部７１１２のキープアライブ信号交信異常検出からＩ／Ｏデバイス７１０１の障害を検出し、自分の運用状態を待機から運用に変更する。
【００５９】
（ステップＳ２０３）
Ｉ／Ｏデバイス７１０２は、割り込み信号７２０２をＣＰＵ７１０３に送信する。
【００６０】
（ステップＳ２０４）
ＣＰＵ７１０３は割り込み信号７２０３を障害管理手段７５５０に送信する。
（ステップＳ２０５）
障害管理手段７５５０における処理管理手段７５５４は割り込み信号のＩＤ(Identification)から情報格納手段７５５３にアクセスし、処理テーブルから該当する処理を検索する。
【００６１】
（ステップＳ２０６）
処理管理手段７５５４は検索した処理を実行する命令を発行する（ここでは資源割当手段７５０３に対して、バックエンドデバイスドライバ７５０４をデバイスドライバ７５０２に接続変更するように命令（契機信号）を発行する）。
【００６２】
（ステップＳ２０７）
資源割当手段７５０３は上記の命令に従って、バックエンドデバイスドライバ７５０４とデバイスドライバ７５０１の接続をデバイスドライバ７５０２との接続に変更する。
【００６３】
（ステップＳ２０８）
上記の接続が確立されると、バックエンドデバイスドライバ７５０４、フロントエンドデバイスドライバ７５３１およびプロセス７５３２はデバイスドライバ７５０２およびすでに現用系として動作しているＩ／Ｏデバイス７１０２へのアクセスが可能となり、サービスが復旧する。
【００６４】
次に本実施形態による効果について説明する。プロセス７５３２とデバイスドライバ７５０１および７５０２、さらにＩ／Ｏデバイス７１０１および７１０２との接続はフロントエンドデバイスドライバ７５３１とバックエンドデバイスドライバ７５０４の間の接続を介して実現されているため、資源割当手段７５０３による切替により、デバイスドライバおよびＩ／Ｏデバイスでの障害は完全に隠蔽される。これはソフトウェア障害復旧方式の利点である。さらに、障害検出および運用状態切替は高速なハードウェア方式を用い、処理管理手段７５５４によるハードウェア方式とソフトウェア方式の連携同期動作によって、死活確認部以外の特別な隠蔽構造をとるハードウェアなしに高速障害復旧が可能となる。
【００６５】
さらに、上記の可用性(availability)を基準（メトリック）とした制御以外に、ハードウェア上で監視可能な項目に対する統計値をメトリックとしたハードウェアとソフトウェアの連携資源割当制御も同様の方法で実現可能である。統計値として、たとえばカウンタ値による帯域測定、試験信号などによる遅延測定、ビットエラー検査による信頼性などがあるが、必ずしもこれらに限るものではない。連携による実現機能として、たとえば帯域測定の場合は、冗長構成を組むペアの間で状況の変化に応じた動的なロードバランスなどが実現可能である。
【００６６】
［第３の実施形態］
次に本発明の第３の実施の形態について図５を参照して詳細に説明する。
【００６７】
本発明の第３の実施の形態は、ハードウェア空間８１００とソフトウェア空間８５００から構成される。
【００６８】
ハードウェア空間８１００は通信手段８１５０によって相互に接続されたＩ／Ｏデバイス８１０１、Ｉ／Ｏデバイス８１０２、Ｉ／Ｏデバイス８１０３およびＣＰＵ８１０４を少なくともひとつずつ以上有する。I/Oデバイス８１０２および８１０３は死活確認部によって上記の第２の実施の形態と同様にキープアライブ信号を通して互いに死活確認を行っている。Ｉ／Ｏデバイス８１０１は死活確認部を有しない通常のＩ／Ｏデバイスである。Ｉ／Ｏデバイス８１０１、Ｉ／Ｏデバイス８１０２、Ｉ／Ｏデバイス８１０３は物理資源を構成し、Ｉ／Ｏデバイス８１０１は死活確認部を有せず、異なる性能を有する。
ソフトウェア空間８５００は、オペレーティングシステムなどに代表される仮想化手段８５８０および少なくとも二つ以上の仮想装置８５３０および８５４０を有する。仮想化手段８５８０は、Ｉ／Ｏデバイス８１０１〜８１０３それぞれへのアクセス手段であるデバイスドライバ８５０１〜８５０３、資源割当手段８５０６、バックエンドデバイスドライバ８５０４および８５０５、障害管理手段８５５０を有する。さらに障害管理手段８５５０は、管理者８９００にアクセス手段を提供するインターフェース手段８５５１、設定管理手段８５５２、情報格納手段８５５３、処理管理手段８５５４、および物理資源管理手段８５５５を有する。また、仮想装置８５３０および８５４０は、それぞれプロセス８５３２および８５４２と、フロントエンドデバイスドライバ８５３１および８５４１を有する。
【００６９】
また管理者８９００は、障害管理手段８５５０に対して、管理情報として、構成設定情報８７０１、管理ポリシー情報８７０２を入力することができる。
【００７０】
次に、これらの手段の動作について説明する。上記の第２の実施の形態と同様に、I/Oデバイス８１０１〜８１０３はそれぞれNIC（ネットワークインターフェースカード）やディスクに代表されるInput/Outputデバイスであり、ＣＰＵ８１０４はＰｅｎｔｉｕｍ（登録商標）やＸｅｏｎに代表される中央演算処理装置であるが、必ずしもこれらに限定するものではない。
【００７１】
I/Oデバイス８１０２および８１０３は冗長ペアを構成しており片方が現用系、もう一方が待機系に設定される（ここではI/Oデバイス８１０２が現用系とする）。そして、I/Oデバイス８１０２および８１０３は、第２の実施の形態同様に死活確認部によるキープアライブ信号の一定間隔での交信によって互いに死活確認をしている。Ｉ／Ｏデバイス８１０１はこのような死活確認部を持たない通常のハードウェア資源とする。
【００７２】
このため、もしI/Oデバイス８１０１に障害が発生した場合は、プロセスやデバイスドライバによるタイムアウトなどの応答異常検出によって障害が検出され、従来のソフトウェア障害復旧方式のみによって障害復旧されるため、障害復旧は一般に時間のかかるものとなる。一方でＩ／Ｏデバイス８１０２および８１０３における障害は死活確認部によって検出されるため、第２の実施の形態に記載と同様の処理により高速検出および運用状態変更が可能である。
【００７３】
デバイスドライバ８５０１〜８５０３はそれぞれI/Oデバイス８１０１〜８１０３へのアクセス手段を提供するソフトウェアプログラムであり、デバイス固有に作成される。第２の実施の形態と同様に、仮想装置８５３０および８５４０内のフロントエンドデバイスドライバ８５３１および８５４１は、プロセス８５３２および８５４２に、仮想資源８３０１および８３０２の存在を示し、プロセス８５３２および８５４２が普通の物理資源にアクセスする場合と同様のインターフェースを提供している。フロントエンドデバイスドライバ８５３１および８５４１は、それぞれバックエンドデバイスドライバ８５０４および８５０５に対応付けられており、仮想資源８３０１および８３０２のアクセス要求を転送する。
【００７４】
バックエンドデバイスドライバ８５０４および８５０５は、資源割当手段８５０６を通して、デバイスドライバ８５０１〜８５０３と接続制御され、ソフトウェア方式による障害隠蔽構造を形成しており、冗長構成をとっている場合はその構成に指定の現用系デバイスドライバに接続を許可する。
【００７５】
障害管理手段８５５０は第２の実施の形態に加えて、設定管理手段８５５２と物理資源管理手段８５５５を有する。
【００７６】
物理資源管理手段８５５５は、現在システム内にある物理資源の情報を管理し、また必要に応じて物理資源に設定を行う。物理資源の情報はたとえば物理資源ＩＤ（物理資源識別情報）や種類、性能に加え、上記の死活確認部の有無といった障害復旧性能に関する情報を有する。たとえば、Ｉ／Ｏデバイス８１０１は通常デバイスであり、Ｉ／Ｏデバイス８１０２および８１０３は死活確認部を有し、ハードウェア方式による冗長構成を組むことが可能である、などの情報である。さらに、Ｉ／Ｏデバイス８１０２と８１０３で冗長ペアを組むことを決めた時、両者の間でキープアライブ信号に代表される死活確認信号の交信の設定を行い、運用系および待機系の運用状態設定を行う。
【００７７】
設定管理手段８５５２はシステム内の仮想装置に割り当てられた仮想資源構成、プライオリティ、冗長構成や障害復旧速度などの可用性レベルといった仮想装置毎に定められた管理情報を有する。仮想装置の資源割当構成は、仮想装置を生成時に取得・保存し、可用性レベルやプライオリティの情報は、それぞれ構成設定情報８７０１および管理ポリシー８７０２によって定められる。構成設定情報８７０１および管理ポリシー８７０２はインターフェース手段８５５１を通して管理者８９００から入力される。
【００７８】
構成設定情報８７０１はシステム内の仮想装置の有する仮想資源の冗長構成や障害復旧速度などの可用性レベル情報を有する。管理ポリシー情報８７０２はシステム内の仮想装置の優先度を記載したプライオリティ情報を有する。
【００７９】
設定管理手段８５５２は構成設定情報８７０１および管理ポリシー情報８７０２と、仮想装置に割り当てられている仮想資源構成情報と、物理資源管理手段の有する物理資源情報から、可能な資源割当方法の組み合わせを計算し、最適構成を探索し、その設定反映命令を資源割当手段８５０６に発行し、その設定情報を保持する。また、同時に、決定した冗長構成情報から、各種割り込み信号ＩＤに対して障害発生時の処理を情報格納手段８５５３のテーブルに格納する。
【００８０】
以下、構成設定情報８７０１および管理ポリシー情報８７０２の入力から、冗長構成の決定および設定処理について図６に示すフローチャートを用いて詳細に説明する。
【００８１】
（ステップＳ３０１）
構成設定情報８７０１および管理ポリシー８７０２を入力する。
【００８２】
（ステップＳ３０２）
設定管理手段８５５２は物理資源管理手段８５５５から物理資源情報を取得する。また、現在の仮想装置の仮想資源に対して、入力された構成設定情報８７０１に記載の可用性レベルを達成する物理資源割当構成を計算し、上記の取得した物理資源情報と比較する。
【００８３】
（ステップＳ３０３）
要求の可用性レベルを満たす物理資源割当が可能であれば（ステップＳ３０４）に進む。不可能なら、エラーメッセージを、インターフェース手段８５５１を通して管理者８９００に出力して終了する。
【００８４】
（ステップＳ３０４）
管理ポリシー情報８７０２から仮想装置のプライオリティ情報を取得し、要求の可用性レベルを満たす物理資源割当組み合わせのうち、プライオリティに応じて物理資源割当組み合わせをソートし、一番可用性レベルが高い仮想装置の物理資源割当方法を決定する。
【００８５】
（ステップＳ３０５）
決定した組み合わせを設定反映する命令を資源割当手段８５０６に発行し、資源割当を決定し、その設定を保存する。
【００８６】
（ステップＳ３０６）
設定した資源割当構成に対して、各物理資源での障害に対する処理を作成し、情報格納手段８５５３のテーブルに登録し、処理管理手段８５５４が障害発生通知の割り込み信号取得時に処理を検索できるようにする。
【００８７】
たとえば、図５に記載の例で、仮想装置８５３０より仮想装置８５４０の方がプライオリティが高いとし、両者の仮想デバイスとも１＋１の冗長構成（ただし待機系は共有可）であったとする。Ｉ／Ｏデバイス８１０１で障害が発生した場合は、ハードウェアによる死活確認部がなく、一般に障害復旧処理はタイムアウトなどのソフトウェア処理になるため、処理時間が長くなるため可用性レベルは低い。一方Ｉ／Ｏデバイス８１０２で障害が発生した場合は、第２の実施の形態に記載のように、障害復旧が高速で行えるため、可用性レベルは高い。
【００８８】
そこで、仮想装置８５４０の仮想デバイス８３０２の現用系にはＩ／Ｏデバイス８１０２が、待機系にはＩ／Ｏデバイス８１０３が設定され、仮想装置８５３０の仮想デバイス８３０１の現用系にはＩ／Ｏデバイス８１０１が、待機系にはＩ／Ｏデバイス８１０３が設定されることになる。Ｉ／Ｏデバイス８１０３を現用系にし、Ｉ／Ｏデバイス８１０２を待機系にする組み合わせも同様の可用性レベルで実現可能であるが両者は区別がないため、どちらか一方を選ぶこととする。
【００８９】
次に本実施形態による効果について説明する。障害復旧性能、ひいては可用性レベルの異なる物理資源を複数有するハードウェア空間（物理資源空間）をシステム内に有するシステムにおいて、本実施形態によれば、第２の実施の形態による効果は引き継いだまま仮想装置の優先度に応じた最適障害復旧構成を自動的に選ぶことが可能になる。
そして、キープアライブ方式などの高速障害復旧機能を持ったハードウェアとそうでない通常ハードウェアが混在するような多様な障害回復性能が存在する複雑な管理環境で、管理ポリシーを満足するよう自立的に最適な冗長化設定を行う管理柔軟性を提供することができる。その理由は、設定情報、管理ポリシーや資源情報などを管理しながら、状態に合わせた最適な設定を自動的に選択し、構成設定・障害復旧を行うためである。
【００９０】
［第４の実施形態］
次に本発明の第４の実施の形態について図７を参照して詳細に説明する。
本発明の第４の実施の形態は、第２および第３の実施の形態のハードウェア空間の生成の方法およびその方法とソフトウェア空間の連携に関する。
【００９１】
図７を参照すると、第４の実施の形態は、物理資源を収容するシャーシ９１０１および９２０１と、スイッチ９４００と、ハードウェア空間９０００と、ソフトウェア空間９５００から構成される。ハードウェア空間９０００とソフトウェア空間９５００は例えばパーソナルコンピュータで構成され、ソフトウェア空間９５００はＤＲＡＭ等の半導体メモリやハードディスク装置に記憶されたプログラムやデータで構成され、ハードウェア空間６１００のCPUなどに代表される中央演算部により処理が実行される。
【００９２】
シャーシ９１０１はＩ／Ｏデバイス９１１１、Ｉ／Ｏデバイス９１１２、ＣＰＵ９１１３および各デバイスに電力を供給する電源９１２１を収容する。また、シャーシ９２０１はＩ／Ｏデバイス９２１１、Ｉ／Ｏデバイス９２１２、ＣＰＵ９２１３およびを各デバイスに電力を供給する電源９２２１を収容する。スイッチ９４００はシャーシ９１０１および９２０１及びハードウェア空間９０００の各デバイスを相互に接続する。ハードウェア空間９０００は、スイッチ９４００によりパーティションに論理的に分割されグループ化された資源であるＩ／Ｏデバイス９００１、Ｉ／Ｏデバイス９００２、Ｉ／Ｏデバイス９００３、ＣＰＵ９００４を有する。ソフトウェア空間９５００は、物理資源管理手段９５０１および少なくとも一つ以上の仮想装置９５０２を有する。
【００９３】
ここで、シャーシの数や各シャーシに収容されるＩ／Ｏデバイスなどの物理資源の数や種類は図７の構成に限るものではない。
【００９４】
また、スイッチによってグループ化されるように選択された物理資源も一例であり、この構成に限るものではない。
【００９５】
ここでいうグループ化とは、グループ化されたハードウェア空間９０００内の物理資源が、スイッチの論理分割機能、たとえばＥｔｈｅｒｎｅｔ（登録商標）スイッチのＶＬＡＮ機能に代表される機能によって、お互いに通信することが可能であり、かつ、異なるグループとは基本的に接続が分離される処理のことである。
【００９６】
またスイッチ９４００はＥｔｈｅｒｎｅｔ（登録商標）スイッチなどに代表されるネットワーク装置であるが、プロトコルやその物理構成などはそれに限定するものではない。
【００９７】
ソフトウェア空間９５００は第３の実施例に記述のソフトウェア空間に代表される、仮想化によるソフトウェア方式による障害隠蔽手段と障害管理手段を有する。
【００９８】
Ｉ／Ｏデバイスに代表される物理資源は死活確認部などのハードウェア方式による障害復旧機能を有していてもよいし、有していなくてもよい。
【００９９】
物理資源管理手段９５０２はハードウェア空間９０００に属する物理資源の性能、可用性、物理位置、グループ化構成などの情報を管理する。
次に、これらの手段の動作について説明する。図７に示すように、ソフトウェア空間９５００に提供されるハードウェア空間９０００に属する物理資源は、設定の違いによりシャーシ９１０１およびシャーシ９１０２のどちらかからもしくは両方から選択されグループ化される可能性がある。
【０１００】
図７に示す構成はＣＰＵ９００４とＩ／Ｏデバイス９００１とＩ／Ｏデバイス９００２はそれぞれシャーシ９００１に属するＣＰＵ９１１３とＩ／Ｏデバイス９１１１とＩ／Ｏデバイス９１１２と接続され、１つのＣＰＵ、それぞれ独立した２つのＩ／Ｏデバイスとして機能する。また、Ｉ／Ｏデバイス９００３はシャーシ９２０１に属するＩ／Ｏデバイス９２１１と接続され、１つのＩ／Ｏデバイスとして機能する。ここで、第３の実施の形態と同様にソフトウェア空間９５００に属する２つのプライオリティが異なる仮想装置の仮想資源の冗長構成としてＩ／Ｏデバイスの１＋１構成（現用系１つ、待機系に１つのＩ／Ｏデバイス）を設定するとする。
ここで、すべてのＩ／Ｏデバイス、シャーシ、電源の性能、可用性などの特性は等しいとし、等価な効果を生む選択肢は省略すると、Ｉ／Ｏデバイス９００１とＩ／Ｏデバイス９００２は完全に等価であり、両者を交換しただけの構成は省略する。すると現用系としてシャーシ９１０１のＩ／Ｏデバイスにするか、シャーシ９２０１のＩ／Ｏデバイスにするかの選択があるが、完全に等価であることを仮定しているため、可用性という観点ではどちらか一方を考えれば十分である。
【０１０１】
そこで図７に示すハードウェア空間９０００では１＋１冗長に対して、
（選択肢１）現用系：Ｉ／Ｏデバイス９００１、待機系：Ｉ／Ｏデバイス９００２
（選択肢２）現用系：Ｉ／Ｏデバイス９００１、待機系：Ｉ／Ｏデバイス９００３
の２通りが考えられる。これは同一シャーシ内での冗長構成か、シャーシをまたいだ冗長構成かの違いである。
【０１０２】
電源故障という観点からは（選択肢１）は同じ電源で駆動される同一のシャーシ内のＩ／Ｏデバイス９１１１とＩ／Ｏデバイス９１１２に接続されているので、故障リスクを共有しており、（選択肢２）のほうが異なる電源で駆動されるため可用性が高い。そのため、第３の実施の形態で記載のように、管理者によって指定された仮想装置の仮想資源の冗長構成およびプライオリティに対して資源割当制御を決定する際に、物理資源管理手段９５０１より物理資源情報を参照し、上記のようなグループ化の違いによる可用性の違いを考慮し、よりプライオリティの高い仮想装置により可用性の高い構成を割り当てる。
【０１０３】
なお、本例では可用性を例とり、たとえば物理的な位置やネットワーク性能などによるデータ転送速度の違いなどに代表される性能、その他の制限事項を考慮からはずしたが、可用性に加え、管理ポリシーおよび構成設定情報に考慮したい制限事項を加え、最適設定選択時にその制限事項を含めることでその他の設定も可能であり、これに限るものではない。
【０１０４】
次に第４の実施の形態による効果について説明する。第４の実施の形態によれば、第２、第３の実施の形態の効果を引き継いだまま、物理的な位置情報や共有リスク情報などに代表される物理資源そのものの性能、および死活確認部の有無などに代表される可用性情報の他の情報を考慮したうえで、管理ポリシーや構成設定情報などの管理者の設定意思にもっとも沿う構成を自動的に選択することが可能である。
【０１０５】
そして、物理資源の障害リスクが一様でない場合にも、最適な構成をとることができる。その理由は、最適構成検索過程において、各物理資源の障害リスクを考慮して最適化できるためである。
以上、本発明の代表的な実施形態について説明したが、本実施形態は種々の変形が可能であり、本願の請求の範囲によって定義される本発明の精神及び範囲から逸脱しないかぎり、置換、変更が可能である。
【産業上の利用可能性】
【０１０６】
本発明は、複数の物理資源と、これら複数の物理資源を共有するためのソフトウェアを搭載するコンピュータ構成部とを備えたシステム、例えば、CPUおよびＩ／Ｏデバイスなどを物理資源として利用するITシステムやCPUとラインカードなどを物理資源として利用するネットワーク（NW）システムに用いることができる。
【図面の簡単な説明】
【０１０７】
【図１】本発明の最良の形態を示す図である。
【図２】本発明の最良の形態における動作フローの図である。
【図３】障害発生時に、ハードウェア方式とソフトウェア方式が連携し、高速障害回復を行う図である。
【図４】障害発生時に、ハードウェア方式とソフトウェア方式が連携し、高速障害回復を行う際の動作フロー図である。
【図５】複数のプライオリティの異なる仮想装置に対して、最適な資源を選択して冗長構成を設定する図である。
【図６】複数のプライオリティの異なる仮想装置に対して、最適な資源を選択して冗長構成を設定する際の動作フロー図である。
【図７】物理資源の障害リスクが一様でない場合に、それを設定に反映させる本発明の実施例の構成図である。
【図８】VMMによる仮想化の図である。
【図９】XENにおける仮想化アーキテクチャの図である。
【図１０】ソフトウェア方式による障害隠蔽方式の図である。
【図１１】RAIDによるハードウェアを用いた障害隠蔽方式の図である。
【図１２】死活確認装置による障害時の高速切替の図である。
【符号の説明】
【０１０８】
６１００  ハードウェア空間
６１０１，６１０２  物理資源
６１１１，６１１２  死活確認部
６１１３  死活確認信号
６１２１  中央演算部
６１３１  データ転送路（バス）
６５００  ソフトウェア空間
６５１０  仮想装置
６５１１  資源アクセス手段
６５２０  仮想資源空間
６５２１  仮想資源
６５５０  仮想化手段
６５５１  資源割当手段
６５５２  障害管理手段
６５５３，６５５４  資源アクセス手段
７１００  ハードウェア空間
７５００  ソフトウェア空間
７１０１，７１０２  Ｉ／Ｏデバイス
７１０３  ＣＰＵ
７１１１，７１１２  死活確認部
７１５０  データ転送路
７２０１  キープアライブ信号
７２０２  障害通知割り込み信号
７２０３  割り込み信号
７３０１  仮想資源
７５０１，７５０２  デバイスドライバ
７５０３  資源割当制御手段
７５０４  バックエンドデバイスドライバ
７５３０  仮想装置
７５３１  フロントエンドデバイスドライバ
７５３２  プロセス
７５５０  障害管理手段
７５５１  インターフェース手段
７５５３  情報格納手段
７５５４  処理管理手段
７５８０  仮想化手段
７９００  管理者
８１００  ハードウェア空間
８１５０  通信手段
８１０１，８１０２，８１０３  Ｉ／Ｏデバイス
８１０４  ＣＰＵ
８５００  ソフトウェア空間
８５０１，８５０２，８５０３  デバイスドライバ
８５０４，８５０５  バックエンドデバイスドライバ
８５０６  資源割当手段
８５３１，８５４１  フロントエンドデバイスドライバ
８５３２，８５４２  プロセス
８５８０  仮想化手段
８５３０，８５４０  仮想装置
８５５０  障害管理手段
８５５１  インターフェース手段
８５５２  設定管理手段
８５５３  情報格納手段
８５５４  処理管理手段
８５５５  物理資源管理手段
８７０１  構成設定情報
８７０２  管理ポリシー情報
８３０１，８３０２  仮想資源
８９００  管理者
９０００  ハードウェア空間
９００１，９００２，９００３  Ｉ／Ｏデバイス
９００４  ＣＰＵ
９１０１，９２０１  シャーシ
９１１１，９１１２  Ｉ／Ｏデバイス
９１１３  ＣＰＵ
９２１１，９２１２  Ｉ／Ｏデバイス
９２１３  ＣＰＵ
９１２１，９２２１  電源
９４００  スイッチ
９３０１  冗長ペア
９３０２  冗長ペア
９５００  ソフトウェア空間
９５０１  物理資源管理手段
９５０２  仮想装置
【図１】
2008107896.tif 000003
【図２】
2008107896.tif 000004
【図３】
2008107896.tif 000005
【図４】
2008107896.tif 000006
【図５】
2008107896.tif 000007
【図６】
2008107896.tif 000008
【図７】
2008107896.tif 000009
【図８】
2008107896.tif 000010
【図９】
2008107896.tif 000011
【図１０】
2008107896.tif 000012
【図１１】
2008107896.tif 000013
【図１２】
2008107896.tif 000014