(57)【要約】【課題】仮想計算機システムが利用する物理ハードウェアリソースで障害が発生した場合に、適切な障害処理を行うことができる仮想計算機システムを提供する。【解決手段】物理ハードウェア１００で障害が発生した場合に、物理ハードウェア障害処理プログラム１１１が、障害が発生したことを検知し、障害の内容を示す障害情報を生成する。障害情報記憶手段１１２が、障害情報を記憶する。各障害情報通知プログラムは、障害が発生したリソースの割り当てに応じて対応する仮想計算機に障害情報を出力し、対応する障害情報通知有無記憶手段に障害情報を出力したことを記憶させる。障害処理制御プログラム１１４は、障害が発生したリソースが割り当てられている仮想計算機のゲストＯＳに障害処理を行わせる。【選択図】図１
2007233687.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが備える物理ハードウェアリソースで発生した障害の処理を実行する機能を、前記コンピュータに発揮させるゲストオペレーティングシステムを複数搭載した仮想計算機システムにおいて、
前記物理ハードウェアリソースで障害が発生した場合に、前記障害が発生したことを検知し、前記障害の内容を示す障害情報を生成する障害検知手段と、
前記ゲストオペレーティングシステムに、前記障害検知手段が生成した障害情報を出力する障害情報出力手段と、
前記障害情報出力手段が出力した障害情報にもとづいて、前記ゲストオペレーティングシステムを用いて、前記コンピュータに、物理ハードウェアリソースで発生した障害の処理を実行する機能を発揮させる障害対処手段とを備えた
ことを特徴とする仮想計算機システム。
【請求項２】
障害情報出力手段は、障害が発生した物理ハードウェアリソースが割り当てられているゲストオペレーティングシステムに、障害検知手段が生成した障害情報を出力する
請求項１記載の仮想計算機システム。
【請求項３】
障害情報出力手段がゲストオペレーティングシステムに障害情報を出力した場合に、ゲストオペレーティングシステムごとに、障害情報を出力したことを示す情報を記憶手段に記憶させる通知記憶手段と、
障害検知手段が生成した障害情報を記憶手段に記憶させる障害情報記憶手段とを含み、
前記障害情報出力手段は、前記通知記憶手段が記憶手段に記憶させた情報にもとづいて、前記障害情報が出力されていないゲストオペレーティングシステムに、記憶手段が記憶している障害情報を出力する
請求項１または請求項２記載の仮想計算機システム。
【請求項４】
物理ハードウェアリソースの障害が解消された場合に、障害情報を出力したことを示す情報と障害情報とを記憶手段から消去する情報消去手段を含む
請求項３記載の仮想計算機システム。
【請求項５】
障害情報出力手段は、ゲストオペレーティングシステムに新たに物理ハードウェアリソースが割り当てられた場合、またはゲストオペレーティングシステムが物理ハードウェアリソースを利用する状態に遷移した場合に、記憶手段が記憶している障害情報を前記ゲストオペレーティングシステムに出力する
請求項３または請求項４記載の仮想計算機システム。
【請求項６】
障害情報出力手段は、ゲストオペレーティングシステムに割り当てられた物理ハードウェアリソースで発生した障害の内容を示す障害情報を、前記物理ハードウェアリソースが割り当てられた前記ゲストオペレーティングシステムに出力する
請求項５記載の仮想計算機システム。
【請求項７】
コンピュータが備える物理ハードウェアリソースで発生した障害の処理を実行する機能を、前記コンピュータに発揮させるゲストオペレーティングシステムを複数搭載した仮想計算機の制御方法において、
障害検知手段が、前記物理ハードウェアリソースで障害が発生した場合に、前記障害が発生したことを検知し、前記障害の内容を示す障害情報を生成する障害検知ステップと、
障害情報出力手段が、前記ゲストオペレーティングシステムに、前記障害検知ステップで生成した障害情報を出力する障害情報出力ステップと、
障害対処手段が、前記障害情報出力ステップで出力した障害情報にもとづいて、前記ゲストオペレーティングシステムを用いて、前記コンピュータに、物理ハードウェアリソースで発生した障害の処理を実行する機能を発揮させる障害対処ステップとを備えた
ことを特徴とする仮想計算機の制御方法。
【請求項８】
障害情報出力手段が、障害が発生した物理ハードウェアリソースが割り当てられているゲストオペレーティングシステムに、障害情報出力ステップで、障害検知ステップにおいて生成した障害情報を出力する
請求項７記載の仮想計算機の制御方法。
【請求項９】
障害情報出力ステップにおいてゲストオペレーティングシステムに障害情報を出力した場合に、通知記憶手段が、ゲストオペレーティングシステムごとに、障害情報を出力したことを示す情報を記憶手段に記憶させる通知記憶ステップと、
障害情報記憶手段が、障害検知ステップで生成した障害情報を記憶手段に記憶させる障害情報記憶ステップとを含み、
前記通知記憶ステップにおいて記憶手段に記憶させた情報にもとづいて、障害情報出力手段が、障害情報出力ステップで、前記障害情報が出力されていないゲストオペレーティングシステムに、記憶手段が記憶している障害情報を出力する
請求項７または請求項８記載の仮想計算機の制御方法。
【請求項１０】
物理ハードウェアリソースの障害が解消された場合に、情報消去手段が、障害情報を出力したことを示す情報と障害情報とを記憶手段から消去する情報消去ステップを含む
請求項９記載の仮想計算機の制御方法。
【請求項１１】
ゲストオペレーティングシステムに新たに物理ハードウェアリソースが割り当てられた場合、またはゲストオペレーティングシステムが物理ハードウェアリソースを利用する状態に遷移した場合に、障害情報出力手段が、障害情報出力ステップで、記憶手段が記憶している障害情報を前記ゲストオペレーティングシステムに出力する
請求項９または請求項１０記載の仮想計算機の制御方法。
【請求項１２】
障害情報出力手段が、障害情報出力ステップで、ゲストオペレーティングシステムに割り当てられた物理ハードウェアリソースで発生した障害の内容を示す障害情報を、前記物理ハードウェアリソースが割り当てられた前記ゲストオペレーティングシステムに出力する
請求項１１記載の仮想計算機の制御方法。
【請求項１３】
コンピュータが備える物理ハードウェアリソースで発生した障害の処理を実行する機能を、前記コンピュータに発揮させるゲストオペレーティングシステムを複数搭載した前記コンピュータに処理を実行させる仮想計算機プログラムにおいて、
前記コンピュータに、
前記コンピュータが備える前記物理ハードウェアリソースで障害が発生した場合に、前記障害が発生したことを検知し、前記障害の内容を示す障害情報を生成する障害検知処理と、
前記ゲストオペレーティングシステムに、前記障害検知処理で生成した障害情報を出力する障害情報出力処理と、
前記障害情報出力処理で出力した障害情報にもとづいて、前記ゲストオペレーティングシステムを用いて、前記コンピュータに、前記物理ハードウェアリソースで発生した障害の処理を実行する機能を発揮させる障害対処処理とを実行させる
ための仮想計算機プログラム。
【請求項１４】
コンピュータに、
障害情報出力処理で、障害が発生した物理ハードウェアリソースが割り当てられているゲストオペレーティングシステムに、障害検知処理において生成した障害情報を出力させる
請求項１３記載の仮想計算機プログラム。
【請求項１５】
コンピュータに、
障害情報出力処理でゲストオペレーティングシステムに障害情報を出力した場合に、ゲストオペレーティングシステムごとに、障害情報を出力したことを示す情報を記憶手段に記憶させる通知記憶処理と、
障害検知処理で生成した障害情報を記憶手段に記憶させる障害情報記憶処理とを実行させ、
前記障害情報出力処理において、前記通知記憶処理で記憶手段に記憶させた情報にもとづいて、前記障害情報が出力されていないゲストオペレーティングシステムに、記憶手段が記憶している障害情報を出力させる
請求項１３または請求項１４記載の仮想計算機プログラム。
【請求項１６】
コンピュータに、
物理ハードウェアリソースの障害が解消された場合に、障害情報を出力したことを示す情報と障害情報とを記憶手段から消去する情報消去処理を実行させる
請求項１５記載の仮想計算機プログラム。
【請求項１７】
コンピュータに、
ゲストオペレーティングシステムに新たに物理ハードウェアリソースが割り当てられた場合、またはゲストオペレーティングシステムが物理ハードウェアリソースを利用する状態に遷移した場合に、障害情報出力処理で、記憶手段が記憶している障害情報を前記ゲストオペレーティングシステムへ出力させる
請求項１５または請求項１６記載の仮想計算機プログラム。
【請求項１８】
コンピュータに、
障害情報出力処理で、ゲストオペレーティングシステムに割り当てられた物理ハードウェアリソースで発生した障害の内容を示す障害情報を、前記物理ハードウェアリソースが割り当てられた前記ゲストオペレーティングシステムに出力させる
請求項１７記載の仮想計算機プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想計算機を実現するコンピュータが備える物理ハードウェアリソースで発生した障害を処理する仮想計算機システム、仮想計算機の制御方法、および仮想計算機プログラムに関する。
【背景技術】
【０００２】
１台のコンピュータで、複数のオペレーティングシステム（以下、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）という。）の実行を実現するための計算機システムである仮想計算機システムがある。
【０００３】
従来の仮想計算機システムを実現するコンピュータには、ハイパバイザと呼ばれる仮想計算機制御プログラムが搭載されている。ハイパバイザは、仮想計算機システムを実現するコンピュータが備える物理ハードウェアリソースの障害の内容を判断し、障害を有する物理ハードウェアリソースを各仮想計算機に割り当てることを止めて、信頼性を確保している。
【０００４】
なお、物理ハードウェアリソースとは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、メモリ、ハードディスクである。
【０００５】
そして、物理ハードウェアリソースで発生した障害の内容を示す障害情報は、ハイパバイザや、その物理ハードウェアリソースがその時点で割り当てられている仮想計算機に渡され、障害処理に用いられる。
【０００６】
しかし、仮想計算機環境の中で動作するソフトウェアである各ゲストＯＳは、従来の非仮想計算機システム（つまり、通常のコンピュータ）で動作するものである。そのため、ゲストＯＳは、物理ハードウェアリソースを占有する機能と、物理ハードウェアリソースで発生した障害を処理する機能（障害処理機能）とを有している。
【０００７】
ゲストＯＳが有する障害処理機能の処理能力は、想定されているゲストＯＳの需要者の特色に応じて大きな差がある。そのため、ユーザは、用途に応じて障害処理機能を意識的に使い分けている。
【０００８】
しかし、ゲストＯＳごとに障害処理機能が異なるため、ハイパバイザが障害処理を行う場合に、各ゲストＯＳが有する障害処理機能を有効に活用することができないという問題がある。
【０００９】
そのため、ハイパバイザが判断を誤り、ハイパバイザが、障害が発生していない物理ハードウェアリソースで障害が発生していると判断した場合に、実際にはゲストＯＳが利用可能な物理ハードウェアリソースをゲストＯＳに割り当てることができない。そのため、物理ハードウェアリソースの有効活用ができない。
【００１０】
また、従来の仮想計算機システムにおいて新たに作成された仮想計算機のゲストＯＳは、割り当てられた物理ハードウェアリソースの障害の履歴を知る方法がなかった。そのため、その物理ハードウェアリソースで仮想計算機システムの動作が不可能になるような障害が過去に発生していて、かつ修理などの対処がなされていなかった場合に、ゲストＯＳは、その物理ハードウェアリソースをそのまま利用してしまう。そのため、障害の再度の発生を未然に防げないという問題がある。
【００１１】
特許文献１には、物理ハードウェアリソースの障害情報のうち、複数の仮想計算機に共通する物理ハードウェアリソースに関する障害情報をハイパバイザに渡し、ハイパバイザが、各仮想計算機にはその障害情報を隠蔽した形で処理を行い、それ以外の障害情報を各仮想計算機に渡して各仮想計算機のゲストＯＳが処理を行う方法が記載されている。
【００１２】
特許文献２には、物理ハードウェアリソースで発生した障害の内容を示す情報を、パーティション単位で管理するシステムが記載されている。
【００１３】
【特許文献１】特開２００３−３２３３０６号公報  （段落００１０〜００３１、図１）
【特許文献２】特開２００２−２２９８０６号公報  （段落００２１〜０１０８、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１４】
特許文献１に記載されている方法には、仮想計算機間に共通する物理ハードウェアリソースで障害が発生した場合に、ゲストＯＳに応じた障害処理を行うことができないという問題がある。
【００１５】
例えば、ハイパバイザは、各ゲストＯＳにとって重要な障害であるのか否かを判断することができないため、各ゲストＯＳに応じた適切な障害処理を行うことができない。
【００１６】
また、特許文献２に記載されているシステムは、ゲストＯＳが利用する物理ハードウェアリソースをパーティションを跨って移動させた場合に、ゲストＯＳが、発生した障害の処理がなされていない物理ハードウェアリソースを利用してしまい、システムが停止してしまう等の危険性がある。
【００１７】
本発明は、仮想計算機システムが利用する物理ハードウェアリソースで障害が発生した場合に、適切な障害処理を行うことができる仮想計算機システム、仮想計算機の制御方法、および仮想計算機プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明による仮想計算機システムは、コンピュータが備える物理ハードウェアリソースで発生した障害の処理を実行する機能を、コンピュータに発揮させるゲストＯＳを複数搭載した仮想計算機システムであって、物理ハードウェアリソースで障害が発生した場合に、障害が発生したことを検知し、障害の内容を示す障害情報を生成する障害検知手段と、ゲストＯＳに、障害検知手段が生成した障害情報を出力する障害情報出力手段と、障害情報出力手段が出力した障害情報にもとづいて、ゲストＯＳを用いて、コンピュータに、物理ハードウェアリソースで発生した障害の処理を実行する機能を発揮させる障害対処手段とを備えたことを特徴とする。
【００１９】
障害情報出力手段は、障害が発生した物理ハードウェアリソースが割り当てられているゲストＯＳに、障害検知手段が生成した障害情報を出力してもよい。
【００２０】
障害情報出力手段がゲストＯＳに障害情報を出力した場合に、ゲストＯＳごとに、障害情報を出力したことを示す情報を記憶手段に記憶させる通知記憶手段と、障害検知手段が生成した障害情報を記憶手段に記憶させる障害情報記憶手段とを含み、障害情報出力手段は、通知記憶手段が記憶手段に記憶させた情報にもとづいて、障害情報が出力されていないゲストＯＳに、記憶手段が記憶している障害情報を出力してもよい。
【００２１】
物理ハードウェアリソースの障害が解消された場合に、障害情報を出力したことを示す情報と障害情報とを記憶手段から消去する情報消去手段を含んでもよい。
【００２２】
障害情報出力手段は、ゲストＯＳに新たに物理ハードウェアリソースが割り当てられた場合、またはゲストＯＳが物理ハードウェアリソースを利用する状態に遷移した場合に、記憶手段が記憶している障害情報をゲストＯＳに出力してもよい。。
【００２３】
障害情報出力手段は、ゲストＯＳに割り当てられた物理ハードウェアリソースで発生した障害の内容を示す障害情報を、物理ハードウェアリソースが割り当てられたゲストＯＳに出力してもよい。
【００２４】
本発明による仮想計算機の制御方法は、コンピュータが備える物理ハードウェアリソースで発生した障害の処理を実行する機能を、コンピュータに発揮させるゲストＯＳを複数搭載した仮想計算機の制御方法であって、障害検知手段が、物理ハードウェアリソースで障害が発生した場合に、障害が発生したことを検知し、障害の内容を示す障害情報を生成する障害検知ステップと、障害情報出力手段が、ゲストＯＳに、障害検知ステップで生成した障害情報を出力する障害情報出力ステップと、障害対処手段が、障害情報出力ステップで出力した障害情報にもとづいて、ゲストＯＳを用いて、コンピュータに、物理ハードウェアリソースで発生した障害の処理を実行する機能を発揮させる障害対処ステップとを備えたことを特徴とする。
【００２５】
障害情報出力手段が、障害が発生した物理ハードウェアリソースが割り当てられているゲストＯＳに、障害情報出力ステップで、障害検知ステップにおいて生成した障害情報を出力してもよい。
【００２６】
障害情報出力ステップにおいてゲストＯＳに障害情報を出力した場合に、通知記憶手段が、ゲストＯＳごとに、障害情報を出力したことを示す情報を記憶手段に記憶させる通知記憶ステップと、障害情報記憶手段が、障害検知ステップで生成した障害情報を記憶手段に記憶させる障害情報記憶ステップとを含み、通知記憶ステップにおいて記憶手段に記憶させた情報にもとづいて、障害情報出力手段が、障害情報出力ステップで、障害情報が出力されていないゲストＯＳに、記憶手段が記憶している障害情報を出力してもよい。
【００２７】
物理ハードウェアリソースの障害が解消された場合に、情報消去手段が、障害情報を出力したことを示す情報と障害情報とを記憶手段から消去する情報消去ステップを含んでもよい。
【００２８】
ゲストＯＳに新たに物理ハードウェアリソースが割り当てられた場合、またはゲストＯＳが物理ハードウェアリソースを利用する状態に遷移した場合に、障害情報出力手段が、障害情報出力ステップで、記憶手段が記憶している障害情報をゲストＯＳに出力してもよい。
【００２９】
障害情報出力手段が、障害情報出力ステップで、ゲストＯＳに割り当てられた物理ハードウェアリソースで発生した障害の内容を示す障害情報を、物理ハードウェアリソースが割り当てられたゲストＯＳに出力してもよい。
【００３０】
本発明による仮想計算機プログラムは、コンピュータが備える物理ハードウェアリソースで発生した障害の処理を実行する機能を、コンピュータに発揮させるゲストＯＳを複数搭載したコンピュータに処理を実行させる仮想計算機プログラムであって、コンピュータに、そのコンピュータが備える物理ハードウェアリソースで障害が発生した場合に、障害が発生したことを検知し、障害の内容を示す障害情報を生成する障害検知処理と、ゲストＯＳに、障害検知処理で生成した障害情報を出力する障害情報出力処理と、障害情報出力処理で出力した障害情報にもとづいて、ゲストＯＳを用いて、コンピュータに、物理ハードウェアリソースで発生した障害の処理を実行する機能を発揮させる障害対処処理とを実行させることを特徴とする。
【００３１】
コンピュータに、障害情報出力処理で、障害が発生した物理ハードウェアリソースが割り当てられているゲストＯＳに、障害検知処理において生成した障害情報を出力させてもよい。
【００３２】
コンピュータに、障害情報出力処理でゲストＯＳに障害情報を出力した場合に、ゲストＯＳごとに、障害情報を出力したことを示す情報を記憶手段に記憶させる通知記憶処理と、障害検知処理で生成した障害情報を記憶手段に記憶させる障害情報記憶処理とを実行させ、障害情報出力処理において、通知記憶処理で記憶手段に記憶させた情報にもとづいて、障害情報が出力されていないゲストＯＳに、記憶手段が記憶している障害情報を出力させてもよい。
【００３３】
コンピュータに、物理ハードウェアリソースの障害が解消された場合に、障害情報を出力したことを示す情報と障害情報とを記憶手段から消去する情報消去処理を実行させてもよい。
【００３４】
コンピュータに、ゲストＯＳに新たに物理ハードウェアリソースが割り当てられた場合、またはゲストＯＳが物理ハードウェアリソースを利用する状態に遷移した場合に、障害情報出力処理で、記憶手段が記憶している障害情報をゲストＯＳへ出力させてもよい。
【００３５】
コンピュータに、障害情報出力処理で、ゲストＯＳに割り当てられた物理ハードウェアリソースで発生した障害の内容を示す障害情報を、物理ハードウェアリソースが割り当てられたゲストＯＳに出力させてもよい。
【発明の効果】
【００３６】
本発明によれば、仮想計算機システムを実現するコンピュータが備える物理ハードウェアリソースを有効活用することができる。
【００３７】
その理由は、仮想計算機に割り当てられた物理ハードウェアリソースの障害情報をゲストＯＳに出力し、ゲストＯＳが有する障害処理機能を活用するためである。
【００３８】
障害が発生した物理ハードウェアリソースが割り当てられているゲストＯＳに、障害検知手段が生成した障害情報を出力するように構成されている場合には、障害が発生した物理ハードウェアリソースが割り当てられているゲストＯＳが有する障害処理機能を活用することができる。
【００３９】
記憶手段が、障害情報とゲストＯＳごとに障害情報を出力したことを示す情報とを記憶するように構成されている場合には、障害情報を、漏れなく過去にも遡ってゲストＯＳに出力することができる。
【００４０】
例えば、ゲストＯＳに、新たに物理ハードウェアリソースが割り当てられた場合や、ゲストＯＳが物理ハードウェアリソースを利用する状態に遷移した場合に、その物理ハードウェアリソースで過去に発生した障害の内容を示す障害情報をゲストＯＳに出力する。そのため、ゲストＯＳが障害の処理を行い、障害の再度の発生を未然に防ぐことができる。
【００４１】
また、複数のゲストＯＳが、物理ハードウェアリソースを共有している場合（例えば、複数のゲストＯＳに、１つの物理ハードウェアリソースが割り当てられている場合）には、複数のゲストＯＳの全てに障害情報が出力されるので、障害解析性を向上させることができる。
【発明を実施するための最良の形態】
【００４２】
本発明の実施の形態について、図面を参照して説明する。図１は、本発明による仮想計算機システムの実施の形態を示す説明図である。
【００４３】
本発明による仮想計算機システムは、物理ハードウェア（物理ハードウェアリソース）１００を備えたコンピュータによって実現され、そのコンピュータは、ＣＰＵ１７０に各処理を実行させるハイパバイザ１１０、仮想計算機１３０、仮想計算機１４０、および仮想計算機１５０を搭載している。
【００４４】
そして、ハイパバイザ１１０、仮想計算機１３０、仮想計算機１４０、および仮想計算機１５０は、物理ハードウェア１００を備えたコンピュータが備えたＣＰＵ１７０を動作させるプログラムである。
【００４５】
ハイパバイザ１１０は、ＣＰＵ１７０に、物理ハードウェア１００を備えたコンピュータの動作を制御させる仮想計算機制御プログラムである。
【００４６】
物理ハードウェア１００を備えたコンピュータは、仮想計算機１３０に従って動作して仮想計算機環境を作る。そして、ゲストＯＳ１３１は、仮想計算機環境の中で動作し、そのコンピュータが備えたＣＰＵ１７０に、物理ハードウェア１００で発生した障害を処理する障害処理機能を発揮させる。
【００４７】
物理ハードウェア１００を備えたコンピュータは、仮想計算機１４０に従って動作して仮想計算機環境を作る。そして、ゲストＯＳ１４１は、仮想計算機環境の中で動作し、そのコンピュータが備えたＣＰＵ１７０に、物理ハードウェア１００で発生した障害を処理する障害処理機能を発揮させる。
【００４８】
物理ハードウェア１００を備えたコンピュータは、仮想計算機１５０に従って動作して仮想計算機環境を作る。そして、ゲストＯＳ１５１は、仮想計算機環境の中で動作し、そのコンピュータが備えたＣＰＵ１７０に、物理ハードウェア１００で発生した障害を処理する障害処理機能を発揮させる。
【００４９】
なお、図１に示す例では、仮想計算機およびゲストＯＳが３つずつ示されているが、本発明では、仮想計算機システムを実現するコンピュータが搭載するゲストＯＳの数は限定されない。
【００５０】
物理ハードウェア１００は、例えば、仮想計算機システムを実現するコンピュータが備えるＣＰＵ、メモリ、およびハードディスクである。
【００５１】
物理ハードウェア１００は、リソース１０１、リソース１０２、リソース１０３、記憶手段１６０、およびＣＰＵ１７０を含む。各リソースは、例えば、仮想計算機システムを実現するコンピュータが備えるＣＰＵ１７０、メモリ、およびハードディスクである。記憶手段１６０は、例えば、仮想計算機システムを実現するコンピュータが備えるメモリおよびハードディスクによって実現される。
【００５２】
なお、図１に示す例では、各リソースと記憶手段１６０とが分けて記載されているが、共通のメモリやハードディスクが、各リソースと記憶手段１６０とを実現してもよい。具体的には、例えば、１つのハードディスクのある領域が各リソースを実現し、他の領域が記憶手段１６０を実現する。
【００５３】
また、図１に示す例では、各リソースとＣＰＵ１７０とが分けて記載されているが、各リソースはＣＰＵ１７０を含んでいてもよい。具体的には、例えば、各リソースが、時分割でＣＰＵ１７０を共有している。
【００５４】
なお、図１に示す例では、リソースを３つ記載しているが、本発明では、各仮想計算機に割り当てられるリソースの数は限定されない。
【００５５】
記憶手段１６０は、障害情報記憶手段１１２、障害情報通知有無記憶手段１１５、障害情報通知有無記憶手段１１６、および障害情報通知有無記憶手段１１７を含む。
【００５６】
各障害情報通知有無記憶手段は、各仮想計算機と１対１に対応している。具体的には、障害情報通知有無記憶手段１１５は、仮想計算機１３０に対応している。障害情報通知有無記憶手段１１６は、仮想計算機１４０に対応している。障害情報通知有無記憶手段１１７は、仮想計算機１５０に対応している。
【００５７】
各障害情報通知有無記憶手段は、対応する各仮想計算機に障害情報が出力されたか否かを示す情報を、例えば、テーブル形式で記憶する。
【００５８】
障害情報記憶手段１１２は、発生した障害の内容を示す障害情報を記憶する。障害情報記憶手段１１２は、障害情報を、例えば、テーブル形式で記憶する。
【００５９】
ハイパバイザ１１０は、物理ハードウェア障害処理プログラム１１１、障害情報消去プログラム１１３、障害処理制御プログラム１１４、障害情報通知プログラム１１８、障害情報通知プログラム１１９、および障害情報通知プログラム１２０を含む。
【００６０】
障害検知手段は、例えば、仮想計算機システムを実現するコンピュータに搭載されたＣＰＵ１７０を動作させる物理ハードウェア障害処理プログラム１１１によって実現される。情報消去手段は、例えば、仮想計算機システムを実現するコンピュータに搭載されたＣＰＵ１７０を動作させる障害情報消去プログラム１１３によって実現される。
【００６１】
障害対処手段および障害情報記憶手段は、例えば、仮想計算機システムを実現するコンピュータに搭載されたＣＰＵ１７０を動作させる障害処理制御プログラム１１４によって実現される。
【００６２】
また、ハイパバイザ１１０、物理ハードウェア障害処理プログラム１１１、障害情報消去プログラム１１３、障害処理制御プログラム１１４、障害情報通知プログラム１１８、障害情報通知プログラム１１９、および障害情報通知プログラム１２０は、仮想計算機システムを実現するコンピュータに搭載されたＣＰＵ１７０の動作を制御するプログラムである。
【００６３】
なお、実際に処理を行うのはプログラムに従って動作するＣＰＵ１７０であるが、以下の説明では、便宜的に、プログラムの動作として記載する場合もある。例えば、「ハイパバイザ１１０が含む物理ハードウェア障害処理プログラム１１１が、ＣＰＵ１７０に、障害の発生を検知させる」ことを、「物理ハードウェア障害処理プログラム１１１が、障害の発生を検知する」等と記す場合がある。
【００６４】
また、「ＣＰＵ１７０が、仮想計算機プログラムが含む障害情報通知プログラム１１８に従って動作し、障害情報を仮想計算機１３０に従ってＣＰＵ１７０が作り出した仮想計算機環境の中で動作するゲストＯＳ１３１に出力する」ことを、「障害情報通知プログラム１１８が、障害情報を仮想計算機１３０に出力する」等と記す場合がある。
【００６５】
各障害情報通知プログラムは、各仮想計算機と１対１に対応している。具体的には、障害情報通知プログラム１１８は、仮想計算機１３０に対応している。障害情報通知プログラム１１９は、仮想計算機１４０に対応している。障害情報通知プログラム１２０は、仮想計算機１５０に対応している。なお、障害情報出力手段および通知記憶手段は、各障害情報通知プログラムによって実現される。
【００６６】
各障害情報通知プログラムは、障害情報記憶手段１１１が記憶している障害情報を、対応する各仮想計算機に出力する。つまり、各障害情報通知プログラムは、ＣＰＵ１７０に、障害情報を対応する仮想計算機環境の中で動作するゲストＯＳに出力させる。
【００６７】
物理ハードウェア障害処理プログラム１１１は、物理ハードウェア１００が含む各リソースのいずれかに障害が発生した場合に、その障害の内容を示す情報を収集して、その障害の内容を示す障害情報を生成する。つまり、物理ハードウェア障害処理プログラム１１１は、物理ハードウェア１００が含む各リソースのいずれかに障害が発生した場合に、ＣＰＵ１７０に、その障害の内容を示す情報を収集させて、その障害の内容を示す障害情報を生成させる。
【００６８】
また、物理ハードウェア障害処理プログラム１１１は、物理ハードウェア１００が含む各リソースのいずれかに障害が発生した場合に障害処理を行う。つまり、物理ハードウェア障害処理プログラム１１１は、物理ハードウェア１００が含む各リソースのいずれかに障害が発生した場合に、ＣＰＵ１７０に、障害処理を行わせる。
【００６９】
物理ハードウェア障害処理プログラム１１１がＣＰＵ１７０に行わせる障害処理とは、例えば、障害が発生したリソースを仮想計算機へ割り当てる処理を停止させる処理である。
【００７０】
障害情報消去プログラム１１３は、障害情報記憶手段１１２が記憶している障害情報が不要になった場合に、不要になった障害情報を障害情報記憶手段１１２から消去する。つまり、障害情報消去プログラム１１３は、障害情報記憶手段１１２が記憶している障害情報が不要になった場合に、ＣＰＵ１７０に、不要になった障害情報を障害情報記憶手段１１２から消去させる。
【００７１】
例えば、物理ハードウェア１００が含むリソースが修理されて障害が解消したことを物理ハードウェア障害処理プログラム１１１が検知した場合に、障害情報消去プログラム１１３は、ＣＰＵ１７０に、障害情報記憶手段１１２がテーブル形式で記憶している障害情報のうち、該当するエントリ（障害情報）を消去させる。
【００７２】
障害処理制御プログラム１１４は、仮想計算機システムの全体を制御するプログラムである。
【００７３】
なお、仮想計算機システムを実現するコンピュータは、そのコンピュータに、そのコンピュータ自身が備える物理ハードウェア１００で障害が発生した場合に、障害の発生を検知し、障害の内容を示す障害情報を生成する障害検知処理と、ゲストＯＳに、障害検知処理で生成した障害情報を出力する障害情報出力処理と、障害情報出力処理で出力した障害情報にもとづいて、ゲストＯＳを用いて、そのコンピュータに、物理ハードウェア１００で発生した障害の処理を実行させる障害対処処理とを実行する機能を発揮させるための仮想計算機プログラムを搭載している。
【００７４】
次に、本発明の実施の形態の動作について、図面を参照して説明する。図２は、物理ハードウェア１００が含むリソースで障害が発生した場合の動作を説明するフローチャートである。
【００７５】
物理ハードウェア１００が含むリソース１０１、リソース１０２、またはリソース１０３に障害が発生した場合に、ハイパバイザ１１０の物理ハードウェア障害処理プログラム１１１は、障害が発生したリソースから障害情報を収集する（ステップＳ２０１）。
【００７６】
以下、仮想計算機１３０に割り当てられているリソース１０１に障害が発生した場合を例に、説明する。
【００７７】
障害処理制御プログラム１１４は、物理ハードウェア障害処理プログラム１１１が収集した障害情報を障害情報記憶手段１１２に記憶させる（ステップＳ２０２）。
【００７８】
障害処理制御プログラム１１４は、障害が発生したリソース１０１が仮想計算機に割り当てられているか否かを判断する（ステップＳ２０３）。
【００７９】
障害処理制御プログラム１１４は、障害が発生したリソース１０１が仮想計算機に割り当てられている場合に（ステップＳ２０３のＹ）、障害が発生したリソース１０１が割り当てられている仮想計算機１３０がアクティブ状態（割り当てられたリソースを利用している状態）か否かを判断する（ステップＳ２０４）。
【００８０】
障害が発生したリソース１０１が割り当てられている仮想計算機１３０がアクティブ状態であった場合（ステップＳ２０４のＹ）、アクティブ状態の仮想計算機１３０に対応する障害情報通知プログラム１１８が、対応する仮想計算機１３０に障害情報を出力する（ステップＳ２０５）。
【００８１】
障害情報を出力した障害情報通知プログラム１１８は、対応する障害情報通知有無記憶手段１１５に、障害情報を出力したことを記憶させる（ステップＳ２０６）
【００８２】
障害情報が入力された仮想計算機１３０のゲストＯＳ１３１は、ＣＰＵ１７０に、障害処理機能を発揮させる（ステップＳ２０７）。具体的には、障害情報が入力された仮想計算機１３０のゲストＯＳ１３１は、例えば、入力された障害情報にもとづいて、障害が発生したリソース１０１の利用を停止する。なお、障害処理制御プログラム１１４が、ゲストＯＳ１３１を用いて、ＣＰＵ１７０に障害処理機能を発揮させる処理を実行させてもよい。
【００８３】
次に、非アクティブ状態（割り当てられたリソースを利用していない状態）の仮想計算機を、アクティブ状態に遷移（復帰）させる場合の動作を説明する。図３は、非アクティブ状態の仮想計算機を、アクティブ状態に遷移させる場合の動作を説明するフローチャートである。
【００８４】
以下、リソース１０１が割り当てられている非アクティブ状態の仮想計算機１３０を、アクティブ状態に遷移させる場合を例に、説明する。
【００８５】
障害処理制御プログラム１１４は、障害情報記憶手段１１２が、アクティブ状態に遷移させる仮想計算機１３０に割り当てられているリソース１０１の障害情報を記憶しているか否かを確認する（ステップＳ３０１）。
【００８６】
障害情報記憶手段１１２が、アクティブ状態に遷移させる仮想計算機１３０に割り当てられているリソース１０１の障害情報を記憶している場合（ステップＳ３０１のＹ）、障害処理制御プログラム１１４は、アクティブ状態に遷移させる仮想計算機１３０に対応する障害情報通知有無記憶手段１１５が、障害情報を対応する仮想計算機１３０に出力したことを記憶しているか否かを確認する（ステップＳ３０２）。
【００８７】
障害情報記憶手段１１２が、アクティブ状態に遷移させる仮想計算機１３０に割り当てられているリソース１０１の障害情報を記憶していない場合（ステップＳ３０１のＮ）、またはアクティブ状態に遷移させる仮想計算機１３０に対応する障害情報通知有無記憶手段１１５が、障害情報を対応する仮想計算機１３０に出力したことを記憶している場合（ステップＳ３０２のＮ）、ハイパバイザ１１０は、非アクティブ状態の仮想計算機１３０を、アクティブ状態に遷移させる（ステップＳ３０３）。
【００８８】
アクティブ状態に遷移させる仮想計算機１３０に対応する障害情報通知有無記憶手段１１５が、障害情報を対応する仮想計算機１３０に出力したことを記憶していない場合（ステップＳ３０２のＹ）、アクティブ状態に遷移させる仮想計算機１３０に対応する障害情報通知プログラム１１８は、対応する仮想計算機１３０に、アクティブ状態に遷移させる仮想計算機１３０に割り当てられているリソース１０１の障害情報を出力する（ステップＳ３０４）。
【００８９】
障害情報通知プログラム１１８は、対応する仮想計算機１３０に障害情報を出力した場合に、対応する障害情報通知有無記憶手段１１５に、仮想計算機１３０へ障害情報を出力したことを記憶させる（ステップＳ３０５）。
【００９０】
そして、ハイパバイザ１１０は、非アクティブ状態の仮想計算機１３０を、アクティブ状態に遷移させる（ステップＳ３０６）。
【００９１】
障害情報が入力され、アクティブ状態に遷移した仮想計算機１３０のゲストＯＳ１３１は、ＣＰＵ１７０に、障害処理機能を発揮させる（ステップＳ３０７）。具体的には、障害情報が入力された仮想計算機１３０のゲストＯＳ１３１は、例えば、入力された障害情報にもとづいて、障害が発生したリソース１０１の利用を停止する。なお、障害処理制御プログラム１１４が、ゲストＯＳ１３１を用いて、ＣＰＵ１７０に障害処理機能を発揮させる処理を実行させてもよい。
【００９２】
次に、新たな仮想計算機環境を生成する場合の動作を説明する。図４は、新たな仮想計算機環境を生成する場合の動作を説明するフローチャートである。
【００９３】
以下、仮想計算機プログラムを搭載するコンピュータに、新たな仮想計算機環境を生成させる場合を例に、説明する。
【００９４】
障害処理制御プログラム１１４は、新たな仮想計算機環境を生成する仮想計算機１５０に対応する障害情報通知有無記憶手段１１７と、新たな仮想計算機環境を生成する仮想計算機１５０に対応する障害情報通知プログラム１２０とを生成する（ステップＳ４０１、Ｓ４０２）。
【００９５】
仮想計算機１５０に対応する障害情報通知有無記憶手段１１７を生成するとは、例えば、記憶手段１６０内に、新たな仮想計算機１５０に障害情報が出力されたか否かを示す情報を記憶する領域を確保することをいう。
【００９６】
仮想計算機１５０に対応する障害情報通知プログラム１２０を生成するとは、例えば、ハイパバイザ１１０と各仮想計算機とがメモリ（図示せず）を介して情報の入出力を行っている場合に、ハイパバイザ１１０と仮想計算機１５０とが情報の入出力を行うためのメモリの領域を確保することをいう。
【００９７】
ハイパバイザ１１０は、ＣＰＵ１７０に、例えば、仮想計算機１５０にリソース１０３を割り当てる処理を実行させる。そして、リソース１０３が割り当てられた仮想計算機１５０が、新たな仮想計算機環境を生成する（ステップＳ４０３）。
【００９８】
障害処理制御プログラム１１４は、仮想計算機１５０に割り当てられたリソース１０３の障害情報を、障害情報記憶手段１１２が記憶しているか否かを調べる（ステップＳ４０４）。
【００９９】
障害情報記憶手段１１２が、仮想計算機１５０に割り当てられたリソース１０３の障害情報を記憶している場合に（ステップＳ４０４のＹ）、仮想計算機１５０に対応する障害情報通知プログラム１２０は、仮想計算機１５０に、障害情報記憶手段１１２が記憶しているリソース１０３の過去の障害情報を出力する（ステップＳ４０５）。
【０１００】
障害情報通知プログラム１２０は、対応する仮想計算機１５０に障害情報を出力した場合に、対応する障害情報通知有無記憶手段１１７に、仮想計算機１５０へ障害情報を出力したことを記憶させる（ステップＳ４０６）。
【０１０１】
障害情報が入力された仮想計算機１５０のゲストＯＳ１５１は、ＣＰＵ１７０に、障害処理機能を発揮させる（ステップＳ４０７）。具体的には、障害情報が入力された仮想計算機１５０のゲストＯＳ１５１は、例えば、入力された障害情報にもとづいて、障害が発生したリソース１０３の利用を停止する。なお、障害処理制御プログラム１１４が、ゲストＯＳ１５１を用いて、ＣＰＵ１７０に障害処理機能を発揮させる処理を実行させてもよい。
【０１０２】
次に、仮想計算機に割り当てられたリソースを移動する場合の動作を説明する。図５は、仮想計算機に割り当てられたリソースを移動する場合の動作を説明するフローチャートである。
【０１０３】
以下、仮想計算機１３０に割り当てられているリソース１０１を、仮想計算機１４０に割り当てる場合を例に説明する。
【０１０４】
移動するリソース１０１を利用している仮想計算機１３０のゲストＯＳ１３１は、移動するリソース１０１の利用を停止する（ステップＳ５０１）。
【０１０５】
ハイパバイザ１１０は、移動するリソース１０１を利用している仮想計算機１３０に割り当てているリソースのうち、移動するリソース１０１の割り当てを解除する（ステップＳ５０２）。
【０１０６】
ハイパバイザ１１０は、移動するリソース１０１を、移動先の仮想計算機１４０に割り当てる（ステップＳ５０３）。
【０１０７】
障害処理制御プログラム１１４は、障害情報記憶手段１１２が、移動するリソース１０１の障害情報を記憶しているか否かを確認する（ステップＳ５０４）。
【０１０８】
障害情報記憶手段１１２が、移動するリソース１０１の障害情報を記憶している場合（ステップＳ５０４のＹ）、障害処理制御プログラム１１４は、移動するリソース１０１が割り当てられた仮想計算機１４０に対応する障害情報通知有無記憶手段１１６が、障害情報を対応する仮想計算機１４０に出力したことを記憶しているか否かを確認する（ステップＳ５０５）。
【０１０９】
移動するリソース１０１が割り当てられた仮想計算機１４０に対応する障害情報通知有無記憶手段１１６が、障害情報を対応する仮想計算機１４０に出力したことを記憶していない場合（ステップＳ５０５のＹ）、移動するリソース１０１が割り当てられた仮想計算機１４０に対応する障害情報通知プログラム１１９は、対応する仮想計算機１４０に、移動するリソース１０１の障害情報を出力する（ステップＳ５０６）。
【０１１０】
障害情報通知プログラム１１９は、対応する仮想計算機１４０に障害情報を出力した場合に、対応する障害情報通知有無記憶手段１１６に、仮想計算機１４０へ障害情報を出力したことを記憶させる（ステップＳ５０７）。
【０１１１】
移動するリソース１０１が割り当てられた仮想計算機１４０に対応する障害情報通知有無記憶手段１１６が、障害情報を対応する仮想計算機１４０に出力したことを記憶している場合（ステップＳ５０５のＮ、およびステップＳ５０７）、移動するリソース１０１が割り当てられた仮想計算機１４０のゲストＯＳ１４１は、新たに割り当てられたリソース１０１の利用を開始する（ステップＳ５０８）。
【０１１２】
障害情報が入力され、新たなリソース１０１が割り当てられた仮想計算機１４０のゲストＯＳ１４１は、ＣＰＵ１７０に、障害処理機能を発揮させる（ステップＳ５０９）。具体的には、障害情報が入力された仮想計算機１４０のゲストＯＳ１４１は、例えば、入力された障害情報にもとづいて、障害が発生したリソース１０１の利用を停止する。なお、障害処理制御プログラム１１４が、ゲストＯＳ１４１を用いて、ＣＰＵ１７０に障害処理機能を発揮させる処理を実行させてもよい。
【０１１３】
また、障害情報記憶手段１１２が、移動するリソース１０１の障害情報を記憶していない場合（ステップＳ５０４のＮ）、移動するリソース１０１が割り当てられた仮想計算機１４０のゲストＯＳ１４１は、新たに割り当てられたリソース１０１の利用を開始する（ステップＳ５１０）。
【０１１４】
次に、リソースの障害が解消した場合の動作を説明する。図６は、リソースの障害が解消した場合の動作を説明するフローチャートである。
【０１１５】
以下、仮想計算機１３０に割り当てられていたリソース１０１の障害が解消した場合を例に説明する。
【０１１６】
物理ハードウェア１００に修理などが行われ、リソース１０１の障害が解消した場合に、障害処理制御プログラム１１４は、リソース１０１の障害が解消したことを検知する（ステップＳ６０１）。
【０１１７】
そして、障害情報消去プログラム１１３は、障害情報記憶手段１１２が記憶している障害情報であって、解消した障害の内容を示す障害情報を障害情報記憶手段１１２から消去する（ステップＳ６０２）。
【０１１８】
障害処理制御プログラム１１４は、各障害情報通知有無記憶手段が記憶している情報のうち、解消した障害の内容を示す障害情報を対応する仮想計算機に出力したことを示す情報を、各障害情報通知有無記憶手段から消去する（ステップＳ６０３）。
【０１１９】
なお、本例では、障害が解消したことの検知と、障害情報の消去とを自動的に行っているが、保守員などが人手で障害情報の消去を行ってもよい。
【０１２０】
以上に述べたように、本実施の形態によれば、リソースの障害情報を仮想計算機に出力して、仮想計算機のゲストＯＳの障害処理機能を活用するので、仮想計算機システムを実現するコンピュータが備える物理ハードウェアリソースを有効活用することができる。
【０１２１】
また、障害情報記憶手段１１２が障害情報を記憶し、各障害情報通知有無記憶手段が、対応する仮想計算機に障害情報を出力したことを示す情報を記憶するので、障害情報を、漏れなく過去にも遡って仮想計算機に出力することができる。
【０１２２】
仮想計算機に新たにリソースが割り当てられた場合、仮想計算機がリソースを利用する状態に遷移した場合、およびリソースの割り当てが、ある仮想計算機から他の仮想計算機に移動した場合に、そのリソースで過去に発生した障害の内容を示す障害情報を移動先の仮想計算機に出力するので、ゲストＯＳがＣＰＵ１７０に障害の処理を実行する機能を発揮させることができる。そのため、障害の再度の発生を未然に防ぐことができる。
【０１２３】
また、複数の仮想計算機が、リソースを共有している場合（例えば、複数の仮想計算機に、１つのリソースが割り当てられている場合）には、複数の仮想計算機の全てに障害情報が出力されるので、複数の仮想計算機の各ゲストＯＳが有する障害処理機能を活用して、障害解析性を向上させることができる。
【産業上の利用可能性】
【０１２４】
本発明は、ハイパバイザと呼ばれる制御プログラムを利用した仮想計算機システムに適用することができる。
【図面の簡単な説明】
【０１２５】
【図１】本発明による仮想計算機システムの実施の形態を示す説明図である。
【図２】物理ハードウェアが含むリソースで障害が発生した場合の動作を説明するフローチャートである。
【図３】非アクティブ状態の仮想計算機を、アクティブ状態に遷移させる場合の動作を説明するフローチャートである。
【図４】新たな仮想計算機環境を生成する場合の動作を説明するフローチャートである。。
【図５】仮想計算機に割り当てられたリソースを移動する場合の動作を説明するフローチャートである。
【図６】リソースの障害が解消した場合の動作を説明するフローチャートである。
【符号の説明】
【０１２６】
１００  物理ハードウェア
１０１、１０２、１０３  リソース
１１０  ハイパバイザ
１１１  物理ハードウェア障害処理プログラム
１１２  障害情報記憶手段
１１３  障害情報消去プログラム
１１４  障害情報制御プログラム
１１５、１１６、１１７  障害情報通知有無記憶手段
１１８、１１９、１２０  障害情報通知プログラム
１３０、１４０、１５０  仮想計算機
１３１、１４１、１５１  ゲストＯＳ
１７０  ＣＰＵ
【図１】
2007233687.tif 000003
【図２】
2007233687.tif 000004
【図３】
2007233687.tif 000005
【図４】
2007233687.tif 000006
【図５】
2007233687.tif 000007
【図６】
2007233687.tif 000008