(57)【特許請求の範囲】
【請求項１】
あるハードウエア上に仮想的に動作する現用ホストＯＳにより管理される仮想計算機システムを動作制御するためにコンピュータを、
前記仮想計算機システムに備えられるＩ／Ｏ装置の動作を制御する現用ドライバＯＳが起動すると、該現用ドライバＯＳを前記仮想計算機システムに備えられる所定の記録手段にコピーし前記現用ドライバＯＳと同じ機能をもつ予備ドライバＯＳを前記ハードウエア上に動作させる手段、
前記ハードウエア上に仮想的に動作するゲストＯＳから前記現用ドライバＯＳを介して前記Ｉ／Ｏ装置へ出される前記現用ドライバＯＳの状態の変化が生じる要求について前記予備ドライバＯＳに通知し、前記予備ドライバＯＳの状態を前記現用ドライバＯＳと同じ状態になるように変更する手段、
前記Ｉ／Ｏ装置から前記現用ドライバＯＳを介して前記ゲストＯＳへ出される前記現用ドライバＯＳの状態の変化が生じる動作完了通知について前記予備ドライバＯＳに通知し、前記予備ドライバＯＳの状態を前記現用ドライバＯＳと同じ状態になるように変更する手段、
前記現用ドライバＯＳが異常になると、前記ゲストＯＳから出される要求を前記予備ドライバＯＳを介して前記Ｉ／Ｏ装置へ通知すると共に、前記Ｉ／Ｏ装置から出される動作完了通知を前記予備ドライバＯＳを介して前記ゲストＯＳへ通知する手段、
前記現用ドライバＯＳが異常でない場合、前記ゲストＯＳから前記予備ドライバＯＳを介して前記Ｉ／Ｏ装置へ出される要求を破棄すると共に、前記Ｉ／Ｏ装置から前記予備ドライバＯＳを介して前記ゲストＯＳへ出される動作完了通知を破棄する手段、
として機能させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記現用ホストＯＳまたは前記現用ドライバＯＳに対して返答要求を出し、その返答要求に対応する返答が前記現用ホストＯＳまたは前記現用ドライバＯＳから所定時間内に出ない場合、前記現用ホストＯＳまたは前記現用ドライバＯＳが異常であると判断する手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、あるハードウエア上に仮想的に動作するホストＯＳにより管理される仮想計算機システムに関する。
【背景技術】
【０００２】
図１６は、既存の仮想計算機システムを示す図である。
図１６に示す仮想計算機システム１６０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などから構成されるハードウエア１６１上でそれぞれ仮想計算機（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）として動作する、ホストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）１６２（Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘなど）、ゲストＯＳ１６３（Ｗｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘなど）、及びドライバＯＳ１６４と、ハードウエア１６１上で動作しホストＯＳ１６２、ゲストＯＳ１６３、及びドライバＯＳ１６４のそれぞれの動作制御を行う仮想計算機モニタ（ＶＭＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）１６５とにより構成されている。
【０００３】
上記ホストＯＳ１６２は、ゲストＯＳ１６３やドライバＯＳ１６４などの仮想計算機のドメインとして動作し、仮想計算機モニタ１６５と会話しながらゲストＯＳ１６３やドライバＯＳ１６４の管理を行うＯＳである。また、ホストＯＳ１６２は、仮想計算機システム１６０のｂｏｏｔ時に自動で起動され、仮想計算機システム１６０全体の資源管理や割当て、ゲストＯＳ１６３やドライバＯＳ１６４の動作制御（起動や終了など）を行う。すなわち、ホストＯＳ１６２は、仮想計算機システム１６０を管理するＯＳである。なお、ホストＯＳ１６２は、同時に、ドライバＯＳとしても動作可能である。
【０００４】
上記ゲストＯＳ１６３は、仮想計算機としての構成上、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）装置をもたないＯＳであり、ユーザが使用する通常のＯＳである。
上記ドライバＯＳ１６４は、仮想計算機モニタ１６５を介してゲストＯＳ１６３と会話しながらハードディスクやＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの外部記録装置であるＩ／Ｏ装置１６６やネットワークに接続するための通信装置であるＩ／Ｏ装置１６７などの動作制御を行うＯＳである。実際にＩ／Ｏ装置１６６、１６７を実行させるのはドライバＯＳ１６４であり、ゲストＯＳ１６３はドライバＯＳ１６４に対して要求を出すことによりＩ／Ｏ装置１６６、１６７を実行させる。また、ドライバＯＳ１６４は、ホストＯＳ１６２上やゲストＯＳ１６３上でも動作可能である。なお、ドライバＯＳ１６４をゲストＯＳ１６３上で動作させた場合、そのドライバＯＳ１６４は、そのゲストＯＳ１６３のドライバＯＳとなる。
【０００５】
上記仮想計算機モニタ１６５は、仮想計算機システム１６０全体を制御する層であり、各ＯＳのディスパッチ、各ＯＳが実行する特権命令のエミュレーション、及びＣＰＵに関するハードウエア制御などを行う。
【０００６】
例えば、ユーザによりホストＯＳ１６２を起動させるための操作が行われると、ホストＯＳ１６２が起動し仮想計算機システム１６０に接続されるディスプレイ１６８にホストＯＳ１６２の操作画面が表示される。次に、ユーザによりホストＯＳ１６２の操作画面上のゲストＯＳ１６３の起動が選択されると、ゲストＯＳ１６３が起動しディスプレイ１６８にゲストＯＳ１６３の操作画面が表示される。そして、ユーザによりゲストＯＳ１６３の操作画面上のＩ／Ｏ装置１６６の実行が選択されると、図１７に示すように、ゲストＯＳ１６３からＦｒｏｎｔｅｎｄ  Ｄｒｉｖｅｒ１６９を介して仮想計算機モニタ１６５にＩ／Ｏ装置１６６の実行要求が出される。すると、仮想計算機モニタ１６５からドライバＯＳ１６４のＢａｃｋｅｎｄ  Ｄｒｉｖｅｒ１７０及び実Ｉ／Ｏドライバ１７１を介してＩ／Ｏ装置１６６に実行要求が通知され、Ｉ／Ｏ装置１６６が実行される。なお、Ｉ／Ｏ装置１６６から出される動作完了通知は、実Ｉ／Ｏドライバ１７１、Ｂａｃｋｅｎｄ  Ｄｒｉｖｅｒ１７０、仮想計算機モニタ１６５、及びＦｒｏｎｔｅｎｄ  Ｄｒｉｖｅｒ１６９を介してゲストＯＳ１６３に通知される。
【０００７】
そして、従来では、このような仮想計算機システム１６０を基本として、様々な形態の仮想計算機システムが考えられている。
例えば、各仮想計算機システムで実計算機資源に共通の論理名称を付与して管理する手段を設けることで、仮想計算機システム間において仮想計算機の移動を行うものがある（例えば、特許文献１参照）。
【０００８】
また、例えば、ハードウエア資源を仮想的に２つ以上に分離し、分離した仮想ハードウエア上で同時に動作する２つ以上のＯＳを用意し、そのうちの任意の仮想ハードウエアが管理するメモリの一部を他の仮想ハードウエア上で動作するＯＳから読み書きできるようにし、他の仮想ハードウエア上のＯＳで動作するソフトウエアの障害回復のための情報をそのメモリに保持し、そのソフトウエアの障害回復に利用するものがある（例えば、特許文献２参照）。
【０００９】
しかしながら、このような仮想計算機システムでは、一般的に、ホストＯＳが仮想計算機システムに対して１つ備えられ、ドライバＯＳがＩ／Ｏ装置に対して１つ備えられる構成であるため、ホストＯＳやドライバＯＳに障害が発生すると、ゲストＯＳとＩ／Ｏ装置とのやりとりの制御ができなくなる。そのため、仮想計算機システムの運用が継続できず仮想計算機システムの信頼性が低下するという問題がある。
【００１０】
そこで、この問題を解決するための１つの方法として、ホストＯＳやドライバＯＳと同じ機能をもつ予備ホストＯＳや予備ドライバＯＳを事前につくっておき、現用ホストＯＳや現用ドライバＯＳに障害が発生したとき、予備ホストＯＳや予備ドライバＯＳに現用ホストＯＳや現用ドライバＯＳの処理やデータを引き継がせることが考えられる。
【００１１】
予備ホストＯＳや予備ドライバＯＳをつくる方法としては、例えば、現用ホストＯＳや現用ドライバＯＳを実現するためのソフトウエア以外に予備ホストＯＳや予備ドライバＯＳを実現するためのソフトウエアを用意し、ホストＯＳやドライバＯＳを実現するためのソフトウエアを二重化することが考えられる。また、例えば、現用ホストＯＳや現用ドライバＯＳを実現するためのハードウエア以外に予備ホストＯＳや予備ドライバＯＳを実現するためのハードウエアを用意し、ホストＯＳやドライバＯＳを実現するためのハードウエアを二重化することも考えられる。
【００１２】
また、現用ホストＯＳや現用ドライバＯＳに障害が発生したとき、予備ホストＯＳや予備ドライバＯＳに現用ホストＯＳや現用ドライバＯＳの処理やデータを引き継がせる方法としては、例えば、フェールオーバという技術を行うことが考えられる。
【００１３】
このように仮想計算機システムを構成することにより、現用ホストＯＳや現用ドライバＯＳに障害が発生して、ゲストＯＳとＩ／Ｏ装置とのやりとりの制御ができなくなっても、現用ホストＯＳや現用ドライバＯＳの処理やデータを予備ホストＯＳや予備ドライバＯＳに引き継がせることができるので、ゲストＯＳとＩ／Ｏ装置とのやりとりが途切れることがなくなり、仮想計算機システムの信頼性が低下することを抑えることができる。
【特許文献１】特開平１０−２８３２１０号公報
【特許文献２】特開２００１−１０１０２１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
しかしながら、上述のように、ソフトウエアの二重化やハードウエアの二重化などにより予備ホストＯＳや予備ドライバＯＳを事前につくり、フェールオーバにより現用ホストＯＳや現用ドライバＯＳの処理やデータを予備ホストＯＳや予備ドライバＯＳに引き継がせる場合では、ソフトウエアの二重化やハードウエアの二重化のために仮想計算機システムのコストがかかるという問題がある。
【００１５】
また、フェールオーバにより現用ホストＯＳや現用ドライバＯＳの処理やデータを予備ホストＯＳや予備ドライバＯＳに引き継がせる際、予備ホストＯＳや予備ドライバＯＳの状態をできるだけ最新の状態にさせておく場合では、事前に現用ホストＯＳや現用ドライバＯＳの状態変化分を予備ホストＯＳや予備ドライバＯＳに反映させる必要がある。このように、フェールオーバを行う前に予め状態変化分を予備ホストＯＳや予備ドライバＯＳに反映させておくためには、常に現用ホストＯＳと予備ホストＯＳとの間や現用ドライバＯＳと予備ドライバＯＳとの間で互いに状態変化を監視したり、データの同期を行う必要がある。そのため、このような処理を行おうとする場合、仮想計算機システムのコストがさらにかかるという問題がある。
【００１６】
そこで、本発明は、予備ホストＯＳや予備ドライバＯＳをつくる場合であっても、コストを抑えることが可能な仮想計算機システムを機能させるためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
上記の課題を解決するために本発明では、以下のような構成を採用した。
すなわち、本発明では、あるハードウエア上で動作する現用ホストＯＳにより管理される仮想計算機システムにおいて、現用ホストＯＳが起動すると、その現用ホストＯＳを、仮想計算機システムに備えられる所定の記録手段（例えば、仮想計算機システムが備えるＲＡＭなどのメモリ）にコピーし現用ホストＯＳと同じ機能をもつ予備ホストＯＳをハードウエア上に動作させ、現用ホストＯＳへ出される要求を予備ホストＯＳにも通知して予備ホストＯＳの状態を変更する。そして、現用ホストＯＳが異常になると、仮想計算機システムの管理を現用ホストＯＳから予備ホストＯＳに切り換える。
【００１８】
これにより、常に予備ホストＯＳの状態を現用ホストＯＳの状態と同じにすることができるので、現用ホストＯＳが異常になってもすぐに仮想計算機システムの管理用ホストＯＳとして現用ホストＯＳから予備ホストＯＳに最新の状態で引き継ぐことができる。そのため、現用ホストＯＳが異常になっても仮想計算機システムの動作が途切れないので、仮想計算機システムの信頼性を低下させないようにすることができる。また、予備ホストＯＳをつくるために、ソフトウエアやハードウエアを二重化することなく、かつ、常に現用ホストＯＳと予備ホストＯＳとの間で互いに状態変化を監視したり、データの同期を行う必要がないため、仮想計算機システムのコストを抑えることができる。
【００１９】
また、本発明では、現用ホストＯＳへ出される要求が現用ホストＯＳの状態を変化させる場合、その要求を予備ホストＯＳに通知するように構成してもよい。
これにより、現用ホストＯＳへ出された要求を全て予備ホストＯＳに通知する場合に比べて、仮想計算機システムにかかる負荷を軽くすることができる。
【００２０】
また、本発明では、あるハードウエア上で動作する現用ホストＯＳにより管理される仮想計算機システムにおいて、その仮想計算機システムに備えられるＩ／Ｏ装置の動作を制御する現用ドライバＯＳが起動すると、その現用ドライバＯＳを、仮想計算機システムに備えられる所定の記録手段にコピーし現用ドライバＯＳと同じ機能をもつ予備ドライバＯＳをハードウエア上に動作させ、ハードウエア上に仮想的に動作するゲストＯＳから現用ドライバＯＳを介してＩ／Ｏ装置へ出される要求を予備ドライバＯＳに通知して予備ドライバＯＳの状態を変更すると共に、Ｉ／Ｏ装置から現用ドライバＯＳを介してゲストＯＳへ出される動作完了通知を予備ドライバＯＳに通知して予備ドライバＯＳの状態を変更する。そして、現用ドライバＯＳが異常になると、ゲストＯＳから出される要求を予備ドライバＯＳを介してＩ／Ｏ装置へ通知すると共に、Ｉ／Ｏ装置から出される動作完了通知を予備ドライバＯＳを介してゲストＯＳへ通知する。
【００２１】
これにより、常に予備ドライバＯＳの状態を現用ドライバＯＳの状態と同じにすることができるので、現用ドライバＯＳが異常になってもすぐにＩ／Ｏ装置の制御用ドライバＯＳとして現用ドライバＯＳから予備ドライバＯＳに最新の情報で引き継ぐことができる。そのため、現用ドライバＯＳが異常になってもゲストＯＳとＩ／Ｏ装置との間のやりとりが途切れないので、仮想計算機システムの信頼性を低下させないようにすることができる。また、予備ドライバＯＳをつくるために、ソフトウエアやハードウエアを二重化することなく、かつ、常に現用ドライバＯＳと予備ドライバＯＳとの間で互いに状態変化を監視したり、データの同期を行う必要がないため、仮想計算機システムのコストを抑えることができる。
【００２２】
また、本発明では、現用ドライバＯＳが異常でない場合、ゲストＯＳから予備ドライバＯＳを介してＩ／Ｏ装置へ出される要求を破棄すると共に、Ｉ／Ｏ装置から予備ドライバＯＳを介してゲストＯＳへ出される動作完了通知を破棄するように構成してもよい。
【００２３】
また、本発明では、現用ホストＯＳまたは現用ドライバＯＳに対して返答要求を出し、その返答要求に対応する返答が現用ホストＯＳまたは現用ドライバＯＳから所定時間内に出ない場合、現用ホストＯＳまたは現用ドライバＯＳが異常であると判断してもよい。
【発明の効果】
【００２４】
本発明によれば、予備ホストＯＳや予備ドライバＯＳをつくる場合であっても、コストを抑えて仮想計算機システムを構築することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態を図面を用いて説明する。
まず、ホストＯＳの二重化を実現するための構成について説明する。
図１は、本発明の実施形態の仮想計算機システムの原理図であり、ホストＯＳの二重化を実現するための仮想計算機システムを示している。
【００２６】
図１に示す仮想計算機システム１０は、ＣＰＵなどのハードウエア上で仮想計算機として動作し仮想計算機システム１０の管理を行う現用ホストＯＳ１１と、上記ハードウエア上で仮想計算機として動作し現用ホストＯＳ１１が異常になると（例えば、現用ホストＯＳ１１に負荷がかかり過ぎて現用ホストＯＳ１１が停止すると）現用ホストＯＳ１１の処理やデータを引き継ぐ予備ホストＯＳ１２と、上記ハードウエア上で動作し現用ホストＯＳ１１や予備ホストＯＳ１２の動作制御などを行う仮想計算機モニタ１３とを備えて構成されている。なお、図１に示す仮想計算機システム１０は、図示していないが、図１６に示す仮想計算機システム１６０と同様に、ゲストＯＳ１６３、ドライバＯＳ１６４、及びＩ／Ｏ装置１６６、１６７などを備えて構成されているものとする。また、予備ホストＯＳ１２は、現用ホストＯＳ１１が動作する仮想計算機とは別の仮想計算機上で動作するものとする。また、現用ホストＯＳ１１をつくるために必要な資源（ハードディスクやメモリなど）と予備ホストＯＳ１２をつくるために必要な資源は共用していても共用していなくてもよいが、仮想計算機システム１０の信頼性を向上させたい場合は資源を共用しない方が望ましい。
【００２７】
上記現用ホストＯＳ１１は、ハードディスクなどの記録部から現用ホストＯＳ１１を動作させるために必要なプログラムやデータが読み出され、そのプログラムやデータが仮想計算機システム１０に備えられるＲＡＭなどのメモリに書き込まれることにより起動する。
【００２８】
上記予備ホストＯＳ１２は、現用ホストＯＳ１１が起動すると、上記メモリ内の現用ホストＯＳ１１のプログラムやデータがｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能などにより別のメモリにコピーされることにより起動する。そのため、例えば、現用ホストＯＳ１１がＬｉｎｕｘである場合、その現用ホストＯＳ１１の予備ホストＯＳ１２は、現用ホストＯＳ１１と同様に、Ｌｉｎｕｘとなる。
【００２９】
上記仮想計算機モニタ１３は、通常（現用ホストＯＳ１１が異常でないとき）、現用ホストＯＳ１１への要求を割込みで予備ホストＯＳ１２にも通知し、現用ホストＯＳ１１が異常になると、仮想計算機システム１０の管理を現用ホストＯＳ１１から予備ホストＯＳ１２に切り換える。
【００３０】
図２は、上記ｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能を説明するための図である。
ｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能は、基本的には、上述したように、ある仮想計算機上で使用されるメモリ２０の内容を別の仮想計算機上で使用されるメモリ２１にコピーする機能であり、コピー元の仮想計算機が動作中でもメモリ２０の内容をメモリ２１にコピーすることができる（図２の矢印Ａ）。そのため、現用ホストＯＳ１１を動作させるために必要なプログラムやデータがメモリ２０に書き込まれて起動すると、そのメモリ２０内のプログラムやデータがｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能によりメモリ２１にコピーされて予備ホストＯＳ１２が動作するように構成しても、現用ホストＯＳ１１は動作が途切れない。また、ｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能により、任意のタイミングでコピー元の仮想計算機からコピー先の仮想計算機に切り換えることができる（図２の矢印Ｂ）。また、ｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能により、１つのコンピュータ内の２つのメモリ間であっても別々のコンピュータのそれぞれのメモリ間であっても仮想計算機のコピーや仮想計算機の切換えを行うことができる。これにより、予備ホストＯＳ１２を、現用ホストＯＳ１１が動作するコンピュータ上で動作させたり現用ホストＯＳ１１が動作するコンピュータとは別のコンピュータ上で動作させることができる。
【００３１】
なお、予備ホストＯＳ１２は、ｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能以外のメモリコピー機能を使用してつくるように構成してもよい。
次に、予備ホストＯＳ１２がつくられた後、予備ホストＯＳ１２の状態を常に現用ホストＯＳ１１の状態と同じにするための仮想計算機システム１０の動作について説明する。
【００３２】
図３は、予備ホストＯＳ１２の状態を常に現用ホストＯＳ１１の状態と同じにするための仮想計算機システム１０の動作を示すフローチャートである。
まず、現用ホストＯＳ１１は、仮想計算機モニタ１３へ要求を依頼する（ステップＳ１）。例えば、現用ホストＯＳ１１は、Ｈｙｐｅｒｖｉｓｏｒ  ｃａｌｌ命令により新しいゲストＯＳを起動させる旨の要求を仮想計算機モニタ１３へ依頼する。
【００３３】
次に、仮想計算機モニタ１３は、上記要求を受け付けると、その要求を処理する（ステップＳ２）。例えば、仮想計算機モニタ１３は、新しいゲストＯＳ１６３を起動させる旨の要求を受け付けると、新しいゲストＯＳを起動させる処理を行う。
【００３４】
次に、仮想計算機モニタ１３は、上記要求が現用ホストＯＳ１１の状態を変化させる要求であるか否かを判断する（ステップＳ３）。例えば、現用ホストＯＳ１１の状態を変化させる要求としては、新しいゲストＯＳを起動させる旨の要求やドライバＯＳを終了させる旨の要求など、現用ホストＯＳ１１が管理すべき内容を変更させる要求が考えられる。また、例えば、現用ホストＯＳ１１の状態が変化しない要求としては、ゲストＯＳの一覧表をディスプレイに表示させる旨の要求など、現用ホストＯＳ１１の管理すべき内容を変更させない要求が考えられる。
【００３５】
上記要求が現用ホストＯＳ１１の状態を変化させない要求であると判断すると（ステップＳ３がＮｏ）、仮想計算機システム１０は、予備ホストＯＳ１２の状態を常に現用ホストＯＳ１１の状態と同じにするための処理を終了する。
【００３６】
一方、上記要求が現用ホストＯＳ１１の状態を変化させる要求であると判断すると（ステップＳ３がＹｅｓ）、仮想計算機モニタ１３は、予備ホストＯＳ１２へ上記要求を割込み通知する（ステップＳ４）。
【００３７】
そして、予備ホストＯＳ１２は、割込み通知された上記要求を受け付けると、その要求に基づいて自身の状態を変更し（ステップＳ５）、仮想計算機システム１０は、予備ホストＯＳ１２の状態を常に現用ホストＯＳ１１の状態と同じにするための処理を終了する。例えば、予備ホストＯＳ１２は、新しいゲストＯＳを起動させる旨の要求を受け付けると、現在管理しているゲストＯＳのリストに新しいゲストＯＳを追加する。
【００３８】
図４は、現用ホストＯＳ１１から予備ホストＯＳ１２へ引継ぎを行う際の仮想計算機システム１０の動作を示すフローチャートである。
まず、現用ホストＯＳ１１と予備ホストＯＳ１２との間で互いの状態を一定時間毎に監視し合う（ステップＳＴ１）。例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅa  Ｎｅｔｗｏｒｋ）などを使用して現用ホストＯＳ１１と予備ホストＯＳ１２との間で通信を行い、互いの状態を監視することが考えられる。
【００３９】
次に、予備ホストＯＳ１２は、現用ホストＯＳ１１の異常を検出する（ステップＳＴ２）。例えば、予備ホストＯＳ１２は、現用ホストＯＳ１１へ返答要求を出し、その返答要求に対する返答が所定時間（例えば、５秒または１０秒）内に現用ホストＯＳ１１から出ないと、現用ホストＯＳ１１が異常であると判断するように構成してもよい。
【００４０】
次に、予備ホストＯＳ１２は、現用ホストＯＳ１１の異常を検出すると、仮想計算機モニタ１３へホストＯＳの切換え要求を依頼する（ステップＳＴ３）。
次に、仮想計算機モニタ１３は、ホストＯＳの切換え要求を受け付けると、現用ホストＯＳ１１へ停止要求を通知する（ステップＳＴ４）。現用ホストＯＳ１１は、停止要求を受け付けると、停止処理を行う。
【００４１】
次に、仮想計算機モニタ１３は、全ての要求の通知先を現用ホストＯＳ１１から予備ホストＯＳ１２に切り換える処理を行う（ステップＳＴ５）。
そして、予備ホストＯＳ１２は、現用ホストＯＳ１１に昇格し、仮想計算機システム１０の管理を行う（ステップＳＴ６）。
【００４２】
これにより、常に予備ホストＯＳ１２の状態を現用ホストＯＳ１１の状態と同じにすることができるので、現用ホストＯＳ１１に障害が発生し現用ホストＯＳ１１が異常になってもすぐに仮想計算機システム１０の管理用ホストＯＳとして現用ホストＯＳ１１から予備ホストＯＳ１２に最新の状態で引き継ぐことができる。そのため、現用ホストＯＳ１１が異常になっても仮想計算機システム１０の動作が途切れないので、仮想計算機システム１０の信頼性を低下させないようにすることができる。
【００４３】
また、従来のように、ソフトウエアの二重化やハードウエアの二重化などにより予備ホストＯＳを事前につくり、フェールオーバにより現用ホストＯＳの処理やデータを予備ホストＯＳに引き継がせる場合に比べて、ソフトウエアやハードウエアを二重化することなく、かつ、常に現用ホストＯＳ１１と予備ホストＯＳ１２との間で互いに状態変化を監視したり、データの同期を行う必要がないため、仮想計算機システム１０のコストを抑えることができる。
【００４４】
また、上記実施形態では、図３に示すフローチャートのように、現用ホストＯＳ１１へ出された要求が現用ホストＯＳ１１の状態を変化させる場合（図３のステップＳ３がＹｅｓ）、その要求を予備ホストＯＳ１２に通知する（図３のステップＳ４）構成であるが、図３のステップＳ３を省略し、現用ホストＯＳ１１へ出された要求を全て予備ホストＯＳ１２に通知し予備ホストＯＳ１２の状態を変更するように構成してもよい。図３に示すフローチャートのように、現用ホストＯＳ１１の状態を変化させる要求のみを予備ホストＯＳ１２にも通知する構成は、現用ホストＯＳ１１へ出された要求を全て予備ホストＯＳ１２にも通知する構成に比べて、予備ホストＯＳ１２や仮想計算機モニタ１３の負荷を軽くし仮想計算機システム１０にかかる負荷を軽くすることができる。
【００４５】
次に、ドライバＯＳの二重化を実現するための構成について説明する。
図５は、本発明の他の実施形態の仮想計算機システムであり、ドライバＯＳの二重化を実現するための仮想計算機システムを示している。
【００４６】
図５に示す仮想計算機システム５０は、ＣＰＵなどのハードウエア上で仮想計算機として動作するゲストＯＳ５１と、Ｉ／Ｏ装置５２と、上記ハードウエア上で仮想計算機として動作しゲストＯＳ５１とＩ／Ｏ装置５２との間でＩ／Ｏ制御を行う現用ドライバＯＳ５３と、上記ハードウエア上で仮想計算機として動作し現用ドライバＯＳ５３が異常になると（例えば、現用ドライバＯＳ５３に負荷がかかり過ぎて現用ドライバＯＳ５３が停止すると）現用ドライバＯＳ５３の処理やデータを引き継ぐ予備ドライバＯＳ５４と、ゲストＯＳ５１、Ｉ／Ｏ装置５２、現用ドライバＯＳ５３、及び予備ドライバＯＳ５４の動作制御などを行う仮想計算機モニタ５５とを備えて構成されている。なお、図５に示す仮想計算機システム５０は、図示していないが、図１６に示す仮想計算機システム１６０と同様に、ホストＯＳ１６２などを備えて構成されているものとする。また、予備ドライバＯＳ５４は、現用ドライバＯＳ５３が動作する仮想計算機とは別の仮想計算機上で動作するものとする。また、現用ドライバＯＳ５３を動作させるためのプログラムやデータが格納されるハードディスクなどの資源と予備ドライバＯＳ５４を動作させるためのプログラムやデータが格納されるハードディスクなどの資源は共用するものとする。
【００４７】
上記予備ドライバＯＳ５４は、現用ドライバＯＳ５３を動作させるためのプログラムやデータがＲＡＭなどのメモリに書き込まれて現用ドライバＯＳ５３が起動すると、上述のホストＯＳの二重化と同様に、そのメモリ内の現用ドライバＯＳ５３のプログラムやデータがｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能などにより別の仮想計算機で管理されるメモリにコピーされることにより起動する。
【００４８】
上記仮想計算機モニタ５５は、図６に示すように、現用ドライバＯＳ５３と予備ドライバＯＳ５４の主従関係の定義を示すデータ６０を備え、そのデータ６０に基づいてゲストＯＳ５１からの要求を現用ドライバＯＳ５３または予備ドライバＯＳ５４を介してＩ／Ｏ装置５２に通知したり、Ｉ／Ｏ装置５２からの動作完了通知を現用ドライバＯＳ５３または予備ドライバＯＳ５４を介してゲストＯＳ５１に通知したりする。すなわち、現用ドライバＯＳ５３はゲストＯＳ５１とリンク関係が確立され、予備ドライバＯＳ５４もゲストＯＳ５１と別のリンク関係が確立されている。
【００４９】
次に、予備ドライバＯＳ５４の状態を常に現用ドライバＯＳ５３の状態と同じにするための仮想計算機システム５０の動作について説明する。
図７は、予備ドライバＯＳ５４の状態を常に現用ドライバＯＳ５３の状態と同じにするための仮想計算機システム５０の動作を示すフローチャートである。
【００５０】
まず、ゲストＯＳ５１は、Ｉ／Ｏ装置５２を動作させるための要求を仮想計算機モニタ５５へ依頼する（ステップＳＴＰ１）。
次に、仮想計算機モニタ５５は、上記要求を現用ドライバＯＳ５３及び予備ドライバＯＳ５４へそれぞれ割込み通知する(ステップＳＴＰ２)。
【００５１】
次に、現用ドライバＯＳ５３及び予備ドライバＯＳ５４は、それぞれ、上記要求を受け付けると共に、上記要求に基づく指示を仮想計算機モニタ５５へ出す（ステップＳＴＰ３）。
【００５２】
ここで、例えば、ゲストＯＳ５１からバッファメモリであるＩ／Ｏ装置５２へ所定データを書き込む旨の要求を依頼する場合を考える。図８に示すように、まず、ゲストＯＳ５１は、Ｈｙｐｅｒｖｉｓｅｒ  ｃａｌｌ命令により仮想計算機モニタ５５へ所定データ、書込み要求コード、及びアドレスなどで構成される要求を出す。次に、仮想計算機モニタ５５は、その要求を受け付けると、その要求を現用ドライバＯＳ５３と予備ドライバＯＳ５４にそれぞれ割込み通知する。そして、現用ドライバＯＳ５３及び予備ドライバＯＳ５４は、それぞれ、受け付けた要求に基づいてＩ／Ｏ装置５２へ所定データを書き込むための指示を仮想計算機モニタ５５へ出す。
【００５３】
次に、図７において、仮想計算機モニタ５５は、受け付けた指示が現用ドライバＯＳ５３からの指示か否かを判断する（ステップＳＴＰ４）。
受け付けた指示が現用ドライバＯＳ５３からの指示でないと判断した場合（ステップＳＴＰ４がＮｏ）、仮想計算機モニタ５５は、図９に示すように、受け付けた指示を破棄する（ステップＳＴＰ５）。
【００５４】
一方、受け付けた指示が現用ドライバＯＳ５３からの指示であると判断した場合（ステップＳＴＰ４がＹｅｓ）、仮想計算機モニタ５５は、図９に示すように、Ｉ／Ｏ装置５２に上記指示を通知する（ステップＳＴＰ６）。
【００５５】
次に、仮想計算機モニタ５５は、Ｉ／Ｏ装置５２から出された動作完了通知を受け付ける（ステップＳＴＰ７）。
次に、仮想計算機モニタ５５は、上記動作完了通知を現用ドライバＯＳ５３と予備ドライバＯＳ５４にそれぞれ割込み通知する（ステップＳＴＰ８）。
【００５６】
次に、現用ドライバＯＳ５３及び予備ドライバＯＳ５４は、それぞれ、動作完了通知をゲストＯＳ５１に通知するために仮想計算機モニタ５５へ出す（ステップＳＴＰ９）。例えば、現用ドライバＯＳ５３及び予備ドライバＯＳ５４は、それぞれ、Ｈｙｐｅｒｖｉｓｅｒ  ｃａｌｌ命令により、動作完了通知を仮想計算機モニタ５５へ出す。
【００５７】
次に、仮想計算機モニタ５５は、受け付けた動作完了通知が現用ドライバＯＳ５３から出された動作完了通知であるか否かを判断する（ステップＳＴＰ１０）。
受け付けた動作完了通知が現用ドライバＯＳ５３から出された動作完了通知でないと判断した場合（ステップＳＴＰ１０がＮｏ）、仮想計算機モニタ５５は、図１０に示すように、受け付けた動作完了通知を破棄する（ステップＳＴＰ５）。
【００５８】
一方、受け付けた動作完了通知が現用ドライバＯＳ５３から出された動作完了通知であると判断した場合（ステップＳＴＰ１０がＹｅｓ）、仮想計算機モニタ５５は、図１０に示すように、受け付けた動作完了通知をゲストＯＳ５１へ通知する（ステップＳＴＰ１１）。
【００５９】
そして、ゲストＯＳ５１は、Ｉ／Ｏ装置５２が動作を完了したことを認識し（ステップＳＴＰ１２）、仮想計算機システム５０は、予備ドライバＯＳ５４の状態を常に現用ドライバＯＳ５３の状態と同じにするための処理を終了する。
【００６０】
図１１は、現用ドライバＯＳから予備ドライバＯＳへ引継ぎを行うための仮想計算機システム５０の動作を示すフローチャートである。
まず、現用ドライバＯＳ５３と予備ドライバＯＳ５４との間で一定時間毎に監視し合う（ステップＳＴＥＰ１）。例えば、ＬＡＮなどを使用して現用ドライバＯＳ５３と予備ドライバＯＳ５４との間で通信を行うことが考えられる。
【００６１】
次に、予備ドライバＯＳ５４は、現用ドライバＯＳ５３の異常を検出する（ステップＳＴＥＰ２）。例えば、図１２に示すように、予備ドライバＯＳ５４は、現用ドライバＯＳ５３へ返答要求を出し、その返答要求に対する返答が所定時間（例えば、５秒または１０秒）内に出ないと、現用ドライバＯＳ５３が異常であると判断するように構成してもよい。
【００６２】
次に、予備ドライバＯＳ５４は、現用ドライバＯＳ５３の異常を検出すると、仮想計算機モニタ５５へドライバＯＳの切換え要求を依頼する（ステップＳＴＥＰ３）。
次に、仮想計算機モニタ５５は、ドライバＯＳの切換え要求を受け付けると、現用ドライバＯＳ５３へ停止要求を通知する（ステップＳＴＥＰ４）。現用ドライバＯＳ５３は、停止要求を受け付けると、停止処理を行う。
【００６３】
次に、仮想計算機モニタ５５は、データ６０に示す現用ドライバＯＳ５３と予備ドライバＯＳ５４の主従関係の定義を互いに反対にして、ゲストＯＳ５１から出される要求を予備ドライバＯＳ５４を介してＩ／Ｏ装置５２に通知し、Ｉ／Ｏ装置５２から出される動作完了通知を予備ドライバＯＳ５４を介してゲストＯＳ５１に通知する（ステップＳＴＥＰ５）。
【００６４】
そして、予備ドライバＯＳ５４は、現用ドライバＯＳ５３に昇格する（ステップＳＴＥＰ６）。
ここで、例えば、予備ドライバＯＳ５４が現用ドライバＯＳ５３の異常を検出し、仮想計算機モニタ５５が現用ドライバＯＳ５３を停止させる場合を考える。図１２に示すように、まず、予備ドライバＯＳ５４は、現用ドライバＯＳ５３の異常を検出すると、Ｈｙｐｅｒｖｉｓｏｒ  ｃａｌｌ命令により仮想計算機モニタ５５へドライバＯＳの切換え要求を依頼する。次に、仮想計算機モニタ５５は、その切換え要求を受け付けると、現用ドライバＯＳ５３へ停止要求を通知する。そして、図１３に示すように、仮想計算機モニタ５５は、ゲストＯＳ５１とＩ／Ｏ装置５２との間のやり取りを制御するドライバＯＳとして現用ドライバＯＳ５３から予備ドライバＯＳ５４に切り換え、ゲストＯＳ５１から依頼される要求を予備ドライバＯＳ５４（ステップＳＴＥＰ６で現用ドライバＯＳ５３に昇格した予備ドライバＯＳ５４）を介してＩ／Ｏ装置５２へ出すと共に、Ｉ／Ｏ装置５２から出される動作完了通知を予備ドライバＯＳ５４を介してゲストＯＳ５１へ通知する。
【００６５】
これにより、常に予備ドライバＯＳ５４の状態を現用ドライバＯＳ５３の状態と同じにすることができるので、現用ドライバＯＳ５３に障害が発生し現用ドライバＯＳ５３が異常になってもすぐにＩ／Ｏ装置５２の制御用ドライバＯＳとして現用ドライバＯＳ５３から予備ドライバＯＳ５４に最新の状態で引き継ぐことができる。そのため、現用ドライバＯＳ５３が異常になってもゲストＯＳ５１とＩ／Ｏ装置５２との間のやりとりが途切れないので、仮想計算機システム５０の信頼性を低下させないようにすることができる。
【００６６】
また、予備ドライバＯＳ５４をつくるために、ソフトウエアやハードウエアを二重化することなく、かつ、常に現用ドライバＯＳ５３と予備ドライバＯＳ５４との間で互いに状態変化を監視したり、データの同期を行う必要がないため、仮想計算機システム５０のコストを抑えることができる。
【００６７】
なお、上記実施形態では、ホストＯＳの二重化及びドライバＯＳの二重化の構成として、仮想計算機システム１０と仮想計算機システム５０とを別々に説明したが、仮想計算機システム１０と仮想計算機システム５０とを同じ仮想計算機システム上に構築してもよい。
【００６８】
また、上記実施形態では、ホストＯＳ及びドライバＯＳをそれぞれ二重化にさせる構成であるが、ホストＯＳ及びドライバＯＳをそれぞれ三重化以上に構成してもよい。
図１４は、本実施形態の仮想計算機システム１０、５０のハードウエア構成の一例を示す図である。
【００６９】
図１４に示すように、仮想計算機システム１０、５０は、ＣＰＵ１４０と、メモリ１４１と、ハードディスク１４２と、モデムやＬＡＮアダプタなどのネットワーク接続装置１４３と、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、光ディスク、フレキシブルディスクなどの可搬記録媒体１４４と、媒体読取り装置１４５と、入力処理部１４６と、ディスプレイ１４７とを備え、これらが互いにバス１４８により接続される構成となっている。
【００７０】
上述した仮想計算機システム１０、５０の各処理は、ＣＰＵ１４０がハードディスク１４２に記録されているプログラムやデータを読み出し、このプログラムやデータをメモリ１４１にロードし実行することにより実現される。
【００７１】
なお、仮想計算機システム１０、５０は、可搬記録媒体１４４を用いてプログラムやデータの交換が行われる場合がある。従って、本実施形態の仮想計算機システム１０、５０は、上記実施形態の各処理をコンピュータに行わせるためのコンピュータが読み出し可能な記録媒体として構成することもできる。
【００７２】
図１５は、本実施形態の仮想計算機システム１０、５０を記録媒体として構成する場合のその記録媒体の一例を示す図である。
図１５に示すように、記録媒体としては、ＣＤ−ＲＯＭ、フレキシブルディスク、ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ）、ＤＶＤ、リムーバブル磁気ディスクなどの上記可搬記録媒体１４４、上記ハードディスク１４２、または上記メモリ１４１以外に、ネットワーク回線１５０経由で送信される外部の情報提供業者が保有する記録デバイス１５１などが含まれる。可搬記録媒体１４４や記録デバイス１５１などに記録されているプログラムやデータは、メモリ１４１にロードされてから実行され、上述した仮想計算機システム１０、５０の各処理を実現する。
【００７３】
（付記１）あるハードウエア上に仮想的に動作する現用ホストＯＳにより管理される仮想計算機システムを動作制御するためにコンピュータを、前記現用ホストＯＳが起動すると、前記現用ホストＯＳを前記仮想計算機システムに備えられる所定の記録手段にコピーし前記現用ホストＯＳと同じ機能をもつ予備ホストＯＳを前記ハードウエア上に動作させる手段、前記現用ホストＯＳへ出される要求を前記予備ホストＯＳに通知し、前記予備ホストＯＳの状態を変更する手段、前記現用ホストＯＳが異常になると、前記仮想計算機システムの管理を前記現用ホストＯＳから前記予備ホストＯＳに切り換える手段として機能させるためのプログラム。
【００７４】
（付記２）付記１に記載のプログラムであって、前記現用ホストＯＳへ出される要求が前記現用ホストＯＳの状態を変化させる要求である場合、前記要求を前記予備ホストＯＳに通知する手段として機能させるためのプログラム。
【００７５】
（付記３）あるハードウエア上に仮想的に動作する現用ホストＯＳにより管理される仮想計算機システムを動作制御するためにコンピュータを、前記仮想計算機システムに備えられるＩ／Ｏ装置の動作を制御する現用ドライバＯＳが起動すると、該現用ドライバＯＳを前記仮想計算機システムに備えられる所定の記録手段にコピーし前記現用ドライバＯＳと同じ機能をもつ予備ドライバＯＳを前記ハードウエア上に動作させる手段、前記ハードウエア上に仮想的に動作するゲストＯＳから前記現用ドライバＯＳを介して前記Ｉ／Ｏ装置へ出される要求を前記予備ドライバＯＳに通知し、前記予備ドライバＯＳの状態を変更する手段、前記Ｉ／Ｏ装置から前記現用ドライバＯＳを介して前記ゲストＯＳへ出される動作完了通知を前記予備ドライバＯＳに通知し、前記予備ドライバＯＳの状態を変更する手段、前記現用ドライバＯＳが異常になると、前記ゲストＯＳから出される要求を前記予備ドライバＯＳを介して前記Ｉ／Ｏ装置へ通知すると共に、前記Ｉ／Ｏ装置から出される動作完了通知を前記予備ドライバＯＳを介して前記ゲストＯＳへ通知する手段として機能させるためのプログラム。
【００７６】
（付記４）付記３に記載のプログラムであって、前記現用ドライバＯＳが異常でない場合、前記ゲストＯＳから前記予備ドライバＯＳを介して前記Ｉ／Ｏ装置へ出される要求を破棄すると共に、前記Ｉ／Ｏ装置から前記予備ドライバＯＳを介して前記ゲストＯＳへ出される動作完了通知を破棄する手段として機能させるためのプログラム。
【００７７】
（付記５）付記１〜４の何れか１つの付記に記載のプログラムであって、前記現用ホストＯＳまたは前記現用ドライバＯＳに対して返答要求を出し、その返答要求に対応する返答が前記現用ホストＯＳまたは前記現用ドライバＯＳから所定時間内に出ない場合、前記現用ホストＯＳまたは前記現用ドライバＯＳが異常であると判断する手段として機能させるためのプログラム。
【００７８】
（付記６）あるハードウエア上に仮想的に動作する現用ホストＯＳにより管理される仮想計算機システムであって、前記現用ホストＯＳが起動すると、前記現用ホストＯＳを前記仮想計算機システムに備えられる所定の記録手段にコピーし前記現用ホストＯＳと同じ機能をもつ予備ホストＯＳを前記ハードウエア上に動作させる手段と、前記現用ホストＯＳへ出される要求を前記予備ホストＯＳに通知し、前記予備ホストＯＳの状態を変更する手段と、前記現用ホストＯＳが異常になると、前記仮想計算機システムの管理を前記現用ホストＯＳから前記予備ホストＯＳに切り換える手段とを備えることを特徴とする仮想計算機システム。
【００７９】
（付記７）付記６に記載の仮想計算機システムであって、前記現用ホストＯＳへ出される要求が前記現用ホストＯＳの状態を変化させる要求である場合、前記要求を前記予備ホストＯＳに通知する手段を備えることを特徴とする仮想計算機システム。
【００８０】
（付記８）あるハードウエア上に仮想的に動作する現用ホストＯＳにより管理される仮想計算機システムであって、前記仮想計算機システムに備えられるＩ／Ｏ装置の動作を制御する現用ドライバＯＳが起動すると、該現用ドライバＯＳを前記仮想計算機システムに備えられる所定の記録手段にコピーし前記現用ドライバＯＳと同じ機能をもつ予備ドライバＯＳを前記ハードウエア上に動作させる手段と、前記ハードウエア上に仮想的に動作するゲストＯＳから前記現用ドライバＯＳを介して前記Ｉ／Ｏ装置へ出される要求を前記予備ドライバＯＳに通知し、前記予備ドライバＯＳの状態を変更する手段と、前記Ｉ／Ｏ装置から前記現用ドライバＯＳを介して前記ゲストＯＳへ出される動作完了通知を前記予備ドライバＯＳに通知し、前記予備ドライバＯＳの状態を変更する手段と、前記現用ドライバＯＳが異常になると、前記ゲストＯＳから出される要求を前記予備ドライバＯＳを介して前記Ｉ／Ｏ装置へ通知すると共に、前記Ｉ／Ｏ装置から出される動作完了通知を前記予備ドライバＯＳを介して前記ゲストＯＳへ通知する手段とを備えることを特徴とする仮想計算機システム。
【００８１】
（付記９）付記８に記載の仮想計算機システムであって、前記現用ドライバＯＳが異常でない場合、前記ゲストＯＳから前記予備ドライバＯＳを介して前記Ｉ／Ｏ装置へ出される要求を破棄すると共に、前記Ｉ／Ｏ装置から前記予備ドライバＯＳを介して前記ゲストＯＳへ出される動作完了通知を破棄する手段を備えることを特徴とする仮想計算機システム。
【００８２】
（付記１０）付記６〜９の何れか１つの付記に記載の仮想計算機システムであって、前記現用ホストＯＳまたは前記現用ドライバＯＳに対して返答要求を出し、その返答要求に対応する返答が前記現用ホストＯＳまたは前記現用ドライバＯＳから所定時間内に出ない場合、前記現用ホストＯＳまたは前記現用ドライバＯＳが異常であると判断する手段を備えることを特徴とする仮想計算機システム。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態のホストＯＳの二重化を実現するための仮想計算機システムの原理図である。
【図２】ｌｉｖｅ  ｍｉｇｒａｔｉｏｎ機能を説明するための図である。
【図３】予備ホストＯＳの状態を常に現用ホストＯＳの状態と同じにするための仮想計算機システムの動作を示すフローチャートである。
【図４】現用ホストＯＳから予備ホストＯＳへ引継ぎを行う際の仮想計算機システムの動作を示すフローチャートである。
【図５】本発明の実施形態のドライバＯＳの二重化を実現するための仮想計算機システムの原理図である。
【図６】ゲストＯＳと現用ドライバＯＳと予備ドライバＯＳとの関係を示す図である。
【図７】予備ドライバＯＳの状態を常に現用ドライバＯＳの状態と同じにするための仮想計算機システムの動作を示すフローチャートである。
【図８】ゲストＯＳから仮想計算機モニタへ出される要求を示す図である。
【図９】仮想計算機モニタからＩ／Ｏ装置へ通知される指示を示す図である。
【図１０】仮想計算機モニタからドライバＯＳへ通知される動作完了通知を示す図である。
【図１１】現用ドライバＯＳから予備ドライバＯＳへ引継ぎを行うための仮想計算機システムの動作を示すフローチャートである。
【図１２】現用ドライバＯＳが異常になった場合の仮想計算機システムを示す図である。
【図１３】現用ドライバＯＳが異常になった場合の仮想計算機システムを示す図である。
【図１４】本実施形態の仮想計算機システムのハードウエア構成の一例を示す図である。
【図１５】本実施形態の仮想計算機システムを記録媒体として構成する場合のその記録媒体の一例を示す図である。
【図１６】既存の仮想計算機システムを示す図である。
【図１７】既存の仮想計算機システムにおいてゲストＯＳとドライバＯＳと仮想計算機モニタとの関係を示す図である。
【符号の説明】
【００８４】
１０  仮想計算機システム
１１  現用ホストＯＳ
１２  予備ホストＯＳ
１３  仮想計算機モニタ
２０  メモリ
２１  メモリ
５０  仮想計算機システム
５１  ゲストＯＳ
５２  Ｉ／Ｏ装置
５３  現用ドライバＯＳ
５４  予備ドライバＯＳ
５５  仮想計算機モニタ
６０  データ
１４０  ＣＰＵ
１４１  主記録装置
１４２  ハードディスク
１４３  ネットワーク接続装置
１４４  可搬記録媒体
１４５  媒体読取り装置
１４６  入力処理部
１４７  ディスプレイ
１５０  媒体駆動装置
１５１  可搬記録媒体
１５２  ネットワーク回線
１５３  記録デバイス
１５４  情報処理装置
１５５  メモリ
１６０  仮想計算機システム
１６１  ハードウエア
１６２  ホストＯＳ
１６３  ゲストＯＳ
１６４  ドライバＯＳ
１６５  仮想計算機モニタ
１６６  Ｉ／Ｏ装置
１６７  Ｉ／Ｏ装置
１６８  ディスプレイ
１６９  Ｆｒｏｎｔｅｎｄ  Ｄｒｉｖｅｒ
１７０  Ｂａｃｋｅｎｄ  Ｄｒｉｖｅｒ
１７１  実Ｉ／Ｏドライバ
【図１】
0004585463.tif 000002
【図３】
0004585463.tif 000003
【図４】
0004585463.tif 000004
【図５】
0004585463.tif 000005
【図６】
0004585463.tif 000006
【図７】
0004585463.tif 000007
【図８】
0004585463.tif 000008
【図９】
0004585463.tif 000009
【図１１】
0004585463.tif 000010
【図１２】
0004585463.tif 000011
【図１３】
0004585463.tif 000012
【図１４】
0004585463.tif 000013
【図１５】
0004585463.tif 000014
【図１６】
0004585463.tif 000015
【図１７】
0004585463.tif 000016
【図２】
0004585463.tif 000017
【図１０】
0004585463.tif 000018