(57)【要約】      （修正有）【課題】バックアップへの切り替えに要する時間を短縮する。【解決手段】仮想マシン管理装置は、仮想マシン１１５，１２５を実行する。そして、本仮想マシン管理装置は、第１の仮想マシン１１５に異常が発生した場合に、第１の仮想マシンを再起動すると共に、第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシン１２５を起動する第１処理部１０６と、第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第１の仮想マシンから第２の仮想マシンに切り替えるように設定を行う第２処理部１０４とを有する。【選択図】図３
2014170385.tif 000002
【特許請求の範囲】
【請求項１】
第１の仮想マシンに異常が発生した場合に、前記第１の仮想マシンを再起動すると共に、前記第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動する第１処理部と、
前記第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えるように設定を行う第２処理部と、
を有する仮想マシン管理装置。
【請求項２】
前記第１処理部が、
前記第１の仮想マシンの再起動及び前記第２の仮想マシンの起動を行う際に、前記第１の仮想マシンと前記第２の仮想マシンとが同じ資源を共有するように設定し、
前記仮想マシン管理装置が、
前記第１の仮想マシンによる処理が正常に再開した場合に、前記第２の仮想マシンを削除する第３処理部
をさらに有する請求項１記載の仮想マシン管理装置。
【請求項３】
前記第１処理部が、
前記第１の仮想マシンの再起動を完了した後に、前記第２の仮想マシンの起動を行う
ことを特徴とする請求項１記載の仮想マシン管理装置。
【請求項４】
前記第２処理部が、
前記第１の仮想マシンによる処理が正常に再開するか否かを確認する前に前記第２の仮想マシンが処理を開始できる状態になった場合に、前記第２の仮想マシンをサスペンドする
ことを特徴とする請求項１記載の仮想マシン管理装置。
【請求項５】
第１の仮想マシンに異常が発生した場合に、前記第１の仮想マシンを再起動すると共に、前記第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動し、
前記第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えるように設定を行う、
処理をコンピュータが実行する仮想マシン管理方法。
【請求項６】
第１の仮想マシンに異常が発生した場合に、前記第１の仮想マシンを再起動すると共に、前記第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動し、
前記第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えるように設定を行う、
処理をコンピュータに実行させるための仮想マシン管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシンの管理技術に関する。
【背景技術】
【０００２】
仮想マシンにおいて発生する異常に対処する技術として、以下のような技術が知られている。具体的には、仮想マシンが、現用系ＯＳ（Operating System）と待機系ＯＳとを実行する。そして、現用系ＯＳに異常が発生した場合に、現用系ＯＳ上で実行するアプリケーションプログラムを、待機系ＯＳ上で実行するように切り替える。これにより、異常が発生した場合においてもアプリケーションプログラムによる処理を滞りなく行うことができる。
【０００３】
この技術は、いわゆるホットスタンバイを利用する技術である。ホットスタンバイにおいては、現用系のシステムだけでなく待機系のシステムが常に実行されており、現用系のシステムが管理するデータと待機系のシステムが管理するデータとの同期はほぼリアルタイムで行われる。そのため、ホットスタンバイを利用すれば、現用系のシステムに異常が発生した場合に待機系のシステムに迅速に切り替えることができる。
【０００４】
これに対し、バックアップを利用する技術においては、システムのバックアップファイルを任意のタイミングで（例えば定期的に）生成する。そして、システムに異常が発生した場合には、バックアップファイルを利用してシステムを再構築する。この技術を利用すれば、ホットスタンバイを利用する場合よりも運用コストが少なくて済むが、ＯＳの起動等を行うことになるため、バックアップファイルへの切り替えを完了してシステムを再稼働するまでの時間が長くなるという問題がある。従来の技術においては、バックアップへの切り替えに要する時間を短縮することには着目されていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−４１３０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従って、本発明の目的は、１つの側面では、バックアップへの切り替えに要する時間を短縮するための技術を提供することである。
【課題を解決するための手段】
【０００７】
本発明に係る仮想マシン管理装置は、第１の仮想マシンに異常が発生した場合に、第１の仮想マシンを再起動すると共に、第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動する第１処理部と、第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第１の仮想マシンから第２の仮想マシンに切り替えるように設定を行う第２処理部とを有する。
【発明の効果】
【０００８】
バックアップへの切り替えに要する時間を短縮できるようになる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態に係るシステムの概要を示す図である。
【図２】図２は、呼制御サーバにおいて実行される仮想マシンに割り当てられるハードウェアを示す図である。
【図３】図３は、呼制御サーバの機能ブロック構成を示す図である。
【図４】図４は、バックアップファイルの収集について説明するための図である。
【図５】図５は、再開エスカレーションについて説明するための図である。
【図６】図６は、現用ファイル用の仮想マシンについてＯＳ及びハードウェアの初期化を行う際に呼制御サーバが実行する処理の処理フローを示す図である。
【図７】図７は、現用ファイル用の仮想マシンについてＯＳ及びハードウェアの初期化を行う際に呼制御サーバが実行する処理の処理フローを示す図である。
【図８】図８は、処理シーケンスを示す図である。
【図９】図９は、管理データ格納部に格納されるデータの一例を示す図である。
【図１０】図１０は、管理データ格納部に格納されるデータの一例を示す図である。
【図１１】図１１は、管理データ格納部に格納されるデータの一例を示す図である。
【図１２】図１２は、管理データ格納部に格納されるデータの一例を示す図である。
【図１３】図１３は、管理データ格納部に格納されるデータの一例を示す図である。
【図１４】図１４は、処理シーケンスを示す図である。
【図１５】図１５は、管理データ格納部に格納されるデータの一例を示す図である。
【図１６】図１６は、管理データ格納部に格納されるデータの一例を示す図である。
【図１７】図１７は、管理データ格納部に格納されるデータの一例を示す図である。
【図１８】図１８は、管理データ格納部に格納されるデータの一例を示す図である。
【図１９】図１９は、効果について説明するための図である。
【図２０】図２０は、効果について説明するための図である。
【発明を実施するための形態】
【００１０】
図１に、本実施の形態に係るシステム概要を示す。例えば地域ＩＰ（Internet Protocol）網であるＩＰ網７には、呼制御サーバ１と、端末３Ａ乃至３Ｃと、サーバ５Ａ乃至５Ｃとが接続されている。呼制御サーバ１は、端末間、サーバ間、又は端末とサーバとの間において、通話の開始から終了までの手順を制御するＳＩＰ（Session Initiation Protocol）サーバである。サーバ５Ａ乃至５Ｃには端末又はサーバがさらに接続される場合があるが、説明を簡単にするため図示していない。なお、図１において端末及びサーバの数は３であるが、数に限定は無い。
【００１１】
図２に、呼制御サーバ１において実行される仮想マシンに割り当てられるハードウェアを示す。呼制御サーバ１においては、仮想マシン１Ａ及び１Ｂが実行される。仮想マシン１Ａには、ＣＰＵ（Central Processing Unit）１１と、ＮＩＣ（Network Interface Card）１２と、メモリ１３と、ディスク１４とが割り当てられる。仮想マシン１Ｂには、ＣＰＵ１５と、ＮＩＣ１６と、メモリ１７と、ディスク１８とが割り当てられる。ＣＰＵ１１及び１５は、ＣＰＵコアであってもよい。ＮＩＣ１２及び１６は、例えばＬＡＮ（Local Area Network）カードである。メモリ１３及び１７は、例えばＤＲＡＭ（Dynamic Random Access Memory）である。ディスク１４及び１８は、例えばハードディスクである。図２において、仮想マシンの数は２であるが、数に限定は無い。
【００１２】
図３に、呼制御サーバの機能ブロック構成を示す。呼制御サーバ１においては、仮想スイッチ１０２を含むホストＯＳ１０１が実行される。ホストＯＳ１０１上には、仮想マシン１１５及び１２５と、再開管理部１０４、リソース管理部１０５、順序制御部１０６、停止制御部１０７及び管理データ格納部１０８を含む監視部１０３とが実行される。メモリ等の記憶装置には、管理データ格納部１０８のための領域が確保される。仮想マシン１１５上には、ゲストＯＳ１１４と、通知制御部１１３を含むミドルウェア１１２と、アプリケーションプログラム１１１とが実行される。仮想マシン１２５上には、ゲストＯＳ１２４と、通知制御部１２３を含むミドルウェア１２２と、アプリケーションプログラム１２１とが実行される。また、呼制御サーバ１は、ＮＩＣ１３０を有しており、ＮＩＣ１３０を介して外部の装置と通信を行う。
【００１３】
仮想スイッチ１０２は、ＮＩＣ１３０を介して受信したパケットを仮想マシン１１５及び１２５に中継する。また、仮想スイッチ１０２は、仮想マシン１１５及び１２５から受け取ったデータをＮＩＣ１３０に出力する。ＮＩＣ１３０は、伝送路（図示せず）から受信したデータを仮想スイッチ１０２に出力する。また、ＮＩＣ１３０は、仮想スイッチ１０２から受け取ったデータを伝送路に出力する。
【００１４】
仮想マシン１１５及び１２５は、交換機システムを実現するための仮想マシンであり、ホストＯＳ１０１によって起動される。ゲストＯＳ１１４は仮想マシン１１５のＯＳであり、ゲストＯＳ１２４は仮想マシン１２５のＯＳである。ミドルウェア１１２はゲストＯＳ１１４上で実行されるミドルウェアであり、ミドルウェア１２２はゲストＯＳ１２４上で実行されるミドルウェアである。通知制御部１１３及び１２３は、仮想マシン１１５及び１２５の状態をホストＯＳ１０１及び監視部１０３に通知する処理等を実行する。アプリケーションプログラム１１１及び１２１は、サービス（本実施の形態においては、通話）に関連する処理を実行する。
【００１５】
再開管理部１０４は、仮想マシンの生成をリソース管理部１０５に要求し、仮想マシンのサスペンド（ここでは、強制停止）を停止制御部１０７に要求する。リソース管理部１０５は、再開管理部１０４からの要求に応じ、仮想マシンの生成及び削除をホストＯＳ１０１に要求する。順序制御部１０６は、現用ファイル用の仮想マシンをバックアップファイル用の仮想マシンより優先する順序でホストＯＳ１０１に仮想マシンの起動を要求する。停止制御部１０７は、再開管理部１０４からの要求に応じ、仮想マシンのサスペンドをホストＯＳ１０１に要求する。
【００１６】
本実施の形態においては、呼制御サーバ１における仮想マシンによって交換機システムが実現される。本交換機システムにおいては、運転ファイルのバックアップが所定のタイミングで収集される。運転ファイルには、システムファイル、局データ及び設定データ等が含まれる。収集されたバックアップファイルは、ディスク１４又は１８に格納される。
【００１７】
バックアップファイルは、例えば以下のようなタイミングで収集される。（１）システムの構築及び現在稼働中のシステムによって利用される運転ファイル（以下、現用ファイルと呼ぶ）の更新の際、起動実績があるファイルとして収集される。なお、局データは、例えば回線開通等の際に更新される。（２）定期的（例えば２４時間毎）に収集される。
【００１８】
図４を用いて、バックアップファイルが収集されるタイミングについて説明する。図４の上段には時間軸が示されており、三角印が付された時点においてイベントが実行されている。図４の例においては、交換機システムの構築というイベントの実行時、時点５０１、局データの更新というイベントの実行時及び時点５０２にバックアップファイルが収集される。また、現用ファイルがバージョン１からバージョン２に更新される際、バックアップファイルが収集される。さらに、時点５０３、局データの更新というイベントの実行時及び時点５０４にバックアップファイルが収集される。
【００１９】
そして、システムに異常が発生した場合には、後述の再開エスカレーションの手順に従って、まず現用ファイルによるシステムの再開を試みる。現用ファイルによるシステムの再開に失敗した場合には、バックアップファイルによるシステムの再開を試みる。
【００２０】
図５を用いて、再開エスカレーションについて説明する。再開エスカレーションとは、サービスに与える影響を可能な限り小さくするため、サービスに与える影響が少ない部分から初期設定を行い、初期設定の範囲を徐々に拡大させることである。
【００２１】
現用系システムにおいて異常が発生した場合には、サービスに与える影響が最も少ない、アプリケーションプログラムの初期化を最初に行う（図５における（１））。（１）によって異常が取り除かれなかった場合には、アプリケーションプログラム及びミドルウェアの初期化を行う（図５における（２））。（２）によって異常が取り除かれなかった場合には、ＯＳ及びハードウェアの初期化を行う（図５における（３））。ＯＳ及びハードウェアの初期化においては再起動を行うため時間がかかるので、ＯＳ及びハードウェアの初期化が完了するまでの間、現用系のシステムを待機系のシステムに切り替えることにより復旧を試みる（図５における（４））。
【００２２】
待機系のシステムに切り替えても復旧することができない場合には、ＯＳ及びハードウェアの初期化が完了した現用系のシステムにおいて復旧を試みる。復旧に失敗した場合には、バックアップファイルによりシステムを再構築する（図５における（５））。
【００２３】
本実施の形態においては、図５における（５）に示した、バックアップファイルによるシステムの再構築が完了するまでの時間を短縮する方法について説明する。
【００２４】
図６に、現用ファイル用の仮想マシンについてＯＳ及びハードウェアの初期化を行う際に呼制御サーバ１が実行する処理の処理フローを示す。まず、再開管理部１０４は、現用ファイル用の仮想マシンに資源（例えばＣＰＵ又はＣＰＵコア）を割り当てることをリソース管理部１０５に要求する。リソース管理部１０５は、現用ファイル用の仮想マシンに資源を割り当てることをホストＯＳ１０１に要求する。これに応じ、ホストＯＳ１０１は、現用ファイル用の仮想マシンに資源を割り当てることにより、現用ファイル用の仮想マシンを生成する（図６：ステップＳ１）。
【００２５】
順序制御部１０６は、現用ファイル用の仮想マシンを起動する（ステップＳ３）。具体的には、順序制御部１０６は、現用ファイル用の仮想マシンをホストＯＳ１０１に起動させる。また、現用ファイル用の仮想マシンは、現用ファイルのロードモジュールをメモリにロードする。
【００２６】
再開管理部１０４は、現用ファイルのロードモジュールについてメモリへのロードが完了したか判断する（ステップＳ５）。ステップＳ５において、再開管理部１０４は、起動された仮想マシンにおける通知制御部からロード完了並びにプロセスの生成及び起動の開始を示すメッセージを受け取ったか否かにより判断する。
【００２７】
現用ファイルのロードモジュールについてメモリへのロードが完了していない場合（ステップＳ５：Ｎｏルート）、再開管理部１０４は、ステップＳ５の処理を再度実行する。一方、現用ファイルのロードモジュールについてメモリへのロードが完了した場合（ステップＳ５：Ｙｅｓルート）、再開管理部１０４は、バックアップファイル用の仮想マシンに資源（例えばＣＰＵ又はＣＰＵコア）を割り当てることをリソース管理部１０５に要求する。リソース管理部１０５は、バックアップファイル用の仮想マシンに資源を割り当てることをホストＯＳ１０１に要求する。これに応じ、ホストＯＳ１０１は、現用ファイル用の仮想マシンに割り当てた資源と同じ資源をバックアップファイル用の仮想マシンに割り当てることにより、バックアップファイル用の仮想マシンを生成する（ステップＳ７）。
【００２８】
順序制御部１０６は、バックアップファイル用の仮想マシンを起動する（ステップＳ９）。具体的には、順序制御部１０６は、バックアップファイル用の仮想マシンをホストＯＳ１０１に起動させる。また、バックアップファイル用の仮想マシンは、バックアップファイルのロードモジュールをメモリにロードする。
【００２９】
再開管理部１０４は、現用ファイル用の仮想マシンにおいて所定の処理が完了したか判断する（ステップＳ１１）。ステップＳ１１においては、再開管理部１０４は、現用ファイル用の仮想マシンから所定の処理が終了したことを示すメッセージを受け取ったか否かにより判断する。所定の処理とは、メモリ初期化並びにアプリケーションプログラムのプロセスの生成及び起動である。このメッセージは、実質的には、現用ファイル用の仮想マシンの立ち上げが完了したことを意味する。
【００３０】
現用ファイル用の仮想マシンにおいて所定の処理が完了した場合（ステップＳ１１：Ｙｅｓルート）、処理は端子Ａを介して図７のステップＳ１９に移行する。一方、現用ファイル用の仮想マシンにおいて所定の処理が完了していない場合（ステップＳ１１：Ｎｏルート）、再開管理部１０４は、バックアップファイル用の仮想マシンをサスペンド済みであるか判断する（ステップＳ１３）。ステップＳ１３においては、再開管理部１０４は、管理データ格納部１０８においてバックアップファイル用の仮想マシンの状態がサスペンド中であるか否かにより判断する。管理データ格納部１０８については、後で説明する。
【００３１】
バックアップファイル用の仮想マシンをサスペンド済みである場合（ステップＳ１３：Ｙｅｓルート）、ステップＳ１１の処理に戻る。一方、バックアップファイル用の仮想マシンをサスペンド済みではない場合（ステップＳ１３：Ｎｏルート）、再開管理部１０４は、バックアップファイル用の仮想マシンにおいて所定の処理が完了したか判断する（ステップＳ１５）。ステップＳ１５においては、再開管理部１０４は、バックアップファイル用の仮想マシンから所定の処理が終了したことを示すメッセージを受け取ったか否かにより判断する。上で説明したように、所定の処理とは、メモリ初期化並びにアプリケーションプログラムのプロセスの生成及び起動である。このメッセージは、実質的には、バックアップファイル用の仮想マシンの立ち上げが完了したことを意味する。
【００３２】
バックアップファイル用の仮想マシンにおいて所定の処理が完了していない場合（ステップＳ１５：Ｎｏルート）、ステップＳ１１の処理に戻る。一方、バックアップファイル用の仮想マシンにおいて所定の処理が完了した場合（ステップＳ１５：Ｙｅｓルート）、再開管理部１０４は、バックアップファイル用の仮想マシンについてサスペンドを実行することを停止制御部１０７に要求する。これに応じ、停止制御部１０７は、バックアップファイル用の仮想マシンについてサスペンドを実行する（ステップＳ１７）。そしてステップＳ１１の処理に戻る。ステップＳ１７においては、停止制御部１０７は、ホストＯＳ１０１に、バックアップファイル用の仮想マシンをサスペンドさせる。なお、サスペンドされている間においては、バックアップファイル用の仮想マシンに割り当てられたメモリの内容はクリアされない。
【００３３】
図７の説明に移行し、現用ファイル用の仮想マシンにおける通知制御部は、現用ファイル用の仮想マシンについて再開後の監視を開始する（ステップＳ１９）。再開後の監視とは、現用ファイル用の仮想マシンの再起動後に所定時間行う監視である。この監視により、ＯＳ及びハードウェアの初期化によって異常発生の原因が取り除かれたか否かがわかる。
【００３４】
再開管理部１０４は、再開後の監視が正常に終了したか判断する（ステップＳ２１）。正常に終了するとは、監視期間中に異常が発生せず監視が無事に終了することである。再開後の監視が正常に終了した場合（ステップＳ２１：Ｙｅｓルート）、異常の原因が取り除かれたので、再開管理部１０４は、バックアップファイル用の仮想マシンを削除することをリソース管理部１０５に要求する。リソース管理部１０５は、バックアップファイル用の仮想マシンを削除することをホストＯＳ１０１に要求する。これに応じ、ホストＯＳ１０１は、バックアップファイル用の仮想マシンを削除する（ステップＳ２３）。
【００３５】
再開後の監視が正常に終了していない場合（ステップＳ２１：Ｎｏルート）、再開管理部１０４は、再開後の監視を継続中であるか判断する（ステップＳ２５）。再開後の監視を継続中である場合（ステップＳ２５：Ｙｅｓルート）、再開管理部１０４は、バックアップファイル用の仮想マシンをサスペンド済みであるか判断する（ステップＳ２７）。ステップＳ２７においては、再開管理部１０４は、管理データ格納部１０８においてバックアップファイル用の仮想マシンの状態がサスペンド中であるか否かにより判断する。
【００３６】
バックアップファイル用の仮想マシンをサスペンド済みである場合（ステップＳ２７：Ｙｅｓルート）、ステップＳ２１の処理に戻る。バックアップファイル用の仮想マシンをサスペンド済みではない場合（ステップＳ２７：Ｎｏルート）、再開管理部１０４は、バックアップファイル用の仮想マシンにおいて所定の処理が完了したか判断する（ステップＳ２９）。ステップＳ２９においては、再開管理部１０４は、バックアップファイル用の仮想マシンから所定の処理が終了したことを示すメッセージを受け取ったか否かにより判断する。
【００３７】
バックアップファイル用の仮想マシンにおいて所定の処理が完了していない場合（ステップＳ２９：Ｎｏルート）、ステップＳ２１の処理に戻る。一方、バックアップファイル用の仮想マシンにおいて所定の処理が完了した場合（ステップＳ２９：Ｙｅｓルート）、再開管理部１０４は、バックアップファイル用の仮想マシンについてサスペンドを実行することを停止制御部１０７に要求する。これに応じ、停止制御部１０７は、バックアップファイル用の仮想マシンについてサスペンドを実行する（ステップＳ３１）。そしてステップＳ２１の処理に戻る。ステップＳ３１においては、停止制御部１０７は、ホストＯＳ１０１に、バックアップファイル用の仮想マシンをサスペンドさせる。
【００３８】
一方、監視を継続中ではない場合（ステップＳ２５：Ｎｏルート）、再開管理部１０４は、バックアップファイル用の仮想マシンはサスペンド中であるか判断する（ステップＳ３３）。ステップＳ３３においては、再開管理部１０４は、管理データ格納部１０８においてバックアップファイル用の仮想マシンの状態がサスペンド中であるか否かにより判断する。
【００３９】
バックアップファイル用の仮想マシンがサスペンド中ではない場合（ステップＳ３３：Ｎｏルート）、ステップＳ３７の処理に移行する。一方、バックアップファイル用の仮想マシンがサスペンド中である場合（ステップＳ３３：Ｙｅｓルート）、再開管理部１０４は、バックアップファイル用の仮想マシンについてサスペンドを解除することを停止制御部１０７に要求する。停止制御部１０７は、バックアップファイル用の仮想マシンについてサスペンドを解除することをホストＯＳ１０１に要求する。これに応じ、ホストＯＳ１０１は、バックアップファイル用の仮想マシンについてサスペンドを解除する（ステップＳ３５）。
【００４０】
再開管理部１０４は、現用ファイル用の仮想マシンを削除することをリソース管理部１０５に要求する。リソース管理部１０５は、現用ファイル用の仮想マシンを削除することをホストＯＳ１０１に要求する。これに応じ、ホストＯＳ１０１は、現用ファイル用の仮想マシンを削除する（ステップＳ３７）。
【００４１】
バックアップファイル用の仮想マシンは、バックアップファイル用の仮想マシンについてネットワーク設定を行う（ステップＳ３９）。具体的には、バックアップファイル用の仮想マシンは、仮想スイッチ１０２に対し、現用ファイル用の仮想マシンのＭＡＣアドレスをバックアップファイル用の仮想マシンのＭＡＣアドレスに上書きするように設定をする。これにより、バックアップファイル用の仮想マシンが通信を行うことができるようになる。そして処理を終了する。
【００４２】
以上のように、バックアップファイル用の仮想マシンの起動を、現用ファイル用の仮想マシンの再起動と並行して行うようにする。これにより、現用ファイル用の仮想マシンによる処理が正常に再開しないことを確認した後にバックアップファイル用の仮想マシンを起動する場合と比較して、バックアップへの切り替えに要する時間を短縮できるようになる。
【００４３】
また、呼制御サーバ１が１台であっても本実施の形態の処理を実行できるので、ユーザは複数台の呼制御サーバを用意しなくてもよい。バックアップ用に予備の呼制御サーバを設けることはユーザにとって負担になるが、本実施の形態の場合には呼制御サーバ１は１台でよいので、ユーザの負担が少なくて済む。
【００４４】
また、上で述べた処理においては、バックアップファイル用の仮想マシンをサスペンドすることにより、現用ファイル用の仮想マシンを優先的に利用している。これは、バックアップファイル用の仮想マシンを利用すると、システムの状態がバックアップファイルを取得した時点に戻ってしまうためである。
【００４５】
また、上で述べたように、現用ファイルのロードモジュールをメモリにロードするまでは、バックアップファイル用の仮想マシンの起動を行わない。これにより、バックアップファイル用の仮想マシンがディスクＩ／Ｏ（Input／Output）を占有することにより現用ファイル用の仮想マシンの立ち上げが遅れることを防止できるようになる。
【００４６】
また、現用ファイル用の仮想マシン又はバックアップファイル用の仮想マシンを削除するまでは、現用ファイル用の仮想マシンとバックアップファイル用の仮想マシンとでＣＰＵコア等の資源を共有する。これは、サービス提供のためアプリケーションプログラムが処理を開始した後と比較して、資源の消費が少なくて済むからである。よって、上で述べたようにすれば、呼制御サーバ１の資源を有効に活用できるようになる。
【００４７】
次に、図８乃至図１８を用いて、管理データ格納部１０８の内容の変化について説明する。図８及び図１４は、本実施の形態の処理シーケンスを示す図である。図９に、管理データ格納部１０８の初期状態を示す。図９の例では、現用ファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
【００４８】
まず、再開管理部１０４は、現用ファイル用の仮想マシンに資源を割り当てることをリソース管理部１０５に要求する。これに応じ、リソース管理部１０５は、現用ファイル用の仮想マシンに資源を割り当てることをホストＯＳ１０１に要求する（図８における（１））。ホストＯＳ１０１は、現用ファイル用の仮想マシンを生成する。現用ファイル用の仮想マシンが生成されると、現用ファイル用の仮想マシンにおける通知制御部は、ホストＯＳ１０１に応答を出力する。ホストＯＳ１０１は、応答を受け取ると、リソース管理部１０５に応答を転送する。リソース管理部１０５は、応答を受け取ると、順序制御部１０６にその旨を通知する。
【００４９】
順序制御部１０６は、現用ファイル用の仮想マシンを起動することをホストＯＳ１０１に要求する（図８における（２））。これに応じ、ホストＯＳ１０１は、現用ファイル用の仮想マシンを起動する。現用ファイル用の仮想マシンが起動されると、現用ファイル用の仮想マシンにおける通知制御部は、ホストＯＳ１０１に応答を出力する。ホストＯＳ１０１は、応答を受け取ると、順序制御部１０６に応答を転送する。順序制御部１０６は、管理データ格納部１０８に格納されているデータを更新する。
【００５０】
図１０に、（ａ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１０の例では、現用ファイル用の仮想マシンの状態を表すデータとして「ファイルロード中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
【００５１】
一方、現用ファイル用の仮想マシンは、現用ファイルのロードモジュールをディスクから読み出し、メモリへのロードを開始する。そして、通知制御部は、メモリロード完了並びにプロセスの生成及び起動の開始を示すメッセージを再開管理部１０４に出力する（図８における（３））。再開管理部１０４は、管理データ格納部１０８に格納されているデータを更新する。また、現用ファイル用の仮想マシンは、アプリケーションプログラムのプロセスの生成及び起動を開始する。
【００５２】
図１１に、（ｂ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１１の例では、現用ファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
【００５３】
再開管理部１０４は、バックアップ用ファイル用の仮想マシンに資源を割り当てることをリソース管理部１０５に要求する。これに応じ、リソース管理部１０５は、バックアップファイル用の仮想マシンに資源を割り当てることをホストＯＳ１０１に要求する（図８における（４））。ホストＯＳ１０１は、バックアップファイル用の仮想マシンを生成する。バックアップファイル用の仮想マシンが生成されると、バックアップファイル用の仮想マシンにおける通知制御部は、ホストＯＳ１０１に応答を出力する。ホストＯＳ１０１は、応答を受け取ると、リソース管理部１０５に応答を転送する。リソース管理部１０５は、応答を受け取ると、順序制御部１０６にその旨を通知する。
【００５４】
順序制御部１０６は、バックアップファイル用の仮想マシンを起動することをホストＯＳ１０１に要求する（図８における（５））。これに応じ、ホストＯＳ１０１は、バックアップファイル用の仮想マシンを起動する。バックアップファイル用の仮想マシンが起動されると、バックアップファイル用の仮想マシンにおける通知制御部は、ホストＯＳ１０１に応答を出力する。ホストＯＳ１０１は、応答を受け取ると、順序制御部１０６に応答を転送する。順序制御部１０６は、管理データ格納部１０８に格納されているデータを更新する。
【００５５】
図１２に、（ｃ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１２の例では、現用ファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「ファイルロード中」が格納されている。
【００５６】
一方、バックアップファイル用の仮想マシンは、バックアップファイルのロードモジュールをディスクから読み出し、メモリへのロードを開始する。そして、通知制御部は、メモリロード完了並びにプロセスの生成及び起動の開始を示すメッセージを再開管理部１０４に出力する（図８における（６））。再開管理部１０４は、管理データ格納部１０８に格納されているデータを更新する。また、バックアップファイル用の仮想マシンは、アプリケーションプログラムのプロセスの生成及び起動を開始する。
【００５７】
図１３に、（ｄ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１３の例では、現用ファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されている。そして図１４の説明に移行する。
【００５８】
図１４の説明に移行し、現用ファイル用の仮想マシンにおける通知制御部は、アプリケーションプログラムのプロセスの生成及び起動が終了したことを示すメッセージを再開管理部１０４に出力する（図１４における（７））。
【００５９】
現用ファイル用の仮想マシンは、再起動後における所定期間の監視を開始する。また、現用ファイル用の仮想マシンにおける通知制御部は、再起動後における所定期間の監視を開始したことを示すメッセージを再開管理部１０４に出力する（図１４における（８））。再開管理部１０４は、管理データ格納部１０８に格納されているデータを更新する。
【００６０】
図１５に、（ｅ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１５の例では、現用ファイル用の仮想マシンの状態を表すデータとして「監視中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されている。
【００６１】
一方、バックアップファイル用の仮想マシンにおける通知制御部は、アプリケーションプログラムのプロセスの生成及び起動が終了したことを示すメッセージを再開管理部１０４に出力する（図１４における（９））。
【００６２】
再開管理部１０４は、バックアップファイル用の仮想マシンについてサスペンドを実行することを停止制御部１０７に要求する。停止制御部１０７は、バックアップファイル用の仮想マシンについてサスペンドを実行することをホストＯＳ１０１に要求する（図１４における（１０））。これに応じ、ホストＯＳ１０１は、バックアップファイル用の仮想マシンについてサスペンドを実行する。
【００６３】
バックアップファイル用の仮想マシンにおいて、サスペンド状態が開始する。サスペンド状態が開始される際、バックアップファイル用の仮想マシンにおける通知制御部はホストＯＳ１０１に応答を出力する。ホストＯＳ１０１は、応答を受け取ると、停止制御部１０７に出力する。停止制御部１０７は、管理データ格納部１０８に格納されているデータを更新する。
【００６４】
図１６に、（ｆ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１６の例では、現用ファイル用の仮想マシンの状態を表すデータとして「監視中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「サスペンド中」が格納されている。
【００６５】
現用ファイル用の仮想マシンにおいて再起動後の監視が終了する。現用ファイル用の仮想マシンにおける通知制御部は、監視の終了を示すメッセージを再開管理部１０４に出力する（図１４における（１１））。再開管理部１０４は、管理データ格納部１０８に格納されているデータを更新する。
【００６６】
図１７に、（ｇ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１７の例では、現用ファイル用の仮想マシンの状態を表すデータとして「運用中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「サスペンド中」が格納されている。
【００６７】
再開管理部１０４は、バックアップファイル用の仮想マシンを削除することをリソース管理部１０５に要求する。リソース管理部１０５は、バックアップファイル用の仮想マシンを削除することをホストＯＳ１０１に出力する（図１４における（１２））。ホストＯＳ１０１は、バックアップファイル用の仮想マシンについて削除を実行する。ホストＯＳ１０１は、応答をリソース管理部１０５に出力する。リソース管理部１０５は、管理データ格納部１０８に格納されているデータを更新する。
【００６８】
図１８に、（ｈ）の時点において管理データ格納部１０８に格納されるデータの一例を示す。図１８の例では、現用ファイル用の仮想マシンの状態を表すデータとして「運用中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
【００６９】
以上のようにすれば、仮想マシンの状態に応じて管理データ格納部１０８の内容が適切に更新されるようになる。
【００７０】
次に、図１９及び図２０を用いて、本実施の形態の効果について説明する。図１９に、本実施の形態を利用しない場合におけるバックアップファイルへの切り替えを示す。ここでは、ＣＰＵコアの数は４つであるとする。現用ファイル用の仮想マシンにおいて異常が発生した場合に、ＯＳ及びハードウェアの初期化を行うため、現用ファイル用の仮想マシンを再起動する。再起動の際には、現用ファイルのロードモジュールがメモリにロードされる。また、アプリケーションプログラムのプロセスの生成及び起動が行われ且つメモリが初期化される。さらに、ネットワークの設定が行われる。サービス提供までの処理の負荷はサービス提供後に比べて少ないため、現用ファイル用の仮想マシンにＣＰＵコア♯１だけが割り当てられており、ＣＰＵコア♯２乃至♯４は使用されていない。サービス提供が開始すると、ＣＰＵコア♯２乃至♯４も現用ファイル用の仮想マシンに割り当てられる。
【００７１】
ここで、再開後の監視期間中に再び異常が発生したため、バックアップファイルへの切り替えを行うとする。この場合、バックアップファイル用の仮想マシンにＣＰＵコア♯１だけが割り当てられる。そして、バックアップファイルのロードモジュールがメモリにロードされる。また、アプリケーションプログラムのプロセスの生成及び起動が行われ且つメモリが初期化される。さらに、ネットワークの設定が行われる。ここまではＣＰＵコア♯１だけがバックアップ用の仮想マシンに割り当てられているが、サービス提供が開始すると、ＣＰＵコア♯２乃至♯４もバックアップファイル用の仮想マシンに割り当てられる。
【００７２】
このように、本実施の形態を利用しない場合には、サービス提供が開始されるまではＣＰＵコア♯２乃至♯４は使用されていないため、ＣＰＵコアを効率的に使用していない。また、サービス提供が開始されるまでは、現用ファイルによる再開の失敗後バックアップファイルによる再開までに時間がかかるため、サービスの中断時間が長くなるという問題がある。
【００７３】
図２０に、本実施の形態を利用する場合におけるバックアップファイルへの切り替えを示す。現用ファイル用の仮想マシンにおいて異常が発生した場合に、ＯＳ及びハードウェアの初期化を行うため、現用ファイル用の仮想マシンを再起動する。再起動の際には、現用ファイルのロードモジュールがメモリにロードされる。また、アプリケーションプログラムのプロセスの生成及び起動が行われ且つメモリが初期化される。さらに、ネットワークの設定が行われる。
【００７４】
また、現用ファイルのロードモジュールをメモリにロードした後、ＣＰＵコア♯４を用いて、バックアップファイル用の仮想マシンを起動する。バックアップファイル用の仮想マシンについて、バックアップファイルのロードモジュールをメモリにロードし、アプリケーションプログラムのプロセスの生成及び起動をし、並びにメモリの初期化を完了すると、バックアップファイル用の仮想マシンはサスペンドする。ネットワーク設定を行わないのは、現用ファイル用の仮想マシンが通信を行うことができなくなるためである。また、バックアップファイル用の仮想マシンがサスペンドしている間、ＣＰＵコア♯１乃至♯４のいずれも現用ファイル用の仮想マシンに割り当てられる。
【００７５】
ここで、再開後の監視期間中に再び異常が発生したため、バックアップファイルへの切り替えを行うとする。この場合、バックアップファイル用の仮想マシンについて途中まで設定が終わっているため、ネットワークの設定が完了すると、バックアップファイル用の仮想マシンによるサービス提供を開始できる。サービス提供が開始すると、ＣＰＵコア♯１乃至♯４のいずれもバックアップファイル用の仮想マシンに割り当てられる。
【００７６】
このように、本実施の形態においては、現用ファイル用の仮想マシンの再起動の際にバックアップファイル用の仮想マシンを並行して起動する。そのため、ＣＰＵコアが１つだけしか使われていない期間が図１９の例と比較すると短く、ＣＰＵコアを効率的に使用していると言える。また、現用ファイルによる再開の失敗後バックアップファイルによる再開までの時間が短いため、サービスの中断時間が短く、ユーザの業務に与える影響が少ない。
【００７７】
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した呼制御サーバ１の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
【００７８】
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７９】
なお、上では呼制御サーバ１を例にして説明したが、本実施の形態は、呼制御を行うコンピュータ以外にも適用可能である。
【００８０】
以上述べた本発明の実施の形態をまとめると、以下のようになる。
【００８１】
本実施の形態の第１の態様に係る仮想マシン管理装置は、（Ａ）第１の仮想マシンに異常が発生した場合に、第１の仮想マシンを再起動すると共に、第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動する第１処理部と、（Ｂ）第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第１の仮想マシンから第２の仮想マシンに切り替えるように設定を行う第２処理部とを有する。
【００８２】
このようにすれば、第１の仮想マシンによる処理が正常に再開しないことを確認した後に第２の仮想マシンを起動する場合と比較して、バックアップへの切り替えに要する時間を短縮できるようになる。
【００８３】
また、上で述べた第１処理部が、（ａ１）第１の仮想マシンの再起動及び第２の仮想マシンの起動を行う際に、第１の仮想マシンと第２の仮想マシンとが同じ資源を共有するように設定してもよい。そして、上で述べた仮想マシン管理装置が、（Ｃ）第１の仮想マシンによる処理が正常に再開した場合に、第２の仮想マシンを削除する第３処理部をさらに有してもよい。仮想マシンによる処理を開始するまでは、実際に仮想マシンによる処理が再開した後と比較して資源を多量に消費するわけではない。従って、上で述べたようにすれば、仮想マシンによる処理が開始されるまでの処理の性能が劣化することはなく、また仮想マシンによる処理の再開後は資源を有効に利用できるようになる。
【００８４】
また、上で述べた第１処理部が、（ａ２）第１の仮想マシンの再起動を完了した後に、第２の仮想マシンの起動を行ってもよい。このようにすれば、第２の仮想マシンが処理を開始できる状態になる前に第１の仮想マシンによる処理が再開するか否かを判断できる可能性が高くなるので、第１の仮想マシンを優先した制御を行えるようになる。
【００８５】
また、上で述べた第２処理部が、（ｂ１）第１の仮想マシンによる処理が正常に再開するか否かを確認する前に第２の仮想マシンが処理を開始できる状態になった場合に、第２の仮想マシンをサスペンドしてもよい。このようにすれば、第１の仮想マシンによる処理が正常に再開しない場合に限りバックアップを利用できるようになる。
【００８６】
また、上で述べた第２の仮想マシンが、仮想マシン管理装置において実行されている仮想スイッチに対し、第１の仮想マシンに対する処理の要求を第２の仮想マシンに転送するように設定を行ってもよい。このようにすれば、切り替え後においても通信が問題なく行われるようになる。
【００８７】
また、上で述べた資源は、ＣＰＵ又はＣＰＵコアであってもよい。ＣＰＵ又はＣＰＵコアは処理性能に強く影響する資源である。
【００８８】
本実施の形態の第２の態様に係る仮想マシン管理方法は、（Ｄ）第１の仮想マシンに異常が発生した場合に、第１の仮想マシンを再起動すると共に、第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動し、（Ｅ）第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第１の仮想マシンから第２の仮想マシンに切り替えるように設定を行う処理を含む。
【００８９】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【００９０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）
第１の仮想マシンに異常が発生した場合に、前記第１の仮想マシンを再起動すると共に、前記第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動する第１処理部と、
前記第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えるように設定を行う第２処理部と、
を有する仮想マシン管理装置。
【００９２】
（付記２）
前記第１処理部が、
前記第１の仮想マシンの再起動及び前記第２の仮想マシンの起動を行う際に、前記第１の仮想マシンと前記第２の仮想マシンとが同じ資源を共有するように設定し、
前記仮想マシン管理装置が、
前記第１の仮想マシンによる処理が正常に再開した場合に、前記第２の仮想マシンを削除する第３処理部
をさらに有する付記１記載の仮想マシン管理装置。
【００９３】
（付記３）
前記第１処理部が、
前記第１の仮想マシンの再起動を完了した後に、前記第２の仮想マシンの起動を行う
ことを特徴とする付記１記載の仮想マシン管理装置。
【００９４】
（付記４）
前記第２処理部が、
前記第１の仮想マシンによる処理が正常に再開するか否かを確認する前に前記第２の仮想マシンが処理を開始できる状態になった場合に、前記第２の仮想マシンをサスペンドする
ことを特徴とする付記１記載の仮想マシン管理装置。
【００９５】
（付記５）
前記第２の仮想マシンが、
前記仮想マシン管理装置において実行されている仮想スイッチに対し、前記第１の仮想マシンに対する処理の要求を前記第２の仮想マシンに転送するように設定を行う
ことを特徴とする付記１記載の仮想マシン管理装置。
【００９６】
（付記６）
前記資源は、ＣＰＵ又はＣＰＵコアである
ことを特徴とする付記２記載の仮想マシン管理装置。
【００９７】
（付記７）
第１の仮想マシンに異常が発生した場合に、前記第１の仮想マシンを再起動すると共に、前記第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動し、
前記第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えるように設定を行う
処理をコンピュータが実行する仮想マシン管理方法。
【００９８】
（付記８）
第１の仮想マシンに異常が発生した場合に、前記第１の仮想マシンを再起動すると共に、前記第１の仮想マシンのバックアップ用の仮想マシンである第２の仮想マシンを起動し、
前記第１の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第１の仮想マシンから前記第２の仮想マシンに切り替えるように設定を行う
処理をコンピュータに実行させるための仮想マシン管理プログラム。
【符号の説明】
【００９９】
１  呼制御サーバ    ３Ａ，３Ｂ，３Ｃ  端末
５Ａ，５Ｂ，５Ｃ  サーバ    ７  ＩＰ網
１Ａ，１Ｂ  仮想マシン    １１，１５  ＣＰＵ
１２，１６  ＮＩＣ    １３，１７  メモリ
１４，１８  ディスク      １１１，１２１  アプリケーションプログラム
１１２，１２２  ミドルウェア    １１３，１２３  通知制御部
１１４，１２４  ゲストＯＳ    １１５，１２５  仮想マシン
１０３  監視部    １０４  再開管理部
１０５  リソース管理部    １０６  順序制御部
１０７  停止制御部    １０８  管理データ格納部
１０１  ホストＯＳ    １０２  仮想スイッチ
１３０  ＮＩＣ
【図１】
2014170385.tif 000003
【図２】
2014170385.tif 000004
【図３】
2014170385.tif 000005
【図４】
2014170385.tif 000006
【図５】
2014170385.tif 000007
【図６】
2014170385.tif 000008
【図７】
2014170385.tif 000009
【図８】
2014170385.tif 000010
【図９】
2014170385.tif 000011
【図１０】
2014170385.tif 000012
【図１１】
2014170385.tif 000013
【図１２】
2014170385.tif 000014
【図１３】
2014170385.tif 000015
【図１４】
2014170385.tif 000016
【図１５】
2014170385.tif 000017
【図１６】
2014170385.tif 000018
【図１７】
2014170385.tif 000019
【図１８】
2014170385.tif 000020
【図１９】
2014170385.tif 000021
【図２０】
2014170385.tif 000022