JP5212360B2 - 制御プログラム、制御システムおよび制御方法 - Google Patents

制御プログラム、制御システムおよび制御方法 Download PDF

Info

Publication number
JP5212360B2
JP5212360B2 JP2009504995A JP2009504995A JP5212360B2 JP 5212360 B2 JP5212360 B2 JP 5212360B2 JP 2009504995 A JP2009504995 A JP 2009504995A JP 2009504995 A JP2009504995 A JP 2009504995A JP 5212360 B2 JP5212360 B2 JP 5212360B2
Authority
JP
Japan
Prior art keywords
guest
virtual machine
memory area
dump
flag
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
JP2009504995A
Other languages
English (en)
Other versions
JPWO2008114395A1 (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
Publication of JPWO2008114395A1 publication Critical patent/JPWO2008114395A1/ja
Application granted granted Critical
Publication of JP5212360B2 publication Critical patent/JP5212360B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis

Description

本発明は、仮想計算機上で動作するゲストOSに障害が発生した場合にゲストOSが使用していた各メモリ領域をファイルにダンプする制御プログラム、制御システムおよび制御方法に関し、特に、ゲストOSを改造することなく、速やかにゲストOSを再起動させつつ、ダウンしたゲストOSが使用していた各メモリ領域をダンプすることができる制御プログラム、制御システムおよび制御方法に関する。
コンピュータ上に、仮想計算機をソフトウェアによって実現し、仮想計算機上でOSやアプリケーションを実行することを可能にする仮想計算機技術が知られている。このような仮想計算機上でOSやアプリケーションを動作させる場合、OSのダウンが発生したときに、障害の原因を調査するために、OSが使用しているメモリの内容をダンプして保存することが必要になる。
従来、ダンプの採取中は、情報保持のためにOSを再起動することができなかった。このため、OSのダウンにより停止した業務は、ダンプの採取が完了するまで再開することができず、業務の再開が遅延するという問題があった。この問題は、近年、OSが使用するメモリ量が増大し、ダンプの採取に要する時間が長くなる傾向があるために、益々重大なものとなっていた。
この問題を解決するため、特許文献1では、OSを改造することにより、OSのカーネル部分のダンプと再起動を先行して行い、業務を再開させながら並行して他の部分のダンプを採取する技術が開示されている。また、特許文献2には、障害が発生した仮想計算機のメモリを待機系の仮想計算機に転記し、ダンプを待機系の仮想計算機に行わせることで、業務の再開を早める技術が開示されている。
特開平10−333944号公報 特開2001−290677号公報
しかしながら、特許文献1において開示されている技術は、仮想計算機上で動作させるOSを改造することが前提となっており、コンパイル済の状態で市販される一般的なOSを仮想計算機上で動作させる場合には適用することができない。また、特許文献2において開示されている技術は、仮想計算機間でのメモリの転記が必要であり、その分だけ業務の再開が遅延してしまう。
本発明は、上記に鑑みてなされたものであり、仮想計算機上で動作させるOSを改造することなく、仮想計算機上で動作するOSがダウンした場合に、速やかにOSを再起動させつつ、ダウンしたOSが使用していたメモリをダンプすることができる制御プログラム、制御システムおよび制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、仮想計算機上で動作するゲストOSに障害が発生した場合に該ゲストOSに割り当てられていたメモリ領域をダンプする制御プログラムであって、前記仮想計算機を実行するコンピュータに、前記メモリ領域にフラグを設定する設定手順と、前記フラグが設定されたメモリ領域を記憶手段にダンプし、ダンプが完了した前記メモリ領域に設定された前記フラグを解除するダンプ実行手順と、前記ダンプ実行手順と並行して、前記ゲストOSを再起動させる再起動手順と、再起動された前記ゲストOSが前記フラグが設定されたメモリ領域へアクセスしようとした場合に、該ゲストOSの該メモリ領域へのアクセスを抑止させる制御手順とを実行させることを特徴とする。
この発明の態様によれば、ダウンしたゲストOSが使用していた各メモリ領域にダンプ対象である旨を示すフラグを設定し、そのメモリ領域のダンプが完了した後にそのフラグを解除することとし、さらに、フラグが解除されていないメモリ領域にゲストOSがアクセスしようとした場合にフラグが解除させるまでゲストOSを停止させることとしたので、ダンプの採取とゲストOSの再起動を行して行うことが可能になり、もって、仮想計算機上で動作させるOSを改造することなく、速やかにOSを再起動させつつ、ダウンしたOSが使用していたメモリをダンプすることができる。
また、本発明の他の態様では、上記の発明の態様において、前記仮想計算機制御部は、仮想計算機上で動作しているゲストOSに障害が発生した場合に、前記ダンプ対象設定部による前記フラグの設定完了後、前記ダンプ実行部によるダンプが完了する前に、該仮想計算機上で該ゲストOSを再起動させることを特徴とする。
この発明の態様によれば、ダンプが完了する前にゲストOSの再起動を開始することとしたので、速やかにOSを再起動させることができる。
また、本発明の他の態様では、上記の発明の態様において、前記ダンプ実行部は、前記仮想計算機制御部によって停止された前記ゲストOSがアクセスしようとしていたメモリ領域を優先してダンプすることを特徴とする。
この発明の態様によれば、ダウンしたゲストOSがアクセスしようとしたメモリ領域を優先してダンプするようにしたので、ダンプが終了するまでゲストOSを待機させる時間が短くなり、速やかにOSを再起動させることができる。
また、本発明の他の態様では、上記の発明の態様において、前記仮想計算機制御部は、障害が発生した前記ゲストOSが動作していた仮想計算機とは別の仮想計算機を実現することができるだけの空きメモリがある場合に、該空きメモリを使用して実現した仮想計算機上で前記ゲストOSを再起動させることを特徴とする。
この発明の態様によれば、十分な量の未使用のメモリがある場合に、そのメモリを使用して別の仮想計算機を実現し、その新たな仮想計算機でゲストOSを再起動させることとしたので、極めて速やかにゲストOSを再起動させることができる。
なお、本発明の構成要素、表現または構成要素の任意の組合せを、方法、装置、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも本発明の態様として有効である。
本発明の一つの態様によれば、ダウンしたゲストOSが使用していた各メモリ領域にダンプ対象である旨を示すフラグを設定し、そのメモリ領域のダンプが完了した後にそのフラグを解除することとし、さらに、フラグが解除されていないメモリ領域にゲストOSがアクセスしようとした場合にフラグが解除させるまでゲストOSを停止させることとしたので、ダンプの採取とゲストOSの再起動を行して行うことが可能になり、もって、仮想計算機上で動作させるOSを改造することなく、速やかにOSを再起動させつつ、ダウンしたOSが使用していたメモリをダンプすることができるという効果を奏する。
また、本発明の他の態様によれば、ダンプが完了する前にゲストOSの再起動を開始することとしたので、速やかにゲストOSを再起動させることができるという効果を奏する。
また、本発明の他の態様によれば、ダウンしたゲストOSがアクセスしようとしたメモリ領域を優先してダンプするようにしたので、ダンプが終了するまでゲストOSを待機させる時間が短くなり、速やかにOSを再起動させることができるという効果を奏する。
また、本発明の他の態様によれば、十分な量の未使用のメモリがある場合に、そのメモリを使用して別の仮想計算機を実現し、その新たな仮想計算機でゲストOSを再起動させることとしたので、極めて速やかにOSを再起動させることができるという効果を奏する。
以下に、本発明に係る制御プログラム、制御システムおよび制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
まず、本実施例に係る仮想計算機制御システムについて説明する。図1は、本実施例に係る仮想計算機制御システム1について説明するための図である。計算機10は、物理的な計算機であり、各種演算処理を実行するCPU(Central Processing Unit)や、各種情報を一時記憶するRAM(Random Access Memory)等を有する。
ホストOS20は、計算機10上で動作するアプリケーション50a等の各種アプリケーションに種々のサービスを提供する基本ソフトである。ホストOS20は、通常は単にOSと呼ばれるが、本明細書では、物理的な計算機上で動作するOSと、仮想計算機上で動作するOSとを区別するために、前者をホストOSと呼び、後者をゲストOSと呼ぶこととする。
仮想計算機制御プロセス30は、本実施例に係る仮想計算機制御プログラムが実行状態になったプロセスであり、仮想計算機31aおよび31bのような仮想的な計算機を実現し、それらの上でゲストOS40aや40bのようなゲストOSを稼動させる。ゲストOS40aおよび40bは、計算機10に導入すればホストOSとして動作することが可能な通常の基本ソフトであり、それぞれ、アプリケーション50bおよび50cや、アプリケーション50dおよび50eのような各種アプリケーションに対して種々のサービスを提供する。なお、ホストOS20、ゲストOS40aおよび40bは、それぞれ、同じ種類のOSであってもよいし、異なる種類のOSであってもよい。
仮想計算機制御プロセス30は、Hypervisorとも呼ばれ、仮想計算機の資源へのアクセスを物理的な計算機の資源へのアクセスに置き換えたり、仮想計算機間での競合する処理を調停したりといった制御を行う。また、仮想計算機制御プロセス30は、ゲストOS40aや40bが障害によりダウンした場合に、その原因を調査することを可能にするため、ダウンしたゲストOSが使用していたメモリの内容を計算機10が備えるハードディスク装置等にダンプファイル173として保存する機能をもつ。
ゲストOSがダウンした場合、そのゲストOS上で動作するアプリケーションが提供していたサービスを早期に回復させるため、できるだけ速やかにゲストOSとアプリケーションを再起動する必要がある。しかしながら、ダンプが完了する前に、OS等の再起動によってダンプ対象のメモリが上書きされてはならない。
この矛盾する課題を解決するため、仮想計算機制御プロセス30は、ゲストOSがダウンした場合に、新たな仮想計算機を実現することができるだけの未使用のメモリがあれば、そのメモリを使用して新たな仮想計算機を実現してその上でゲストOSを再起動させ、それと行して、ゲストOSのダウンが発生した仮想計算機にダンプを行わせる。
この場合、仮想計算機間でのメモリの転記等をともなわずに極めて速やかにOSの再起動が開始され、ゲストOSの再起動とダンプ処理との間での処理の競合も発生しないため、非常に短期間のうちに、ゲストOSの再起動とサービスの提供再開を実現することができる。
また、仮想計算機制御プロセス30は、ゲストOSがダウンした場合に、新たな仮想計算機を実現することができるだけの未使用のメモリがなければ、ゲストOSが使用していたメモリの各ページにダンプ処理中である旨のフラグを設定した後に、その仮想計算機上で、ゲストOSの再起動と、ダンプの実行とを行して行わせる。
この場合、仮想計算機制御プロセス30は、再起動したゲストOSがダンプの完了していないページにアクセスしようとした場合に、そのページのダンプが完了するまでゲストOSの実行を一時的に停止させることにより、ゲストOSの再起動とダンプ処理の競合の問題を解決する。
一般に、ゲストOSとアプリケーションの再実行に要する時間は、ダンプに要する時間よりも短いため、このようにゲストOS等の再起動とダンプ処理を行実行することにより、一時的にゲストOSの実行が停止されることはあっても、ダンプ処理の終了時には、ゲストOS等の再起動が完了していることになり、ダンプ処理の完了後にゲストOS等の再起動を行う場合と比較して、短時間でサービスの提供を再開することができる。
次に、仮想計算機制御プロセス30の起動の仕組みについて説明する。図2は、図1に示した計算機10の構成を示すブロック図である。同図に示すように、計算機10は、各種演算処理を実行するCPU110と、ユーザからのデータの入力を受け付ける入力装置120と、各種情報を表示するモニタ130と、記録媒体からプログラム等を読み取る媒体読取り装置140と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置150と、各種情報を一時記憶するRAM160と、ハードディスク装置170とをバス180で接続して構成される。
そして、ハードディスク装置170には、仮想計算機制御プログラム171が記憶される。そして、CPU110が仮想計算機制御プログラム171をハードディスク装置170から読み出してRAM160に展開することにより、仮想計算機制御プログラム171は、仮想計算機制御プロセス30として機能するようになる。
そして、仮想計算機制御プロセス30は、ハードディスク装置170に記憶されている仮想計算機イメージデータ172を読み出して、自身に割り当たられている仮想記憶上の領域に展開することにより、仮想計算機を実現し、仮想計算機イメージデータ172に含まれるゲストOSをその上で起動させる。そして、起動したゲストOSは、やはり仮想計算機イメージデータ172に含まれるアプリケーションを起動し、サービスの提供を開始させる。
そして、仮想計算機制御プロセス30は、ゲストOSや、ゲストOSから起動されたアプリケーションを仮想計算機上で動作させるために必要な各種制御を実行し、ゲストOSが障害でダウンした場合には、ゲストOSが使用していたメモリの内容をハードディスク装置170にダンプファイル173として記憶させる。
次に、図2に示した仮想計算機制御プログラム171の構成について説明する。図3は、仮想計算機制御プログラム171の構成を示す図である。同図に示すように、仮想計算機制御プログラム171は、仮想計算機制御部171aと、ダンプ対象設定部171bと、ダンプ実行部171cと、仮想計算機管理テーブル171dと、アドレス変換テーブル171eとを有する。
仮想計算機制御部171aは、仮想計算機上でゲストOSやアプリケーションを動作させるために必要な各種制御を実行する制御部である。仮想計算機制御部171aは、仮想計算機上で動作するゲストOSのダウンを検出すると、ゲストOSが使用していたメモリの各ページをダンプ対象に設定するようにダンプ対象設定部171bに指示し、ダンプ対象設定部171bによってダンプ対象とされたページをダンプするようにダンプ実行部171cに指示する。
そして、これらの指示をした後、仮想計算機制御部171aは、ダウンしたゲストOSを再起動させる。具体的には、既に説明したように、十分な空きメモリがある場合は、その空きメモリを使ってゲストOSを起動させ、十分な空きメモリがない場合は、ゲストOSがダウンした仮想計算機上でゲストOSを再起動させ、ダンプが未完了のページへのメモリアクセスが発生した場合は、そのページのダンプが完了するまで、ゲストOSの動作を一時停止させる。
ダンプ対象設定部171bは、ダウンしたゲストOSが使用していたメモリの各ページに対応するアドレス変換テーブル171eのエントリのダンプフラグを“on”に設定する処理部である。
ダンプ実行部171cは、ダンプ対象設定部171bによってダンプフラグが“on”に設定されたエントリに対応するページを順次ダンプファイル173に書き出していく処理部である。ダンプ実行部171cは、ゲストOSがダンプの完了を待って一時停止されている場合、ダンプの完了を待っているページを優先して先にダンプすることにより、ゲストOS等の再起動を早める。
仮想計算機管理テーブル171dは、仮想計算機に関する情報が保持されるテーブルである。仮想計算機制御プログラム171が実行状態にある場合における仮想計算機管理テーブル171dの一例を図4に示す。同図に示すように、仮想計算機管理テーブル171dは、VMID、メモリ割当量、ステータス、ダンプ待ちページ番号といった項目を有する。
VMIDは、仮想計算機を識別するための識別番号であり、メモリ割当量は、その仮想計算機に割り当てられているメモリ量である。ステータスは、仮想計算機の状態を示し、“run”、“pause”もしくは“no_use”のいずれかの値をとる。“run”は、仮想計算機が稼動中であることを意味し、“pause”は、仮想計算機がダンプの完了を待って一時停止状態にあることを意味する。また、“no_use”は、その仮想計算機が使用されていないことを意味する。ダンプ待ちページ番号は、仮想計算機がダンプの完了を待っているページの番号を示す。
アドレス変換テーブル171eは、仮想計算機においてメモリアクセスに用いられるアドレスを、ホストOS上で動作するアプリケーション等がメモリアクセスに用いるアドレスへページ単位で変換するためのテーブルである。仮想計算機制御プログラム171が実行状態にある場合におけるアドレス変換テーブル171eの一例を図5に示す。同図に示すように、アドレス変換テーブル171eは、ページ番号、ゲストアドレス、ホストアドレス、ダンプフラグといった項目を有し、仮想計算機毎にテーブルが存在する。
ページ番号は、ページを識別するための番号である。ゲストOSは、仮想計算機の記憶空間におけるそのページのアドレスであり、ホストアドレスは、ホストOSの仮想記憶空間におけるそのページのアドレスである。ダンプフラグは、ダンプ対象設定部171bによって、ダンプ対象のページが“on”に設定されるフラグである。
次に、図3に示した仮想計算機制御プログラム171の動作について説明する。図6は、仮想計算機制御部171aの動作を示すフローチャートである。なお、同図に示すフローチャートは、ゲストOSのダウンが検出されてから、ダンプが完了するまでの動作を表しており、説明を簡単にするため、ゲストOSがダウンした仮想計算機以外の仮想計算機の制御のために必要な動作の図示を省略している。
同図に示すように、ゲストOSのダウンが検出されると(ステップS101)、仮想計算機制御部171aは、ゲストOSが使用していたメモリの各ページに対応するアドレス変換テーブル171eのエントリのダンプフラグを“on”に設定するようにダンプ対象設定部171bに指示し(ステップS102)、ダンプ対象設定部171bによってダンプ対象とされたページのダンプを開始するようにダンプ実行部171cに指示する(ステップS103)。
そして、仮想計算機制御部171aは、仮想計算機管理テーブル171dを参照して、ゲストOSがダウンした仮想計算機のメモリ割当量を取得する(ステップS104)。そしてそのゲストOSの代替となる仮想計算機、すなわち、同量以上のメモリを割り当てられており、ステータスが“no_use”である仮想計算機が仮想計算機管理テーブル171dにあれば(ステップS105肯定)、その仮想計算機上でゲストOSを再起動し、その仮想計算機のステータスを“run”へ変更する(ステップS106)。
そして、ダンプ実行部171cよるダンプが完了するのを待ち(ステップS107否定)、ダンプが完了したならば(ステップS107肯定)、ダンプが完了した仮想計算機のステータスを“no_use”へ変更する(ステップS108)。
一方、代替となる仮想計算機が仮想計算機管理テーブル171dになければ(ステップS105否定)、現在の仮想計算機上でゲストOSを再起動させる(ステップS109)。そして、ゲストOSからのメモリアクセス要求を処理するためにアドレス変換テーブル171eを参照した際に、当該のページのダンプフラグの値が“on”である場合、すなわち、当該のページがダンプ対象であるがダンプの採取がまだ完了していない場合には(ステップS110肯定)、ゲストOSのステータスを“pause”へ変更して一時停止にし(ステップS111)、ダンプ待ちページ番号に、アクセス要求があったページのページ番号を設定する(ステップS112)。
そして、設定したダンプ待ちページ番号が“0”にクリアされるのを待ち(ステップS113否定)、ダンプ待ちページ番号がクリアされたならば(ステップS113肯定)、ゲストOSのステータスを“run”へ変更して一時停止を解除する(ステップS114)。そして、このようなメモリアクセスの監視を、ダンプ実行部171cによるダンプの採取が完了するまで継続する。
図7は、ダンプ実行部171cの動作を示すフローチャートである。同図に示すように、ダンプ実行部171cは、ダンプ開始の指示を受け付けると(ステップS201)、仮想計算機管理テーブル171dを参照して、ダンプ対象の仮想計算機のダンプ待ちページ番号の値を確認する(ステップS202)。
ここで、ダンプ待ちページ番号の値が“0”でなければ(ステップS203否定)、アドレス変換テーブル171eを参照して、ダンプ待ちページ番号に対応するページのダンプフラグの値を確認する(ステップS204)。そして、ダンプフラグの値が“on”であれば(ステップS205肯定)、ダンプ待ちページ番号に対応するページをダンプ対象に選定する(ステップS206)。
そして、選定したページのダンプを実行し(ステップS207)、ダンプ待ちページ番号の値を“0”にクリアし(ステップS208)、ダンプしたページのダンプフラグを“off”に変更した後(ステップS209)、ステップS202から処理を再開する。
一方、ダンプ待ちページ番号の値が“0”の場合(ステップS203肯定)、もしくは、ダンプ待ちページ番号に対応するページのダンプフラグの値が“on”でない場合は(ステップS205否定)、ダンプ実行部171cは、アドレス変換テーブル171eを参照して、ダンプフラグの値が“on”であるページの一つをダンプ対象に選定する(ステップS210)。
そして、該当するページがあった場合は(ステップS211肯定)、選定したページのダンプを実行し(ステップS212)、ダンプしたページのダンプフラグを“off”に変更した後(ステップS209)、ステップS202から処理を再開する。該当するページがなかった場合は(ステップS211否定)ダンプが完了した旨を仮想計算機制御部171aへ通知した後(ステップS213)、処理を終了する。
上述してきたように、本実施例では、ダウンしたゲストOSが使用していた各メモリ領域にダンプ対象である旨を示すフラグを設定し、そのメモリ領域のダンプが完了した後にそのフラグを解除することとし、さらに、フラグが解除されていないメモリ領域にゲストOSがアクセスしようとした場合にフラグが解除させるまでゲストOSを停止させることとしたので、ダンプの採取とゲストOSの再起動を行して行うことが可能になり、もって、仮想計算機上で動作させるOSを改造することなく、速やかにOSを再起動させつつ、ダウンしたOSが使用していたメモリをダンプすることができる。
また、十分な量の未使用のメモリがある場合には、そのメモリを使用して別の仮想計算機を実現し、その新たな仮想計算機でゲストOSを再起動させることとしたので、極めて速やかにOSを再起動させることができるという効果を奏する。
なお、上記の実施例ではページ単位でダンプの進行状況を管理することとしたが、ページ以外の単位でダンプの進行状況を管理することとしてもよい。また、上記の実施例では、アドレス変換のためのテーブルにダンプの進行状況を示すフラグを設けることとしたが、このフラグを別のテーブルに設けることとしてもよい。
以上のように、本発明に係る制御プログラム、制御システムおよび制御方法は、仮想計算機上で動作するゲストOSに障害が発生した場合に該ゲストOSが使用していた各メモリ領域をファイルにダンプする場合に有用であり、特に、ゲストOSを改造することなく、速やかにゲストOSを再起動させつつ、ダウンしたゲストOSが使用していた各メモリ領域をダンプすることが必要な場合に適している。
図1は、本実施例に係る仮想計算機制御システムについて説明するための図である。 図2は、図1に示した計算機の構成を示すブロック図である。 図3は、仮想計算機制御プログラムの構成を示す図である。 図4は、仮想計算機制御プログラムが実行状態にある場合における仮想計算機管理テーブルの一例を示す図である。 図5は、仮想計算機制御プログラムが実行状態にある場合におけるアドレス変換テーブルの一例を示す図である。 図6は、仮想計算機制御部の動作を示すフローチャートである。 図7は、ダンプ実行部の動作を示すフローチャートである。
1 仮想計算機制御システム
10 計算機
20 ホストOS
30 仮想計算機制御プロセス
31a、31b 仮想計算機
40a、40b ゲストOS
50a〜50e アプリケーション
110 CPU
120 入力装置
130 モニタ
140 媒体読取り装置
150 ネットワークインターフェース装置
160 RAM
170 ハードディスク装置
171 仮想計算機制御プログラム
171a 仮想計算機制御部
171b ダンプ対象設定部
171c ダンプ実行部
171d 仮想計算機管理テーブル
171e アドレス変換テーブル
172 仮想計算機イメージデータ
173 ダンプファイル
180 バス

Claims (5)

  1. 仮想計算機上で動作するゲストOSに障害が発生した場合に該ゲストOSに割り当てられていたメモリ領域をダンプする制御プログラムであって、
    前記仮想計算機を実行するコンピュータに、
    前記メモリ領域にフラグを設定する設定手順と、
    前記フラグが設定されたメモリ領域を記憶手段にダンプし、ダンプが完了した前記メモリ領域に設定された前記フラグを解除するダンプ実行手順と、
    前記ダンプ実行手順と並行して、前記ゲストOSを再起動させる再起動手順と、
    再起動された前記ゲストOSが前記フラグが設定されたメモリ領域へアクセスしようとした場合に、該ゲストOSの該メモリ領域へのアクセスを抑止させる制御手順と、を実行させ、
    前記ゲストOSが動作していた仮想計算機とは別の仮想計算機を実現可能な空きメモリがあるときは、前記再起動手順において、該空きメモリを使用して実現した仮想計算機上で前記ゲストOSを再起動させる
    とを特徴とする制御プログラム。
  2. 前記制御手順は、再起動された前記ゲストOSが前記フラグが設定されたメモリ領域へアクセスしようとした場合に、前記ダンプ実行手順によって該メモリ領域の前記フラグが解除されるまで、該ゲストOSの該メモリ領域へのアクセスを抑止させることを特徴とする請求項1に記載の制御プログラム。
  3. 前記ダンプ実行手順は、前記制御手順によって前記ゲストOSからのアクセスが抑止されたメモリ領域を優先してダンプすることを特徴とする請求項1または2に記載の制御プログラム。
  4. 仮想計算機上で動作するゲストOSに障害が発生した場合に該ゲストOSに割り当てられていたメモリ領域をダンプする制御システムであって、
    前記メモリ領域にフラグを設定する設定部と、
    前記フラグが設定されたメモリ領域を記憶手段にダンプし、ダンプが完了した前記メモリ領域に設定された前記フラグを解除するダンプ実行部と、
    前記ダンプ実行部で実行される処理と並行して、前記ゲストOSを再起動させる再起動部と、
    再起動された前記ゲストOSが前記フラグが設定されたメモリ領域へアクセスしようとした場合に、該ゲストOSの該メモリ領域へのアクセスを抑止させる制御部と、を有し、
    前記再起動部は、前記ゲストOSが動作していた仮想計算機とは別の仮想計算機を実現可能な空きメモリがあるときは、該空きメモリを使用して実現した仮想計算機上で前記ゲストOSを再起動させる
    とを特徴とする制御システム。
  5. 仮想計算機上で動作するゲストOSに障害が発生した場合に該ゲストOSに割り当てられていたメモリ領域をダンプする制御方法であって、
    前記メモリ領域にフラグを設定する設定工程と、
    前記フラグが設定されたメモリ領域を記憶手段にダンプし、ダンプが完了した前記メモリ領域の前記フラグを解除するダンプ実行工程と、
    前記ゲストOSを再起動させる再起動工程と、
    再起動された前記ゲストOSが前記フラグが設定されたメモリ領域へアクセスしようとした場合に、該ゲストOSの該メモリ領域へのアクセスを抑止させる制御工程とを含み
    前記ゲストOSが動作していた仮想計算機とは別の仮想計算機を実現可能な空きメモリがあるときは、前記再起動工程において、該空きメモリを使用して実現した仮想計算機上で前記ゲストOSを再起動させ、前記ダンプ実行工程と前記再起動工程と前記制御工程とが並行して実行されることを特徴とする制御方法。
JP2009504995A 2007-03-19 2007-03-19 制御プログラム、制御システムおよび制御方法 Expired - Fee Related JP5212360B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/055561 WO2008114395A1 (ja) 2007-03-19 2007-03-19 仮想計算機ダンプ採取プログラム、ダンプ採取システムおよびダンプ採取方法

Publications (2)

Publication Number Publication Date
JPWO2008114395A1 JPWO2008114395A1 (ja) 2010-07-01
JP5212360B2 true JP5212360B2 (ja) 2013-06-19

Family

ID=39765517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009504995A Expired - Fee Related JP5212360B2 (ja) 2007-03-19 2007-03-19 制御プログラム、制御システムおよび制御方法

Country Status (3)

Country Link
US (1) US8719639B2 (ja)
JP (1) JP5212360B2 (ja)
WO (1) WO2008114395A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719823B2 (en) * 2009-03-04 2014-05-06 Vmware, Inc. Managing latency introduced by virtualization
EP2453359B1 (en) 2009-07-10 2016-04-20 Fujitsu Limited Server having memory dump function and method for acquiring memory dump
JP5419639B2 (ja) * 2009-11-06 2014-02-19 三菱電機株式会社 計算機装置及び情報処理方法及びプログラム
JP5444104B2 (ja) * 2010-04-21 2014-03-19 株式会社日立製作所 記憶手段の管理方法、仮想計算機システムおよびプログラム
KR101731422B1 (ko) * 2010-10-04 2017-04-28 삼성전자주식회사 가상화 환경에서의 장애 복구 장치 및 방법
JPWO2012090290A1 (ja) * 2010-12-27 2014-06-05 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
US8707111B2 (en) * 2011-02-09 2014-04-22 Ebay Inc. High-volume distributed script error handling
WO2013136457A1 (ja) * 2012-03-13 2013-09-19 富士通株式会社 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法
JP6083136B2 (ja) 2012-06-22 2017-02-22 富士通株式会社 メモリダンプ機能を有する情報処理装置、メモリダンプ方法、およびメモリダンププログラム
JP5743108B2 (ja) * 2012-08-10 2015-07-01 コニカミノルタ株式会社 画像形成装置
US9430415B2 (en) * 2013-06-14 2016-08-30 Globalfoundries Inc. Concurrent dumping of large address space
WO2015015589A1 (ja) 2013-07-31 2015-02-05 富士通株式会社 情報処理装置、メモリダンプ方法、およびメモリダンププログラム
JP6327026B2 (ja) * 2014-07-10 2018-05-23 富士通株式会社 情報処理装置、情報処理方法およびプログラム
JP6256582B2 (ja) * 2016-11-30 2018-01-10 富士通株式会社 メモリダンプ機能を有する情報処理装置
US10467078B2 (en) 2017-05-18 2019-11-05 Red Hat Israel, Ltd. Crash dump extraction of guest failure
US10430261B2 (en) * 2017-08-15 2019-10-01 Vmware, Inc. Detecting a guest operating system crash on a virtual computing instance
CN107832143B (zh) * 2017-10-17 2020-11-03 北京京东尚科信息技术有限公司 一种物理机资源的处理方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03257641A (ja) * 1990-03-08 1991-11-18 Nec Corp メモリダンプ採取方式
JPH04257036A (ja) * 1991-02-12 1992-09-11 Nec Corp メモリフリーズ中断引継方式
JPH10154087A (ja) * 1996-11-25 1998-06-09 Mitsubishi Electric Corp メモリ内容ダンプ処理方法
JP2002032244A (ja) * 2000-07-17 2002-01-31 Nec Corp 仮想計算機及びそれのダンプ採取方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63257641A (ja) * 1987-04-15 1988-10-25 Shibuya Kogyo Co Ltd レ−ザ印字装置の印字パタ−ン回転装置
JP2728407B2 (ja) * 1987-09-18 1998-03-18 富士通株式会社 メモリ・ダンプ処理装置
JPH0247735A (ja) * 1988-08-08 1990-02-16 Nec Corp 計算機装置
US5437033A (en) * 1990-11-16 1995-07-25 Hitachi, Ltd. System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode
JP3196004B2 (ja) * 1995-03-23 2001-08-06 株式会社日立製作所 障害回復処理方法
JPH10333944A (ja) 1997-05-30 1998-12-18 Nec Software Ltd メモリダンプ採取方式
JP2001290677A (ja) 2000-04-07 2001-10-19 Hitachi Ltd 高速ダンプ採取方法
JP2002073378A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 計算機システムのダンプ取得方法および装置
US6687799B2 (en) * 2002-01-31 2004-02-03 Hewlett-Packard Development Company, L.P. Expedited memory dumping and reloading of computer processors
JP2005122334A (ja) * 2003-10-15 2005-05-12 Hitachi Ltd メモリダンプ方法、メモリダンプ用プログラム及び仮想計算機システム
JP2006172100A (ja) * 2004-12-15 2006-06-29 Hitachi Ltd オペレーティングシステムの高速切替え方式及びその方法
US7383471B2 (en) * 2004-12-28 2008-06-03 Hewlett-Packard Development Company, L.P. Diagnostic memory dumping
US7730486B2 (en) * 2005-02-28 2010-06-01 Hewlett-Packard Development Company, L.P. System and method for migrating virtual machines on cluster systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03257641A (ja) * 1990-03-08 1991-11-18 Nec Corp メモリダンプ採取方式
JPH04257036A (ja) * 1991-02-12 1992-09-11 Nec Corp メモリフリーズ中断引継方式
JPH10154087A (ja) * 1996-11-25 1998-06-09 Mitsubishi Electric Corp メモリ内容ダンプ処理方法
JP2002032244A (ja) * 2000-07-17 2002-01-31 Nec Corp 仮想計算機及びそれのダンプ採取方法

Also Published As

Publication number Publication date
JPWO2008114395A1 (ja) 2010-07-01
US20100162052A1 (en) 2010-06-24
US8719639B2 (en) 2014-05-06
WO2008114395A1 (ja) 2008-09-25

Similar Documents

Publication Publication Date Title
JP5212360B2 (ja) 制御プログラム、制御システムおよび制御方法
US9672075B2 (en) Method, apparatus, and system for implementing hot migration of virtual machine
EP2495655B1 (en) Method for switching operating system and electronic apparatus using the same
JP5026494B2 (ja) 高速で起動するコンピュータ
JP2008293358A (ja) 分散処理プログラム、分散処理方法、分散処理装置、および分散処理システム
JP2007226413A (ja) メモリダンプ方法、メモリダンププログラム、及び、計算機システム
US20110107344A1 (en) Multi-core apparatus and load balancing method thereof
JP6111181B2 (ja) 計算機の制御方法及び計算機
JP6123626B2 (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
JP2007133544A (ja) 障害情報解析方法及びその実施装置
JP2008107966A (ja) 計算機システム
JP2011060225A (ja) オペレーティングシステム起動方法
JP2011044110A (ja) ソフトウェアプログラム実行装置、ソフトウェアプログラム実行方法、及びプログラム
JP5998566B2 (ja) 移動制御プログラム、移動制御方法および制御装置
JP2002259146A (ja) アプリケーション実行装置及び方法
KR100994723B1 (ko) 시스템에서 초기 구동시간을 단축시키는 선택적 서스펜드 리쥼 방법 및 그 기록매체
JP2009266113A (ja) メモリ管理方法およびシステム
JP5996110B2 (ja) 計算機システム及び制御方法
KR101552580B1 (ko) 모바일 기기를 포함하는 시스템 복원 및 멀티 운영체제를 지원하는 백업 방법
WO2013136457A1 (ja) 仮想計算機システム、情報保存処理プログラム及び情報保存処理方法
JP6146092B2 (ja) 仮想化システム、仮想サーバ、仮想マシン制御方法、及び仮想マシン制御プログラム
JP5504651B2 (ja) 仮想マシンシステム、情報処理装置、リソース管理方法、プログラム及び記録媒体
JP2001290678A (ja) 非同期メモリダンプ実行方式
JP5867630B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
JP2014191468A (ja) プロセスの待ち行列を共有する複数のプロセッサを有する計算機、及び、プロセスディスパッチ処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120618

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120918

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121218

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20121225

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: 20130129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130211

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160308

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees