(57)【要約】【課題】実マシンの障害を仮想マシンに適切に通知する技術を提供する。【解決手段】実マシン上に仮想マシンが構築される計算機であって、前記実マシン上で発生する障害を検知する実マシン異常検知手段と、前記実マシン異常検知手段で検知された前記障害の障害種別を、仮想マシンで処理するように抽象化された障害種別に変換する抽象化変換手段と、前記実マシン異常検知手段で検知された前記障害の障害発生部位を、仮想マシンにおける障害発生部位に変換する障害部位識別手段と、前記障害部位識別手段による変換で得られた前記障害発生部位に関連する仮想マシンに、前記抽象化変換手段による変換で得られた前記抽象化された障害種別の障害通知を送る障害通知手段と、を有している。【選択図】図１
2014041506.tif 000002
【特許請求の範囲】
【請求項１】
実マシン上に仮想マシンが構築される計算機であって、
前記実マシン上で発生する障害を検知する実マシン異常検知手段と、
前記実マシン異常検知手段で検知された前記障害の障害種別を、仮想マシンで処理するように抽象化された障害種別に変換する抽象化変換手段と、
前記実マシン異常検知手段で検知された前記障害の障害発生部位を、仮想マシンにおける障害発生部位に変換する障害部位識別手段と、
前記障害部位識別手段による変換で得られた前記障害発生部位に関連する仮想マシンに、前記抽象化変換手段による変換で得られた前記抽象化された障害種別の障害通知を送る障害通知手段と、
を有する計算機。
【請求項２】
前記計算機が、前記実マシンにおける障害種別と、前記抽象化された障害種別との対応関係を示す抽象化情報を記憶する抽象化情報記憶手段を更に有し、
前記抽象化変換手段は、前記実マシン異常検知手段で検知された前記障害の障害種別を、前記抽象化情報を参照することにより、抽象化された障害種別に変換する、
請求項１に記載の計算機。
【請求項３】
前記計算機が、前記実マシンにおける障害発生部位と前記仮想マシンにおける障害発生部位との対応関係を示すシステム構成情報を記憶するシステム構成情報記憶手段を更に有し、
前記障害部位識別手段は、前記実マシン異常検知手段で検知された前記障害の障害発生部位を、前記システム構成情報を参照することにより、仮想マシンにおける障害発生部位に変換する、
請求項１または２に記載の計算機。
【請求項４】
前記仮想マシンは、実マシンの障害を処理する実マシン障害情報処理手段と、仮想マシンの障害を処理する仮想マシン障害情報処理手段とを別個に有し、
前記障害通知手段は、前記障害部位識別手段で障害発生部位が変換された障害通知と、障害は障害発生部位が変換されなかった障害通知とを区別できるように、前記仮想マシンに通知し、
前記仮想マシン障害情報処理手段は、前記仮想マシンで発生した障害に対する処理を実行し、
前記実マシン障害情報処理手段は、前記障害通知手段から通知された障害通知のうち少なくとも前記障害部位識別手段で障害発生部位が変換された障害通知に対する処理を実行する、
請求項１から３のいずれか一項に記載の計算機。
【請求項５】
実マシン上に仮想マシンが構築される計算機における障害処理方法であって、
実マシン異常検知手段が、前記実マシン上で発生する障害を検知するステップと、
抽象化変換手段が、前記実マシン障害検出手段で検知された前記障害の障害種別を、仮想マシンで処理するように抽象化された障害種別に変換するステップと、
障害部位識別手段が、前記実マシン障害検出手段で検知された前記障害の障害発生部位を、仮想マシンにおける障害発生部位に変換するステップと、
障害通知手段が、前記障害部位識別手段による変換で得られた前記障害発生部位に関連する仮想マシンに、前記抽象化変換手段による変換で得られた前記抽象化された障害種別の障害通知を送るステップと
を有する障害処理方法。
【請求項６】
実マシン上に仮想マシンが構築される計算機が実行する障害処理プログラムであって、
実マシン異常検知手段が、前記実マシン上で発生する障害を検知する手順と、
抽象化変換手段が、前記実マシン障害検出手段で検知された前記障害の障害種別を、仮想マシンで処理するように抽象化された障害種別に変換する手順と、
障害部位識別手段が、前記実マシン障害検出手段で検知された前記障害の障害発生部位を、仮想マシンにおける障害発生部位に変換する手順と、
障害通知手段が、前記障害部位識別手段による変換で得られた前記障害発生部位に関連する仮想マシンに、前記抽象化変換手段による変換で得られた前記抽象化された障害種別の障害通知を送る手順と、
を計算機に実行させるための障害処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は仮想化環境の計算機を管理する技術に関する。
【背景技術】
【０００２】
従来の計算機システムは物理的な計算機（実マシン）を物理的なネットワーク（実ネットワーク）で接続することにより構築されていた。例えば、実マシンによってそれぞれ構成されたクライアントとサーバは実ネットワーク上で通信経路を確立し、相互に通信を行っていた。この種のシステムでは、実マシンを多重化することにより、システムの信頼性を向上する手法が採られていた（特許文献１参照）。
【０００３】
それに対し、近年では、実マシン上に仮想的な計算機（仮想マシン）を構築し、仮想マシン上でアプリケーションを実行するための仮想化環境制御技術が登場している。また、１つの実マシンに複数の仮想マシンを構築することも可能となっている。
【０００４】
更には、複数の仮想マシンに実マシンの環境を分配する技術、仮想マシンに提供する実マシン環境を仮想的に構築する技術、仮想的なデバイスをメモリ上に構築し、仮想マシンが実マシンによる処理を介さずにデバイスと通信を行う技術が提案されている（特許文献２参照）。また、実マシン上に仮想マシンを構築したシステムにおいて通信の多重化によってシステムの信頼性を向上する技術が提案されている（特許文献３参照）。
【０００５】
また、仮想環境制御機能を実装した実マシン間で仮想マシンのデータを転送し、元々実装されていた実マシンとは異なる実マシン上で仮想マシンを稼動することも可能となっている。このように仮想マシンのポータビリティが向上したことや、仮想マシンを実装する際の実マシンのアーキテクチャへの依存度が下がったことにより、仮想マシン上に構築された既存の業務アプリケーションのプログラムやサービスロジックを、実マシンを置き換えても継続使用して延命させることが期待されるようになっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−２９５７３８号公報
【特許文献２】米国特許出願公開第２０１１／０２４６９８９Ａ１号明細書
【特許文献３】特開２００８−２７８４７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実マシンが変わると、システム監視アプリケーションにおいて検知すべき障害項目も追加されたり変更されたりする。しかしながら現状では、仮想マシン上で実行されているアプリケーションであっても、実マシン上で稼働することを前提として設計されたものや、仮想マシンと実マシンの違いを意識しないで設計されたものが多く、環境の変更に柔軟に対応することができない。
【０００８】
新しく追加された障害項目には障害発生部位や障害識別子としてこれまで無かったものが使われる場合があり、その場合、仮想マシンは、想定していない障害発生部位あるいは障害識別子を通知する障害情報を実マシンから受信することになる。そうなると、仮想マシンは、通知された障害に対して適切な処理を実行することはできない。例えば、実マシンからの障害通知を仮想マシンが廃棄することが考えられ、その場合、仮想マシン上で動作しているシステム監視アプリケーションは障害が発生したことを知ることができない。
【０００９】
本発明の目的は、実マシンの障害を仮想マシンに適切に通知する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の一態様による計算機は、実マシン上に仮想マシンが構築される計算機であって、前記実マシン上で発生する障害を検知する実マシン異常検知手段と、前記実マシン異常検知手段で検知された前記障害の障害種別を、仮想マシンで処理するように抽象化された障害種別に変換する抽象化変換手段と、前記実マシン異常検知手段で検知された前記障害の障害発生部位を、仮想マシンにおける障害発生部位に変換する障害部位識別手段と、前記障害部位識別手段による変換で得られた前記障害発生部位に関連する仮想マシンに、前記抽象化変換手段による変換で得られた前記抽象化された障害種別の障害通知を送る障害通知手段と、を有している。
【発明の効果】
【００１１】
本発明によれば、実マシンの障害を仮想マシンに適切に通知することができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態による計算機の概略ブロック図である。
【図２】本実施例による仮想化サーバーシステムのブロック図である。
【図３】抽象化情報テーブル３０１を示す図である。
【図４】抽象化変換部２１１が実施する処理フローの一例を示すフローチャートである。
【図５】システム構成情報テーブル３０２を示す図である。
【図６】障害部位識別部２１２が実施する処理フローの例を示すフローチャートである。
【図７】実マシン仮想マシン間障害通知部２０４Ａが実施する処理フローの一例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
本発明の実施形態および実施例の説明においては、同一の構造あるいは機能を有する部分に同一の符号を付している。同一の符号を付した部分は原則として同一の動作を行うので重複する説明は省略している。
【００１４】
本発明の実施形態について図面を参照して説明する。
【００１５】
図１は、本実施形態による計算機の概略ブロック図である。図１を参照すると、計算機を構成する実マシン１００には２つの仮想マシン２０２Ａ、２０２Ｂが構築されている。各仮想マシン２０２Ａ、２０２Ｂはそれぞれ障害通知部２０４Ａ、２０４Ｂを有している。
【００１６】
実マシン１００は、抽象化変換部２１１、障害部位識別部２１２、および異常検知部２４０を有している。
【００１７】
ここでは一例として、仮想マシン２０２Ａ、２０２Ｂ、障害通知部２０４Ａ、２０４Ｂ、抽象化変換部２１１、障害部位識別部２１２、異常検知部２４０は全て実マシン１００のメモリ上に構築されるものである。
【００１８】
また、ここでは仮想マシン２０２Ａ、２０２Ｂが２つである場合を例示しているが、１つであっても良く、あるいは３つ以上であっても良い。
【００１９】
また、ここでは仮想マシン２０２Ａ、２０２Ｂがそれぞれ障害通知部２０４Ａ、２０４Ｂを内部に有する例を示しているが、本発明がこれに限定されることは無い。他の例として、障害通知部２０４Ａ、２０４Ｂは仮想マシン２０２Ａ、２０２Ｂとは別個のに存在しても良い。
【００２０】
また、ここでは実マシン１００が単独で存在する例が示されているが、実際には通信ネットワークを経由して他の計算機やデバイスに接続されているのが一般的である。すなわち、実マシン１００は単独で存在しても良く、複数が互いに通信ネットワークで接続されていても良い。
【００２１】
異常検知部２４０は、実マシン１００上で発生する障害を検知する。実マシン１００で発生する障害には、実マシン１００の構成に依存して様々な障害種別のものがある。例えばディスクの故障や通信カードの故障などがある。異常検知部２４０で検知された実マシンの障害の障害種別は障害種別判断部２２１によって判別される。
【００２２】
抽象化変換部２１１は、異常検知部２４０で検知された障害の障害種別を、仮想マシンで処理するように抽象化された障害種別に変換する。例えば、仮想マシンで処理できる障害種別として、実マシンに依存して事後的に追加される障害種別を当てはめることができるような汎用的な障害種別を予め定めておく。そして、抽象化変換部２１１は、実際に用いられている実マシン１００で発生した障害を、予め定められた障害種別に当てはめていく。
【００２３】
障害部位識別部２１２は、異常検知部２４０で検知された障害の障害発生部位を、仮想マシンにおける障害発生部位に変換する。異常検知部２４０で検知される実マシン１００の構成に依存する障害は、その発生部位によって影響が及ぶ仮想マシンが異なることがある。例えば、ある部位の障害は仮想マシン２０２Ａには影響するが、仮想マシン２０２Ｂには影響しないということがある。障害部位識別部２０１が障害発生部位を変換するとき、障害を通知すべき仮想マシンも明らかになる。
【００２４】
障害通知部２０４Ａ、２０４Ｂは、障害部位識別部２０１による変換で得られた障害発生部位に関連する仮想マシンに、抽象化変換部２１１による変換で得られた抽象化された障害種別の障害通知を送る。
【００２５】
本実施形態によれば、実マシン１００の障害を仮想マシンで処理できるように抽象化し、実マシン１００の障害発生部位に対応する仮想マシン２０２Ａ、２０２Ｂの障害発生部位に関連する仮想マシン２０２Ａ、２０２Ｂに通知するので、実マシン１００の障害を仮想マシン２０２Ａ、２０２Ｂに適切に通知することができる。
【００２６】
概要を上述した本実施形態の計算機は様々な構成例により好適化しうる。
【００２７】
本実施形態の計算機は、実マシン１００における障害種別と、抽象化された障害種別との対応関係を示す抽象化情報を例えばテーブル形式で記憶する抽象化情報記憶部（不図示）を更に有していても良い。その場合、抽象化変換部２１１は、異常検知部２４０で検知された障害の障害種別を、抽象化情報のテーブルを参照することにより、抽象化された障害種別に変換すればよい。これによれば、予め設定された抽象化情報に基づいて障害種別の抽象化を行うので、抽象化の処理を容易に実行することができる。
【００２８】
また、本実施形態の計算機は、実マシン１００における障害発生部位と仮想マシン２０２Ａ、２０２Ｂにおける障害発生部位との対応関係を示すシステム構成情報を例えばテーブル形式で記憶するシステム構成情報記憶部（不図示）を更に有していても良い。その場合、障害部位識別部２１２は、異常検知部２４０で検知された実マシンの障害の障害発生部位を、システム構成情報のテーブルを参照することにより、仮想マシン２０２Ａ、２０２Ｂにおける障害発生部位に変換すればよい。これによれば、予め設定されたシステム構成情報に基づいて障害発生箇所の変換を行うので、変換の処理を容易に実行することができる。
【００２９】
また、本実施形態の仮想マシン２０２Ａ、２０２Ｂは、実マシン１００の障害を処理する実マシン障害情報処理部（不図示）と、仮想マシン２０２Ａ、２０２Ｂの障害を処理する仮想マシン障害情報処理部（不図示）とを別個に有することにしても良い。そして、障害通知部２０４Ａ、２０４Ｂは、障害部位識別部２１２で障害発生部位が変換された障害通知と、障害発生部位が変換されなかった障害通知とを区別できるように、仮想マシン２０２Ａ、２０２Ｂに通知するとよい。更に、記仮想マシン障害情報処理部は、仮想マシンで発生した障害に対する処理を実行し、実マシン障害情報処理部は、障害通知部２０４Ａ、２０４Ｂから通知された障害通知のうち少なくとも障害部位識別部２１２で障害発生部位が変換された障害通知に対する処理を実行するとよい。これによれば、実マシン障害情報処理と仮想マシン障害情報処理をそれぞれに担う処理部を別個に設け、それぞれの処理部が、実マシンで発生し、仮想マシンの障害に変換された障害と、仮想マシン自身で発生した障害とを分担して効率良く処理することができる。なお、その場合に、実マシン障害情報処理部は、障害通知部２０４Ａ、２０４Ｂから通知された障害通知のうち、障害部位識別部２１２で障害発生部位が変換されていない障害通知に対する処理をも実行することにしても良い。
【００３０】
以下、本実施形態をより具体化した実施例について説明する。
【００３１】
図２は、本実施例による仮想化サーバーシステムのブロック図である。
【００３２】
仮想化サーバーシステム６００は実マシン１００を備え、ＬＡＮ４００、５００により他のシステムと連結している。
【００３３】
実マシン１００は物理的な計算機でありその上で仮想マシンを稼動させることが可能である。実マシン１００として様々な構成のものが採用され得るが、ここではその一例を示す。実マシン１００は、プロセッサ２５０と、メモリ２００と、通信インタフェース２６１Ａ、２６１Ｂと、ディスクインタフェース２６０とを有している。これらの装置は通信路２６２で互いに接続されている。ここでは通信路２６２は具体例としてバスであるとする。
【００３４】
更に実マシン１００は外部に記憶媒体３００を有しており、その記憶媒体３００の内部に抽象化情報テーブル３０１とシステム構成情報テーブル３０２の初期値が記憶されている。
【００３５】
実マシン１００のメモリ２００には、実マシン用オペレーティングシステム２３０がある。ただし、本発明がそれに限定されることは無く、オペレーティングシステムが無い場合もあり得る。
【００３６】
また、メモリ２００には、仮想サーバを稼動させるために必要な機能を実現する仮想環境制御部２２０があり、その仮想環境制御部２２０の内部には、障害種別判断部２２１および仮想ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）２２２Ａ、２２２Ｂ、２２２Ｃ、２２２Ｄがある。また、メモリ２００には障害部位対応部２１０があり、その障害部位対応部２１０の内部に抽象化変換部２１１と障害部位識別部２１２がある。
【００３７】
実マシン１００と仮想マシン２０２Ａ、２０２Ｂとで情報を共有することが可能な仮想マシン・実マシン共有用メモリ区画２０７があり、その仮想マシン・実マシン共有用メモリ区画２０７には抽象化情報テーブル２０８およびシステム情報テーブル２０９がある。そして、実マシン１００および仮想マシン２０２Ａ、２０２Ｂが抽象化情報テーブル２０８およびシステム情報テーブル２０９にアクセスするために、仮想マシン・実マシン共有用情報インタフェース２０６がある。実マシン１００および仮想マシン２０２Ａ、２０２Ｂは、この仮想マシン・実マシン共有用情報インタフェース２０６を介して、抽象化情報テーブル２０８およびシステム情報テーブル２０９を参照したり、更新したりする．
【００３８】
仮想マシン用論理区画２０１Ａには仮想マシン２０２Ａがあり、仮想マシン２０２Ａは、実マシン障害情報処理部２０３Ａ、仮想マシン障害情報処理部２０３Ａ’、実マシン仮想マシン間障害通知部２０４Ａ、仮想マシン用オペレーティングシステム２０５Ａ、および仮想デバイスドライバ２０６Ａを有する。
【００３９】
仮想マシン用論理区画２０１Ｂは仮想マシン用論理区画２０１Ａと同じ構造であるため、ここではその説明を省略する。
【００４０】
一例として、上述した各処理部の機能はプロセッサ２５０がそれぞれのソフトウェアプログラムを実行することにより実現することができる。しかしながら、本発明がこれに限定されることは無い。他の例として、実マシン用オペレーティングシステム２３０、仮想環境制御部２２０、障害種別判断部２２１、仮想ＮＩＣ２２２Ａ、２２２Ｂ、２２２Ｃ、２２２Ｄ、抽象化変換部２１１、障害部位識別部２１２、障害部位対応部２１０、仮想マシン・実マシン共有用情報インタフェース２０６、実マシン障害情報処理部２０３Ａ、仮想マシン障害情報処理部２０３Ａ’、実マシン仮想マシン間障害通知部２０４Ａ、仮想マシン用オペレーティングシステム２０５Ａ、仮想デバイスドライバ２０６Ａなどの一部あるいは全部を集積回路化するなどしてハードウェアで実現することも可能である。
【００４１】
以下では説明を簡単にするために、プロセッサ２５０がソフトウェアプログラムを実行することにより実現される各処理部を動作主体として説明する。
【００４２】
実マシン１００が備えるディスクインタフェース２６０、通信インタフェース２６１Ａ、２６１Ｂについての異常は異常検知部２４０が検知する。異常検知部２４０で検知された異常の種別は障害種別判断部２２１によって判別される。異常検知部２４０は異常を検知すると、異常の種別を表すユニークな識別子（ＩＤ）と障害発生部位とを示す情報を含む障害通知を出力するものとする。
【００４３】
この種の計算機では、警報や障害が発生したとき、警報や障害のログデータを収集したり、正常に処理が行なえなくなる可能性があるために稼働系と待機系の切り替えを行ったり、シャットダウンによる停止処理を実施したり等、警報や障害に応じた処理を実行するための処理プログラムが組み込まれることがある。また、この種のシステムでは障害に応じた処理を即座に実行できるようにするために、障害を検出する装置（不図示）、検出された障害を通知する装置（不図示）、障害が通知されたことをトリガとして障害に応じた処理を実施する装置（不図示）が備えられている。
【００４４】
仮想化環境において実マシンまたは仮想マシンで障害が検知されてから仮想マシンに障害が通知されるまでの動作について説明する。
【００４５】
図３は、抽象化情報テーブル３０１を示す図である。図３には抽象化情報テーブル３０１の構成例が記載されている。図３を参照すると、抽象化情報テーブル３０１には、メッセージ種別３０１Ｂと、抽象化メッセージ種別３０１Ｃとが対応付けられている。例えば、異常を検知した異常検知部２４０が出力するメッセージ種別のｅｒｒｎｏ００１と、抽象化メッセージ種別のｅｒｒｎｏ１００とが対応している。この抽象化メッセージ種別ｅｒｒｎｏ１００は、実マシン１００の異常を抽象化して仮想マシン２０２Ａ、２０２Ｂに通知するために予め準備されたメッセージ種別である。ここでは、抽象化メッセージ種別が一種類だけの場合が例示されているが、本発明がそれに限定されることは無い。例えば、重度障害、軽度障害、警報というように、複数レベルの抽象化メッセージ種別を準備しておき、異常検知部２４０が出力するメッセージの各メッセージ種別に対応づけることにしても良い。あるいは、ディスク障害、通信カード障害、というように複数種類の抽象化メッセージ種別を準備しておいても良い。また、複数種類のそれぞれについて複数レベルの抽象化メッセージ種別を準備しておいても良い。
【００４６】
この記憶媒体３００の抽象化情報テーブル３０１は初期値であり、実マシン１００の仮想マシン・実マシン共有用メモリ区画２０７に抽象化情報テーブル２０８として格納され、使用される。
【００４７】
図４は、抽象化変換部２１１が実施する処理フローの一例を示すフローチャートである。異常検知部２４０が実マシンの異常を検知し、障害通知のメッセージを出力したとする。その障害通知のメッセージにはメッセージ種別と障害箇所とが含まれている。
【００４８】
抽象化変換部２１１は、異常検知部２４０から出力された実マシンの障害通知のメッセージからメッセージ種別を切り出し（ステップＳ８０１）、抽象化情報テーブル２０８を参照し（ステップＳ８０２）、そのメッセージ種別に対応する抽象化メッセージ種別が存在するか否か判断する（ステップＳ８０３）。
【００４９】
その実マシンのメッセージのメッセージ種別に対応するメッセージ種別が存在していれば、抽象化変換部２１１は、そのメッセージのメッセージ種別を抽象化メッセージ種別に書き換え、障害部位識別部２１２へ渡す（ステップＳ８０４）。
【００５０】
一方、その実マシンのメッセージのメッセージ種別に対応するメッセージ種別が存在しなければ、抽象化変換部２１１は、メッセージ種別の書き換えを行わずに、メッセージを障害部位識別部２１２へ渡す（ステップＳ８０５）。
【００５１】
図５は、システム構成情報テーブル３０２を示す図である。図５にはシステム構成情報テーブル３０２の構成例が記載されている。図５を参照すると、システム構成情報テーブル３０２には、仮想マシン名称３０２Ａと、仮想マシンの構成部位３０２Ｂと、その仮想マシンの構成部位３０２Ｂに対応する実マシン１００の構成部位３０２Ｃとが対応付けて記録されている。実マシンの当該構成部位に障害が発生すると、仮想マシンの当該構成部位に影響が及ぶという関係を示している。図５の例では、仮想マシン３０２Ａ  １の構成部位３０２Ｂ  ｅｔｈ２と、実マシンの構成部位３０２Ｃ  ｅｔｈ１とが対応している。
【００５２】
この記憶媒体３００のシステム構成情報テーブル３０２は初期値であり、実マシン１００におけるメモリ２００の仮想マシン・実マシン共有用メモリ区画２０７にシステム構成情報テーブル２０９として格納され、使用される。
【００５３】
ここでは、仮想マシン２０２Ａに仮想ＮＩＣ  ２２２Ａ、２２２Ｂが用いられ、仮想ＮＩＣ  ２２２Ａが実マシン１００の通信インタフェース２６１Ａに対応づけられ、仮想ＮＩＣ  ２２２Ｂが実マシン１００の通信インタフェース２６１Ｂに対応付けられている。また、仮想マシン２０２Ｂに仮想ＮＩＣ  ２２２Ｃ、２２２Ｄが用いられ、仮想ＮＩＣ  ２２２Ｃが実マシン１００の通信インタフェース２６１Ａに対応づけられ、仮想ＮＩＣ  ２２２Ｄが実マシン１００の通信インタフェース２６１Ｂに対応付けられている。通信インタフェース２６１Ａに異常が発生した場合、システム構成情報テーブル３０２からは、その実マシンの障害の影響が及ぶ対象として、仮想マシン２０２Ａおよび仮想ＮＩＣ  ２２２Ａに相当する仮想マシンの障害部位と、仮想マシン２０２Ｂおよび仮想ＮＩＣ  ２２２Ｃに相当する仮想マシンの障害部位とが抽出されることになる。
【００５４】
図６は、障害部位識別部２１２が実施する処理フローの例を示すフローチャートである。障害部位識別部２１２は、抽象化変換部２１１から障害通知のメッセージを受信すると（ステップＳ７０１）、受信したメッセージを解析して実マシンの障害部位の情報を切り出し（ステップＳ７０２）、システム情報テーブル２０９を参照し（ステップＳ７０３）、その実マシンの障害部位が仮想マシンの構成部位に対応付けられているか否か判定する（ステップＳ７０４）。
【００５５】
実マシンの障害部位が仮想マシンの構成部位に対応付けられていれば、障害部位識別部２１２は、受信したメッセージの障害部位を仮想マシンの構成部位に書き換える（ステップＳ７０５）。更に、障害部位識別部２１２はシステム構成情報テーブル２０９を参照し、その障害部位に対応する仮想マシン名称を取得し、取得された仮想マシン名称の仮想マシンに、通信インタフェース２６１Ａまたは通信インタフェース２６１Ｂを介して障害通知を送信する（ステップＳ７０７）。このとき、障害部位識別部２１２は、対応づけを行なって障害部位を変換したことを示す情報を付加して障害通知を送信する。
【００５６】
一方、実マシンの障害部位が仮想マシンの部位に対応づけられていなければ、障害部位識別部２１２は、障害部位の情報の書き換え行わない（ステップＳ７０６）。そして、障害部位識別部２１２は、システム構成情報テーブル２０９を参照し、全ての仮想マシン名称を取得し、通信インタフェース２６１Ａまたは通信インタフェース２６１Ｂより全ての仮想マシンに障害通知を送信する（ステップＳ７０８）。このとき、障害部位識別部２１２は、対応づけを行なったことを示す情報を付加せずに障害通知を送信する。
【００５７】
図７は、実マシン仮想マシン間障害通知部２０４Ａが実施する処理フローの一例を示すフローチャートである。
【００５８】
実マシン仮想マシン間障害通知部２０４Ａは、実マシン１００から障害通知のメッセージを受信すると（ステップＳ９０１）、その障害通知のメッセージがステップＳ７０７またはステップＳ７０８により付加された情報より実マシンの障害部位が仮想マシンの構成部位に対応づけて変換されたものであるか否か判断する（ステップＳ９０２）。
【００５９】
実マシンの障害部位が仮想マシンの構成部位に対応づけされていれば、実マシン仮想マシン間障害通知部２０４Ａは、その障害通知の情報を仮想マシン障害情報処理部２０３Ａ’へ通知する（ステップＳ９０３）。
【００６０】
一方、実マシンの障害部位が仮想マシンの構成部位に対応付けされていなければ、実マシン仮想マシン間障害通知部２０４Ａは、その障害通知の情報を実マシン障害情報処理部２０３Ａへ通知する（ステップＳ９０４）。
【００６１】
なお、実マシンの障害を記録する実マシン障害記憶領域と、仮想マシンの障害を記録する仮想マシン障害記憶領域とを設けておくことにしても良い。実マシンの障害部位が仮想マシンの構成部位に対応づけされていた障害通知は、仮想マシン障害記憶領域に記録し、実マシンの障害部位が仮想マシンの構成部位に対応づけられていなかった障害通知は、実マシン障害記憶領域に記録すればよい。そして、実マシン障害情報処理部２０３Ａは実マシン障害記憶領域から障害の情報を読み出して処理し、仮想マシン障害情報処理部２０３Ａ’は仮想マシン障害記憶領域から障害の情報を読み出して処理すればよい。仮想マシン障害記憶領域から読み出される障害の種別に対して、どのような処理を行うかは予め定められている。
【００６２】
例えば、メッセージ種別と障害が起こった仮想マシンの構成部位との組み合わせに対して、実行すべき処理を予め定めておけばよい。
【００６３】
抽象化されたメッセージ種別が一種類の場合、そのメッセージ種別の障害が発生したときに障害箇所に対応する処理を予め定めておけばよい。また、重度障害、軽度障害、警報というように抽象化されたメッセージ種別が複数うの場合、各メッセージ種別と障害箇所とから定まる処理を予め定めておけばよい。例えば、重度の障害が特定の仮想ＮＩＣに起こった場合、ログデータを取得し、稼働系と待機系の切り替えを実施するというように定めておけばよい。
【００６４】
これにより、実マシン障害情報処理部２０３Ａと仮想マシン障害情報処理部２０３Ａ’とが容易に作業を分担し、所望の処理を実行することが可能となる。
【００６５】
また、本実施例では、異常検知部２４０から出力されたメッセージを抽象化してから仮想マシン２０２Ａ、２０２Ｂに送り、仮想マシン２０２Ａ、２０２Ｂが抽象化されたメッセージ種別に基づいて実行すべき処理を決定する例を示したが、本発明がこれに限定されることは無い。他の例として、仮想マシン２０２Ａ、２０２Ｂは抽象化されていないメッセージ種別のメッセージを受信し、抽象化し、抽象化されたメッセージ種別に基づいて実行する処理を決定することにしてもよい。その場合、図２における、抽象化変換部２１１に相当する処理部を仮想マシン２０２Ａ、２０２Ｂの内部に配置するとよい。
【００６６】
以上、本実施例によれば、実マシン１００で発生した障害を通知するメッセージを、抽象化変換部２１１が抽象化された障害通知のメッセージに変換し、障害部位識別部２１２が、障害部位を仮想マシンの部位に変換できるものは変換し、実マシン仮想マシン間障害通知部２０４Ａが、仮想マシンの障害に対する処理を実施する仮想マシン障害情報処理部２０３Ａ’と、実マシンの障害に対する処理を実施する実マシン障害情報処理部２０３Ａとに振り分けて通知することができる。
【００６７】
上述した本発明の実施形態および実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態や実施例のみに限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【００６８】
１００…実マシン、２００…メモリ、２０１…障害部位識別部、２０１Ａ，２０１Ｂ…仮想マシン用論理区画、２０２Ａ，２０２Ｂ…仮想マシン、２０３Ａ，２０３Ｂ…仮想マシン障害情報処理部、２０３Ａ’，２０３Ｂ’…実マシン障害情報処理部、２０４Ａ，２０４Ｂ…実マシン仮想マシン間障害通知部、２０５Ａ，２０５Ｂ…仮想マシン用オペレーティングシステム、２０６…仮想マシン・実マシン共有用情報インターフェース、２０６Ａ，２０６Ｂ…仮想デバイスドライバ、２０７…仮想マシン・実マシン共有用メモリ区画、２０８…抽象化情報テーブル、２０９…システム構成情報テーブル，２１０…障害部位対応部、２１１…抽象化変換部、２１２…障害部位識別部、２２０…仮想環境制御部、２２１…障害種別判断部、２２２Ａ〜Ｄ…仮想ＮＩＣ、２３０…実マシン用オペレーティングシステム、２４０…異常検知部、２５０…プロセッサ、２６０…ディスクインタフェース、２６１Ａ，２６１Ｂ…通信インタフェース、２６２…通信路、３００…記憶媒体、３０１…抽象化情報テーブル、３０１Ｂ…メッセージ種別、３０１Ｃ…抽象化メッセージ種別、３０２…システム構成情報テーブル、３０２Ａ…仮想マシン名称、３０２Ｂ…構成部位、３０２Ｃ…構成部位、４００，５００…ＬＡＮ、６００…仮想化サーバーシステム
【図１】
2014041506.tif 000003
【図２】
2014041506.tif 000004
【図３】
2014041506.tif 000005
【図４】
2014041506.tif 000006
【図５】
2014041506.tif 000007
【図６】
2014041506.tif 000008
【図７】
2014041506.tif 000009