(57)【要約】  Ｉ／Ｏ制御部１１０は、ゲストＯＳ１０４からのＩ／Ｏリクエストを入力し、Ｉ／Ｏリクエストのコピーを保存部１１２に格納し、ハードウェア１０１がＩ／Ｏリクエストに対するＩ／Ｏレスポンスを出力した際に、障害検知部１１１がＩ／Ｏレスポンスを検査し、Ｉ／Ｏレスポンスにエラーメッセージがある場合に、ハードウェア１０１に障害が発生していると判断し、Ｉ／Ｏレスポンスを破棄し、同期部１０９に同期指示を行い、同期部１０９は、保存部１１２内のＩ／Ｏリクエストのコピーと、ハードウェア１０１の障害が検知された時点でのゲストＯＳ１０４の状態を示す情報をサーバ装置２００に出力し、サーバ装置２００では、同期部１０９からの情報をもとに、ゲストＯＳ２０４をゲストＯＳ１０４と同じ状態にし、ゲストＯＳ２０４がゲストＯＳ１０４の動作を引き継ぐ。
2012070102.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアと、前記ハードウェアを用いて実現される仮想マシン上で動作し、前記ハードウェアへのリクエストを発行する第１のゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とを有し、
前記第１のゲストＯＳと同じ動作を行う第２のゲストＯＳを有する外部装置に接続されている計算機装置であって、
前記第１のゲストＯＳにより発行されたリクエストのコピーを所定の記憶領域に格納するリクエスト管理部と、
前記リクエストに対する前記ハードウェアからのレスポンスが前記第１のゲストＯＳに届く前に前記ハードウェアに障害が発生しているか否かを判断し、前記ハードウェアに障害が発生している場合に前記レスポンスが前記第１のゲストＯＳに届かないように制御する障害検知部と、
前記障害検知部により前記ハードウェアの障害が検知された場合に、前記記憶領域に格納されている前記リクエストのコピーと前記ハードウェアの障害が検知された時点での前記第１のゲストＯＳの状態を示す情報を前記外部装置に出力し、前記第１のゲストＯＳが行っていた動作を前記第２のゲストＯＳにて引き継ぐよう指示する指示メッセージを前記外部装置に出力する引き継ぎ制御部とを有することを特徴とする計算機装置。
【請求項２】
前記計算機装置は、更に、
前記ハードウェアを用いて仮想マシンを実現するホストＯＳと仮想マシンモニタとを有し、
前記リクエスト管理部と、前記障害検知部と、前記引き継ぎ制御部は、それぞれ、
前記ホストＯＳ及び前記仮想マシンモニタの少なくともいずれかにおいて動作することを特徴とする請求項１に記載の計算機装置。
【請求項３】
前記障害検知部は、
前記リクエストに対する前記ハードウェアからのレスポンスが前記第１のゲストＯＳに届く前に前記レスポンスを入力し、入力した前記レスポンスを検査し、前記レスポンスにおいてエラーメッセージが存在する場合に、前記ハードウェアに障害が発生していると判断し、前記レスポンスが前記第１のゲストＯＳに届かないように制御することを特徴とする請求項１又は２に記載の計算機装置。
【請求項４】
前記計算機装置は、更に、
前記ハードウェアを用いて仮想マシンを実現するホストＯＳを有し、
前記ホストＯＳは、
前記第１のゲストＯＳに含まれるフロントエンドドライバから出力された前記ハードウェアへのリクエストを入力し、前記ハードウェアからのレスポンスを前記フロントエンドドライバに対して出力するバックエンドドライバを有し、
前記リクエスト管理部は、
前記フロントエンドドライバから前記リクエストを入力し、入力した前記リクエストのコピーを前記記憶領域に格納し、前記リクエストを前記バックエンドドライバに出力し、
前記障害検知部は、
前記バックエンドドライバから出力された前記レスポンスを入力し、入力した前記レスポンスを検査し、前記レスポンスにエラーメッセージが存在している場合に、前記レスポンスを破棄し、前記レスポンスにエラーメッセージが存在していない場合に、前記レスポンスを前記フロントエンドドライバに対して出力することを特徴とする請求項３に記載の計算機装置。
【請求項５】
前記障害検知部は、
前記リクエストに対する前記ハードウェアからのレスポンスが前記第１のゲストＯＳに届く前に前記ハードウェアを検査し、前記ハードウェアに障害が発生しているか否かを判断し、前記ハードウェアに障害が発生している場合に前記レスポンスが前記第１のゲストＯＳに届かないように制御することを特徴とする請求項１〜４のいずれかに記載の計算機装置。
【請求項６】
前記障害検知部は、
一定周期にて、前記ハードウェアを検査し、前記ハードウェアに障害が発生しているか否かを判断し、
前記引き継ぎ制御部は、
前記障害検知部により前記ハードウェアの障害が検知された際に前記記憶領域に前記リクエストのコピーが格納されている場合は、前記記憶領域に格納されている前記リクエストのコピーと前記ハードウェアの障害が検知された時点での前記第１のゲストＯＳの状態を示す情報を前記外部装置に出力し、
前記障害検知部により前記ハードウェアの障害が検知された際に前記記憶領域に前記リクエストのコピーが格納されていない場合は、前記ハードウェアの障害が検知された時点での前記第１のゲストＯＳの状態を示す情報を前記外部装置に出力することを特徴とする請求項１〜５のいずれかに記載の計算機装置。
【請求項７】
前記計算機装置は、
前記仮想マシン上で動作する複数の第１のゲストＯＳを有し、
前記複数の第１のゲストＯＳに対応させて複数の第２のゲストＯＳを有する外部装置に接続され、
前記リクエスト管理部は、
各々の第１のゲストＯＳにより発行されたリクエストのコピーを各々の第１のゲストＯＳに割り当てられている記憶領域に格納し、
前記引き継ぎ制御部は、
前記障害検知部により前記ハードウェアの障害が検知された場合に、第１のゲストＯＳごとに、記憶領域に格納されているリクエストのコピーと前記ハードウェアの障害が検知された時点での第１のゲストＯＳの状態を示す情報を前記外部装置に出力し、第１のゲストＯＳが行っていた動作を対応する第２のゲストＯＳにて引き継ぐよう指示する指示メッセージを前記外部装置に出力することを特徴とする請求項１〜６のいずれかに記載の計算機装置。
【請求項８】
ハードウェアと、前記ハードウェアを用いて実現される仮想マシン上で動作し、前記ハードウェアへのリクエストを発行する第１のゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とを有し、
前記第１のゲストＯＳと同じ動作を行う第２のゲストＯＳを有する外部装置に接続されている計算機装置に、
前記第１のゲストＯＳにより発行されたリクエストのコピーを所定の記憶領域に格納させ、
前記リクエストに対する前記ハードウェアからのレスポンスが前記第１のゲストＯＳに届く前に前記ハードウェアに障害が発生しているか否かを判断させ、前記ハードウェアに障害が発生している場合に前記レスポンスが前記第１のゲストＯＳに届かないように制御させ、
前記ハードウェアの障害が検知された場合に、前記記憶領域に格納されている前記リクエストのコピーと前記ハードウェアの障害が検知された時点での前記第１のゲストＯＳの状態を示す情報を前記外部装置に対して出力させ、前記第１のゲストＯＳが行っていた動作を前記第２のゲストＯＳにて引き継ぐよう指示する指示メッセージを前記外部装置に対して出力させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成をとる仮想計算機システムを管理する技術に関する。
【背景技術】
【０００２】
仮想化技術を応用し、例えば、二つの仮想マシンを二つのサーバ装置（物理計算機装置）上で構築し、二つの仮想マシンを同期させて、仮想マシンを二重化し、ソフトウェア的にＦＴ（Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ：耐障害性）を実現する技術（以下、ソフトウェアＦＴと呼ぶ）がある（例えば、非特許文献１、非特許文献２）。【０００３】
このソフトウェアＦＴの環境では、運用系のサーバ装置で動作するゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の状態（メモリ、ディスク等）を動作ごと、または、ある一定周期ごとに待機系のサーバ装置上へ同期（コピー）しておく。
そして、運用系のサーバ装置で障害が発生した場合に、待機系のサーバ装置上にコピーしておいたゲストＯＳの状態から、ゲストＯＳの動作を待機系のサーバ装置において再開させることで、すばやい動作の再開が可能となる。【０００４】
しかし、従来のソフトウェアＦＴ環境では、運用系のサーバ装置で発生したハードウェア故障に起因するディスクやネットワークなどのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）エラーに関する内部処理まで同期対象になりうる。
つまり、ハードウェア故障に起因するディスクやネットワークなどのＩ／Ｏエラーに関する内部処理までが、待機系のサーバ装置にコピーされることになる。
そして、運用系のサーバ装置にハードウェア故障が発生した場合に、ハードウェア故障に起因するＩ／Ｏエラーに関する内部処理が待機系のサーバ装置にコピーされ、また、待機系のゲストＯＳが運用系のゲストＯＳの動作を引き継ぐ。
このとき、待機系のゲストＯＳでも、同様の状態（例えば、Ｉ／Ｏリトライ処理中の状態や、Ｉ／Ｏエラーが返された状態）で動作が異常になり、結果として、両系で異常になる可能性がある。【０００５】
これに対し、特許文献１に記載の技術では、ゲストＯＳの稼動状態と、定期的に取得するゲストＯＳ状態（特許文献１ではスナップショットデータとしているが、本明細書では、以降は同期データと称する）を関連付けて保存する。
更に、特許文献１の技術では、運用系のサーバ装置で故障が発生した場合には、該当故障が発生していないゲストＯＳ稼動状態までさかのぼって同期データを選択し、選択した同期データを用いて待機系のサーバ装置においてゲストＯＳの動作を再開させる。
このようにして、特許文献１の技術では、故障による処理異常を継承させることなくゲストＯＳを切り替えることを可能としている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１８３７０１号公報
【非特許文献】
【０００７】
【非特許文献１】Ｒｅｍｕｓ：  Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  ｖｉａ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｒｅｐｌｉｃａｔｉｏｎ、ｈｔｔｐ：／／ｎｓｓ．ｃｓ．ｕｂｃ．ｃａ／ｒｅｍｕｓ／
【非特許文献２】Ｋｅｍａｒｉ：  仮想マシン間の同期による耐故障クラスタリング、情報処理学会論文誌  コンピューティングシステム、Ｖｏｌ．３、Ｎｏ．１（Ｍａｒ．２０１０）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１では故障を検知する機構をゲストＯＳ上に配置しているため、故障検知にタイムラグがあり、結局はゲストＯＳへハードウェア故障状態が伝播した状態を待機系のサーバ装置に通知することになる。
このため、前述したように、待機系のゲストＯＳが動作を開始しても、待機系のサーバ装置においてハードウェア障害が発生したのと同様の状態になってしまう。
また、特許文献１の方法では、複数の同期データを管理しておく必要があり、データ量が増大する。
さらに、故障検知のタイミングによっては、相当量の時間をさかのぼった同期データから待機系のゲストＯＳが動作を再開させなければならない場合がある。【０００９】
この発明は、上記のような課題を解決することを主な目的の一つとしており、ハードウェア障害の影響を受けることなく、待機系においてゲストＯＳの動作を正常に引き継げるようにすることを主な目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る計算機装置は、
ハードウェアと、前記ハードウェアを用いて実現される仮想マシン上で動作し、前記ハードウェアへのリクエストを発行する第１のゲストＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）とを有し、
前記第１のゲストＯＳと同じ動作を行う第２のゲストＯＳを有する外部装置に接続されている計算機装置であって、
前記第１のゲストＯＳにより発行されたリクエストのコピーを所定の記憶領域に格納するリクエスト管理部と、
前記リクエストに対する前記ハードウェアからのレスポンスが前記第１のゲストＯＳに届く前に前記ハードウェアに障害が発生しているか否かを判断し、前記ハードウェアに障害が発生している場合に前記レスポンスが前記第１のゲストＯＳに届かないように制御する障害検知部と、
前記障害検知部により前記ハードウェアの障害が検知された場合に、前記記憶領域に格納されている前記リクエストのコピーと前記ハードウェアの障害が検知された時点での前記第１のゲストＯＳの状態を示す情報を前記外部装置に出力し、前記第１のゲストＯＳが行っていた動作を前記第２のゲストＯＳにて引き継ぐよう指示する指示メッセージを前記外部装置に出力する引き継ぎ制御部とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ハードウェアからのレスポンスが第１のゲストＯＳに届く前にハードウェアに障害が発生しているか否かを判断し、ハードウェアに障害が発生している場合にレスポンスが第１のゲストＯＳに届かないように制御し、ハードウェアの障害が検知された時点での第１のゲストＯＳの状態を示す情報及びリクエストのコピーを外部装置に出力するため、ハードウェア障害を検知する直前の状態から第２のゲストＯＳを動作させることができる。
これにより、ハードウェア障害の影響を受けることなく、第２のゲストＯＳに第１のゲストＯＳで行われてきた動作を正常に引き継がせることができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係るシステム構成例を示す図。
【図２】仮想化環境での一般的なＩ／Ｏ処理の流れを示す図。
【図３】実施の形態１に係るＩ／Ｏ処理の流れを示す図。
【図４】実施の形態１に係るＩ／Ｏリクエストの転送処理の例を示すフローチャート図。
【図５】実施の形態１に係るＩ／Ｏ制御部の動作例を示すフローチャート図。
【図６】実施の形態１に係るＩ／Ｏレスポンスの転送処理の例を示すフローチャート図。
【図７】実施の形態１に係るＩ／Ｏ制御部、障害検知部及び同期部の動作例を示すフローチャート図。
【図８】実施の形態１〜３に係るサーバ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１３】
実施の形態１．
本実施の形態では、運用系のサーバ装置と待機系のサーバ装置が配置されている構成において、運用系のゲストＯＳ上に故障を検知する機構を加えることなく、運用系のホストＯＳや仮想マシンモニタでハードウェアの障害を検知し、当該ハードウェア障害に関する障害情報を破棄し、運用系のゲストＯＳへハードウェアの障害情報が伝播しないようにする。
このようにして、運用系のゲストＯＳにハードウェア障害を認識させないようにする。
また、本実施の形態では、その後、運用系のサーバ装置から、運用系のゲストＯＳの状態を通知する同期データ及び運用系のゲストＯＳの動作を待機系のゲストＯＳで引き継ぐよう指示する指示データを待機系のサーバ装置に出力する。
そして、待機系のサーバ装置は、同期データを用いて、待機系のゲストＯＳの状態を運用系のゲストＯＳの状態と同じにし、運用系のサーバ装置におけるハードウェア障害の影響を受けることなく、待機系のゲストＯＳが運用系のゲストＯＳの動作を正常に引き継ぐ。
【００１４】
図１は、本実施の形態に係るシステム構成を示す。
【００１５】
図１に示すように、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）３００によりサーバ装置１００とサーバ装置２００が接続されている。
サーバ装置１００とサーバ装置２００は、それぞれ異なる物理計算機装置である。
本実施の形態では、サーバ装置１００が運用系のサーバ装置であり、サーバ装置２００が待機系のサーバ装置である例にて説明を進める。
このため、サーバ装置１００が計算機装置の例であり、また、サーバ装置２００が外部装置の例である。
図１では、サーバ装置１００が計算機装置の例であることを運用系サーバ装置（計算機装置）と表現し、また、サーバ装置２００が外部装置の例であることを待機系サーバ装置（外部装置）と表現している。
【００１６】
ハードウェア１０１（物理ハードウェア）には、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１１、メモリ１０１２、ディスク１０１３及びＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１０１４が含まれている。
なお、ハードウェア１０１には、これら以外のハードウェア要素が含まれていてもよい。
【００１７】
ハードウェア１０１上では仮想マシンモニタ１０２が動作し、更に、仮想マシンモニタ１０２上ではホストＯＳ１０３とゲストＯＳ１０４が動作している。
ゲストＯＳ１０４は、仮想マシンモニタ１０２及びホストＯＳ１０３により実現される仮想マシンにより提供される仮想ハードウェア（仮想ＣＰＵ、仮想メモリ、仮想ディスク、仮想ＮＩＣ等）を利用して動作する。
なお、ゲストＯＳは、第１のゲストＯＳの例である。
図１では、ゲストＯＳ１０４が第１のゲストＯＳの例であることを括弧書きで示している。
【００１８】
運用系のサーバ装置１００が正常に動作している場合（ハードウェア障害が発生していない場合）には、運用系のゲストＯＳ１０４の状態（ゲストＯＳ１０４のコンテキスト）が、Ｉ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理ごと、または、一定周期で、同期部１０９によって待機系のサーバ装置２００に通知され、ゲストＯＳ２０４がゲストＯＳ１０４と同期している（ゲストＯＳ１０４の状態とゲストＯＳ２０４の状態が一致している）。
ゲストＯＳ２０４は、ゲストＯＳ１０４と同じ動作を行うゲストＯＳであり、第２のゲストＯＳの例である。
図１では、ゲストＯＳ２０４が第２のゲストＯＳの例であることを括弧書きで示している。
ゲストＯＳ１０４の最新状態を通知するデータを同期データという。
同期データは、１つ前の同期データに示されていた状態との差分が示される。
また、ゲストＯＳ２０４では、新たな同期データが入力される度に、以前の同期データが新たな同期データで上書きされる。すなわち、同期データは１つしかない。
なお、同期部１０９は、仮想マシンモニタ１０２とホストＯＳ１０３に跨って動作する。
【００１９】
ゲストＯＳ１０４では通常プロセス１０５が動作しており、その処理内容によっては、ハードウェア１０１へＩ／Ｏリクエストを出すことになる。
Ｉ／Ｏリクエストの例としては、ディスク１０１３からのデータの読み出し、ディスク１０１３へのデータの書き込み、ＮＩＣ１０１４を介してのネットワークへのデータ送信、ＮＩＣ１０１４を介してのネットワークからのデータの受信がある。
なお、Ｉ／Ｏリクエストは、ゲストＯＳ１０４からハードウェア１０１へのリクエストである。
また、後述するハードウェア１０１からゲストＯＳ１０４へのＩ／Ｏレスポンスは、リクエストに対するハードウェア１０１からのレスポンスである。
【００２０】
仮想化環境でのＩ／Ｏ処理の流れは図２のようになっており、プロセス１０５からのＩ／Ｏリクエストは、ゲストＯＳ１０４上のフロントエンドドライバ１０６へ渡され、仮想マシンモニタ１０２を経由して、ホストＯＳ１０３上のバックエンドドライバ１０７へ渡される。
ホストＯＳ１０３上のバックエンドドライバ１０７はＩ／Ｏリクエストを実デバイスドライバ１０８へ渡し、実デバイスドライバ１０８は実際のハードウェア１０１へＩ／Ｏリクエストを実行する。
ハードウェアで処理されたＩ／Ｏレスポンスは、実デバイスドライバ１０８へ返され、実デバイスドライバ１０８からホストＯＳ１０３上のバックエンドドライバ１０７、仮想マシンモニタ１０２を経由して、ゲストＯＳ１０４上のフロントエンドドライバ１０６へ転送され、Ｉ／Ｏリクエストを出したプロセス１０５へ返される。
【００２１】
本実施の形態では、フロントエンドドライバ１０６とバックエンドドライバ１０７間のＩ／Ｏリクエスト及びＩ／Ｏレスポンスを制御するＩ／Ｏ制御部１１０をホストＯＳ１０３上に配置する。
また、Ｉ／Ｏ制御部１１０で検知したＩ／Ｏレスポンスに関して、障害が無いかどうかを検査する障害検知部１１１を配置する。
さらに、ゲストＯＳ１０４からのＩ／Ｏリクエストのコピーを一時的に保管しておく保存部１１２を仮想マシンモニタ１０２上に配置する。
【００２２】
より詳しくは、図３に示すように、Ｉ／Ｏ制御部１１０は、フロントエンドドライバ１０６からのＩ／Ｏリクエストを入力し、入力したＩ／Ｏリクエストをコピーし、Ｉ／Ｏリクエストのコピーを保存部１１２に格納し、Ｉ／Ｏリクエストをバックエンドドライバ１０７に出力する。
なお、仮想マシンモニタ１０２では、Ｉ／Ｏ制御部１１０からのＩ／Ｏリクエストのコピーを保存部１１２と関連付けられている物理記憶領域に記憶させる。
仮想マシンモニタ１０２は、例えば、メモリ１０１２の所定のアドレス又はＣＰＵ１０１１のレジスタにＩ／Ｏリクエストのコピーを記憶させる。
以降は、図２の場合と同様に、Ｉ／Ｏリクエストがバックエンドドライバ１０７から実デバイスドライバ１０８を経由してハードウェア１０１に到達する。
次に、ハードウェア１０１は、Ｉ／Ｏリクエストに対するレスポンスであるＩ／Ｏレスポンスを実デバイスドライバ１０８に出力し、Ｉ／Ｏ制御部１１０はバックエンドドライバ１０７からＩ／Ｏレスポンスを入力する。
そして、Ｉ／Ｏ制御部１１０は入力したＩ／Ｏレスポンスを障害検知部１１１に出力する。
障害検知部１１１は、Ｉ／Ｏ制御部１１０からＩ／Ｏレスポンスを入力し、入力したＩ／Ｏレスポンスを検査し、Ｉ／Ｏレスポンスにエラーメッセージが存在している場合に、ハードウェア１０１に障害が発生していると判断し、当該Ｉ／Ｏレスポンスを破棄し、Ｉ／Ｏレスポンスにエラーメッセージが存在していない場合に、当該Ｉ／ＯレスポンスをＩ／Ｏ制御部１１０を介してフロントエンドドライバ１０６に出力する。
なお、Ｉ／Ｏレスポンスのエラーメッセージはハードウェア１０１における障害を通知するメッセージであるため、障害検知部１１１は、Ｉ／Ｏレスポンスからエラーメッセージを検出した場合には、ハードウェア１０１に障害が発生していると判断できる。
また、障害検知部１１１は、Ｉ／Ｏレスポンスのエラーメッセージの検出により、ハードウェア１０１の障害を検知した場合に、同期部１０９に同期指示を行う。
同期部１０９では、障害検知部１１１からの同期指示に従い、保存部１１２からＩ／Ｏリクエストのコピーを取得するとともに、障害検知部１１１によりハードウェア１０１の障害が検知された時点でのゲストＯＳ１０４の状態を示す情報を生成する。
ゲストＯＳ１０４の状態を示す情報は、プロセス１０５のプロセス名、ＣＰＵ１０１１のプログラマブルカウンタの値、ゲストＯＳ１０４に割り当てられているメモリ１０１２の記憶領域の値等である。
同期部１０９は、Ｉ／Ｏリクエストのコピーと、ハードウェア１０１の障害が検知された時点でのゲストＯＳ１０４の状態を示す情報を同期データとしてサーバ装置２００に出力する。
また、同期部１０９は、ゲストＯＳ１０４が行っていた動作をゲストＯＳ２０４にて引き継ぐよう指示する指示メッセージをサーバ装置２００に出力する。
以降、サーバ装置２００では、ゲストＯＳ２０４が運用系となり、ゲストＯＳ１０４の動作を引き継ぐ。
このように、障害検知部１１１がＩ／ＯレスポンスがゲストＯＳ１０４に届く前にＩ／Ｏレスポンスを検査し、ハードウェア１０１に障害が発生しているか否かを判断し、ハードウェア１０１に障害が発生している場合にＩ／ＯレスポンスがゲストＯＳ１０４に届かないように制御している。
このため、ゲストＯＳ２０４に通知するゲストＯＳ１０４の状態は、ハードウェア１０１障害の検知前の状態であり、ゲストＯＳ２０４はハードウェア１０１障害の検知前の状態からゲストＯＳ１０４の動作を引き継ぐことができる。
【００２３】
本実施の形態では、同期部１０９は引き継ぎ制御部の例であり、Ｉ／Ｏ制御部１１０はリクエスト管理部の例である。
図１では、同期部１０９が引き継ぎ制御部の例であることを同期部（引き継ぎ制御部）と表現し、Ｉ／Ｏ制御部１１０がリクエスト管理部の例であることをＩ／Ｏ制御部（リクエスト管理部）と表現している。
また、上述したように、同期部１０９、Ｉ／Ｏ制御部１１０、障害検知部１１１は、仮想マシンモニタ１０２又はホストＯＳ１０３で動作するプログラムである。
同期部１０９、Ｉ／Ｏ制御部１１０、障害検知部１１１のプログラムは、例えば、実行前はディスク１０１３に格納されており、実行に際して、ディスク１０１３からメモリ１０１２にロードされ、ＣＰＵ１０１１により実行されて、上述の動作が行われる。
なお、図示は省略しているが、サーバ装置２００においても、サーバ装置１００と同様のモジュール構成例となっている。
【００２４】
次に、本実施の形態に係る動作（ハードウェアに関する故障をゲストＯＳへ通知しないようにして、待機系へ切り替える動作）を説明する。
具体的には、図４〜図７を用いて、ゲストＯＳ１０４上のプロセス１０５からのＩ／Ｏリクエスト発生から、Ｉ／Ｏレスポンスの検査、Ｉ／Ｏレスポンスの検査後の処置までの一連の流れを説明する。
なお、図４及び図５は、ゲストＯＳ１０４上のプロセス１０５からハードウェア１０１へのＩ／Ｏリクエストの転送処理の流れを示し、図６及び図７は、ハードウェア１０１からゲストＯＳ１０４上のプロセス１０５へのＩ／Ｏレスポンスの転送処理の流れを示す。
【００２５】
まず、図４及び図５について説明する。
最初に、ゲストＯＳ１０４上のプロセス１０５は、フロントエンドドライバ１０６に対してＩ／Ｏリクエストを出力する（Ｓ１０１）。
フロントエンドドライバ１０６は、受け取ったＩ／Ｏリクエストを仮想マシンモニタ１０２を経由してホストＯＳ１０３上のバックエンドドライバ１０７へ転送する（Ｓ１０２）。
このとき、ホストＯＳ１０３上のＩ／Ｏ制御部１１０がＩ／Ｏリクエストを検知し、図５に示す処理を行う（Ｓ１０３）。
【００２６】
まず、Ｉ／Ｏ制御部１１０はフロントエンドドライバ１０６からのＩ／Ｏリクエストを取得し、取得したＩ／Ｏリクエストをコピーし、Ｉ／Ｏリクエストのコピーを保存部１１２に出力し、保存部１１２にＩ／Ｏリクエストのコピーを格納する（Ｓ１０３１）。
次に、Ｉ／Ｏ制御部１１０は、Ｉ／ＯリクエストをホストＯＳ１０３のバックエンドドライバ１０７へ転送する（Ｓ１０３２）。
【００２７】
バックエンドドライバ１０７は、Ｉ／Ｏ制御部１１０からＩ／Ｏリクエストを入力し、入力したＩ／Ｏリクエストを実デバイスドライバ１０８へ転送する（Ｓ１０４）。
実デバイスドライバ１０８はＩ／Ｏリクエストを元に、ハードウェア１０１の制御を実行する（Ｓ１０５）。
【００２８】
以上が、プロセスからハードウェアへのＩ／Ｏリクエストまでの流れである。
次に、Ｉ／Ｏリクエストに対するＩ／Ｏレスポンスがハードウェアから返されたときの流れを図６及び図７を参照して説明する。
【００２９】
まず、ハードウェア１０１はホストＯＳ１０３上の実デバイスドライバ１０８へＩ／Ｏレスポンスを返す（Ｓ２０１）。
実デバイスドライバ１０８は、受け取ったＩ／Ｏレスポンスをバックエンドドライバ１０７へ転送する（Ｓ２０２）。
バックエンドドライバ１０７はゲストＯＳ１０４上のフロントエンドドライバ１０６へＩ／Ｏレスポンスを転送する（Ｓ２０３）。
このとき、ホストＯＳ１０３上のＩ／Ｏ制御部１１０がＩ／Ｏレスポンスを検知し、図７に示す処理を行う（Ｓ２０４）。
【００３０】
まず、Ｉ／Ｏ制御部１１０はバックエンドドライバ１０７からのＩ／Ｏレスポンスを取得し、取得したＩ／Ｏレスポンスを障害検知部１１１へ転送する（Ｓ２０４１）。
障害検知部１１１は、Ｉ／Ｏ制御部１１０からＩ／Ｏレスポンスを入力し、入力したＩ／Ｏレスポンスにエラーメッセージが無いかチェックする（Ｓ２０４２）。
Ｉ／Ｏレスポンスにエラーメッセージが含まれておらず、このため、ハードウェア１０１に障害が発生していない場合（Ｓ２０４３でＮＯ）は、障害検知部１１１はＩ／ＯレスポンスをそのままＩ／Ｏ制御部１１０に転送し、Ｉ／Ｏ制御部１１０がＩ／ＯレスポンスをゲストＯＳ１０４上のフロントエンドドライバ１０６へ転送する（Ｓ２０４４）。
また、Ｉ／Ｏ制御部１１０は保存部１１２で保存しておいたＩ／Ｏリクエストを削除し、処理を終了する（Ｓ２０４５）。
そして、ゲストＯＳ１０４上のフロントエンドドライバ１０６はプロセス１０５に対してＩ／Ｏレスポンスを返す（Ｓ２０５）。
【００３１】
一方、Ｉ／Ｏレスポンスにエラーメッセージが含まれており、このため、ハードウェア１０１に障害が発生している場合（Ｓ２０４３でＹＥＳ）は、障害検知部１１１はエラーメッセージを検出したＩ／Ｏレスポンスを破棄し、同期部１０９へ同期指示を出力する（Ｓ２０４６）。
同期部１０９は図５のＳ１０３１において保存部１１２で保存しておいたＩ／Ｏリクエストを保存部１１２から取得し、また、運用系のゲストＯＳ１０４の状態を通知する情報を生成する。
これらＩ／ＯリクエストとゲストＯＳ１０４の状態を通知する情報が同期データとなり、同期部１０９は、同期データをサーバ装置２００に送信するとともに、ゲストＯＳ２０４においてゲストＯＳ１０４の動作を引き継ぐよう指示する指示メッセージをサーバ装置２００に送信する（Ｓ２０４７）。
このように、ゲストＯＳ１０４へハードウェア１０１の障害が伝播される直前のゲストＯＳ１０４の状態がサーバ装置２００に通知され、ゲストＯＳ２０４は、ゲストＯＳ１０４へハードウェア１０１の障害が伝播される直前のゲストＯＳ１０４の状態に同期することができる。
次に、同期部１０９は同期完了後（同期データ及び指示メッセージの送信後）、運用系サーバ装置１００のゲストＯＳ１０４を強制停止させ、待機系サーバ装置２００上のゲストＯＳ２０４にゲストＯＳ１０４の動作を引き継がせる（Ｓ２０４８）。
この時点で、同期先の待機系サーバ装置２００上のゲストＯＳ２０４でゲストＯＳ１０４の動作が再開し、システム全体としてはハードウェアの故障を継承することなく処理が継続される。
【００３２】
このように、本実施の形態によれば、運用系のハードウェアで故障が発生した場合に、運用系のゲストＯＳへハードウェア障害が伝播する直前の状態に待機系のゲストＯＳを同期させることができる。
これにより、運用系のハードウェア障害の影響を受けることなく、待機系のゲストＯＳに運用系のゲストＯＳで行われてきた動作を正常に引き継がせることができ、処理を円滑に待機系へ切り替えることができる。
また、本実施の形態によれば、管理する同期データは１つでよいという利点がある。
更に、本実施の形態によれば、ゲストＯＳ上にハードウェア故障を検知する機構が不要であるという利点がある。
【００３３】
なお、以上の説明では、Ｉ／Ｏ制御部１１０及び障害検知部１１１は、ホストＯＳに含まれている、Ｉ／Ｏ制御部１１０及び障害検知部１１１が仮想マシンモニタ１０２に含まれていてもよい。
また、Ｉ／Ｏ制御部１１０がホストＯＳ１０３に含まれ、障害検知部１１１が仮想マシンモニタ１０２に含まれている構成でもよい。
また、Ｉ／Ｏ制御部１１０が仮想マシンモニタ１０２に含まれ、障害検知部１１１がホストＯＳ１０３に含まれていている構成でもよい。
【００３４】
以上、本実施の形態では、
ハードウェア異常が発生した場合の二重系システム切替に関し、仮想化環境を用いて運用系ゲストＯＳの動作状態を待機系サーバ装置と同期しておき、運用系サーバ装置にハードウェア故障が生じた場合に、待機系サーバ装置上にて同期しておいたゲストＯＳのデータを用いて、動作を再開させる仮想化環境同期システムにおいて、
仮想化環境では、ゲストＯＳ上のハードウェアの処理が仮想マシンモニタを経由して行われることを利用し、ホストＯＳ、または、仮想マシンモニタでハードウェア故障を検知し、そのハードウェア故障情報が該当ゲストＯＳに通知される前に、ホストＯＳ、または、仮想マシンモニタでハードウェア故障情報通知を止め、
該当ゲストＯＳがハードウェア故障を検知する前の動作状態を待機系へ同期させ、その同期データを用いて待機系サーバ装置上でゲストＯＳ動作を再開させることで、
該当ゲストＯＳが継続して動作が可能な仮想化環境同期システムを説明した。
【００３５】
実施の形態２．
実施の形態１の障害検知部１１１は、Ｉ／Ｏレスポンスに関してエラーメッセージが無いかどうかをチェックしてハードウェア１０１の障害を検知していた。
これに対し、障害検知部１１１は、Ｉ／Ｏレスポンスから独立して定期的にハードウェアに故障が無いか、ハードウェアが正常に稼働しているかを検査するようにしてもよい。
また、障害検知部１１１は、フロントエンドドライバ１０６からのＩ／ＯリクエストがＩ／Ｏ制御部１１０に到着した段階でハードウェアに故障が無いか、ハードウェアが正常に稼働しているかを検査するようにしてもよい。
そして、ハードウェア故障が検知された場合には、実施の形態１で説明した図７のＳ２０４６以降の動作を行うようにする。
ここで、障害検知部１１１によるハードウェア故障の検査／稼動確認方法としては、ネットワークに関してはｐｉｎｇ等で疎通確認を実施したり、ＮＩＣのｕｐ／ｄｏｗｎを検査する方法がある。
また、ディスクに関しては、例えば、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．（Ｓｅｌｆ−Ｍｏｎｉｔｏｒｉｎｇ，  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｐｏｒｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ）情報からディスクの状態を取得して検査する方法がある。
さらに、サーバ装置本体の状態としては、ＩＰＭＩ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｐｌａｔｆｏｒｍ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）を用いて、電源、ファン、プロセッサ、メモリ等の故障を検知することも可能である。
【００３６】
なお、障害検知部１１１が定期的にハードウェア１０１の故障を検査する場合は、ハードウェア１０１の障害を検知した時点では保存部１１２にＩ／Ｏリクエストのコピーが格納されていない場合もある。
保存部１１２にＩ／Ｏリクエストのコピーが格納されていない場合は、同期部１０９は、図７のＳ２０４７において、ハードウェア１０１の障害が検知された時点でのゲストＯＳ１０４の状態を示す情報を同期データとしてサーバ装置２００に出力する。
一方、保存部１１２にＩ／Ｏリクエストのコピーが格納されている場合は、同期部１０９は、図７のＳ２０４７において、ハードウェア１０１の障害が検知された時点でのゲストＯＳ１０４の状態を示す情報とともに、Ｉ／Ｏリクエストのコピーを同期データとしてサーバ装置２００に出力する。
フロントエンドドライバ１０６からのＩ／ＯリクエストがＩ／Ｏ制御部１１０に到着した段階で障害検知部１１１がハードウェア１０１の故障を検査する場合は、保存部１１２にＩ／Ｏリクエストのコピーが格納されているので、同期部１０９は、図７のＳ２０４７において、ハードウェア１０１の障害が検知された時点でのゲストＯＳ１０４の状態を示す情報とともに、Ｉ／Ｏリクエストのコピーを同期データとしてサーバ装置２００に出力する。
なお、本実施の形態に係るシステム構成も図１に示す通りである。
【００３７】
このように、本実施の形態によれば、Ｉ／Ｏレスポンスのエラーメッセージ以外によるハードウェア故障検知によっても、運用系のゲストＯＳへハードウェア障害が伝播する直前の状態に待機系のゲストＯＳを同期させることができる。
これにより、運用系のハードウェア障害の影響を受けることなく、待機系のゲストＯＳに運用系のゲストＯＳで行われてきた動作を正常に引き継がせることができ、処理を円滑に待機系へ切り替えることができる。
また、本実施の形態によれば、Ｉ／Ｏリクエストのあった段階でのハードウェア故障検知が可能であり、実施の形態１に比べて早期にハードウェア故障を検知することができる。
【００３８】
以上、本実施の形態では、
仮想化環境では、ゲストＯＳ上のハードウェアのＩ／Ｏ処理が仮想マシンモニタやホストＯＳを経由して行われることを利用し、ホストＯＳ、または、仮想マシンモニタでゲストＯＳからのＩ／Ｏリクエストを一時的に保管しておき、
ホストＯＳ、または、仮想マシンモニタでハードウェアのＩ／Ｏに関わる障害を検知し、そのハードウェアのＩ／Ｏに関わる障害情報が該当ゲストＯＳに通知される前に、ホストＯＳ、または、仮想マシンモニタでハードウェアのＩ／Ｏに関わる障害情報の通知を破棄し、
該当ゲストＯＳがハードウェアの障害を検知する前の、該当ゲストＯＳがＩ／Ｏリクエストを出した状態の動作状態を待機系へ同期させ、その同期データを用いて待機系サーバ装置上で、故障が発生する直前のゲストＯＳの動作を再開させることで、該当ゲストＯＳが継続して動作が可能な仮想化環境同期システムを説明した。
【００３９】
また、本実施の形態では、
ホストＯＳ、または、仮想マシンモニタで検知するハードウェアの障害情報において、
ホストＯＳ、または、仮想マシンモニタでハードウェアの稼動確認を定期的に実施し、それと同時にゲストＯＳの動作状態を待機系へ同期させ、
ハードウェアが停止している等のハードウェア故障が検知された場合には、直前の同期データを用いて待機系サーバ装置上でゲストＯＳの動作を再開させることで、該当ゲストＯＳが継続して動作が可能な仮想化環境同期システムを説明した。
【００４０】
実施の形態３．
実施の形態１では、各サーバ装置に１つのゲストＯＳが配置されているシステムにおけるハードウェア故障発生から系切替までの流れを示したが、ソフトウェアＦＴによる同期対象となるゲストＯＳは複数であってもよい。
つまり、本実施の形態では、運用系のサーバ装置に２以上のゲストＯＳが配置され、待機系のサーバ装置に運用系の各ゲストＯＳに対応するゲストＯＳが配置されているシステムを対象とする。
そして、運用系のサーバ装置のハードウェアに障害が発生した場合に、運用系のサーバ装置の同期部が、ゲストＯＳごとに、同期データを待機系のサーバ装置に出力する。
待機系のサーバ装置は、同期データに基づき、各ゲストＯＳを、運用系のハードウェアに障害が発生する直前の運用系のゲストＯＳの状態に同期させて、運用系のゲストＯＳの動作を引き継がせる。
本実施の形態では、実施の形態１で示した保存部１１２をゲストＯＳごとに用意し、Ｉ／Ｏレスポンスにエラーメッセージが検出された場合に、同期部１０９がゲストＯＳごとの保存部１１２から各ゲストＯＳのＩ／Ｏリクエストを取得し、ゲストＯＳごとに同期データ及び指示データを出力する。
また、実施の形態２に示したように、定期的な検査により障害検知部１１１がハードウェア１０１の障害を検知した場合、または、Ｉ／Ｏ制御部１１０にＩ／Ｏリクエストが到達した段階で障害検知部１１１が検査を実施してハードウェア１０１の障害を検知した場合にも、同期部１０９がゲストＯＳごとの保存部１１２から各ゲストＯＳのＩ／Ｏリクエストを取得し、ゲストＯＳごとに同期データ及び指示データを出力する。
その他の動作は、実施の形態１及び実施の形態２に示した通りであり、説明を省略する。
【００４１】
このように、本実施の形態によれば、複数のゲストＯＳを同期対象とした環境でも、運用系のゲストＯＳへハードウェア障害が伝播する直前の状態に待機系のゲストＯＳを同期させることができる。
これにより、複数のゲストＯＳを同期対象とした環境でも、運用系のハードウェア障害の影響を受けることなく、待機系のゲストＯＳに運用系のゲストＯＳで行われてきた動作を正常に引き継がせることができ、処理を円滑に待機系へ切り替えることができる。
【００４２】
最後に、実施の形態１〜３に示したサーバ装置１００、２００のハードウェア構成例について説明する。
図８は、実施の形態１〜３に示すサーバ装置１００、２００のハードウェア資源の一例を示す図である。
なお、図８の構成は、あくまでもサーバ装置１００、２００のハードウェア構成の一例を示すものであり、サーバ装置１００、２００のハードウェア構成は図８に記載の構成に限らず、他の構成であってもよい。
【００４３】
図８において、サーバ装置１００、２００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。
ＣＰＵ９１１は、バス９１２を介して、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９１３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、磁気ディスク装置９２０、スキャナ装置９０７と接続され、これらのハードウェアデバイスを制御する。
更に、ＣＰＵ９１１は、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、コンパクトディスク装置９０５（ＣＤＤ）、プリンタ装置９０６と接続していてもよい。また、磁気ディスク装置９２０の代わりに、光ディスク装置、メモリカード（登録商標）読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置の一例である。
通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、スキャナ装置９０７などは、入力装置の一例である。
また、通信ボード９１５、表示装置９０１、プリンタ装置９０６などは、出力装置の一例である。
【００４４】
通信ボード９１５は、図１に示すように、ＬＡＮ３００に接続される。通信ボード９１５は、ＬＡＮ以外にも、例えば、インターネット、ＷＡＮ（ワイドエリアネットワーク）などに接続することが可能である。
【００４５】
磁気ディスク装置９２０には、仮想マシンモニタ９２１、ホストＯＳ９２２、プログラム群９２３、ファイル群９２４が記憶されている。
プログラム群９２３のプログラムは、ＣＰＵ９１１、仮想マシンモニタ９２１、ホストＯＳ９２２により実行される。
また、仮想マシンモニタ９２１自身がホストＯＳ９２２の機能を含む場合や、ホストＯＳ９２２内に仮想マシンモニタ９２１が存在する場合もある。
【００４６】
ＲＯＭ９１３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）プログラムが格納され、磁気ディスク装置９２０にはブートプログラムが格納されている。
サーバ装置１００、２００の起動時には、ＲＯＭ９１３のＢＩＯＳプログラム及び磁気ディスク装置９２０のブートプログラムが実行され、ＢＩＯＳプログラム及びブートプログラムにより仮想マシンモニタ９２１、ホストＯＳ９２２が起動される。
【００４７】
プログラム群９２３には、実施の形態１〜３に示される同期部１０９、Ｉ／Ｏ制御部１１０及び障害検知部１１１を実現するプログラムが含まれる。
【００４８】
更に、ファイル群９２４には、実施の形態１〜３の説明において、「〜の判断」、「〜の検査」、「〜の検出」、「〜の同期」、「〜のチェック」、「〜の制御」、「〜の設定」、「〜の選択」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのＣＰＵの動作に用いられる。
抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態１〜３で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ等の記録媒体に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００４９】
また、実施の形態１〜３の説明において「〜部」として説明しているものは「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明しているものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。
或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。
すなわち、プログラムは、実施の形態１〜３の「〜部」としてコンピュータを機能させるものである。
あるいは、実施の形態１〜３の「〜部」の手順や方法をコンピュータに実行させるものである。
また、実施の形態１〜３で説明したサーバ装置１００、２００の動作を例えばデータ処理方法として把握することも可能である。
【００５０】
このように、実施の形態１〜３に示すサーバ装置１００、２００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００５１】
１００  サーバ装置、１０１  ハードウェア、１０２  仮想マシンモニタ、１０３  ホストＯＳ、１０４  ゲストＯＳ、１０５  プロセス、１０６  フロントエンドドライバ、１０７  バックエンドドライバ、１０８  実デバイスドライバ、１０９  同期部、１１０  Ｉ／Ｏ制御部、１１１  障害検知部、１１２  保存部、２００  サーバ装置、２０１  ハードウェア、２０２  仮想マシンモニタ、２０３  ホストＯＳ、２０４  ゲストＯＳ、３００  ＬＡＮ、１０１１  ＣＰＵ、１０１２  メモリ、１０１３  ディスク、１０１４  ＮＩＣ。
【図１】
2012070102.tif 000003
【図２】
2012070102.tif 000004
【図３】
2012070102.tif 000005
【図４】
2012070102.tif 000006
【図５】
2012070102.tif 000007
【図６】
2012070102.tif 000008
【図７】
2012070102.tif 000009
【図８】
2012070102.tif 000010
【国際調査報告】
2012070102.tif 000011
2012070102.tif 000012