(57)【要約】【課題】物理計算機上に仮想化環境を構築したシステムを適切に制御することを可能にする技術を提供する。【解決手段】物理計算機および仮想化環境のそれぞれの二重化において対応する両系が生存監視電文を互いに送受信する生存監視手段と、両系に不整合が生じているか否か判定する不整合判定手段と、生存監視手段において、生存監視電文がタイムアウトした系に対応する系を障害と判断する障害箇所特定手段と、不整合判定手段において、不整合が生じていたら、稼働系として動作を開始した時刻が古い系を障害と判断する不整合箇所特定手段と、障害箇所特定手段または不整合箇所特定手段において、障害と判断された系が稼働系であれば、所定の保護処理により、その稼働系を稼働系として動作しない状態にすると共に、対応する待機系を稼働系に遷移させ、障害と判断された系が待機系であれば、その待機系を停止させる状態制御手段と、を有している。【選択図】図１
2014044690.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機上に仮想化環境を構築し、前記物理計算機と前記仮想化環境の二重化を構成するシステムの計算機制御装置であって、
前記物理計算機および前記仮想化環境のそれぞれに配置され、前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系が生存監視電文を互いに送受信する生存監視手段と、
前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系がどちらも自系が稼働系と認識する不整合が生じているか否か判定する不整合判定手段と、
前記生存監視手段において、前記生存監視電文が所定のタイムアウト時間内に受信されずタイムアウトした系に対応する系の物理計算機または仮想化環境を障害と判断する障害箇所特定手段と、
前記不整合判定手段において、不整合が生じていたら、稼働系として動作を開始した時刻が古い系の物理計算機または仮想化環境を障害と判断する不整合箇所特定手段と、
前記障害箇所特定手段または前記不整合箇所特定手段において、障害と判断された系が稼働系であれば、所定の保護処理により、該稼働系の物理計算機または仮想化環境を稼働系として動作しない状態にすると共に、対応する待機系の物理計算機または仮想化環境を稼働系に遷移させ、障害と判断された系が待機系であれば、該待機系の物理計算機または仮想化環境を停止させる状態制御手段と、
を有する計算機制御装置。
【請求項２】
前記保護処理は、稼働系の仮想化環境が障害となっていれば、該仮想化環境の所定のメモリ領域を該仮想化環境外のメモリ領域に退避し、該仮想化環境をリセットする処理を含む、請求項１に記載の計算機制御装置。
【請求項３】
前記不整合箇所特定手段は、前記物理計算機および前記仮想化環境のそれぞれについて稼働系として動作を開始した時刻を稼働系開始時刻として記録し、対応する両系に不整合が生じていたら、該両系の稼動系開始時刻を参照することにより、障害とする系を決定する、請求項１または２に記載の計算機制御装置。
【請求項４】
前記障害箇所特定手段は、前記物理計算機および前記仮想化環境のそれぞれについて、前記タイムアウト時間を予め定めておき、前記生存監視電文を最後に受信した時刻である最終受信時刻を記録し、前記最終受信時刻から現在時刻までの時間が前記タイムアウト時間を超えたらタイムアウトと判断する、請求項１から３のいずれか一項に記載の計算機制御装置。
【請求項５】
物理計算機上に仮想化環境を構築し、前記物理計算機と前記仮想化環境の二重化を構成するシステムを制御するための計算機制御方法であって、
前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系が生存監視電文を互いに送受信して、前記生存監視電文が所定時間内に受信されずタイムアウトした系に対応する系の物理計算機または仮想化環境を障害と判断するステップと、
前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系がどちらも自系が稼働系と認識する不整合が生じているか否か判定し、不整合が生じていたら、稼働系として動作を開始した時刻が古い系の物理計算機または仮想化環境を障害と判断するステップと、
障害と判断された系が稼働系であれば、所定の保護処理により、該稼働系の物理計算機または仮想化環境を稼働系として動作しない状態にすると共に、対応する待機系の物理計算機または仮想化環境を稼働系に遷移させるステップと、
障害と判断された系が待機系であれば、該待機系の物理計算機または仮想化環境を停止させるステップと、
を有する計算機制御方法。
【請求項６】
物理計算機上に仮想化環境を構築し、前記物理計算機と前記仮想化環境の二重化を構成するシステムを制御するための計算機制御プログラムであって、
前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系が生存監視電文を互いに送受信して、前記生存監視電文が所定時間内に受信されずタイムアウトした系に対応する系の物理計算機または仮想化環境を障害と判断する手順と、
前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系がどちらも自系が稼働系と認識する不整合が生じているか否か判定し、不整合が生じていたら、稼働系として動作を開始した時刻が古い系の物理計算機または仮想化環境を障害と判断する手順と、
障害と判断された系が稼働系であれば、所定の保護処理により、該稼働系の物理計算機または仮想化環境を稼働系として動作しない状態にすると共に、対応する待機系の物理計算機または仮想化環境を稼働系に遷移させる手順と、
障害と判断された系が待機系であれば、該待機系の物理計算機または仮想化環境を停止させる手順と、
を計算機に実行させるための計算機制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理計算機上に仮想化環境を構築したシステムの物理計算機および仮想化環境を制御する技術に関する。
【背景技術】
【０００２】
鉄道運行管理、電力系統制御、プラント制御などの高信頼性が要求される用途では、稼動系計算機に障害が発生した場合に、その稼動系計算機の処理を引き継ぐ待機系計算機を備えた多重系システムが用いられている（特許文献１参照）。
【０００３】
特許文献１の多重系システムでは、稼動系計算機に障害が発生したら、迅速かつ確実に待機系計算機への系切り替えを行うべく、障害を検出した待機系計算機から稼動系計算機へ再起動／停止要求電文を送信する方法が提案されている。
【０００４】
ところで、現在では、計算機を仮想化する技術を用いることで物理計算機上に仮想的な計算機（仮想化環境）を構築することが可能であり、更には、同じ物理計算機上に複数の仮想化環境を構築することも可能である。このような仮想化環境上でアプリケーションを実行することができる。
【０００５】
このような物理計算機上に仮想化環境を構築したシステムにおいても、高可用性を実現すべく、物理計算機および仮想化環境の障害を監視し、計算機の系切り替えを実行する手法が提案されている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４４８７２６０号公報
【特許文献２】特許第４８０９２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の多重系システムは物理計算機を前提としたものである。そのため、物理計算機上に複数の仮想化環境を構築した場合に、物理計算機上の各仮想化環境で発生した障害を契機に、稼動系計算機に存在する仮想化環境から待機系計算機に存在する仮想化環境へ系切り替えをする手段がない。また、特許文献１の多重化システムは物理計算機を前提としているため、仮想化環境に対して再起動／停止要求電文を送信することもできない。そのため、稼働系計算機に障害が発生したとき、再起動／停止要求電文によって稼働系計算機を強制的に待機系に移行させることができず、二重化の両系の計算機が自身を稼動系と判断して動作してしまう可能性がある。
【０００８】
また、物理計算機上に複数の仮想化環境を構築した場合、障害時に送受信される電文で通信経路における通信負荷が高くなり一時的に通信ができない状態が発生する可能性がある。また、仮想化環境が存在するシステムにおいては、物理計算機だけで構成されたシステムに比べてネットワークの層が多段となる。そのため、障害時に通信経路の負荷が高くなり、それが原因で通信経路上で間欠障害が発生しやすい。
【０００９】
このように通信経路上に間欠障害が発生した場合、特許文献２においては、待機系計算機に存在する待機系仮想環境は、稼動系計算機に障害が発生したと判断し、系切り替えを実行してしまう。そして、その後で通信経路が正常状態になったとき、両計算機が自計算機を稼動系と判断したまま稼動してしまうことが考えられる。これは、鉄道運行管理、電力系統制御、プラント制御などの高信頼性が要求される用途においては好ましくない。
【００１０】
本発明の目的は、物理計算機上に仮想化環境を構築したシステムを適切に制御することを可能にする技術を提供することである。
【課題を解決するための手段】
【００１１】
本発明の一態様による計算機制御装置は、物理計算機上に仮想化環境を構築し、前記物理計算機と前記仮想化環境の二重化を構成するシステムの計算機制御装置であって、前記物理計算機および前記仮想化環境のそれぞれに配置され、前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系が生存監視電文を互いに送受信する生存監視手段と、前記物理計算機および前記仮想化環境のそれぞれの二重化において対応する両系がどちらも自系が稼働系と認識する不整合が生じているか否か判定する不整合判定手段と、前記生存監視手段において、前記生存監視電文が所定のタイムアウト時間内に受信されずタイムアウトした系に対応する系の物理計算機または仮想化環境を障害と判断する障害箇所特定手段と、前記不整合判定手段において、不整合が生じていたら、稼働系として動作を開始した時刻が古い系の物理計算機または仮想化環境を障害と判断する不整合箇所特定手段と、前記障害箇所特定手段または前記不整合箇所特定手段において、障害と判断された系が稼働系であれば、所定の保護処理により、該稼働系の物理計算機または仮想化環境を稼働系として動作しない状態にすると共に、対応する待機系の物理計算機または仮想化環境を稼働系に遷移させ、障害と判断された系が待機系であれば、該待機系の物理計算機または仮想化環境を停止させる状態制御手段と、を有している。
【発明の効果】
【００１２】
本発明によれば、物理計算機上に仮想化環境を構築したシステムを適切に制御することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本実施形態による計算機システムのブロック図である。
【図２】本実施例による計算機システムの全体構成を示すブロック図である。
【図３】本実施例による計算機システムの全体構成を示すブロック図である。
【図４】本実施例における物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂを示す図である。
【図５】本実施例における物理計算機および仮想化環境上の構成制御アプリケーションが生存監視電文を送信する処理フローＳ４０１を示すフローチャートである。
【図６】本実施例における物理計算機および仮想化環境上の構成制御アプリケーション２７０Ａ、２７０Ｂ、２８３ＡＡ、２８３ＡＢ、２８３ＢＡ、２８３ＢＢが生存監視電文を受信する処理フローＳ５０１を示すフローチャートである。
【図７】本実施例における物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂが実行する処理フローＳ６０１を示すフローチャートである。
【図８】本実施例における物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂの処理フローＳ７０１を示すフローチャートである。
【図９】本実施例における物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂが再起動および停止を命令する処理フローＳ８０１を示すフローチャートである。
【図１０】本実施例における物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂが再起動／停止の通知を受信したときの処理フローＳ９０１を示すフローチャートである。
【図１１】本実施例における物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂが物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂから通知を受信したときに実行する処理フローＳ１００１を示すフローチャートである。
【図１２】本実施例における物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂが物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂから通知を受信したときに実行する処理の処理フローＳ１１０１を示すフローチャートである。
【発明を実施するための形態】
【００１４】
本発明の実施形態について図面を参照して説明する。
【００１５】
図１は、本発明の一実施形態による計算機システムのブロック図である。図１を参照すると、本実施形態による計算機システムは、二重化された２つの物理計算機１０Ａ、１０Ｂを有している。物理計算機１０Ａと物理計算機１０Ｂは基本的に同じ構成であり、対をなし、一方が稼動系となり、他方が待機系となって二重化を構成している。二重化においては、稼働系に障害が発生した場合には、稼働系と待機系の系が切り替わり、待機系が新たな稼動系となる。
【００１６】
物理計算機１０Ａには２つの仮想化環境１１ＡＡ、１１ＡＢが構築されている。同様に、物理計算機１０Ｂにも２つの仮想化環境が１１ＢＡ、１１ＢＢが構築されている。そして、物理計算機１０Ａの仮想化環境１１ＡＡと物理計算機１０Ｂの仮想化環境１１ＡＢが二重化を構成し、物理計算機１０Ａの仮想化環境１１ＢＡと物理計算機１０Ｂの仮想化環境１１ＢＢが二重化を構成している。
【００１７】
また、物理計算機１０Ａ、１０Ｂは、物理計算機と仮想化環境が共に二重化された計算機システムの計算機を制御するために、生存監視部１２Ａ、１２ＡＡ、１２ＡＢ、１２Ｂ、１２ＢＡ、１２ＢＢ、不整合判定部１３Ａ、１３Ｂ、障害箇所特定部１４Ａ、１４Ｂ、不整合箇所特定部１５Ａ、１５Ｂ、および状態制御部１６Ａ、１６Ｂを有している。
【００１８】
物理計算機１０Ａにある生存監視部１２Ａと物理計算機１０Ｂにある生存監視部１２Ｂ、不整合判定部１３Ａと不整合判定部１３Ｂ、障害箇所特定部１４Ａと障害箇所特定部１４Ｂ、不整合箇所特定部１５Ａと不整合箇所特定部１５Ｂ、状態制御部１６Ａと状態制御部１６Ｂはそれぞれ同じものである。ここでは主に物理計算機１０Ａについて説明する。
【００１９】
物理計算機１０Ａ、仮想化環境１１ＡＡ、１１ＡＢにはそれぞれに生存監視部１２Ａ、１２ＡＡ、１２ＡＢが配置されている。同様に、物理計算機１０Ｂ、仮想化環境１１ＢＡ、１１ＢＢにはそれぞれに生存監視部１２Ｂ、１２ＢＡ、１２ＢＢが配置されている。
【００２０】
二重化において対応する両系である物理計算機１０Ａと物理計算機１０Ｂが相互に生存していることを確認するために、生存監視部１２Ａと生存監視部１２Ｂが互いに生存監視電文を送受信する。同様に、二重化において対応する両系である仮想化環境１１ＡＡと仮想化環境１１ＢＡが生存していることを相互に確認するために、生存監視部１２ＡＡと生存監視部１２ＢＡが互いに生存監視電文を送受信する。同様に、二重化において対応する両系である仮想化環境１１ＡＢと仮想化環境１１ＢＢが生存していることを相互に確認するために、生存監視部１２ＡＢと生存監視部１２ＢＢが互いに生存監視電文を送受信する。
【００２１】
不整合判定部１３Ａは、物理計算機１０Ａと物理計算機１０Ｂ、仮想化環境１１ＡＡと仮想化環境１１ＢＡ、仮想化環境１１ＡＢと仮想化環境１１ＢＢという、それぞれの二重化において対応する両系がどちらも自系が稼働系と認識するという不整合が生じているか否か判定する。例えば、両系が相互に送受信する電文に自系が稼働系と認識していることを表わす情報を含めることにより、他系の認識を知ることができる。
【００２２】
障害箇所特定部１４Ａは、生存監視部１２Ａ、１２ＡＡ、１２ＡＢにおいて、生存監視電文が所定のタイムアウト時間内に受信されずタイムアウトしたら、その系に対応する系の物理計算機１０Ｂまたは仮想化環境１１ＢＡ、１１ＢＢを障害と判断する。
【００２３】
不整合箇所特定部１５Ａは、不整合判定部１３Ａにおいて、不整合が生じていたら、稼働系として動作を開始した時刻が古い系の物理計算機または仮想化環境を障害と判断する。例えば、両系が送受信する電文に自系が稼働系として動作を開始した時刻（稼働系開始時刻）を含めることにより、他系の稼動系開始時刻を知ることができる。
【００２４】
状態制御部１６Ａは、障害箇所特定部１４Ａまたは不整合箇所特定部１５Ａにおいて障害と判断された系が稼働系であれば、所定の保護処理により、その稼働系の物理計算機または仮想化環境を稼働系として動作しない状態にすると共に、対応する待機系の物理計算機または仮想化環境を稼働系に遷移させる。また、状態制御部１６Ａは、障害箇所特定部１４Ａまたは不整合箇所特定部１５Ａにおいて障害と判断された系が待機系であれば、その待機系の物理計算機または仮想化環境を停止させる。物理計算機１０Ａの障害箇所特定部１４Ａまたは不整合箇所特定部１５Ａでは他系の物理計算機１０Ｂあるいはその上に構築された仮想化環境１１ＢＡ、１１ＢＢの障害が特定されるので、状態制御部１６Ａは、他系の物理計算機１０Ｂまたは仮想化環境１１ＢＡ、１１Ｂに対して保護処理や停止させる処理を電文で指示する。
【００２５】
以上、本実施形態によれば、物理計算機上に仮想化環境を構築し、物理計算機と仮想化環境の二重化を構成する計算機システムにおいて、物理計算機あるいは仮想化環境に障害が生じたとき適切に制御を実行することができる。
【００２６】
なお、上述の保護処理は、例えば、稼働系の仮想化環境１１ＢＡ、１１ＢＢが障害となっていれば、その仮想化環境１１ＢＡ、１１ＢＢの所定のメモリ領域を仮想化環境１１ＢＡ、１１ＢＢ外のメモリ領域に退避してから、仮想化環境１１ＢＡ、１１ＢＢをリセットする処理であってもよい。これによれば、障害による系切換が発生したとき、障害要因の特定に利用可能なデータを取得することができる。
【００２７】
また、例えば、不整合箇所特定部１５Ａは、物理計算機１０Ａ、１０Ｂおよび仮想化環境１１ＡＡ、１１ＡＢ、１１ＢＡ、１１ＢＢのそれぞれについて稼働系として動作を開始した時刻を稼働系開始時刻として記録しておき、対応する両系に不整合が生じていたら、両系の稼動系開始時刻を参照することにより、障害とする系を決定することにしてもよい。これによれば、両系の状態が不整合となったときに、どちらの系を障害とするかを容易に判断することができる。
【００２８】
また、例えば、障害箇所特定部１４Ａは、物理計算機１０Ａおよび仮想化環境１１ＡＡ、１１ＡＢのそれぞれについて、タイムアウト時間を予め定めておき、生存監視電文を最後に受信した時刻である最終受信時刻を記録し、最終受信時刻から現在時刻までの時間がタイムアウト時間を超えたらタイムアウトと判断することにしてもよい。これによれば、生存監視電文のタイムアウトを容易に判断することができる。
【００２９】
なお、図１において物理計算機１０Ａ、１０Ｂ内に設けられた各部は、それぞれの処理手順を規定したソフトウェアプログラムをコンピュータに実行させることにより実現することもできる。
【００３０】
続いて上述した本実施形態をより具体化した実施例について説明する。
【００３１】
図２および３は、本実施例による計算機システムの全体構成を示すブロック図である。図２には稼働系の物理計算機１００Ａが示され、図３には待機系の物理計算機１００Ｂが示されている。
【００３２】
図２を参照すると、稼働系の物理計算機１００Ａは、メモリ２００Ａ、プロセッサ１１０、ディスクインタフェース１２０、および通信インタフェース１３０、１３１を有している。ディスクインタフェース１２０はディスク１４０に接続されている。通信インタフェース１３０はネットワーク１５０に接続され、通信インタフェース１３１はネットワーク１６０に接続されている。
【００３３】
メモリ２００Ａ上には、仮想化環境用論理区画２８１ＡＡ、２８１ＡＢと、構成制御アプリケーション２７０Ａと、物理計算機・仮想化環境共有用メモリ区画２３０Ａと、物理計算機・仮想化環境再起動／停止部２３０Ａと、物理計算機・仮想化環境障害箇所特定部２４０Ａと、物理計算機・仮想化環境通信経路監視部２５０Ａと、物理計算機・仮想化環境構成制御管理部２２０Ａと、物理計算機用ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）２１０Ａとが存在する。
【００３４】
構成制御アプリケーション２７０Ａと、物理計算機・仮想化環境共有用メモリ区画２３０Ａと、物理計算機・仮想化環境再起動／停止部２３０Ａと、物理計算機・仮想化環境障害箇所特定部２４０Ａと、物理計算機・仮想化環境通信経路監視部２５０Ａと、物理計算機・仮想化環境構成制御管理部２２０Ａとは、物理計算機用ＯＳ  ２１０Ａ上で動作する。
【００３５】
仮想化環境用論理区画２８１ＡＡには、構成制御アプリケーション２８３ＡＡと仮想化環境用ＯＳ  ２８４ＡＡとを含む仮想化環境２８２ＡＡが存在する。同様に、仮想化環境用論理区画２８１ＡＢには、構成制御アプリケーション２８３ＡＢと仮想化環境用ＯＳ  ２８４ＡＢとを含む仮想化環境２８２ＡＢが存在する。構成制御アプリケーション２８３ＡＡが仮想化環境用ＯＳ  ２８４ＡＡ上で動作し、構成制御アプリケーション２８３ＡＢが仮想化環境用ＯＳ  ２８４ＡＢ上に動作する。
【００３６】
図３に示す待機系の物理計算機１００Ｂは、図１に示した稼働系の物理計算機１００Ａと同様である。ただし、こちらでは仮想化環境用論理区画２８１ＢＡ、ＢＢに仮想化環境２８２ＢＡ、ＢＢがそれぞれ存在している。仮想化環境２８２ＢＡには構成制御アプリケーション２８３ＢＡと仮想化環境用ＯＳ２８４ＢＡが存在し、仮想化環境２８２ＢＢには構成制御アプリケーション２８３ＢＢと仮想化環境用ＯＳ２８４ＢＢが存在する。
【００３７】
上述のような構成を有する計算機システムにおいて、稼働系の物理計算機１００Ａに障害が発生した場合には、稼働系の物理計算機１００Ａと待機系の物理計算機１００Ｂの系が切り替わり、物理計算機１００Ａが待機系となり、物理計算機１００Ｂが稼動系となる。
【００３８】
各物理計算機１００Ａ、１００Ｂに具備しているメモリ２００Ａ、２００Ｂ上には、仮想化環境用論理区画２８１ＡＡ、２８１ＡＢおよび２８１ＢＡ、２８１ＢＢがそれぞれ存在する。仮想化環境用論理区画２８１ＡＡの稼働系の仮想化環境Ａ  ２８２ＡＡと、仮想化環境用論理区画２８１ＢＡの待機系の仮想化環境Ａ  ２８２ＢＡとにより、仮想化環境Ａが二重化されている。同様に、稼働系の仮想化環境Ｂ  ２８２ＡＢと、待機系の仮想化環境Ｂ  ２８２ＢＢとによって仮想化環境Ｂが二重化されている。
【００３９】
稼働系の仮想化環境Ａ  ２８２ＡＡに障害が発生した場合には、稼働系の仮想化環境Ａ  ２８２ＡＡと待機系の仮想化環境Ａ  ２８２ＢＡの系が切り替わり、仮想化環境Ａ  ２８２ＡＡが待機系となり、仮想化環境Ａ  ２８２ＢＡが稼動系となる。
【００４０】
稼働系の仮想化環境Ｂ  ２８２ＡＢに障害が発生した場合には、稼働系の仮想化環境Ｂ  ２８２ＡＢと待機系の仮想化環境Ｂ  ２８２ＢＢの系が切り替わり、仮想化環境Ｂ  ２８２ＡＢが待機系となり、仮想化環境Ｂ２８２ＢＢが稼動系となる。
【００４１】
各物理計算機のディスクインタフェース１２０に接続されたディスク１４０には、システムを構築するための管理情報１４１と、メモリダンプで取得したデータを記録する領域としてメモリダンプ領域１４２とが備えられている。
【００４２】
また、各物理計算機１００Ａ、１００Ｂが備える通信インタフェース１３０がネットワーク１５０に接続され、通信インタフェース１３１がネットワーク１６０に接続され、ネットワーク１５０とネットワーク１６０によって通信経路が二重化されている。
【００４３】
各物理計算機用ＯＳ  ２１０Ａ、２１０Ｂ上に存在する構成制御アプリケーション２７０Ａ、２７０Ｂは、二重化された通信インタフェース１３０、１３１を介して、自物理計算機の状態と自物理計算機が稼動系に遷移した時刻とを含む生存監視電文を互いに送受信する。自物理計算機の状態が稼動系でない場合、生存監視電文には、自物理計算機が稼働系に遷移した時刻として０が設定される。物理計算機が稼動系に遷移した時刻として０以外の値が設定されていれば、その物理計算機が自系が稼動系であると認識していることを示し、０が設定されていれば、その物理計算機が自系が待機系であると認識していることを示す。
【００４４】
また、各仮想化環境用ＯＳ  ２８４ＡＡ、２８４ＡＢ、２８４ＢＡ、２８４ＢＢ上の構成制御アプリケーション２８３ＡＡ、２８３ＡＢ、２８３ＢＡ、２８３ＢＢは、仮想化環境毎の稼動系と待機系とで二重化されている通信インタフェース１３０、１３１を介して、自仮想化環境の状態と自仮想化環境が稼動系に遷移した時刻とを含む生存監視電文を互いに送受信する。自仮想化環境の状態が稼動系でない場合、生存監視電文には、自仮想化環境が稼働系に遷移した時刻として０が設定される。仮想化環境が稼動系に遷移した時刻として０以外の値が設定されていれば、その仮想化環境が自系が稼動系であると認識していることを示し、０が設定されていれば、その仮想化環境が自系が待機系であると認識していることを示す。
【００４５】
各物理計算機および仮想化環境の構成制御アプリケーションの両系間で送受信される生存監視電文は各物理計算機用ＯＳ  ２１０Ａ、２１０Ｂに存在する物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂに取得される。これを契機に、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、送受信の時刻を元に、その電文に該当の物理計算機・仮想化環境共有用メモリ区画２６０Ａ、２６０Ｂに存在する物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂにおける、電文を送受信した時刻（最終送信時刻、最終受信時刻）を記録する領域を更新する。
【００４６】
また、生存監視電文に不整合が生じていた場合には、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂに相手系の物理計算機または仮想化環境を停止させるための通知をする。生存監視電文における自系が稼働系に遷移した時刻から、二重化の両系が共に自系を稼動系であると認識していたら、生存監視電文に不整合が生じていると判断すればよい。
【００４７】
各物理計算機用ＯＳ２１０Ａ、２１０Ｂ上の物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂに存在するタイムアウト時間の最小値をもって周期起動される。周期起動された物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、生存監視電文が途絶えている箇所があればその障害発生箇所を特定し、その障害発生箇所が物理計算機または仮想化環境であるか特定し、特定した情報を障害発生の通知として、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂに送る。なお、ここでタイムアウト時間の最小値を用いているのは、どの物理計算機または仮想化環境でタイムアウトが発生しても、タイムアウト時間の１周期以内にタイムアウトの発生を検知することができるようにするためである。
【００４８】
各物理計算機用ＯＳ２１０Ａ、２１０Ｂ上の物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂから物理計算機と仮想化環境の状態を取得する。
【００４９】
また、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂからの障害発生の通知に基づき、障害発生箇所が、物理計算機または仮想化環境のいずれかの稼動系であるか否かを判断する。
【００５０】
障害発生箇所が物理計算機の稼働系である場合、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、障害が発生している相手系の通信インタフェース１３０、１３１へネットワークを介して、再起動を指示する再起動電文を送信して物理計算機上のＯＳへＮＭＩ（マスクが不可能な割り込み）を発生させる。その後、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、規定時間だけ待ち合わせを行い、障害が発生した物理計算機へリセットを通知し、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂへ待機状態への状態変更を通知する。
【００５１】
また、障害発生箇所が仮想化環境である場合、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、障害が発生している相手系の物理計算機・仮想化環境再起動／停止部２３０Ａまたは２３０Ｂへ、通信インタフェース１３０、１３１からネットワークを介し、当該仮想化環境の再起動を指示する再起動電文を送信する。
【００５２】
再起動電文を受信した系の物理計算機・仮想化環境再起動／停止部２３０Ａまたは２３０Ｂは、障害の発生している仮想化環境の仮想化環境用ＯＳ２８４ＡＡ、２８４ＡＢ、２８４ＢＡ、２８４ＢＢへＮＭＩを発生させる。その後、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、規定時間だけ待ち合わせを行い、障害が発生した仮想化環境へリセット電文を通知し、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂへ待機状態への状態変更を通知する。
【００５３】
各物理計算機用ＯＳ  ２１０Ａ、２１０Ｂ上で物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂが動作し、物理計算機・仮想化環境共有用メモリ区画２３０Ａ、２３０Ｂに存在する物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂの情報に基づいて、各物理計算機および仮想化環境の構成制御を管理し、状態の変更通知があった場合にはテーブルに存在する該当の状態を変更する。
【００５４】
図４は、本実施例における物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂを示す図である。
【００５５】
図４中の上段にある物理計算機についてのテーブルには、各物理計算機１００Ａ、１００Ｂの識別子（Ａ、Ｂ）が登録されている。
【００５６】
状態Ｔ００２には、識別子Ｔ００１が記載された物理計算機１００Ａ、１００Ｂが稼動系か待機系かを示す情報が登録されている。
【００５７】
稼動系開始時刻Ｔ００３には、各物理計算機１００Ａ、１００Ｂが稼動系として動作を開始した時刻である稼動系開始時刻が記録されている。
【００５８】
最終送信時刻Ｔ００４には、各物理計算機１００Ａ、１００Ｂから生存監視電文が最後に送信された時刻が記録されている。
【００５９】
最終受信時刻Ｔ００５には、二重化における相手の物理計算機１００Ａ、１００Ｂから生存監視電文を最後に受信した時刻が記録されている。
【００６０】
タイムアウト時間Ｔ００６には、相手の物理計算機１００Ａ、１００Ｂからの生存監視電文が途絶えた判断するためのタイムアウト時間が記録されている。
【００６１】
下段にある仮想化環境についてのテーブルは、上段のテーブルの右側に連なるものである。この仮想化環境についてのテーブルには、各物理計算機１００Ａ、１００Ｂに存在する仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢを示す識別子Ｔ００７（Ａ、Ｂ、Ａ、Ｂ）が記録されている。例えば、最上段の仮想化環境は識別子Ａの物理計算機に構築された識別子Ａの仮想化環境であり、２段目の仮想化環境は識別子Ａの物理計算機に構築された識別子Ｂの仮想化環境である。
【００６２】
状態Ｔ００８には、各仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢが稼動系か待機系かを示す情報が登録されている。
【００６３】
稼動系開始時刻Ｔ００９には、各仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢが稼動系へ遷移した時刻が記録されている。
【００６４】
相手Ｔ０１０には、各仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢが、二重化においてどの物理計算機のどの仮想化環境と対応しているかを示す識別子が記録されている。￥例えば、最上段の仮想化環境は、識別子Ｂの物理計算機に構築された識別子Ａの仮想化環境と対応している。
【００６５】
最終送信時刻Ｔ０１１には、相手Ｔ０１０にて示されている二重化にて対応する仮想化環境に生存監視電文を最後に送信した時刻が記録されている。
【００６６】
最終受信時刻Ｔ０１２には、相手Ｔ０１０に示されている二重化にて対応する仮想化環境から最後に生存監視電文を受信した時刻が記録されている。
【００６７】
タイムアウト時刻Ｔ０１３には、各仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢにおける生存監視電文のタイムアウト時間が記録されている。
【００６８】
図５は、本実施例における物理計算機および仮想化環境上の構成制御アプリケーションが生存監視電文を送信する処理フローＳ４０１を示すフローチャートである。物理計算機１００Ａ、１００Ｂ上の構成制御アプリケーション２７０Ａ、２７０Ｂおよび仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢ上の構成制御アプリケーション２８３ＡＡ、２８３ＡＢ、２８３ＢＡ、２８３ＢＢは全て同様の動作を行う。
【００６９】
図５を参照すると、構成制御アプリケーションは、図４に示された物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂより、仮想化環境の二重化にて対応する通信相手の識別子Ｔ００７およびＴ０１０と、物理計算機および仮想化環境の状態を示すＴ００２およびＴ００８の情報を取得する（ステップＳ４０２）。続いて、構成制御アプリケーションは、自身の通信相手に対して、自身が存在する環境が稼動系か待機系の情報および稼動系になった時刻を生存監視電文として送信する（ステップＳ４０３）。続いて、構成制御アプリケーションはタイムアウト時間の１／２の時間だけウェイトして（ステップＳ４０４）、ステップＳ４０２に戻る。
【００７０】
図６は、本実施例における物理計算機および仮想化環境上の構成制御アプリケーション２７０Ａ、２７０Ｂ、２８３ＡＡ、２８３ＡＢ、２８３ＢＡ、２８３ＢＢが生存監視電文を受信する処理フローＳ５０１を示すフローチャートである。本実施例の構成制御アプリケーションは図１に示した上記実施形態の生存監視部１２Ａ、１２ＡＡ、１２ＡＢ、１２ＢＡ、１２ＢＢに対応する。物理計算機１００Ａ、１００Ｂ上の構成制御アプリケーション２７０Ａ、２７０Ｂおよび仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢ上の構成制御アプリケーション２８３ＡＡ、２８３ＡＢ、２８３ＢＡ、２８３ＢＢは全て同様の動作を行う。
【００７１】
図６を参照すると、構成制御アプリケーションは、図４に示された物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂより、仮想化環境の二重化において、仮想化環境とそれに対応する通信相手の識別子Ｔ００７およびＴ０１０と、物理計算機および仮想化環境の状態Ｔ００２およびＴ００８の情報を取得する（ステップＳ５０２）。なお、ここでは物理計算機の二重化にて対応する通信相手は予め分かっているものとする。続いて、構成制御プリケーションは、自身の通信相手から送信された生存監視電文を受信して（ステップＳ５０３）、ステップＳ５０１に戻る。
【００７２】
図７は、本実施例における物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂが実行する処理フローＳ６０１を示すフローチャートである。本実施例の物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、図１に示した上記実施形態の不整合判定部１３Ａ、１３Ｂに対応する。各物理計算機用ＯＳ  ２１０Ａ、２１０Ｂに存在する物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは同様の動作を行う。
【００７３】
図７を参照すると、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、図４に示された物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂより、Ｔ００７に示された各仮想化環境の通信相手を示すＴ０１０の情報を取得する（ステップＳ６０２）。
【００７４】
次に、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、ステップＳ６０２に取得した情報を基にして、物理計算機１００Ａ、１００Ｂ上の構成制御アプリケーション２７０Ａ、２７０Ｂおよび仮想化環境２８２ＡＡ、２８２ＡＢ、２８２ＢＡ、２８２ＢＢ上の構成制御アプリケーション２８３ＡＡ、２８３ＡＢ、２８３ＢＡ、２８３ＢＢの生存監視電文の送受信を監視する（ステップＳ６０３）。そして、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、図４に示した該当物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂにおける物理計算機および各仮想化環境の最終送受信時刻Ｔ００４、Ｔ００５、Ｔ０１１、Ｔ０１２および稼動系開始時刻Ｔ００３、Ｔ００９を更新する（ステップＳ６０４）。
【００７５】
続いて、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、送受信した生存監視電文のデータと、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂにて管理されているデータとを参照し、各物理計算機および仮想化環境の二重化における両系の状態が整合しているか、不整合になっているか判断する（ステップＳ６０５）。ここでは両系が稼働系として動作しているとき両系の状態が不整合と判断する。
【００７６】
両系の整合がとれていない場合、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂは、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂに、両系の状態に不整合がある旨の通知を送信する（ステップＳ６０６）。
【００７７】
図８は、本実施例における物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂの処理フローＳ７０１を示すフローチャートである。本実施例の物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、図１に示した障害箇所特定部１４Ａ、１４Ｂに対応する。
【００７８】
図８を参照すると、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、図４に示した物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂより、識別子Ｔ００７で示された各仮想化環境の通信相手を示す相手Ｔ０１０の情報を取得する（ステップＳ７０２）。続いて、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂより、物理計算機および各仮想化環境のタイムアウト時間Ｔ００６およびＴ０１３の情報を取得する（ステップＳ７０３）。更に、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂに存在するタイムアウト時間Ｔ００６、Ｔ０１３の最小値に相当する時間だけウェイトする（ステップＳ７０４）。
【００７９】
次に、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂを参照し、物理計算機および各仮想化環境について生存監視電文の送受信の最終更新時刻Ｔ００４、Ｔ００５、Ｔ０１１、Ｔ０１２からタイムアウト時間が経過しているか否か判断する（ステップＳ７０５）。
【００８０】
そして、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、タイムアウトしている物理計算機または仮想化環境が存在しなければ、何もせずにステップＳ７０２に戻る。
【００８１】
一方、タイムアウトしている物理計算機あるいは仮想化環境がある場合、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、その物理計算機あるいは仮想化環境に障害が発生していると判断する（ステップＳ７０６）。
【００８２】
ステップＳ７０６の結果より、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、物理計算機で障害が発生していれば、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂに対して、物理計算機１００Ａまたは１００Ｂにて障害が発生していることを通知する（ステップＳ７０７）。
【００８３】
またステップＳ７０６の結果より、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂは、仮想化環境で障害が発生していれば、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂに対して、仮想化環境にて障害が発生していることを通知する（ステップＳ７０８）。
【００８４】
図９は、本実施例における物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂが再起動および停止を命令する処理フローＳ８０１を示すフローチャートである。本実施例の物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、図１に示した上記実施形態の状態制御部１６Ａ、１６Ｂに対応する。
【００８５】
図９を参照すると、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、図４に示した物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂより、物理計算機および各仮想化環境の通信相手の情報Ｔ０１０を取得する（ステップＳ８０２）。
【００８６】
その後、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂまたは物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂから、障害の発生および障害発生箇所の情報を受信すると（ステップＳ８０３）、障害発生箇所が稼動系であるか否か判断する（ステップＳ８０４）。
【００８７】
障害発生箇所が待機系であった場合、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、その障害発生箇所である物理計算機あるいは仮想化環境が停止の状態へ遷移することを物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂに通知し（ステップＳ８０５）、ステップＳ８０２に戻る。
【００８８】
一方、障害発生箇所が稼働系であった場合、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、その障害発生箇所が物理計算機であるか否か判断する（ステップＳ８０６）。
【００８９】
障害発生箇所が物理計算機であれば、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、物理計算機用ＯＳ２１０Ａまたは２１０ＢへのＮＭＩを指示するための再起動電文を、障害発生箇所となっている物理計算機の通信インタフェース１３０または１３１へ送信する（ステップＳ８０７）。この電文を受信した物理計算機の物理計算機用ＯＳ  ２１０Ａまたは２１０Ｂは、ＮＭＩを契機としてメモリダンプが実行され、所定のメモリ領域のデータがディスク１４０のメモリダンプ領域１４２に退避される。
【００９０】
続いて、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、規定の時間だけ待ち合わせをした後、障害が発生した物理計算機１００Ａ、１００Ｂへリセット要求の電文を送信する（ステップＳ８０８）。
【００９１】
一方、ステップＳ８０６における障害発生箇所が仮想化環境であれば、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、通信インタフェース１３０または１３１およびネットワークを介して、障害発生箇所となっている仮想化環境のある物理計算機の物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂへ、障害発生箇所となっている仮想化環境の再起動を指示する再起動電文を送信する（ステップＳ８０９）。
【００９２】
続いて、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、規定時間だけ待ち合わせをした後、障害発生箇所となっている仮想化環境のある物理計算機の物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂへ、その仮想化環境の停止を指示する停止電文を送信する（ステップＳ８１０）。
【００９３】
ステップＳ８０８またはステップＳ８１０の後、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、障害が発生した稼動系に対応する待機系の環境を稼動系へ状態遷移させる旨を物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂに通知する（ステップＳ８１１）。
【００９４】
図１０は、本実施例における物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂが再起動／停止の通知を受信したときの処理フローＳ９０１を示すフローチャートである。
【００９５】
図１０を参照すると、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、二重化における他系の物理計算機の物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂから通知電文を受信すると（ステップＳ９０２）、その電文よりどの仮想化環境に障害が発生しているか判断し、その仮想化環境の仮想化環境用ＯＳへＮＭＩを通知してメモリダンプを開始させる（ステップＳ９０３）。次に、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、規定の時間だけ待ち合わせをした後、障害が発生している仮想化環境へリセット通知を発行する（ステップＳ９０４）。
【００９６】
更に、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、障害が発生している仮想化環境に対応する他系の環境を稼動系へ遷移させるため、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂに状態変更を通知する（ステップＳ９０５）。
【００９７】
図１１は、本実施例における物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂが物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂから通知を受信したときに実行する処理フローＳ１００１を示すフローチャートである。本実施例の物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂは、図１に示した上記実施形態の不整合箇所特定部１５Ａ、１５Ｂに対応する。
【００９８】
図１１を参照すると、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂは、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂから状態変更の通知を受信すると（Ｓ１００２）、図４に示した物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂにおける状態Ｔ００２またはＴ００８を更新し、更に待機系から稼動系への状態遷移の場合には時刻Ｔ００３またはＴ００９を更新する（ステップＳ１００３）。
【００９９】
図１２は、本実施例における物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂが物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂから通知を受信したときに実行する処理の処理フローＳ１１０１を示すフローチャートである。
【０１００】
図１２を参照すると、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂは、物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂから、物理計算機または仮想化環境の二重化における両系の状態に不整合がある旨の通知を受信すると（ステップＳ１１０２）、他系の物理計算機または仮想化環境が稼動系へ遷移した時刻（稼働系開始時刻）の情報を取得する（ステップＳ１１０３）。
【０１０１】
続いて、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂは、自計算機内の物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂにおける自系の稼動系開始時刻と、ステップＳ１１０３にて取得した相手系の稼動系開始時刻を比較する（ステップＳ１１０４）。
【０１０２】
相手系の環境の方が稼動系開始時刻が古い場合、物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂは、相手系の環境が障害であると判断し、その旨を物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂへ通知する（ステップＳ１１０５）。
【０１０３】
本実施例によれば、物理計算機および仮想化環境のいずれにおいて障害が発生した場合でも、障害が発生した箇所に対して再起動／停止電文を通知することが可能であり、確実かつ迅速に障害発生箇所を切り離すことができる。これにより、通信経路の間欠障害などにおいて一時的に生存監視電文が途絶え、その後で通信経路が回復したとき、両系の物理計算機または仮想化環境が稼動系として動作しようとする状態が起きても、その時点で不整合を解消することができる。また、障害発生箇所を切り離す場合に、その瞬間のメモリ状態をディスクへ保存するメモリダンプを開始し、障害発生時点のメモリ内の情報を記録することにより、障害解析性の向上も図ることが可能である。
【０１０４】
以上の本実施例を整理すると、障害発生時に適切な制御を行うための構成は以下の通りである。
【０１０５】
（１）構成制御アプリケーション（２７０Ａ、２７０Ｂ）
【０１０６】
本アプリケーションは、物理計算機・仮想化環境上に配置され、稼動系と待機系の構成制御アプリケーション間において生存監視電文の送受信を実施する。
【０１０７】
（２）物理計算機・仮想化環境構成制御管理テーブル（２６１Ａ、２６１Ｂ）
【０１０８】
物理計算機および仮想化環境の障害箇所情報、生存監視電文の送受信履歴、物理計算機および仮想化環境の稼動系または待機系の状態を一意に特定するための管理テーブルであり、物理計算機および仮想環境から共に参照可能である。
【０１０９】
（３）物理計算機・仮想化環境通信経路監視部（２５０Ａ、２５０Ｂ）
【０１１０】
物理計算機および仮想化環境の稼動系と待機系において相互に生存を確認するための生存監視電文の送受信を監視し、また稼動系と待機系の組み合わせの状態に不整合がないか判断する。
【０１１１】
（４）物理計算機・仮想化環境障害箇所特定部（２４０Ａ、２４０Ｂ）
【０１１２】
物理計算機および仮想化環境のどの箇所で障害が発生したかを特定する。
【０１１３】
（５）物理計算機・仮想化環境再起動／停止部（２３０Ａ、２３０Ｂ）
【０１１４】
障害が発生すると、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂの情報を基に、障害が発生した計算機へ再起動要求電文を送信する。
【０１１５】
このとき物理計算機で障害が発生している場合には再起動要求を物理計算機へ送信し、物理計算機のＯＳに対してＮＭＩ（マスク不可能割り込み信号）を発生させる。ＮＭＩによって障害発生時点のメモリ状態をディスクへ保存するメモリダンプを開始し、障害発生時点の情報を記録することができる。
【０１１６】
この際に、ＮＭＩに対してメモリダンプが実行されない場合には、再び障害系の物理計算機へ停止要求電文を送信する。停止要求電文を受け取った障害の物理計算機では、即時に計算機を停止状態とし、再び物理計算機が起動することを抑止する。メモリダンプが実行された場合、メモリダンプが終了した後にリブートあるいは停止を実行すればよい。
【０１１７】
また、障害が仮想化環境上で発生している場合には、障害の発生した物理計算機上に存在する仮想化環境再起動／停止部２３０Ａ、２３０Ｂに再起動要求電文を送信する。
【０１１８】
障害の発生した物理計算機上に存在する物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂは、再起動要求電文を受信すると、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂが判断した障害発生箇所となっている仮想化環境内のＯＳに対してＮＭＩ（マスク不可能割り込み信号）を発生させる。仮想環境上のＯＳにＮＭＩを発生させることによって障害発生時点のメモリ状態をディスクへ保存するメモリダンプを開始し、障害発生時点の情報を記録することができる。
【０１１９】
この際に、仮想化環境内に発生させたＮＭＩに対してメモリダンプが実行されない場合には、障害となっている仮想化環境自体へ停止要求電文を送信する。停止要求電文を受信した仮想化環境では、即時に仮想化環境を停止状態とし、現状態をフリーズする。メモリダンプが実行された場合、メモリダンプが終了した後にリブートあるいは停止を実行すればよい。
【０１２０】
（６）物理計算機・仮想化環境構成制御管理部（２２０Ａ、２２０Ｂ）
【０１２１】
他系の物理計算機あるいは仮想化環境に障害が発生し、物理計算機・仮想化環境再起動／停止部２３０Ａより障害発生箇所への再起動／停止通知が送信されると、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂによる障害発生箇所の情報を基に、物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂを更新する。
【０１２２】
また、自系の物理計算機あるいは仮想化環境上に障害が発生し、他系の物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂより、障害発生箇所への再起動／停止通知を受信すると、物理計算機・仮想化環境障害箇所特定部２４０Ａ、２４０Ｂからの障害発生箇所の情報を基に物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂを更新する。
【０１２３】
また、通信経路の間欠障害などで物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂより障害発生箇所への再起動／停止通知が送信され、通信が回復した際には物理計算機・仮想化環境通信経路監視部２５０Ａ、２５０Ｂの情報を元に物理計算機・仮想化環境構成制御管理テーブル２６１Ａ、２６１Ｂを更新し、更新したテーブルの内容を基に物理計算機・仮想化環境構成制御管理部２２０Ａ、２２０Ｂに相手系に対して再起動／停止命令の発行を指示する。
【０１２４】
この条件の判定においては、通信が回復した段階において、物理計算機・仮想化環境構成制御管理テーブル２６１Ａにおける稼動系と待機系の情報と、相手系が稼動系となった時刻とを基に、物理計算機・仮想化環境再起動／停止部２３０Ａ、２３０Ｂにどの物理計算機または仮想化環境を再起動あるいは停止させるか判断する。
【０１２５】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【０１２６】
以上、本発明の実施形態および実施例について述べてきたが、本発明は、これらの実施形態や実施例だけに限定されるものではなく、本発明の技術思想の範囲内において、これらの実施形態や実施例を組み合わせて使用したり、一部の構成を変更したりしてもよい。
【符号の説明】
【０１２７】
１００Ａ、Ｂ…物理計算機、１０Ａ、Ｂ…物理計算機、１１０…プロセッサ、１１ＡＡ、ＡＢ、ＢＡ、ＢＢ…仮想化環境、１２０…ディスクインタフェース、１２Ａ、ＡＡ、ＡＢ、Ｂ、ＢＡ、ＢＢ…生存監視部、１３０…通信インタフェース、１３１…通信インタフェース、１３Ａ、Ｂ…不整合判定部、１４０…ディスク、１４１…管理情報、１４２…メモリダンプ領域、１４Ａ、Ｂ…障害箇所特定部、１５０…ネットワーク、１５Ａ、Ｂ…不整合箇所特定部、１６０…ネットワーク、１６Ａ、Ｂ…状態制御部、２００Ａ、Ｂ…メモリ、２１０Ａ、Ｂ…物理計算機用ＯＳ、２２０Ａ、Ｂ…物理計算機・仮想化環境構成制御管理部、２３０Ａ、Ｂ…物理計算機・仮想化環境再起動／停止部、２４０Ａ、Ｂ…物理計算機・仮想化環境障害箇所特定部、２５０Ａ、Ｂ…物理計算機・仮想化環境通信経路監視部、２６０Ａ、Ｂ…物理計算機・仮想化環境共有用メモリ区画、２６１Ａ、Ｂ…物理計算機・仮想化環境構成制御管理テーブル、２７０Ａ、Ｂ…構成制御アプリケーション、２８１ＡＡ、ＡＢ、ＢＡ、ＢＢ…仮想化環境用論理区画、２８２ＡＡ、ＡＢ、ＢＡ、ＢＢ…仮想化環境、２８３ＡＡ、ＡＢ、ＢＡ、ＢＢ…構成制御アプリケーション、２８４ＡＡ、ＡＢ、ＢＡ、ＢＢ…仮想化環境用ＯＳ
【図１】
2014044690.tif 000003
【図２】
2014044690.tif 000004
【図３】
2014044690.tif 000005
【図４】
2014044690.tif 000006
【図５】
2014044690.tif 000007
【図６】
2014044690.tif 000008
【図７】
2014044690.tif 000009
【図８】
2014044690.tif 000010
【図９】
2014044690.tif 000011
【図１０】
2014044690.tif 000012
【図１１】
2014044690.tif 000013
【図１２】
2014044690.tif 000014