(57)【要約】【課題】複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンの動作に係る重大なエラーが発生した場合であっても、そのエラーの影響を受けない他の仮想マシンの動作を継続させることができる情報処理装置を提供する。【解決手段】本発明に係る情報処理装置は、複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンと前記特定の仮想マシンが利用するハードウェアとを関連付ける関連付け手段と、特定の仮想マシンが利用するハードウェアのエラーを検出するエラー検出手段と、エラーが検出された場合、そのハードウェアに関連付けられた仮想マシンの動作を停止させる動作停止手段と、を備えたことを特徴とする。【選択図】  図３
2007323142.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンを具備する情報処理装置において、
特定の仮想マシンと前記特定の仮想マシンが利用するハードウェアとを関連付ける関連付け手段と、
前記特定の仮想マシンが利用するハードウェアのエラーを検出するエラー検出手段と、
前記エラーが検出された場合、そのハードウェアに関連付けられた仮想マシンの動作を停止させる動作停止手段と、
を備えたことを特徴とする情報処理装置。
【請求項２】
前記ハードウェアは主メモリであり、
前記関連付け手段は、前記主メモリの領域を分割し、分割した領域を前記各仮想マシンに割り当てて関連付ける手段であり、
前記動作停止手段は、エラーが検出された領域に割り当てられている仮想マシンの動作を停止させる、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記主メモリはエラー訂正機能つきのメモリであり、
前記動作停止手段は、検出されたエラーが訂正不能の場合に前記仮想マシンの動作を停止させる、
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ハードウェアのエラーは、前記特定の仮想マシンが利用するＰＣＩデバイスのバス通信エラーである、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記ＰＣＩデバイスの通信エラーは、ＳＥＲＲ又はＰＥＲＲである、
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記ハードウェアのエラーは、前記特定の仮想マシンが利用するＰＣＩデバイスのバス通信エラーであり、
前記エラーの検出されたＰＣＩデバイスのバスに、他の仮想マシンがアクセスしようとした場合、アクセスしようとした前記他の仮想マシンの動作を停止させる手段、
をさらに備えたことを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記エラー検出手段はチップセットによるエラー検出手段であり、前記チップセットは、エラーを検出した場合、ＳＭＩ割り込みによらず、ＳＣＩ割り込みによって前記動作停止手段に通知する、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項８】
複数の仮想マシンを具備する情報処理装置の制御方法において、
特定の仮想マシンと前記特定の仮想マシンが利用するハードウェアとを関連付ける関連付けステップと、
前記特定の仮想マシンが利用するハードウェアのエラーを検出するエラー検出ステップと、
前記エラーが検出された場合、そのハードウェアに関連付けられた仮想マシンの、動作を停止させる動作停止ステップと、
を備えたことを特徴とする情報処理装置の制御方法。
【請求項９】
前記ハードウェアは主メモリであり、
前記関連付けステップは、前記主メモリの領域を分割し、分割した領域を前記各仮想マシンに割り当てて関連付けるステップであり、
前記動作停止ステップは、エラーが検出された領域に割り当てられている仮想マシンの動作を停止させる、
ことを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１０】
前記主メモリはエラー訂正機能つきのメモリであり、
前記動作停止ステップは、検出されたエラーが訂正不能の場合に前記仮想マシンの動作を停止させる、
ことを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１１】
前記ハードウェアのエラーは、前記特定の仮想マシンが利用するＰＣＩデバイスのバス通信エラーである、
ことを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１２】
前記ＰＣＩデバイスの通信エラーは、ＳＥＲＲ又はＰＥＲＲである、
ことを特徴とする請求項１１に記載の情報処理装置の制御方法。
【請求項１３】
前記ハードウェアのエラーは、前記特定の仮想マシンが利用するＰＣＩデバイスのバス通信エラーであり、
前記エラーの検出されたＰＣＩデバイスのバスに、他の仮想マシンがアクセスしようとした場合、アクセスしようとした前記他の仮想マシンの動作を停止させるステップ、
をさらに備えたことを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１４】
前記動作停止ステップはチップセットによるエラー検出ステップであり、前記チップセットは、エラーを検出した場合、ＳＭＩ割り込みによらず、ＳＣＩ割り込みによって前記動作停止ステップに通知する、
ことを特徴とする請求項８に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびその制御方法に係り、特に、仮想マシンの環境を具備する情報処理装置およびその制御方法に関する。
【背景技術】
【０００２】
パーソナルコンピュータやサーバ等の情報処理装置では、通常、ＣＰＵ、主メモリ、およびこれらに適宜のバスを介して接続される各種の周辺デバイスを備えて構成されている。そして、主メモリや周辺デバイスに何らかの原因でエラーが発生した場合や、周辺デバイスとの間でパリティエラー等の通信エラーが発生した場合には、これらのエラーの発生を検出すると共に、検出したエラーが重大なエラーの場合には更なる被害の拡大を防止するため、システムを停止する等の防御手段が講じられていることが多い。
【０００３】
エラーの発生自体を完全にゼロとすることは困難である。そこで、エラーが発生したときにその影響を最小限に留める技術や、エラーの発生部位を容易に特定できるようにすることは、情報処理装置にとって非常に重要な技術課題である。
【０００４】
例えば、特許文献１には、近時の情報処理装置において多用されているＰＣＩバスに通信エラーが検出されたときのエラー処理に関する技術が開示されている。
【０００５】
特許文献１が開示する技術は、ＰＣＩバスにパリティエラー等が検出された場合、単にエラーを検出しシステムを停止させるだけでなく、パリティエラーを生じさせたＰＣＩデバイスを特定し、かつ記録を残すことでその後のＰＣＩデバイスの修理や交換といった保守作業を容易にすることができるとするものである。
【０００６】
他方、近時の情報処理装置、特にサーバ等では、仮想マシンという情報処理概念が採りいれられつつある。
【０００７】
仮想マシンでは、これに接続される主メモリや周辺デバイス等のハードウェアがソフトウェアとして仮想化され、仮想化されたハードウェア（実際にはソフトウェア）はゲストＯＳと呼ばれるＯＳ上で制御される形態をとっている。そして仮想化されたハードウェアと現実のハードウェアとは、仮想マシンモニタ（以下、ＶＭＭ（Virtual  Machine  Monitor）という）呼ばれるソフトウェアによって関連付けられている。
【０００８】
ゲストＯＳ上で動作する仮想マシンは、ホストＯＳの管理下でも動作可能である。この場合、上記のＶＭＭはホストＯＳの管理下で動作することになる。
【０００９】
通常、１つの情報処理装置では１つのホストＯＳを有するが、このホストＯＳで複数の仮想マシン（即ち、複数のゲストＯＳ）を扱うことが可能である。
【００１０】
例えば、マイクロソフト社のWindows  ＸＰ（Windows（登録商標））をホストＯＳとし、その管理の元に、Windows９８（Windows（登録商標））やＵＮＩＸ（登録商標）といった異なる種類の複数のゲストＯＳを動作させることが可能である。このような構成が可能であることによって、ホストＯＳには新しいＯＳを使用する一方、既にサポートの対象外となった旧式のＯＳをゲストＯＳとして継続使用する形態が可能となる。
【００１１】
また、比較的セキュリティ機能の低い旧式のＯＳをゲストＯＳとして使用する一方、セキュリティ機能の高い新式のＯＳをホストＯＳとして利用することで、情報処理装置全体としては高いセキュリティを実現することが可能となる。
【００１２】
このように仮想マシンの利点は多く、既にＶＭware社の「ＶＭware」やMicrosoft社の「Virtual  Server」等の製品として提供されているものもある。ＣＰＵ能力の向上に伴って仮想マシン固有のオーバヘッド処理時間が短縮されれば、今後さらに普及していくものと予想される。
【特許文献１】特開２００３−２２２２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
ところで、訂正不能なメモリエラー等の重大なエラーが検出されると、システム全体を停止させるという処理は、複数の仮想マシンを具備する情報処理装置の形態においても同様である。通常、複数の仮想マシンに対しては、現実の物理メモリの領域を複数に分割し、分割された領域を各仮想マシンに割り当てているが、メモリにエラーが生じた場合、その領域と仮想マシンとの対応が従来取られていないため、総ての仮想マシンを含めたシステム全体を停止するという手段しかとりえなかった。
【００１４】
本発明は上記事情に鑑みてなされたもので、複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンの動作に係る重大なエラーが発生した場合であっても、そのエラーの影響を受けない他の仮想マシンの動作を継続させることができる、情報処理装置およびその制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明に係る情報処理装置は、請求項１に記載したように、複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンと前記特定の仮想マシンが利用するハードウェアとを関連付ける関連付け手段と、前記特定の仮想マシンが利用するハードウェアのエラーを検出するエラー検出手段と、前記エラーが検出された場合、そのハードウェアに関連付けられた仮想マシンの、動作を停止させる動作停止手段と、を備えたことを特徴とする。
【００１６】
また、上記課題を解決するため、本発明に係る情報処理装置の制御方法は、請求項８に記載したように、複数の仮想マシンを具備する情報処理装置の制御方法において、特定の仮想マシンと前記特定の仮想マシンが利用するハードウェアとを関連付ける関連付けステップと、前記特定の仮想マシンが利用するハードウェアのエラーを検出するエラー検出ステップと、前記エラーが検出された場合、そのハードウェアに関連付けられた仮想マシンの、動作を停止させる動作停止ステップと、を備えたことを特徴とする。
【発明の効果】
【００１７】
本発明に係る情報処理装置およびその制御方法によれば、複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンの動作に係る重大なエラーが発生した場合であっても、そのエラーの影響を受けない他の仮想マシンの動作を継続させることができる。
【発明を実施するための最良の形態】
【００１８】
本発明の実施形態に係る情報処理装置１およびその制御方法に付いて、添付図面を参照して説明する。
【００１９】
（１）構成
図１は、情報処理装置１のシステム構成例を示す図であり、特にソフトウェアの構成に重点をおいて例示する図である。
【００２０】
本実施形態に係る情報処理装置１は、複数の仮想マシン（図１の例では、仮想マシン０ＶＭ０から仮想マシンｎＶＭｎまでのｎ＋１個の仮想マシンを備えている）を備えた形態のものである。
【００２１】
情報処理装置１は、ハードウェア３（詳細例は図２参照）とソフトウェア２を備えている。ソフトウェア２は、複数の仮想マシン（ＶＭ０〜ＶＭｎ）と、これらの仮想マシンと実ハードウェアとを対応付ける仮想マシンモニタＶＭＭを備えている。
【００２２】
各仮想マシン（以下、仮想マシン（ＶＭ０〜ＶＭｎ）を総称する場合は、単に仮想マシンＶＭという）は、ゲストＯＳと呼ばれるＯＳを夫々備えており（ゲストＯＳ（０）ＧＯＳ０〜ゲストＯＳＧＯＳｎ）、各仮想マシンＶＭは、このゲストＯＳの下で夫々動作している。
【００２３】
各仮想マシンＶＭのゲストＯＳは、例えば、Windows（登録商標）、Linux（登録商標）、ＵＮＩＸ等であり、各仮想マシンＶＭで用いるゲストＯＳは、異なる種類のＯＳであってもよいし、同じ種類のＯＳであってもよい。
【００２４】
仮想マシン環境下では、ゲストＯＳは、直接実際のハードウェア３にアクセスするのではなく、仮想化（ソフトウェア化）されたハードウェアにアクセスする形態をとる。ハードウェアの仮想化は仮想マシンモニタＶＭＭで行っている。また、仮想マシンモニタＶＭＭは、仮想化されたハードウェアと実際のハードウェア３との対応付けも行っている。
【００２５】
各仮想マシンＶＭでは、ゲストＯＳの管理の下で各種のアプリケーションソフトウェア（App0〜Appｍ）が動作する。各アプリケーションソフトウェア（App0〜Appｍ）も仮想マシンＶＭ毎に異なる種類のアプリケーションソフトウェアを用いてもよいし、重複した種類のアプリケーションソフトウェアを用いてもよい。
【００２６】
図１の例示では、さらにホストＯＳ４を備えている。ホストＯＳ４とは、通常の環境（即ち、仮想マシン環境ではない環境）で用いられるＯＳのことであり、ゲストＯＳと区別するためにホストＯＳと呼ばれている。ホストＯＳもゲストＯＳと同様に、例えばWindows、Linux、ＵＮＩＸ等である。このホストＯＳの管理下で通常のアプリケーションソフトウェア（App0〜Appｍ）も動作する。また、仮想マシンモニタＶＭＭもホストＯＳ４の管理下で動作する。
【００２７】
なお、ホストＯＳを具備しない形態、即ち、仮想マシンＶＭ、仮想マシンモニタＶＭＭ、およびハードウェア３だけで構成される形態であってもよい。
【００２８】
図２は、情報処理装置１の構成のうち、特にハードウェア３の構成例に重点をおいて示した図である。
【００２９】
ハードウェア３は、例えば、ＣＰＵ３１、チップセット（ＭＣＨ）３２（ＭＣＨ：Memory  Control  Hub）、チップセット（IＣＨ）３３（ＩＣＨ：Ｉ／Ｏ  Control  Hub）を備えている。チップセット（ＭＣＨ）３２には、主メモリ３４が接続される他、ビデオコントローラ３５がＢＵＳ１を介して接続されている。ビデオコントローラ３５にはさらにディスプレイ３９が接続される。
【００３０】
主メモリ３４は、例えば、ＥＣＣ（Error  Correction  Code）付きのＤＩＭＭ（Dual  In-line  Memory  Module）で構成される。
【００３１】
一方、チップセット（IＣＨ）３３には、例えば、ＬＡＮカード３６がＢＵＳ２を介して、ＩＤＥコントローラ３７がＢＵＳ３を介して、さらにＳＣＳＩコントローラ３８がＢＵＳ４を介して夫々接続されている。また、ＩＤＥコントローラ３７には、ＨＤＤ（Hard  Disk  Drive）４１や光ディスク（図示せず）等のＩＤＥデバイスが接続されており、ＳＣＳＩコントローラ３８には、各種のＳＣＳＩデバイス４２が接続されている。
【００３２】
ＢＵＳ１乃至ＢＵＳ４は、ＰＣＩ系のバス、例えば、ＰＣＩバス、ＰＣＩ―Ｘバス、ＰＣＩ  Expressバス等である。
【００３３】
図３は、本実施形態に係る情報処理装置１の機能実現手段の構成例を示すブロック図であり、特に本発明に特徴的な機能実現手段に関するブロック図である。
【００３４】
情報処理装置１は、エラー検出手段５１、関連付け手段５２、関連付けテーブル５３、動作停止手段５４を具備している。
【００３５】
エラー検出手段５１は、メモリエラーやバス通信エラー等のハードウェアエラーを検出する手段である。具体的には、メモリエラーの場合には、主メモリ３４が接続されているチップセット（ＭＣＨ）３２がエラー検出手段５１となる。また、バス通信エラー、例えば、ＳＥＲＲやＰＥＲＲと呼ばれるＰＣＩバスのパリティエラーの場合には、ＰＣＩバス系（ＢＵＳ１乃至ＢＵＳ４）に接続されるチップセット（ＩＣＨ）３３やチップセット（ＭＣＨ）３２がエラー検出手段となる。
【００３６】
ところで、メモリエラーやパリティエラー等の重大なエラーがチップセット３２、３３で検出されると、チップセットは通常、ＳＭＩ（System  Management  Interrupt）割り込みを発生させるように設定されている。ＳＭＩ割り込みが発生すると、このＳＭＩ割り込みは、ＯＳを介することなく直接ＢＩＯＳへ通知され、ＢＩＯＳでは、ＢＩＯＳ内のＳＭＩハンドラーが起動し、情報処理装置１のシステム全体を停止させるように構成されている。
【００３７】
一方、チップセット３２、３３に対する設定を変更することで、ＳＭＩ割り込みに換えてＳＣＩ（System  Control  Interrupt）割り込みと呼ばれる割り込みを発生させることができる。このＳＣＩ割り込みは、ＢＩＯＳではなくＯＳ或いは、仮想マシンモニタＶＭＭに通知することが可能である。
【００３８】
本実施形態に係る情報処理装置１では、メモリエラーやパリティエラー等が検出された場合には、ＳＣＩ割り込みを発生させるようにチップセット３２、３３の設定を行っている。そして、発生したＳＣＩ割り込みを仮想マシンモニタＶＭＭに通知する形態としている。即ち、本実施形態では、メモリエラーやパリティエラー等が発生した場合であっても、情報処理装置１のシステム全体を停止させる（通常のＳＭＩ割り込みの設定によって）ことがない形態としている。
【００３９】
ＳＣＩ割り込みは仮想マシンモニタＶＭＭの関連付け手段５２に通知される。関連付け手段５２は、ＳＣＩ割り込みを認識すると、チップセット３２、３３のレジスタを読みにいき、エラーの発生した場所を特定する。例えば、メモリエラーの場合には、エラーが発生したメモリアドレスを特定する。また、パリティエラーの場合には、パリティエラーが発生したバスを特定する。
【００４０】
他方、仮想マシンモニタＶＭＭは各仮想マシンＶＭが使用するハードウェアを認識している。仮想マシンモニタＶＭＭは、仮想マシンＶＭと実際のハードウェアの対応付けを行う機能を有するものである。例えば、主メモリ３４に関しては、図４に例示したように、主メモリ３４の領域を仮想マシンモニタＶＭＭ用と各仮想マシンＶＭ（ＶＭ０〜ＶＮｎ）用に予め分割し、各仮想マシンＶＭが使用可能な領域を仮想マシンＶＭ毎に割り当てている。そして、主メモリ３４内のアドレス領域と各仮想マシンＶＭとを関連付ける関連付けテーブル（メモリ・アロケーション・テーブル）５３を保有している。
【００４１】
図５は、メモリ・アロケーション・テーブル５３の一例を示す図である。この例では、例えば仮想マシンＶＭ０には、先頭アドレス4000_0000hから終了アドレス7FFF_FFFFhまでの領域が割り当てられ、仮想マシンＶＭ１には、先頭アドレス8000_0000hから終了アドレスBFFF_FFFFhまでの領域が割り当てられている。
【００４２】
仮想マシンモニタＶＭＭの関連付け手段５２は、メモリエラーが発生したアドレスを特定すると、このメモリ・アロケーション・テーブル５３を参照し、該当するアドレスを使用している仮想マシンＶＭを特定する。
【００４３】
例えば、メモリエラーが発生したアドレスが8000_0FFFhであった場合、そのアドレスを利用している仮想マシンＶＭは仮想マシンＶＭ１であると特定する。
【００４４】
動作停止手段５４は、特定された仮想マシンＶＭ、例えば仮想マシンＶＭ１に対して停止するように指示を出す手段である。
【００４５】
具体的には、仮想マシンモニタＶＭＭの動作停止手段５４は、仮想マシンＶＭ１のゲストＯＳに対してのみ、ＮＭＩ（Non-Maskable  Interrupt）割り込みを発生させ、仮想マシンＶＭ１の動作を停止させる。他の仮想マシンＶＭ（正常なメモリ領域が割り当てられている仮想マシンＶＭ）に対してはＮＭＩ割り込みを発生しない。この結果、メモリエラーが発生した領域を使用している仮想マシンＶＭ１だけが動作を停止し、他の仮想マシンＶＭは動作を継続することが可能となる。
【００４６】
（２）動作
上記のように構成された情報処理装置１の動作（制御方法）について、フローチャートを用いて説明する。
【００４７】
図６は、第１の動作例として、メモリエラーが発生した場合の動作について説明するフローチャートである。また、図７は、動作の場所を構成図上で示すものであり、図７の中の丸印の数字と図６のステップ番号は夫々対応している。
【００４８】
まず、仮想マシンＶＭ１に割り当てられたメモリでメモリエラーが発生したとする（ステップＳＴ１）。
【００４９】
チップセット（ＭＣＨ）３２は、メモリエラーが発生したことを検出する（ステップＳＴ２）。ここで、メモリエラーとは、主メモリ３４がエラー訂正機能付きのメモリである場合には、訂正不能なエラーのことをいう。
【００５０】
次に、チップセット（ＭＣＨ）３２は、ＳＣＩ割り込みを発生し、仮想マシンモニタＶＭＭに通知する（ステップＳＴ３）。
【００５１】
通知を受けた仮想マシンモニタＶＭＭは、チップセット（ＭＣＨ）３２のレジスタを読みにいき、エラーアドレスを取得する（ステップＳＴ４）。
【００５２】
さらに、仮想マシンモニタＶＭＭは、取得したエラーアドレスとメモリ・アロケーション・テーブルとを比較し、仮想マシンＶＭ１に割り当てられたメモリでエラーが発生したことを検出する（ステップＳＴ５）。
【００５３】
その後、仮想マシンモニタＶＭＭは、仮想マシンＶＭ１のゲストＯＳに対してＮＭＩ割り込みを発生させて仮想マシンＶＭ１の動作を停止させる（ステップＳＴ６）。なお、仮想マシンＶＭ１以外の他の仮想マシンＶＭは動作を継続する。
【００５４】
図８は、第２の動作例として、ＰＣＩバスにパリティエラーが発生した場合の動作について説明するフローチャートである。また、図９は、動作の場所を構成図上で示すものであり、図９の中の丸印の数字と図８のステップ番号の１桁目の数字とは夫々対応している。
【００５５】
まず、仮想マシンＶＭ１がＩＤＥコントローラ３７のＨＤＤ４１にアクセスしたとする（ステップＳＴ１１）。
【００５６】
これを受けて、仮想マシンモニタＶＭＭは、ＩＤＥコントローラ３７に対してアクセスを試みる（ステップＳＴ１２）。
【００５７】
このとき、ＩＤＥコントローラ３７が接続されているＰＣＩバス（ＢＵＳ３）にパリティエラーを示すＳＥＲＲが発生したとする（ステップＳＴ１３）。
【００５８】
ＳＥＲＲがＰＣＩバスに発生すると、チップセット（ＩＣＨ）３３は、ＳＥＲＲを検出する（ステップＳＴ１４）。
【００５９】
その後、チップセット（ＩＣＨ）３３は、仮想マシンモニタＶＭＭに対してＳＣＩ割り込みを発生する（ステップＳＴ１５）。
【００６０】
仮想マシンモニタＶＭＭは、ＳＣＩ割り込みを受けると、チップセット（ＩＣＨ）３３のレジスタを読みにいき、ＢＵＳ３でＳＥＲＲが発生したことを検出する（ステップＳＴ１６）。
【００６１】
仮想マシンモニタＶＭＭは、ＢＵＳ３にアクセス（実際にはＢＵＳ３に接続されているＨＤＤ４１に）した仮想マシンＶＭ１に対して動作を停止させる（ステップＳＴ１７）。
【００６２】
なお、ＳＥＲＲが発生したＢＵＳ３にアクセスしていない仮想マシンＶＭ１以外の他の仮想マシンＶＭは動作を継続する。
【００６３】
ＰＣＩバス上で規定されているパリティエラーにはＳＥＲＲの他に、ＰＥＲＲがあるが、この場合も上述したＳＥＲＲと全く同様の処理によって仮想マシンＶＭ１の動作を停止させればよい。
【００６４】
ところで、上述した第２の動作例では、仮想マシンＶＭ１がアクセスしたＢＵＳ３にパリティエラーが発生した場合、その仮想マシンＶＭ１の動作を停止させる形態である。
【００６５】
一方、ＢＵＳ３にパリティエラーが発生した後に、他の仮想マシンＶＭ、例えば、仮想マシンＶＭ２がＢＵＳ３にアクセスしようとした場合、仮想マシンＶＭ２にも重大な障害が生じる可能性がある。このような場合には、仮想マシンＶＭ２の動作を停止させることで障害を回避することが可能となる。
【００６６】
この動作を実現するためには、仮想マシンモニタＶＭＭが、図１０に例示したようなバス管理テーブルを保有する形態とすればよい。
【００６７】
図１０（ａ）は、バス管理テーブルの初期状態を示しており、総てのバス（例えば、ＢＵＳ１〜ＢＵＳ４）は「正常」とする。
【００６８】
動作中に、例えば仮想マシンＶＭ１からのアクセスによってＢＵＳ３の異常が検出された場合には、仮想マシンＶＭ１の動作を停止させると共に、図１０（ｂ）に示したように、バス管理テーブルのバス「３」の欄を「異常」と変更する。
【００６９】
他の仮想マシンＶＭ、例えば仮想マシンＶＭ２からのＢＵＳ３に対するアクセスがあった場合に、仮想マシンモニタＶＭＭはこのバス管理テーブルを参照し、ＢＵＳ３が異常であることをすることを確認し、その後、ＢＵＳ３をアクセスした仮想マシンＶＭ２の動作を停止する。これによって、仮想マシンＶＭ２に重大な障害が発生することを事前に防止することが可能となる。
【００７０】
上述したように、本実施形態に係る情報処理装置１、およびその制御方法によれば、複数の仮想マシンを具備する情報処理装置において、特定の仮想マシンの動作に係る重大なエラーが発生した場合であっても、そのエラーの影響を受けない他の仮想マシンの動作を継続させることができる。
【００７１】
なお、本発明は上記の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態に係る情報処理装置のシステム構成例を示す図であり、特に、ソフトウェア構成を重点的に示す図。
【図２】本発明の一実施形態に係る情報処理装置のシステム構成例を示す図であり、特にハードウェア構成を重点的に示す図。
【図３】本発明の一実施形態に係る情報処理装置における機能実現手段の構成例を示すブロック図。
【図４】本発明の一実施形態に係る情報処理装置のシステム構成例を示す図であり、特に、主メモリの領域割り当てを重点的に示す図。
【図５】仮想マシンモニタが具備するメモリ・アロケーション・テーブルの一例を示す図。
【図６】主メモリにメモリエラーが発生した場合の処理例（第１の動作例）を示すフローチャート。
【図７】主メモリにメモリエラーが発生した場合の処理例（第１の動作例）を、システム構成図を用いて説明する図。
【図８】ＰＣＩバスにパリティエラーが発生した場合の処理例（第２の動作例）を示すフローチャート。
【図９】ＰＣＩバスにパリティエラーが発生した場合の処理例（第２の動作例）を、システム構成図を用いて説明する図。
【図１０】仮想マシンモニタが具備するバス管理テーブルの一例を示す図。
【符号の説明】
【００７３】
１  情報処理装置
３１  ＣＰＵ
３２  チップセット（ＭＣＨ）
３３  チップセット（ＩＣＨ）
３４  主メモリ
３７  ＩＤＥコントローラ
４１  ＨＤＤ
５１  エラー検出手段
５２  関連付け手段
５２  動作停止手段
５３  関連付けテーブル（メモリ・アロケーション・テーブル）
ＶＭ０〜ＶＭｎ  仮想マシン（０）〜仮想マシン（ｎ）
ＶＭＭ  仮想マシンモニタ
ＧＯＳ０〜ＧＯＳｍ  ゲストＯＳ（０）〜ゲストＯＳ（ｎ）
【図１】
2007323142.tif 000003
【図２】
2007323142.tif 000004
【図３】
2007323142.tif 000005
【図４】
2007323142.tif 000006
【図５】
2007323142.tif 000007
【図６】
2007323142.tif 000008
【図７】
2007323142.tif 000009
【図８】
2007323142.tif 000010
【図９】
2007323142.tif 000011
【図１０】
2007323142.tif 000012