JP6070282B2 - 仮想マシン管理装置、方法及びプログラム - Google Patents

仮想マシン管理装置、方法及びプログラム Download PDF

Info

Publication number
JP6070282B2
JP6070282B2 JP2013041846A JP2013041846A JP6070282B2 JP 6070282 B2 JP6070282 B2 JP 6070282B2 JP 2013041846 A JP2013041846 A JP 2013041846A JP 2013041846 A JP2013041846 A JP 2013041846A JP 6070282 B2 JP6070282 B2 JP 6070282B2
Authority
JP
Japan
Prior art keywords
virtual machine
file
restart
backup file
backup
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013041846A
Other languages
English (en)
Other versions
JP2014170385A (ja
Inventor
正明 村合
正明 村合
弘泰 板東
弘泰 板東
俊吾 兎耳山
俊吾 兎耳山
崇 大江
崇 大江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013041846A priority Critical patent/JP6070282B2/ja
Publication of JP2014170385A publication Critical patent/JP2014170385A/ja
Application granted granted Critical
Publication of JP6070282B2 publication Critical patent/JP6070282B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は、仮想マシンの管理技術に関する。
仮想マシンにおいて発生する異常に対処する技術として、以下のような技術が知られている。具体的には、仮想マシンが、現用系OS(Operating System)と待機系OSとを実行する。そして、現用系OSに異常が発生した場合に、現用系OS上で実行するアプリケーションプログラムを、待機系OS上で実行するように切り替える。これにより、異常が発生した場合においてもアプリケーションプログラムによる処理を滞りなく行うことができる。
この技術は、いわゆるホットスタンバイを利用する技術である。ホットスタンバイにおいては、現用系のシステムだけでなく待機系のシステムが常に実行されており、現用系のシステムが管理するデータと待機系のシステムが管理するデータとの同期はほぼリアルタイムで行われる。そのため、ホットスタンバイを利用すれば、現用系のシステムに異常が発生した場合に待機系のシステムに迅速に切り替えることができる。
これに対し、バックアップを利用する技術においては、システムのバックアップファイルを任意のタイミングで(例えば定期的に)生成する。そして、システムに異常が発生した場合には、バックアップファイルを利用してシステムを再構築する。この技術を利用すれば、ホットスタンバイを利用する場合よりも運用コストが少なくて済むが、OSの起動等を行うことになるため、バックアップファイルへの切り替えを完了してシステムを再稼働するまでの時間が長くなるという問題がある。従来の技術においては、バックアップへの切り替えに要する時間を短縮することには着目されていない。
特開2002−41305号公報
従って、本発明の目的は、1つの側面では、バックアップへの切り替えに要する時間を短縮するための技術を提供することである。
本発明に係る仮想マシン管理装置は、第1の仮想マシンに異常が発生した場合に、第1の仮想マシンを再起動すると共に、第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシンを起動する第1処理部と、第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第1の仮想マシンから第2の仮想マシンに切り替えるように設定を行う第2処理部とを有する。
バックアップへの切り替えに要する時間を短縮できるようになる。
図1は、本実施の形態に係るシステムの概要を示す図である。 図2は、呼制御サーバにおいて実行される仮想マシンに割り当てられるハードウェアを示す図である。 図3は、呼制御サーバの機能ブロック構成を示す図である。 図4は、バックアップファイルの収集について説明するための図である。 図5は、再開エスカレーションについて説明するための図である。 図6は、現用ファイル用の仮想マシンについてOS及びハードウェアの初期化を行う際に呼制御サーバが実行する処理の処理フローを示す図である。 図7は、現用ファイル用の仮想マシンについてOS及びハードウェアの初期化を行う際に呼制御サーバが実行する処理の処理フローを示す図である。 図8は、処理シーケンスを示す図である。 図9は、管理データ格納部に格納されるデータの一例を示す図である。 図10は、管理データ格納部に格納されるデータの一例を示す図である。 図11は、管理データ格納部に格納されるデータの一例を示す図である。 図12は、管理データ格納部に格納されるデータの一例を示す図である。 図13は、管理データ格納部に格納されるデータの一例を示す図である。 図14は、処理シーケンスを示す図である。 図15は、管理データ格納部に格納されるデータの一例を示す図である。 図16は、管理データ格納部に格納されるデータの一例を示す図である。 図17は、管理データ格納部に格納されるデータの一例を示す図である。 図18は、管理データ格納部に格納されるデータの一例を示す図である。 図19は、効果について説明するための図である。 図20は、効果について説明するための図である。
図1に、本実施の形態に係るシステム概要を示す。例えば地域IP(Internet Protocol)網であるIP網7には、呼制御サーバ1と、端末3A乃至3Cと、サーバ5A乃至5Cとが接続されている。呼制御サーバ1は、端末間、サーバ間、又は端末とサーバとの間において、通話の開始から終了までの手順を制御するSIP(Session Initiation Protocol)サーバである。サーバ5A乃至5Cには端末又はサーバがさらに接続される場合があるが、説明を簡単にするため図示していない。なお、図1において端末及びサーバの数は3であるが、数に限定は無い。
図2に、呼制御サーバ1において実行される仮想マシンに割り当てられるハードウェアを示す。呼制御サーバ1においては、仮想マシン1A及び1Bが実行される。仮想マシン1Aには、CPU(Central Processing Unit)11と、NIC(Network Interface Card)12と、メモリ13と、ディスク14とが割り当てられる。仮想マシン1Bには、CPU15と、NIC16と、メモリ17と、ディスク18とが割り当てられる。CPU11及び15は、CPUコアであってもよい。NIC12及び16は、例えばLAN(Local Area Network)カードである。メモリ13及び17は、例えばDRAM(Dynamic Random Access Memory)である。ディスク14及び18は、例えばハードディスクである。図2において、仮想マシンの数は2であるが、数に限定は無い。
図3に、呼制御サーバの機能ブロック構成を示す。呼制御サーバ1においては、仮想スイッチ102を含むホストOS101が実行される。ホストOS101上には、仮想マシン115及び125と、再開管理部104、リソース管理部105、順序制御部106、停止制御部107及び管理データ格納部108を含む監視部103とが実行される。メモリ等の記憶装置には、管理データ格納部108のための領域が確保される。仮想マシン115上には、ゲストOS114と、通知制御部113を含むミドルウェア112と、アプリケーションプログラム111とが実行される。仮想マシン125上には、ゲストOS124と、通知制御部123を含むミドルウェア122と、アプリケーションプログラム121とが実行される。また、呼制御サーバ1は、NIC130を有しており、NIC130を介して外部の装置と通信を行う。
仮想スイッチ102は、NIC130を介して受信したパケットを仮想マシン115及び125に中継する。また、仮想スイッチ102は、仮想マシン115及び125から受け取ったデータをNIC130に出力する。NIC130は、伝送路(図示せず)から受信したデータを仮想スイッチ102に出力する。また、NIC130は、仮想スイッチ102から受け取ったデータを伝送路に出力する。
仮想マシン115及び125は、交換機システムを実現するための仮想マシンであり、ホストOS101によって起動される。ゲストOS114は仮想マシン115のOSであり、ゲストOS124は仮想マシン125のOSである。ミドルウェア112はゲストOS114上で実行されるミドルウェアであり、ミドルウェア122はゲストOS124上で実行されるミドルウェアである。通知制御部113及び123は、仮想マシン115及び125の状態をホストOS101及び監視部103に通知する処理等を実行する。アプリケーションプログラム111及び121は、サービス(本実施の形態においては、通話)に関連する処理を実行する。
再開管理部104は、仮想マシンの生成をリソース管理部105に要求し、仮想マシンのサスペンド(ここでは、強制停止)を停止制御部107に要求する。リソース管理部105は、再開管理部104からの要求に応じ、仮想マシンの生成及び削除をホストOS101に要求する。順序制御部106は、現用ファイル用の仮想マシンをバックアップファイル用の仮想マシンより優先する順序でホストOS101に仮想マシンの起動を要求する。停止制御部107は、再開管理部104からの要求に応じ、仮想マシンのサスペンドをホストOS101に要求する。
本実施の形態においては、呼制御サーバ1における仮想マシンによって交換機システムが実現される。本交換機システムにおいては、運転ファイルのバックアップが所定のタイミングで収集される。運転ファイルには、システムファイル、局データ及び設定データ等が含まれる。収集されたバックアップファイルは、ディスク14又は18に格納される。
バックアップファイルは、例えば以下のようなタイミングで収集される。(1)システムの構築及び現在稼働中のシステムによって利用される運転ファイル(以下、現用ファイルと呼ぶ)の更新の際、起動実績があるファイルとして収集される。なお、局データは、例えば回線開通等の際に更新される。(2)定期的(例えば24時間毎)に収集される。
図4を用いて、バックアップファイルが収集されるタイミングについて説明する。図4の上段には時間軸が示されており、三角印が付された時点においてイベントが実行されている。図4の例においては、交換機システムの構築というイベントの実行時、時点501、局データの更新というイベントの実行時及び時点502にバックアップファイルが収集される。また、現用ファイルがバージョン1からバージョン2に更新される際、バックアップファイルが収集される。さらに、時点503、局データの更新というイベントの実行時及び時点504にバックアップファイルが収集される。
そして、システムに異常が発生した場合には、後述の再開エスカレーションの手順に従って、まず現用ファイルによるシステムの再開を試みる。現用ファイルによるシステムの再開に失敗した場合には、バックアップファイルによるシステムの再開を試みる。
図5を用いて、再開エスカレーションについて説明する。再開エスカレーションとは、サービスに与える影響を可能な限り小さくするため、サービスに与える影響が少ない部分から初期設定を行い、初期設定の範囲を徐々に拡大させることである。
現用系システムにおいて異常が発生した場合には、サービスに与える影響が最も少ない、アプリケーションプログラムの初期化を最初に行う(図5における(1))。(1)によって異常が取り除かれなかった場合には、アプリケーションプログラム及びミドルウェアの初期化を行う(図5における(2))。(2)によって異常が取り除かれなかった場合には、OS及びハードウェアの初期化を行う(図5における(3))。OS及びハードウェアの初期化においては再起動を行うため時間がかかるので、OS及びハードウェアの初期化が完了するまでの間、現用系のシステムを待機系のシステムに切り替えることにより復旧を試みる(図5における(4))。
待機系のシステムに切り替えても復旧することができない場合には、OS及びハードウェアの初期化が完了した現用系のシステムにおいて復旧を試みる。復旧に失敗した場合には、バックアップファイルによりシステムを再構築する(図5における(5))。
本実施の形態においては、図5における(5)に示した、バックアップファイルによるシステムの再構築が完了するまでの時間を短縮する方法について説明する。
図6に、現用ファイル用の仮想マシンについてOS及びハードウェアの初期化を行う際に呼制御サーバ1が実行する処理の処理フローを示す。まず、再開管理部104は、現用ファイル用の仮想マシンに資源(例えばCPU又はCPUコア)を割り当てることをリソース管理部105に要求する。リソース管理部105は、現用ファイル用の仮想マシンに資源を割り当てることをホストOS101に要求する。これに応じ、ホストOS101は、現用ファイル用の仮想マシンに資源を割り当てることにより、現用ファイル用の仮想マシンを生成する(図6:ステップS1)。
順序制御部106は、現用ファイル用の仮想マシンを起動する(ステップS3)。具体的には、順序制御部106は、現用ファイル用の仮想マシンをホストOS101に起動させる。また、現用ファイル用の仮想マシンは、現用ファイルのロードモジュールをメモリにロードする。
再開管理部104は、現用ファイルのロードモジュールについてメモリへのロードが完了したか判断する(ステップS5)。ステップS5において、再開管理部104は、起動された仮想マシンにおける通知制御部からロード完了並びにプロセスの生成及び起動の開始を示すメッセージを受け取ったか否かにより判断する。
現用ファイルのロードモジュールについてメモリへのロードが完了していない場合(ステップS5:Noルート)、再開管理部104は、ステップS5の処理を再度実行する。一方、現用ファイルのロードモジュールについてメモリへのロードが完了した場合(ステップS5:Yesルート)、再開管理部104は、バックアップファイル用の仮想マシンに資源(例えばCPU又はCPUコア)を割り当てることをリソース管理部105に要求する。リソース管理部105は、バックアップファイル用の仮想マシンに資源を割り当てることをホストOS101に要求する。これに応じ、ホストOS101は、現用ファイル用の仮想マシンに割り当てた資源と同じ資源をバックアップファイル用の仮想マシンに割り当てることにより、バックアップファイル用の仮想マシンを生成する(ステップS7)。
順序制御部106は、バックアップファイル用の仮想マシンを起動する(ステップS9)。具体的には、順序制御部106は、バックアップファイル用の仮想マシンをホストOS101に起動させる。また、バックアップファイル用の仮想マシンは、バックアップファイルのロードモジュールをメモリにロードする。
再開管理部104は、現用ファイル用の仮想マシンにおいて所定の処理が完了したか判断する(ステップS11)。ステップS11においては、再開管理部104は、現用ファイル用の仮想マシンから所定の処理が終了したことを示すメッセージを受け取ったか否かにより判断する。所定の処理とは、メモリ初期化並びにアプリケーションプログラムのプロセスの生成及び起動である。このメッセージは、実質的には、現用ファイル用の仮想マシンの立ち上げが完了したことを意味する。
現用ファイル用の仮想マシンにおいて所定の処理が完了した場合(ステップS11:Yesルート)、処理は端子Aを介して図7のステップS19に移行する。一方、現用ファイル用の仮想マシンにおいて所定の処理が完了していない場合(ステップS11:Noルート)、再開管理部104は、バックアップファイル用の仮想マシンをサスペンド済みであるか判断する(ステップS13)。ステップS13においては、再開管理部104は、管理データ格納部108においてバックアップファイル用の仮想マシンの状態がサスペンド中であるか否かにより判断する。管理データ格納部108については、後で説明する。
バックアップファイル用の仮想マシンをサスペンド済みである場合(ステップS13:Yesルート)、ステップS11の処理に戻る。一方、バックアップファイル用の仮想マシンをサスペンド済みではない場合(ステップS13:Noルート)、再開管理部104は、バックアップファイル用の仮想マシンにおいて所定の処理が完了したか判断する(ステップS15)。ステップS15においては、再開管理部104は、バックアップファイル用の仮想マシンから所定の処理が終了したことを示すメッセージを受け取ったか否かにより判断する。上で説明したように、所定の処理とは、メモリ初期化並びにアプリケーションプログラムのプロセスの生成及び起動である。このメッセージは、実質的には、バックアップファイル用の仮想マシンの立ち上げが完了したことを意味する。
バックアップファイル用の仮想マシンにおいて所定の処理が完了していない場合(ステップS15:Noルート)、ステップS11の処理に戻る。一方、バックアップファイル用の仮想マシンにおいて所定の処理が完了した場合(ステップS15:Yesルート)、再開管理部104は、バックアップファイル用の仮想マシンについてサスペンドを実行することを停止制御部107に要求する。これに応じ、停止制御部107は、バックアップファイル用の仮想マシンについてサスペンドを実行する(ステップS17)。そしてステップS11の処理に戻る。ステップS17においては、停止制御部107は、ホストOS101に、バックアップファイル用の仮想マシンをサスペンドさせる。なお、サスペンドされている間においては、バックアップファイル用の仮想マシンに割り当てられたメモリの内容はクリアされない。
図7の説明に移行し、現用ファイル用の仮想マシンにおける通知制御部は、現用ファイル用の仮想マシンについて再開後の監視を開始する(ステップS19)。再開後の監視とは、現用ファイル用の仮想マシンの再起動後に所定時間行う監視である。この監視により、OS及びハードウェアの初期化によって異常発生の原因が取り除かれたか否かがわかる。
再開管理部104は、再開後の監視が正常に終了したか判断する(ステップS21)。正常に終了するとは、監視期間中に異常が発生せず監視が無事に終了することである。再開後の監視が正常に終了した場合(ステップS21:Yesルート)、異常の原因が取り除かれたので、再開管理部104は、バックアップファイル用の仮想マシンを削除することをリソース管理部105に要求する。リソース管理部105は、バックアップファイル用の仮想マシンを削除することをホストOS101に要求する。これに応じ、ホストOS101は、バックアップファイル用の仮想マシンを削除する(ステップS23)。
再開後の監視が正常に終了していない場合(ステップS21:Noルート)、再開管理部104は、再開後の監視を継続中であるか判断する(ステップS25)。再開後の監視を継続中である場合(ステップS25:Yesルート)、再開管理部104は、バックアップファイル用の仮想マシンをサスペンド済みであるか判断する(ステップS27)。ステップS27においては、再開管理部104は、管理データ格納部108においてバックアップファイル用の仮想マシンの状態がサスペンド中であるか否かにより判断する。
バックアップファイル用の仮想マシンをサスペンド済みである場合(ステップS27:Yesルート)、ステップS21の処理に戻る。バックアップファイル用の仮想マシンをサスペンド済みではない場合(ステップS27:Noルート)、再開管理部104は、バックアップファイル用の仮想マシンにおいて所定の処理が完了したか判断する(ステップS29)。ステップS29においては、再開管理部104は、バックアップファイル用の仮想マシンから所定の処理が終了したことを示すメッセージを受け取ったか否かにより判断する。
バックアップファイル用の仮想マシンにおいて所定の処理が完了していない場合(ステップS29:Noルート)、ステップS21の処理に戻る。一方、バックアップファイル用の仮想マシンにおいて所定の処理が完了した場合(ステップS29:Yesルート)、再開管理部104は、バックアップファイル用の仮想マシンについてサスペンドを実行することを停止制御部107に要求する。これに応じ、停止制御部107は、バックアップファイル用の仮想マシンについてサスペンドを実行する(ステップS31)。そしてステップS21の処理に戻る。ステップS31においては、停止制御部107は、ホストOS101に、バックアップファイル用の仮想マシンをサスペンドさせる。
一方、監視を継続中ではない場合(ステップS25:Noルート)、再開管理部104は、バックアップファイル用の仮想マシンはサスペンド中であるか判断する(ステップS33)。ステップS33においては、再開管理部104は、管理データ格納部108においてバックアップファイル用の仮想マシンの状態がサスペンド中であるか否かにより判断する。
バックアップファイル用の仮想マシンがサスペンド中ではない場合(ステップS33:Noルート)、ステップS37の処理に移行する。一方、バックアップファイル用の仮想マシンがサスペンド中である場合(ステップS33:Yesルート)、再開管理部104は、バックアップファイル用の仮想マシンについてサスペンドを解除することを停止制御部107に要求する。停止制御部107は、バックアップファイル用の仮想マシンについてサスペンドを解除することをホストOS101に要求する。これに応じ、ホストOS101は、バックアップファイル用の仮想マシンについてサスペンドを解除する(ステップS35)。
再開管理部104は、現用ファイル用の仮想マシンを削除することをリソース管理部105に要求する。リソース管理部105は、現用ファイル用の仮想マシンを削除することをホストOS101に要求する。これに応じ、ホストOS101は、現用ファイル用の仮想マシンを削除する(ステップS37)。
バックアップファイル用の仮想マシンは、バックアップファイル用の仮想マシンについてネットワーク設定を行う(ステップS39)。具体的には、バックアップファイル用の仮想マシンは、仮想スイッチ102に対し、現用ファイル用の仮想マシンのMACアドレスをバックアップファイル用の仮想マシンのMACアドレスに上書きするように設定をする。これにより、バックアップファイル用の仮想マシンが通信を行うことができるようになる。そして処理を終了する。
以上のように、バックアップファイル用の仮想マシンの起動を、現用ファイル用の仮想マシンの再起動と並行して行うようにする。これにより、現用ファイル用の仮想マシンによる処理が正常に再開しないことを確認した後にバックアップファイル用の仮想マシンを起動する場合と比較して、バックアップへの切り替えに要する時間を短縮できるようになる。
また、呼制御サーバ1が1台であっても本実施の形態の処理を実行できるので、ユーザは複数台の呼制御サーバを用意しなくてもよい。バックアップ用に予備の呼制御サーバを設けることはユーザにとって負担になるが、本実施の形態の場合には呼制御サーバ1は1台でよいので、ユーザの負担が少なくて済む。
また、上で述べた処理においては、バックアップファイル用の仮想マシンをサスペンドすることにより、現用ファイル用の仮想マシンを優先的に利用している。これは、バックアップファイル用の仮想マシンを利用すると、システムの状態がバックアップファイルを取得した時点に戻ってしまうためである。
また、上で述べたように、現用ファイルのロードモジュールをメモリにロードするまでは、バックアップファイル用の仮想マシンの起動を行わない。これにより、バックアップファイル用の仮想マシンがディスクI/O(Input/Output)を占有することにより現用ファイル用の仮想マシンの立ち上げが遅れることを防止できるようになる。
また、現用ファイル用の仮想マシン又はバックアップファイル用の仮想マシンを削除するまでは、現用ファイル用の仮想マシンとバックアップファイル用の仮想マシンとでCPUコア等の資源を共有する。これは、サービス提供のためアプリケーションプログラムが処理を開始した後と比較して、資源の消費が少なくて済むからである。よって、上で述べたようにすれば、呼制御サーバ1の資源を有効に活用できるようになる。
次に、図8乃至図18を用いて、管理データ格納部108の内容の変化について説明する。図8及び図14は、本実施の形態の処理シーケンスを示す図である。図9に、管理データ格納部108の初期状態を示す。図9の例では、現用ファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
まず、再開管理部104は、現用ファイル用の仮想マシンに資源を割り当てることをリソース管理部105に要求する。これに応じ、リソース管理部105は、現用ファイル用の仮想マシンに資源を割り当てることをホストOS101に要求する(図8における(1))。ホストOS101は、現用ファイル用の仮想マシンを生成する。現用ファイル用の仮想マシンが生成されると、現用ファイル用の仮想マシンにおける通知制御部は、ホストOS101に応答を出力する。ホストOS101は、応答を受け取ると、リソース管理部105に応答を転送する。リソース管理部105は、応答を受け取ると、順序制御部106にその旨を通知する。
順序制御部106は、現用ファイル用の仮想マシンを起動することをホストOS101に要求する(図8における(2))。これに応じ、ホストOS101は、現用ファイル用の仮想マシンを起動する。現用ファイル用の仮想マシンが起動されると、現用ファイル用の仮想マシンにおける通知制御部は、ホストOS101に応答を出力する。ホストOS101は、応答を受け取ると、順序制御部106に応答を転送する。順序制御部106は、管理データ格納部108に格納されているデータを更新する。
図10に、(a)の時点において管理データ格納部108に格納されるデータの一例を示す。図10の例では、現用ファイル用の仮想マシンの状態を表すデータとして「ファイルロード中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
一方、現用ファイル用の仮想マシンは、現用ファイルのロードモジュールをディスクから読み出し、メモリへのロードを開始する。そして、通知制御部は、メモリロード完了並びにプロセスの生成及び起動の開始を示すメッセージを再開管理部104に出力する(図8における(3))。再開管理部104は、管理データ格納部108に格納されているデータを更新する。また、現用ファイル用の仮想マシンは、アプリケーションプログラムのプロセスの生成及び起動を開始する。
図11に、(b)の時点において管理データ格納部108に格納されるデータの一例を示す。図11の例では、現用ファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
再開管理部104は、バックアップ用ファイル用の仮想マシンに資源を割り当てることをリソース管理部105に要求する。これに応じ、リソース管理部105は、バックアップファイル用の仮想マシンに資源を割り当てることをホストOS101に要求する(図8における(4))。ホストOS101は、バックアップファイル用の仮想マシンを生成する。バックアップファイル用の仮想マシンが生成されると、バックアップファイル用の仮想マシンにおける通知制御部は、ホストOS101に応答を出力する。ホストOS101は、応答を受け取ると、リソース管理部105に応答を転送する。リソース管理部105は、応答を受け取ると、順序制御部106にその旨を通知する。
順序制御部106は、バックアップファイル用の仮想マシンを起動することをホストOS101に要求する(図8における(5))。これに応じ、ホストOS101は、バックアップファイル用の仮想マシンを起動する。バックアップファイル用の仮想マシンが起動されると、バックアップファイル用の仮想マシンにおける通知制御部は、ホストOS101に応答を出力する。ホストOS101は、応答を受け取ると、順序制御部106に応答を転送する。順序制御部106は、管理データ格納部108に格納されているデータを更新する。
図12に、(c)の時点において管理データ格納部108に格納されるデータの一例を示す。図12の例では、現用ファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「ファイルロード中」が格納されている。
一方、バックアップファイル用の仮想マシンは、バックアップファイルのロードモジュールをディスクから読み出し、メモリへのロードを開始する。そして、通知制御部は、メモリロード完了並びにプロセスの生成及び起動の開始を示すメッセージを再開管理部104に出力する(図8における(6))。再開管理部104は、管理データ格納部108に格納されているデータを更新する。また、バックアップファイル用の仮想マシンは、アプリケーションプログラムのプロセスの生成及び起動を開始する。
図13に、(d)の時点において管理データ格納部108に格納されるデータの一例を示す。図13の例では、現用ファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されている。そして図14の説明に移行する。
図14の説明に移行し、現用ファイル用の仮想マシンにおける通知制御部は、アプリケーションプログラムのプロセスの生成及び起動が終了したことを示すメッセージを再開管理部104に出力する(図14における(7))。
現用ファイル用の仮想マシンは、再起動後における所定期間の監視を開始する。また、現用ファイル用の仮想マシンにおける通知制御部は、再起動後における所定期間の監視を開始したことを示すメッセージを再開管理部104に出力する(図14における(8))。再開管理部104は、管理データ格納部108に格納されているデータを更新する。
図15に、(e)の時点において管理データ格納部108に格納されるデータの一例を示す。図15の例では、現用ファイル用の仮想マシンの状態を表すデータとして「監視中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「プロセスの生成及び起動中」が格納されている。
一方、バックアップファイル用の仮想マシンにおける通知制御部は、アプリケーションプログラムのプロセスの生成及び起動が終了したことを示すメッセージを再開管理部104に出力する(図14における(9))。
再開管理部104は、バックアップファイル用の仮想マシンについてサスペンドを実行することを停止制御部107に要求する。停止制御部107は、バックアップファイル用の仮想マシンについてサスペンドを実行することをホストOS101に要求する(図14における(10))。これに応じ、ホストOS101は、バックアップファイル用の仮想マシンについてサスペンドを実行する。
バックアップファイル用の仮想マシンにおいて、サスペンド状態が開始する。サスペンド状態が開始される際、バックアップファイル用の仮想マシンにおける通知制御部はホストOS101に応答を出力する。ホストOS101は、応答を受け取ると、停止制御部107に出力する。停止制御部107は、管理データ格納部108に格納されているデータを更新する。
図16に、(f)の時点において管理データ格納部108に格納されるデータの一例を示す。図16の例では、現用ファイル用の仮想マシンの状態を表すデータとして「監視中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「サスペンド中」が格納されている。
現用ファイル用の仮想マシンにおいて再起動後の監視が終了する。現用ファイル用の仮想マシンにおける通知制御部は、監視の終了を示すメッセージを再開管理部104に出力する(図14における(11))。再開管理部104は、管理データ格納部108に格納されているデータを更新する。
図17に、(g)の時点において管理データ格納部108に格納されるデータの一例を示す。図17の例では、現用ファイル用の仮想マシンの状態を表すデータとして「運用中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「サスペンド中」が格納されている。
再開管理部104は、バックアップファイル用の仮想マシンを削除することをリソース管理部105に要求する。リソース管理部105は、バックアップファイル用の仮想マシンを削除することをホストOS101に出力する(図14における(12))。ホストOS101は、バックアップファイル用の仮想マシンについて削除を実行する。ホストOS101は、応答をリソース管理部105に出力する。リソース管理部105は、管理データ格納部108に格納されているデータを更新する。
図18に、(h)の時点において管理データ格納部108に格納されるデータの一例を示す。図18の例では、現用ファイル用の仮想マシンの状態を表すデータとして「運用中」が格納されており、バックアップファイル用の仮想マシンの状態を表すデータとして「未実装」が格納されている。
以上のようにすれば、仮想マシンの状態に応じて管理データ格納部108の内容が適切に更新されるようになる。
次に、図19及び図20を用いて、本実施の形態の効果について説明する。図19に、本実施の形態を利用しない場合におけるバックアップファイルへの切り替えを示す。ここでは、CPUコアの数は4つであるとする。現用ファイル用の仮想マシンにおいて異常が発生した場合に、OS及びハードウェアの初期化を行うため、現用ファイル用の仮想マシンを再起動する。再起動の際には、現用ファイルのロードモジュールがメモリにロードされる。また、アプリケーションプログラムのプロセスの生成及び起動が行われ且つメモリが初期化される。さらに、ネットワークの設定が行われる。サービス提供までの処理の負荷はサービス提供後に比べて少ないため、現用ファイル用の仮想マシンにCPUコア♯1だけが割り当てられており、CPUコア♯2乃至♯4は使用されていない。サービス提供が開始すると、CPUコア♯2乃至♯4も現用ファイル用の仮想マシンに割り当てられる。
ここで、再開後の監視期間中に再び異常が発生したため、バックアップファイルへの切り替えを行うとする。この場合、バックアップファイル用の仮想マシンにCPUコア♯1だけが割り当てられる。そして、バックアップファイルのロードモジュールがメモリにロードされる。また、アプリケーションプログラムのプロセスの生成及び起動が行われ且つメモリが初期化される。さらに、ネットワークの設定が行われる。ここまではCPUコア♯1だけがバックアップ用の仮想マシンに割り当てられているが、サービス提供が開始すると、CPUコア♯2乃至♯4もバックアップファイル用の仮想マシンに割り当てられる。
このように、本実施の形態を利用しない場合には、サービス提供が開始されるまではCPUコア♯2乃至♯4は使用されていないため、CPUコアを効率的に使用していない。また、サービス提供が開始されるまでは、現用ファイルによる再開の失敗後バックアップファイルによる再開までに時間がかかるため、サービスの中断時間が長くなるという問題がある。
図20に、本実施の形態を利用する場合におけるバックアップファイルへの切り替えを示す。現用ファイル用の仮想マシンにおいて異常が発生した場合に、OS及びハードウェアの初期化を行うため、現用ファイル用の仮想マシンを再起動する。再起動の際には、現用ファイルのロードモジュールがメモリにロードされる。また、アプリケーションプログラムのプロセスの生成及び起動が行われ且つメモリが初期化される。さらに、ネットワークの設定が行われる。
また、現用ファイルのロードモジュールをメモリにロードした後、CPUコア♯4を用いて、バックアップファイル用の仮想マシンを起動する。バックアップファイル用の仮想マシンについて、バックアップファイルのロードモジュールをメモリにロードし、アプリケーションプログラムのプロセスの生成及び起動をし、並びにメモリの初期化を完了すると、バックアップファイル用の仮想マシンはサスペンドする。ネットワーク設定を行わないのは、現用ファイル用の仮想マシンが通信を行うことができなくなるためである。また、バックアップファイル用の仮想マシンがサスペンドしている間、CPUコア♯1乃至♯4のいずれも現用ファイル用の仮想マシンに割り当てられる。
ここで、再開後の監視期間中に再び異常が発生したため、バックアップファイルへの切り替えを行うとする。この場合、バックアップファイル用の仮想マシンについて途中まで設定が終わっているため、ネットワークの設定が完了すると、バックアップファイル用の仮想マシンによるサービス提供を開始できる。サービス提供が開始すると、CPUコア♯1乃至♯4のいずれもバックアップファイル用の仮想マシンに割り当てられる。
このように、本実施の形態においては、現用ファイル用の仮想マシンの再起動の際にバックアップファイル用の仮想マシンを並行して起動する。そのため、CPUコアが1つだけしか使われていない期間が図19の例と比較すると短く、CPUコアを効率的に使用していると言える。また、現用ファイルによる再開の失敗後バックアップファイルによる再開までの時間が短いため、サービスの中断時間が短く、ユーザの業務に与える影響が少ない。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した呼制御サーバ1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
なお、上では呼制御サーバ1を例にして説明したが、本実施の形態は、呼制御を行うコンピュータ以外にも適用可能である。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る仮想マシン管理装置は、(A)第1の仮想マシンに異常が発生した場合に、第1の仮想マシンを再起動すると共に、第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシンを起動する第1処理部と、(B)第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第1の仮想マシンから第2の仮想マシンに切り替えるように設定を行う第2処理部とを有する。
このようにすれば、第1の仮想マシンによる処理が正常に再開しないことを確認した後に第2の仮想マシンを起動する場合と比較して、バックアップへの切り替えに要する時間を短縮できるようになる。
また、上で述べた第1処理部が、(a1)第1の仮想マシンの再起動及び第2の仮想マシンの起動を行う際に、第1の仮想マシンと第2の仮想マシンとが同じ資源を共有するように設定してもよい。そして、上で述べた仮想マシン管理装置が、(C)第1の仮想マシンによる処理が正常に再開した場合に、第2の仮想マシンを削除する第3処理部をさらに有してもよい。仮想マシンによる処理を開始するまでは、実際に仮想マシンによる処理が再開した後と比較して資源を多量に消費するわけではない。従って、上で述べたようにすれば、仮想マシンによる処理が開始されるまでの処理の性能が劣化することはなく、また仮想マシンによる処理の再開後は資源を有効に利用できるようになる。
また、上で述べた第1処理部が、(a2)第1の仮想マシンの再起動を完了した後に、第2の仮想マシンの起動を行ってもよい。このようにすれば、第2の仮想マシンが処理を開始できる状態になる前に第1の仮想マシンによる処理が再開するか否かを判断できる可能性が高くなるので、第1の仮想マシンを優先した制御を行えるようになる。
また、上で述べた第2処理部が、(b1)第1の仮想マシンによる処理が正常に再開するか否かを確認する前に第2の仮想マシンが処理を開始できる状態になった場合に、第2の仮想マシンをサスペンドしてもよい。このようにすれば、第1の仮想マシンによる処理が正常に再開しない場合に限りバックアップを利用できるようになる。
また、上で述べた第2の仮想マシンが、仮想マシン管理装置において実行されている仮想スイッチに対し、第1の仮想マシンに対する処理の要求を第2の仮想マシンに転送するように設定を行ってもよい。このようにすれば、切り替え後においても通信が問題なく行われるようになる。
また、上で述べた資源は、CPU又はCPUコアであってもよい。CPU又はCPUコアは処理性能に強く影響する資源である。
本実施の形態の第2の態様に係る仮想マシン管理方法は、(D)第1の仮想マシンに異常が発生した場合に、第1の仮想マシンを再起動すると共に、第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシンを起動し、(E)第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを第1の仮想マシンから第2の仮想マシンに切り替えるように設定を行う処理を含む。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
第1の仮想マシンに異常が発生した場合に、前記第1の仮想マシンを再起動すると共に、前記第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシンを起動する第1処理部と、
前記第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えるように設定を行う第2処理部と、
を有する仮想マシン管理装置。
(付記2)
前記第1処理部が、
前記第1の仮想マシンの再起動及び前記第2の仮想マシンの起動を行う際に、前記第1の仮想マシンと前記第2の仮想マシンとが同じ資源を共有するように設定し、
前記仮想マシン管理装置が、
前記第1の仮想マシンによる処理が正常に再開した場合に、前記第2の仮想マシンを削除する第3処理部
をさらに有する付記1記載の仮想マシン管理装置。
(付記3)
前記第1処理部が、
前記第1の仮想マシンの再起動を完了した後に、前記第2の仮想マシンの起動を行う
ことを特徴とする付記1記載の仮想マシン管理装置。
(付記4)
前記第2処理部が、
前記第1の仮想マシンによる処理が正常に再開するか否かを確認する前に前記第2の仮想マシンが処理を開始できる状態になった場合に、前記第2の仮想マシンをサスペンドする
ことを特徴とする付記1記載の仮想マシン管理装置。
(付記5)
前記第2の仮想マシンが、
前記仮想マシン管理装置において実行されている仮想スイッチに対し、前記第1の仮想マシンに対する処理の要求を前記第2の仮想マシンに転送するように設定を行う
ことを特徴とする付記1記載の仮想マシン管理装置。
(付記6)
前記資源は、CPU又はCPUコアである
ことを特徴とする付記2記載の仮想マシン管理装置。
(付記7)
第1の仮想マシンに異常が発生した場合に、前記第1の仮想マシンを再起動すると共に、前記第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシンを起動し、
前記第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えるように設定を行う
処理をコンピュータが実行する仮想マシン管理方法。
(付記8)
第1の仮想マシンに異常が発生した場合に、前記第1の仮想マシンを再起動すると共に、前記第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシンを起動し、
前記第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えるように設定を行う
処理をコンピュータに実行させるための仮想マシン管理プログラム。
1 呼制御サーバ 3A,3B,3C 端末
5A,5B,5C サーバ 7 IP網
1A,1B 仮想マシン 11,15 CPU
12,16 NIC 13,17 メモリ
14,18 ディスク 111,121 アプリケーションプログラム
112,122 ミドルウェア 113,123 通知制御部
114,124 ゲストOS 115,125 仮想マシン
103 監視部 104 再開管理部
105 リソース管理部 106 順序制御部
107 停止制御部 108 管理データ格納部
101 ホストOS 102 仮想スイッチ
130 NIC

Claims (5)

  1. 第1の仮想マシンに異常が発生した場、前記第1の仮想マシン再起動を開始した後であり、前記第1の仮想マシンが現用データのロードを完了した後であり、且つ前記第1の仮想マシンの再起動が完了する前である時点において、前記第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシン起動を開始する第1処理部と、
    前記第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えるように設定を行う第2処理部と、
    を有する仮想マシン管理装置。
  2. 前記第1処理部が、
    前記第1の仮想マシンの再起動及び前記第2の仮想マシンの起動を行う際に、前記第1の仮想マシンと前記第2の仮想マシンとが同じプロセッサ又はプロセッサコア使用するように設定し、
    前記仮想マシン管理装置が、
    前記第1の仮想マシンによる処理が正常に再開した場合に、前記第2の仮想マシンを削除する第3処理部
    をさらに有する請求項1記載の仮想マシン管理装置。
  3. 前記第2処理部が、
    前記第1の仮想マシンによる処理が正常に再開するか否かを確認する前に前記第2の仮想マシンが処理を開始できる状態になった場合に、前記第2の仮想マシンをサスペンドする
    ことを特徴とする請求項1記載の仮想マシン管理装置。
  4. 第1の仮想マシンに異常が発生した場、前記第1の仮想マシン再起動を開始した後であり、前記第1の仮想マシンが現用データのロードを完了した後であり、且つ前記第1の仮想マシンの再起動が完了する前である時点において、前記第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシン起動を開始し、
    前記第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えるように設定を行う、
    処理をコンピュータが実行する仮想マシン管理方法。
  5. 第1の仮想マシンに異常が発生した場、前記第1の仮想マシン再起動を開始した後であり、前記第1の仮想マシンが現用データのロードを完了した後であり、且つ前記第1の仮想マシンの再起動が完了する前である時点において、前記第1の仮想マシンのバックアップ用の仮想マシンである第2の仮想マシン起動を開始し、
    前記第1の仮想マシンによる処理が正常に再開しない場合に、処理を実行する仮想マシンを前記第1の仮想マシンから前記第2の仮想マシンに切り替えるように設定を行う、
    処理をコンピュータに実行させるための仮想マシン管理プログラム。
JP2013041846A 2013-03-04 2013-03-04 仮想マシン管理装置、方法及びプログラム Expired - Fee Related JP6070282B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013041846A JP6070282B2 (ja) 2013-03-04 2013-03-04 仮想マシン管理装置、方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013041846A JP6070282B2 (ja) 2013-03-04 2013-03-04 仮想マシン管理装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2014170385A JP2014170385A (ja) 2014-09-18
JP6070282B2 true JP6070282B2 (ja) 2017-02-01

Family

ID=51692737

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013041846A Expired - Fee Related JP6070282B2 (ja) 2013-03-04 2013-03-04 仮想マシン管理装置、方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6070282B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106572047A (zh) * 2015-10-09 2017-04-19 东软集团股份有限公司 物理网络安全设备及其控制方法
JPWO2022172435A1 (ja) * 2021-02-15 2022-08-18

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001216171A (ja) * 2000-01-31 2001-08-10 Toshiba Corp 仮想計算機システム
JP4842210B2 (ja) * 2007-05-24 2011-12-21 株式会社日立製作所 フェイルオーバ方法、計算機システム、管理サーバ及び予備サーバの設定方法
JP4677482B2 (ja) * 2008-03-27 2011-04-27 西日本電信電話株式会社 アクセス振分システム、サーバ装置、共通管理装置、アクセス振分装置、アクセス振分方法、及び、コンピュータプログラム
JP2010128943A (ja) * 2008-11-28 2010-06-10 Toshiba Corp 情報処理装置および情報処理装置の制御方法
JP2010198353A (ja) * 2009-02-25 2010-09-09 Nec Corp コンピュータシステム、コンピュータ本体、hbaに対する電力供給制御方法およびそのプログラム
JP5840410B2 (ja) * 2010-09-08 2016-01-06 株式会社東芝 監視制御システム
JP5422705B2 (ja) * 2012-07-06 2014-02-19 株式会社日立製作所 仮想計算機システム

Also Published As

Publication number Publication date
JP2014170385A (ja) 2014-09-18

Similar Documents

Publication Publication Date Title
KR102059251B1 (ko) 노드 시스템, 서버 장치, 스케일링 제어 방법 및 프로그램
US9141502B2 (en) Method and system for providing high availability to computer applications
WO2016165304A1 (zh) 一种实例节点管理的方法及管理设备
CN106331065B (zh) 一种用于具有服务容器的主机系统的代理应用以及系统
CN103176831B (zh) 一种虚拟机系统及其管理方法
US10929150B2 (en) Optical line terminal and method for upgrading primary device and secondary device of optical line terminal
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
WO2017107483A1 (zh) 一种虚拟化网管文件下载负载均衡的方法及网管服务器
CN105812169A (zh) 一种主备机切换方法及装置
WO2023093323A1 (zh) 一种版本升级方法及装置
WO2015118377A1 (en) Managing service availability in a mega virtual machine
JP2007304845A (ja) 仮想計算機システムおよびソフトウェア更新方法
JP6962138B2 (ja) 情報処理装置、情報処理システム及びプログラム
WO2024213056A1 (zh) 高性能计算集群的控制方法、电子设备以及存储介质
JP6070282B2 (ja) 仮想マシン管理装置、方法及びプログラム
JP5667506B2 (ja) クラスタシステムおよびソフトウェアアップデート方法
WO2017000586A1 (zh) 虚拟网元的升级方法、装置和计算机存储介质
CN116560802B (zh) 一种基于虚拟机负载的虚拟机自适应热迁移方法及系统
JP2019045936A (ja) 情報処理装置、情報処理システム及びプログラム
CN108984602B (zh) 一种数据库控制方法和数据库系统
JP5544516B2 (ja) 高可用サーバシステム、高可用サーバシステムの障害時復旧方法、および高可用サーバ
CN106325979B (zh) 虚拟机部署方法、装置及网络功能虚拟化编排nvfo
CN113821384A (zh) 一种基于云平台的跨数据中心同城容灾方法、装置及设备
CN110266790B (zh) 边缘集群管理方法、装置、边缘集群及可读存储介质
WO2011134255A1 (zh) 业务板倒换的处理方法及机架控制装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161219

R150 Certificate of patent or registration of utility model

Ref document number: 6070282

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees