JP2015132979A - Information processing device and control method thereof, control program and recording medium - Google Patents
Information processing device and control method thereof, control program and recording medium Download PDFInfo
- Publication number
- JP2015132979A JP2015132979A JP2014004007A JP2014004007A JP2015132979A JP 2015132979 A JP2015132979 A JP 2015132979A JP 2014004007 A JP2014004007 A JP 2014004007A JP 2014004007 A JP2014004007 A JP 2014004007A JP 2015132979 A JP2015132979 A JP 2015132979A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- virtual
- identification information
- guest
- information
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、情報処理装置及びその制御方法、制御プログラム並びに記録媒体に関する。 The present invention relates to an information processing apparatus, a control method thereof, a control program, and a recording medium.
複数の仮想マシンが動作する情報処理システムにおいては、例えば、仮想計算機(仮想マシン)はホストOS(オペレーティングシステム)のプロセスとして実行され、仮想マシン上でゲストOS上が動作する。ゲストOSにおいてクラッシュが発生して処理が停止する等した場合、メモリの内容とログ情報とを取得して、クラッシュの原因が調査される。 In an information processing system in which a plurality of virtual machines operate, for example, a virtual machine (virtual machine) is executed as a process of a host OS (operating system), and the guest OS operates on the virtual machine. When a crash occurs in the guest OS and processing stops, the contents of the memory and log information are acquired, and the cause of the crash is investigated.
例えば、仮想計算機システムにおいて、ホスト仮想計算機が、ゲスト仮想計算機についてのシステム情報を退避する退避位置であって、ホスト仮想計算機が使用するログ部における退避位置を予め定めるゲスト格納定義を備え、仮想計算機モニタが、ゲスト仮想計算機を監視して、ゲスト仮想計算機に発生した障害を検出するパニック監視管理部と、パニック監視管理部によりゲスト仮想計算機における障害が検出された場合、ゲスト格納定義に基づいて、退避位置からシステム情報を採取するログ採取部とを備えることが提案されている。 For example, in a virtual machine system, the host virtual machine has a guest storage definition for prescribing a save position in a log unit used by the host virtual machine, which is a save position for saving system information about the guest virtual machine. The monitor monitors the guest virtual machine and detects a failure that occurred in the guest virtual machine. When a failure in the guest virtual machine is detected by the panic monitoring manager, based on the guest storage definition, It has been proposed to include a log collection unit that collects system information from the retreat position.
例えば、ゲスト仮想マシンのメモリが2GBの容量を持つ場合、メモリダンプを採取して格納するためには、磁気ディスク装置のような記憶装置における記憶領域(以下、ディスク領域)として、2GBを各々の仮想マシンに予め割り当てておく必要がある。従って、例えば10個の仮想マシンが存在する場合、10個の仮想マシンの全てについてメモリダンプを採取するとすれば、20GBのディスク領域が必要となる。 For example, if the memory of a guest virtual machine has a capacity of 2 GB, in order to collect and store a memory dump, 2 GB is used as a storage area (hereinafter referred to as a disk area) in a storage device such as a magnetic disk device. It is necessary to assign to the virtual machine in advance. Therefore, for example, if there are 10 virtual machines, if a memory dump is collected for all 10 virtual machines, a disk area of 20 GB is required.
しかし、情報処理システムで使用される記憶装置は高価である。従って、発生が予測できないゲストOSのクラッシュに備えて、大量のディスク領域を獲得しておくことは、メモリダンプ採取の負担(コスト)の観点からは好ましくない。そこで、メモリダンプの採取のためのディスク領域を減らしてしまうと、実際にクラッシュが発生しても、メモリダンプが採取されない場合があり、結果的に原因調査が長期化する。 However, the storage device used in the information processing system is expensive. Therefore, acquiring a large amount of disk area in preparation for a guest OS crash that cannot be predicted is not preferable from the viewpoint of memory dump collection burden (cost). Therefore, if the disk area for collecting the memory dump is reduced, even if a crash actually occurs, the memory dump may not be collected. As a result, the cause investigation becomes longer.
本発明は、一側面によれば、メモリダンプの採取の負担を軽減することが可能な情報処理装置を提供することを目的とする。 An object of the present invention, according to one aspect, is to provide an information processing apparatus that can reduce the burden of collecting a memory dump.
情報処理装置は、一側面によれば、複数の仮想マシンが動作する情報処理装置であって、第1の記憶手段と、第2の記憶手段と、保存手段とを含む。第1の記憶手段は、前記複数の仮想マシンを制御する仮想マシン制御部と前記複数の仮想マシンそれぞれとを結ぶ複数の仮想バスを識別する複数の仮想バス識別情報と、前記複数の仮想マシンにそれぞれ対応した前記仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である第1対応情報を記憶する。第2の記憶手段は、前記複数のプロセス識別情報と、前記複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である第2対応情報を記憶する。保存手段は、前記複数の仮想マシンに含まれる第1の仮想マシンで動作する第1のOSより前記第1の仮想マシンに対応する第1の仮想バスに前記第1のOSの障害に対応した割り込みがあった場合に、前記第1対応情報および前記第2対応情報に基づき第1の仮想マシンを特定し、前記第1の仮想マシン上で動作する前記第1のOSが使用するメモリ領域の内容を保存する。 According to one aspect, the information processing apparatus is an information processing apparatus on which a plurality of virtual machines operate, and includes a first storage unit, a second storage unit, and a storage unit. The first storage means includes a plurality of virtual bus identification information for identifying a plurality of virtual buses connecting the virtual machine control unit for controlling the plurality of virtual machines and the plurality of virtual machines, and the plurality of virtual machines. First correspondence information that is a correspondence relationship with a plurality of process identification information for identifying processes of the corresponding virtual machine control units is stored. The second storage means stores second correspondence information that is a correspondence relationship between the plurality of process identification information and the plurality of virtual machine identification information for identifying the plurality of virtual machines. The storage means copes with the failure of the first OS on the first virtual bus corresponding to the first virtual machine from the first OS operating on the first virtual machine included in the plurality of virtual machines. When there is an interrupt, the first virtual machine is identified based on the first correspondence information and the second correspondence information, and the memory area used by the first OS operating on the first virtual machine Save the contents.
情報処理装置は、一側面によれば、メモリダンプの採取の負担を軽減することができる。 According to one aspect, the information processing apparatus can reduce the burden of collecting a memory dump.
図1は、情報処理システムの構成の一例を示す図である。 FIG. 1 is a diagram illustrating an example of a configuration of an information processing system.
複数の仮想マシンが動作するシステム(情報処理システム)は、複数のOS(オペレーティングシステム)1、ハイパーバイザ2、ハードウェア3を備える情報処理装置、換言すれば、物理計算機である。複数のOS1は、例えば、1個のホストOS11と、複数のゲストOS12とを含む。ホストOS11は、例えば、図2を参照して後述する仮想CPU119上で動作する。ゲストOS12は、例えば、図2を参照して後述する仮想マシン124上で動作する。
A system (information processing system) on which a plurality of virtual machines operate is an information processing apparatus including a plurality of OSs (operating systems) 1, a
ハードウェア3は、物理装置、例えば、物理CPUと、物理メモリと、物理I/O装置、換言すれば、物理入出力装置とを含む。物理メモリは主記憶装置(主メモリ)であり、物理I/O装置は例えば磁気ディスク装置のような周辺記憶装置である。
The
ハイパーバイザ2は、ハードウェア3に含まれる物理的なCPU、物理的なメモリ、物理的なI/O装置等の物理装置を仮想化する。そして、ハイパーバイザ2は、仮想化された物理装置、換言すれば、仮想装置に対する要求を物理装置に転送し、また、物理装置からの応答を仮想装置に転送する。これにより、ハイパーバイザ2は仮想マシン124を構成する。
The
図2は、情報処理システムの構成の一例を示す図である。なお、図2においては、情報処理システムは複数の仮想マシン124及び複数のゲストOS12を含むが、1個の仮想マシン124及び1個のゲストOS12のみを示す。
FIG. 2 is a diagram illustrating an example of the configuration of the information processing system. In FIG. 2, the information processing system includes a plurality of
情報処理システムは、1個のホストOS11と、複数の仮想マシン124とを含む。ホストOS11は、仮想マシン制御部であり、複数の仮想マシン124を制御する。各々の仮想マシン124上では、ゲストOS12が動作する。
The information processing system includes one host OS 11 and a plurality of
ホストOS11は、仮想CPU119上で動作し、ダンプ採取ツール111と、ダンプ採取サービス部112と、ホストドライバ113と、保存状態格納領域114と、ダンプ格納領域115とを含む。図1の例では、ダンプ採取ツール111が、ダンプ採取サービス部112と、ホストドライバ113とを含む。ダンプ採取ツール111は、ダンプ採取サービス部112及びホストドライバ113とは別に設けるようにしてもよい。ゲストOS12は、仮想マシン124上で動作し、ゲストドライバ121を含む。仮想マシン124は、仮想デバイス122と、メモリ123と、仮想CPU125とを含む。ハイパーバイザ2は、仮想バス21を含む。
The host OS 11 operates on the
ホストOS11は、オペレーティングシステム又は制御プログラムであり、ハイパーバイザ2を呼び出して、仮想マシン124に仮想化されたCPU、メモリ、I/O装置等の資源を配分する。ホストOS11は、仮想マシン124の実行を制御する仮想マシン制御部である。ホストOS11は、例えば、ホストマシン上で動作する。
The host OS 11 is an operating system or a control program, and calls the
ホストマシンは、例えば、ハイパーバイザ2上に1個だけ存在する特権的な仮想マシンである。ホストマシンである特権的な仮想マシンは、他の仮想マシン124、換言すれば、ゲストOS12が動作する仮想マシン124と異なり、直接、物理装置にアクセスすることができる。従って、ホストマシンである特権的な仮想マシンは、ゲストOS12が動作する仮想マシン124とは、動作が全く異なる。
The host machine is, for example, a privileged virtual machine that exists only on the
また、ホストマシンは、例えば、物理マシンそれ自体であってもよい。また、ホストOS11、換言すれば、仮想マシン124の実行を制御する仮想マシン制御部は、仮想マシン上で動作する必要はなく、ハイパーバイザ2上で動作する制御プログラムや、仮想CPU119上ではなく物理CPU上で動作する制御プログラムであってもよい。
The host machine may be a physical machine itself, for example. In addition, the host OS 11, in other words, the virtual machine control unit that controls the execution of the
以上から、図2においては、仮想マシン制御部であるホストOS11が動作するホストマシンの図示を省略している。一方、仮想マシン制御部であるホストOS11が、ハイパーバイザ2により仮想化される仮想CPU119上で動作しているように図示しているが、ホストOS11は、前述したように、仮想CPU119ではなく、直接、物理CPU上で動作しても、又は、物理CPUに対応する論理CPU上で動作してもよい。
From the above, in FIG. 2, illustration of a host machine on which the
仮想マシン124は、ホストOS11によって割り当てられた仮想装置、換言すれば、ゲストマシンとして構成される。仮想マシン124は、ホストOS11上のプロセス、具体的には、子プロセスとして実行される。仮想マシン124上でゲストOS12が動作する。なお、仮想マシン124上にゲストOS12が存在しなくてもよい。
The
ゲストOS12は、動作している仮想マシン124上、換言すれば、仮想CPU125及び仮想化されたメモリ123上で動作し、仮想化されたI/O装置、例えば仮想デバイス122にアクセスすることができる。ゲストOS12は、ホストOS11又はハイパーバイザ2を経由して、仮想装置に対するアクセスを物理装置に転送し、アクセスの結果を物理装置から返信される。
The
ゲストOS12において、ゲストドライバ121は、ホストOS11に障害の発生を通知する通知手段であり、複数のゲストOS12の各々に設けられる。ゲストドライバ121は、自己の属するゲストOS12、換言すれば、対応するゲストOS12に障害が発生した場合に、ホストOS11に、障害が発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21に割り込みを発生することにより、障害の発生を通知する。換言すれば、仮想マシン124は、その上で動作するゲストOS12に障害が発生した場合に、自己に割り当てられた仮想バス21に割り込みを発生することにより、障害の発生を通知する。ゲストドライバ121は、複数のゲストOS12の各々に設けられる。ゲストドライバ121は、例えば、カーネルドライバであり、ゲストOS12に設けられる。
In the
具体的には、ゲストドライバ121は、ゲストOS12のパニック出口としてゲストOS12に登録される。例えば、ゲストドライバ121は、ゲストOS12の起動時に呼び出されて、ゲストOS12の予め定められた位置、具体的にはパニック出口に組み込まれる。そして、ゲストドライバ121は、ゲストOS12にクラッシュが発生した場合に、ゲストOS12から呼び出され、仮想マシンとハードウェアとの間を結ぶ仮想バス21に割り込みを発生させる。
Specifically, the
仮想デバイス122は、複数の仮想マシン124の各々に設けられる記憶装置である。仮想デバイス122は、自己が接続された仮想マシン124がホストOS11のプロセスとして実行される場合における当該プロセスを識別するプロセス識別情報を格納する。換言すれば、仮想デバイス122は、自己が接続された仮想マシン124に対応した、仮想マシン制御部であるホストOS11のプロセスを識別するプロセス識別情報を格納する。
The
プロセス識別情報は、例えば、ホストOS11のダンプ採取サービス部112により、仮想デバイス122に書き込まれる。プロセス識別情報の書込みは、例えば、仮想マシン124の生成時に実行される。これは、プロセス識別情報が仮想マシン124に対応して定まるためである。
For example, the process identification information is written to the
実際には、仮想デバイス122としては、例えば、DVD(Dijital Versatile Disc)装置が用いられる。例えば、仮想デバイス122は、仮想マシン124に動的に組み込まれる。換言すれば、仮想デバイス122は、仮想マシン124に動的に組み込むことができる記憶装置であればよい。これにより、仮想マシン124の生成に応じて、生成される仮想マシン124に対応するプロセスのプロセス識別情報を仮想デバイス122に書き込み、生成される仮想マシン124で動作するゲストOS12のゲストドライバ121にプロセス識別情報を通知することができる。
Actually, as the
例えば、プロセス識別情報を書き込んだ仮想DVDが作成され、また、仮想化されたDVD読み込み装置が作成される。仮想DVDが挿入された仮想DVD読み込み装置が、仮想デバイス122として、起動される仮想マシン124に接続される。
For example, a virtual DVD in which process identification information is written is created, and a virtualized DVD reader is created. The virtual DVD reading device into which the virtual DVD is inserted is connected as a
仮想デバイス122は、DVD装置に限られず、他の種々の記憶装置を利用することができる。例えば、仮想マシン124の定義に追加することができるデバイス又はリソースであって、プロセス化された仮想マシン124の仮想デバイス122に対してデータを書き込むことができ、かつ、仮想デバイス122からゲストドライバ121がデータを読み出すことができるデバイスであればよい。
The
メモリ123は、ハードウェア3に含まれる主メモリの一部である。メモリ123は、仮想化されて複数の仮想マシン124の各々に含まれ、ゲストOS12が使用するメモリ領域である。
The
ハイパーバイザ2において、仮想バス21は、複数の仮想マシン124の各々と物理CPUとの間を、例えば論理的に結ぶ仮想的な割り込み信号線である。ゲストOS12は、障害が発生すると、自己が動作している仮想マシン124の仮想CPUに、実行不可能な命令を実行させる。これにより、障害が発生したゲストOS12が動作する仮想マシン124における実行例外が発生するので、最終的に、物理CPUが仮想バス21への割り込みを捕捉することになる。従って、仮想バス21は、ゲストOS12を実行中の仮想マシン124から物理CPUへの割り込みを発生することになる。一方、前述したように、ホストOS11は、特権的な仮想マシン又は物理マシンであるホストマシン上で動作するので、物理CPUにより捕捉された仮想バス21への割り込みを処理する。結果として、仮想バス21は、複数の仮想マシン124の各々とホストOS11との間を論理的に結ぶことになる。換言すれば、複数の仮想バス21は、仮想マシン制御部と複数の仮想マシンそれぞれとを結ぶ。複数の仮想バス21は、ハイパーバイザ2により、複数の仮想マシン124の各々に1対1に割り当てられ、仮想バス識別情報を与えられる。仮想バス21への割り込みは、物理CPUへの物理的な割り込み信号線への割り込み、換言すれば、ハードウェア割り込みと同一の優先度、換言すれば、最優先の割り込みとされる。
In the
仮想マシン制御部であるホストOS11は、ゲストOS12に障害が発生した場合に、後述する第1対応情報および第2対応情報に基づいて、ゲストOS12が使用するメモリ123の内容を保存する。
When a failure occurs in the
例えば、複数の仮想マシン124に含まれるある仮想マシン124で動作するゲストOS12に障害が発生したとする。障害が発生したゲストOS12が動作する仮想マシン124を、第1の仮想マシン124ということとする。
For example, it is assumed that a failure has occurred in the
複数の仮想マシン124の各々は、対応するゲストOS12に障害が発生した場合に、障害が発生したゲストOS12が動作する仮想マシン124、換言すれば、第1の仮想マシン124に割り当てられた仮想バス21に割り込みを発生させることにより、仮想マシン制御部であるホストOS11に障害の発生を通知する。
Each of the plurality of
ホストOS11は、複数の仮想マシン124に含まれる第1の仮想マシン124で動作するゲストOS12より、第1の仮想マシン124に対応する第1の仮想バス21に、ゲストOS12の障害に対応した割り込みがあった場合に、第1対応情報および第2対応情報に基づき第1の仮想マシン124を特定し、特定した第1の仮想マシン124上で動作するゲストOS12が使用するメモリ123の内容を保存する。第1対応情報は、後述するように、複数の仮想バスを識別する複数の仮想バス識別情報と、複数の仮想マシンにそれぞれ対応した仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である。第2対応情報は、後述するように、複数のプロセス識別情報と、複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である。
The
実際には、ホストOS11において、ダンプ採取ツール111が、メモリダンプの保存手段であり、ゲストOS12のクラッシュ時に、ゲストOS12のクラッシュ時におけるゲストOS12が使用するメモリ123の内容の保存を行う。メモリダンプは、保存されたメモリ123の内容を、予め定められたフォーマットに変換したものである。保存されたメモリ123の内容は、メモリダンプに変換可能であり、ダンプ採取ツール111によりメモリダンプに変換される。従って、メモリダンプ処理は、情報処理システムのホストOS11により実行される。
In practice, in the
例えば、ダンプ採取ツール111は、ホストOS11に設けられる。ダンプ採取ツール111は、通知手段であるゲストドライバ121から障害の発生を通知された場合に、割り込みが発生した仮想バス21の仮想バス識別情報、例えば仮想化IDに基づいて、障害が発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める。複数の仮想マシン124の各々に対応するプロセスは、仮想マシン制御部であるホストOS11のプロセスである。
For example, the
更に、ダンプ採取ツール111は、求めたプロセス識別情報に基づいて、障害が発生したゲストOS12が動作する仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求める。更に、ダンプ採取ツール111は、求めた障害が発生したゲストOS12が動作する仮想マシン124のメモリ123の内容を、記憶装置に保存する。換言すれば、求めた障害が発生したゲストOSが使用するメモリ123の内容が、記憶装置に採取される。記憶装置は、例えば、ホストOS11がアクセス可能であり、メモリ123とは異なる記憶装置である。
Furthermore, the
具体的には、ダンプ採取ツール111は、ゲストドライバ121から障害の発生を通知された場合に、割り込みが発生した仮想バス21の仮想化IDに基づいて、第1の記憶手段である仮想化ID/プロセス一覧117から、障害が発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める。更に、ダンプ採取ツール111は、求めたプロセス識別情報に基づいて、第2の記憶手段である仮想マシン/プロセス一覧118から、障害が発生したゲストOS12が動作する仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求める。仮想化ID/プロセス一覧117及び仮想マシン/プロセス一覧118については後述する。仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118とを合せて仮想マシン一覧ということがある。
Specifically, when the
実際には、ダンプ採取ツール111において、ホストドライバ113は、ゲストOS12からのクラッシュの通知を検出して、ダンプ採取サービス部112にゲストOS12のクラッシュを通知する。ゲストOS12からのクラッシュの通知は、後述するように、仮想マシンとハードウェアとの間を論理的に結ぶ仮想バス21への割り込みを捕捉することにより検出される。ホストドライバ113は、例えば、カーネルドライバであり、ホストOS11に設けられる。
Actually, in the
具体的には、ホストドライバ113は、通知手段であるゲストドライバ121から障害の発生を通知された場合に、ゲストドライバ121からの割り込みが発生した仮想バス21の仮想化IDに基づいて、仮想化ID/プロセス一覧117から、障害が発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める。ホストドライバ113は、求めたプロセスをダンプ採取サービス部112に通知する。
Specifically, when the
また、ダンプ採取ツール111において、ダンプ採取サービス部112は、障害が発生したゲストOS12が動作する仮想マシン124を特定して、障害が発生したゲストOS12が動作する仮想マシン124が使用するメモリ123の内容を保存する。ダンプ採取サービス部112は、ホストOS11が提供するサービスプログラムである。
In the
具体的には、ダンプ採取サービス部112は、ホストドライバ113が求めたプロセス識別情報に基づいて、仮想マシン/プロセス一覧118から、障害が発生したゲストOS12が動作する仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求める。そして、ダンプ採取サービス部112は、求めた仮想マシン名を有する仮想マシン124のメモリ123、換言すれば、障害が発生したゲストOS12が使用するメモリ123の内容を、記憶装置に採取する。ゲストOS12が使用するメモリ123は、ゲストOS12が動作する仮想マシン124に含まれるメモリである。
Specifically, the dump
例えば、ダンプ採取サービス部112は、障害が発生したゲストOS12が使用するメモリ123にアクセスして、障害発生時におけるメモリ123の内容をコピーして、保存状態格納領域114に保存する。そして、ダンプ採取サービス部112は、保存状態格納領域114に保存したメモリ123の内容を読みだしてダンプファイルに変換し、ダンプ格納領域115に格納する。
For example, the dump
また、ダンプ採取サービス部112は、仮想マシン124の停止手段であって、通知手段であるゲストドライバ121によって障害の発生を通知された場合に、障害が発生したゲストOS12が動作する仮想マシン124を停止させる。また、ダンプ採取サービス部112は、仮想マシン124の再開手段であって、停止させた仮想マシン124を再開又は再起動させる。実際には、ダンプ採取サービス部112は、仮想マシン124の停止や再開を、ハイパーバイザ2に依頼する。ハイパーバイザ2は、ダンプ採取サービス部112から仮想マシン124の停止や再開の依頼を受けると、これに応じて、仮想マシン124を停止し再開する。
The dump
図2の例では、ダンプ採取ツール111がダンプ採取サービス部112とホストドライバ113とを含むが、ダンプ採取ツール111を、ダンプ採取サービス部112及びホストドライバ113と別個に設けるようにしてもよい。
In the example of FIG. 2, the
例えば、ダンプ採取サービス部112はホストOS11のサービスプログラムであり、ホストドライバ113はホストOS11のカーネルドライバであり、ダンプ採取ツール111は、例えばホストOS11上で動作するアプリケーションとして設けられる。これにより、利用者は、ホストOS11の改変によることなく、メモリ123の内容を取得しメモリダンプを実行することができる。
For example, the dump
保存状態格納領域114は、ハードウェア3に含まれる磁気ディスク装置のような記憶装置の領域である。磁気ディスク装置のような記憶装置は、ホストOS11がアクセス可能であり、メモリ123とは異なる記憶装置である。保存状態格納領域114は、1個の領域であり、複数の仮想マシン124に共通である。
The storage
ダンプ格納領域115は、ハードウェア3に含まれる磁気ディスク装置のような記憶装置の領域である。磁気ディスク装置のような記憶装置は、ホストOS11がアクセス可能であり、メモリ123とは異なる記憶装置である。ダンプ格納領域115は、1個の領域であり、複数の仮想マシン124に共通である。
The
図3は、情報処理システムの説明図である。図3は、ホストOS11の実行する処理と、ゲストOS12の実行する処理とを表す。具体的には、図3は、ゲストOS12のゲストドライバ121が実行する処理と、ホストOS11のホストドライバ113及びダンプ採取サービス部112が実行する処理とを表す。なお、図3においては、1個のゲストOS12のみを示す。
FIG. 3 is an explanatory diagram of the information processing system. FIG. 3 shows processing executed by the
ダンプ採取サービス部112は、ダンプ採取サービスの初期処理において、ゲスト制御処理の前処理を実行する。ゲスト制御処理の前処理は、仮想マシン124の仮想デバイス122にプロセス識別情報を書き込む処理である。書き込まれるプロセス識別情報は、指定された仮想マシン124に対応するホストOS11のプロセスを示す。仮想マシン124に対応するプロセスは、仮想マシン124毎に定められる。
The dump
仮想マシン管理サービス部116は、複数の仮想マシン124を管理するVMM(Virtual Machine Monitor)であり、仮想マシン124の開始、停止、削除、再開等の処理を行う。仮想マシン管理サービス部116は、ダンプ採取サービス部112からプロセス識別情報の書き込みを依頼されると、指定された仮想マシン124の仮想デバイス122へ、プロセス識別情報を書き込む。
The virtual machine
例えば、ダンプ採取サービス部112は、情報処理システムの仮想マシン管理サービス部116を呼び出す。呼び出された仮想マシン管理サービス部116は、例えば仮想化されたDVD装置のような仮想デバイス122を用意して、ホストマシンに接続する。ホストマシン上で動作するホストOS11のダンプ採取サービス部112は、用意された仮想DVD装置内の書込み可能なDVDに、プロセス識別情報を書き込む。この後、仮想マシン管理サービス部116は、仮想DVD装置をホストマシンから切断して、ゲストマシンに接続する。接続されるゲストマシンは、そのゲストマシンに対応するホストOS11のプロセスであって、書き込まれるプロセス識別情報を有するプロセスに対応する。
For example, the dump
ゲストOS12のゲストドライバ121は、ゲストドライバ121の初期処理として、プロセス識別取得処理を実行する。プロセス識別取得処理は、仮想デバイス122からプロセス識別情報を取得する処理である。これにより、仮想マシン124に対応するプロセスを外部から識別する情報が取得される。
The
初期処理の後、ゲストドライバ121は、クラッシュ検知処理を開始、換言すれば、ゲストOS12のパニック出口として登録される。クラッシュ検知処理は、クラッシュ発生時に、ゲストOS12から呼び出される処理である。この呼び出しのために、ゲストドライバ121は、ゲストOS12のパニック出口として登録される。クラッシュの検知は、実際には、ゲストOS12自体が種々の手段により実行する。従って、ゲストOS12は、自己のクラッシュを検知すると、自己のパニック出口として登録されたゲストドライバ121を呼び出す。
After the initial process, the
また、ゲストドライバ121は、クラッシュ通知処理を実行する。クラッシュ通知処理は、クラッシュの発生時に、換言すれば、ゲストOS12から呼び出された場合に、ゲストOS12が動作する仮想マシン124と、仮想マシン制御部であるホストOS11との間を論理的に結ぶ仮想バス21に割り込みを発生する処理である。クラッシュ通知処理は、例えば、クラッシュ検知処理に続いて実行される。
Further, the
仮想バス21への割り込みは、ゲストドライバ121が動作する仮想マシン124に割り当てられた仮想バス21に発生する。仮想バス21は、例えば、ハイパーバイザ2により、仮想マシン124の開始時に、仮想マシン124毎に割り当てられる。従って、ゲストOS12のクラッシュは、個々のゲストOS12が動作している仮想マシン124に割り当てられた仮想バス21により、ホストドライバ113に通知される。
The interruption to the
また、ゲストドライバ121は、ダンプ出力抑止処理を実行する。ダンプ抑止処理は、クラッシュ発生時に、換言すれば、ゲストOS12から呼び出された場合に、ゲストOS12によるメモリ123のダンプ採取を抑止する処理である。ダンプ出力抑止処理は、例えば、クラッシュ通知処理に続いて又はクラッシュ通知処理と並行して実行される。
In addition, the
ゲストOS12は、通常、ゲストOS12のメモリ123のメモリダンプを採取する機能であるダンプ採取機能を含むので、ゲストOS12のクラッシュ時に、メモリダンプが採取されてしまう。そこで、ゲストドライバ121は、クラッシュ発生時に、ゲストOS12によるメモリ123のダンプ採取を抑止する。
Since the
一方、ホストOS11のホストドライバ113は、割り込み捕捉処理を実行する。割り込み捕捉処理は、ゲストドライバ121による仮想バス21への割り込みを捕捉する処理である。換言すれば、割り込み捕捉処理は、ゲストドライバ121からのクラッシュ通知を受信する受信処理である。ゲストドライバ121からのクラッシュ通知のための割り込みの優先度は最優先である。そこで、ホストドライバ113は、割り込み捕捉処理を繰り返し実行する。割り込み捕捉処理は、例えば、最初のゲストOS12の開始の後に実行される。
On the other hand, the
また、ホストドライバ113は、クラッシュ判定処理を開始、換言すれば、ホストOS11の予め定められた位置に登録する。クラッシュ判定処理は、クラッシュ判定時に、ホストOS11から呼び出される処理である。この呼び出しのために、ホストドライバ113は、ホストOS11の予め定められた位置に登録される。クラッシュ判定処理は、仮想バス21への全ての割り込みを調べて、ゲストOS12のクラッシュを通知する割り込みと、それ以外の割り込みとを判別する処理である。クラッシュ判定処理は、例えば、割り込み捕捉処理に続いて実行される。
Further, the
また、ホストドライバ113は、プロセス識別情報解決処理を実行する。プロセス識別情報解決処理は、クラッシュが発生したゲストOS12がどの仮想マシン124に対応するプロセスで動作しているかを解決する処理、換言すれば、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める処理である。プロセス識別情報解決処理は、例えば、割り込みがゲストOS12のクラッシュを通知する割り込みであると判別された場合に、クラッシュ判定処理に続いて実行される。
In addition, the
また、ホストドライバ113は、クラッシュ発生通知処理を実行する。クラッシュ発生通知処理は、ゲストOS12にクラッシュが発生したことを、ダンプ採取サービス部112に通知する処理である。クラッシュ発生通知処理は、例えば、割り込みがゲストOS12のクラッシュを通知する割り込みであると判定された場合に、プロセス識別情報解決処理に続いて実行される。クラッシュ発生通知処理において、プロセス識別情報解決処理により求められた、クラッシュが発生したゲストOS12が動作するプロセスのプロセス識別情報が、ダンプ採取サービス部112に通知される。
In addition, the
一方、ホストOS11のダンプ採取サービス部112は、メモリ内容保存処理、換言すれば、メモリ状態保存処理を実行する。メモリ状態保存処理は、クラッシュが発生したゲストOS12が使用するメモリ123の内容を保存する処理である。ゲストOS12が使用するメモリ123は、ゲストOS12が動作する仮想マシン124に含まれる仮想化されたメモリ、換言すれば、仮想メモリである。メモリ状態保存処理は、例えば、ダンプ採取サービス部112がゲストOS12にクラッシュが発生した通知をホストドライバ113から受け取った場合に実行される。
On the other hand, the dump
メモリ状態保存処理により、クラッシュが発生したゲストOS12が使用するメモリ123の内容がコピーされて、予め定められた記憶領域、換言すれば、保存状態格納領域114に格納される。保存状態格納領域114は、例えば、ダンプ採取ツール111により予め定められる。例えば、利用者は、ホストOS11上で動作するダンプ採取ツール111に端末からアクセスして、保存状態格納領域114を予め定めることができる。
Through the memory state saving process, the contents of the
メモリ状態保存処理は、メモリ123の内容をコピーして保存状態格納領域114に格納するのみであるので、ダンプファイルの作成と比べて短時間で処理を終了することができる。また、メモリ状態保存処理が終了すると、ダンプファイルの作成を待たずに、クラッシュが発生したゲストOS12が動作する仮想マシン124を停止し、再開することができる。
Since the memory state saving process only copies the contents of the
メモリ内容保存処理の後、ダンプ採取サービス部112は、メモリ内容保存処理の後処理として、ダンプ変換処理を実行する。ダンプ変換処理は、保存状態格納領域114に格納したメモリ123の内容を、予め定められたフォーマットのダンプファイルに変換して保存する処理である。ダンプ変換処理は、メモリ状態保存処理の実行の後において、ゲスト制御処理の実行の後に又はゲスト制御処理の実行と並行して、ゲスト制御処理の実行の障害とならないタイミングで実行される。
After the memory content saving process, the dump
ダンプ変換処理により、保存状態格納領域114に格納したメモリ123の内容がダンプファイルに変換されて、予め定められた記憶領域、換言すれば、ダンプ格納領域115に格納される。ダンプ格納領域115は、例えば、ダンプ採取ツール111により予め定められる。例えば、利用者は、ホストOS11上で動作するダンプ採取ツール111に端末からアクセスして、ダンプ格納領域115を予め定めることができる。
By the dump conversion process, the contents of the
ダンプ変換処理は、例えば、ゲスト制御処理の実行の障害とならないタイミングで実行される。換言すれば、ゲスト制御処理がダンプ変換処理に優先して実行される。これにより、メモリ状態保存処理の終了の後に、ゲスト制御処理を実行することができる。 The dump conversion process is executed, for example, at a timing that does not hinder the execution of the guest control process. In other words, the guest control process is executed with priority over the dump conversion process. As a result, the guest control process can be executed after the end of the memory state saving process.
また、ダンプ採取サービス部112は、ゲスト制御処理を実行する。ゲスト制御処理は、クラッシュが発生したゲストOS12を実行中の仮想マシン124の状態を制御する処理である。例えば、ダンプ採取サービス部112は、情報処理システムの仮想マシン管理サービス部116を呼び出し、呼び出した仮想マシン管理サービス部116に、指定したゲストOS12が使用する仮想デバイス122の制御を依頼する。従って、ゲスト制御処理は、実際には、仮想マシン管理サービス部116により実行される。
Further, the dump
ゲスト制御処理は、ダンプ採取サービス部112がゲストOS12にクラッシュが発生した通知を受け取った場合に、メモリ状態保存処理に続いて、ダンプ変換処理に優先して実行される。ゲスト制御処理により、ゲストOS12が動作する仮想マシン124の状態は、そのままの状態とされるか、停止や再開の状態とされる。
The guest control process is executed prior to the dump conversion process following the memory state saving process when the dump
なお、図3において説明した処理は、各々、ゲストドライバ121、ホストドライバ113又はダンプ採取サービス部112のルーチン又はサブルーチンとして実現するようにしてもよい。
3 may be realized as a routine or a subroutine of the
図4は、情報処理システムの説明図である。 FIG. 4 is an explanatory diagram of the information processing system.
図4において、例えば、仮想マシン124B、換言すれば、仮想マシンBは、プロセスYとして実行され、仮想マシン124B上でゲストOS12Bが動作する。仮想マシン124Bには、仮想CPU125B、換言すれば、仮想CPU−1が割り当てられている。仮想マシン124Bに対応するゲストOS12及びゲストドライバ121を、各々、ゲストOS12B及びゲストドライバ121Bと表す。仮想マシンA及び仮想マシンCについても同様である。図4においては、仮想マシンBにおいて、クラッシュが発生するものとする。
In FIG. 4, for example, the
前述したように、ホストOS11が複数のゲストOS12についてのメモリダンプを実行するためには、ホストOS11が、クラッシュしたゲストOS12がどの仮想マシン124で動作中であるのかを知る必要がある。
As described above, in order for the
ここで、情報処理システムにおいて、仮想マシン124は情報処理システム又はホストOS11におけるプロセスとして存在する。このため、仮想マシン124のメモリ123の内容は、仮想マシン124の外部からも取得可能である。従って、クラッシュが発生した際のメモリ123の内容も仮想マシン124の外部から採取でき、メモリダンプを生成することができる。
Here, in the information processing system, the
しかし、ゲストOS12から見える仮想マシン124は1個だけであり、一方、情報処理システム上には複数の仮想マシン124が存在する。例えば、ホストOS11から見た場合に、1個の仮想マシン124は1つのプロセスであり、その上でゲストOS12が動作する。情報処理システムから見た仮想マシン124は、情報処理システムが管理する1セットの仮想ハードウェア(COP、メモリ、ストレージ、ネットワークデバイス等)の集合である。そして、情報処理システムにおいて、仮想ハードウェアは、仮想マシン124上のホストOS11及びゲストOS12と厳密に分離されている。このため、例えば、ゲストOS12は、そのゲストOS12自身がどの仮想マシン124上で動作するかを知ることはできない。
However, only one
以上から、ゲストOS12のクラッシュの発生を通知する場合、ゲストOS12の動作する仮想マシン124を情報処理システム上で識別可能な情報を、合わせて通知することができる必要がある。
From the above, when notifying the occurrence of a crash of the
そこで、ダンプ採取サービス部112、ホストドライバ113、ゲストドライバ121が設けられる。ダンプ採取サービス部112は、仮想マシン124のプロセスを識別する情報、換言すれば、プロセス識別情報を持つ。ホストドライバ113は、仮想化システムの仮想バス21上で仮想ハードウェアを識別する情報、換言すれば、仮想化IDを持つ。ゲストドライバ121は、それ自体は、プロセス識別情報及び仮想化IDを持たない。
Therefore, a dump
そして、図4に示すように、例えば、ホストドライバ113に、仮想化ID/プロセス一覧117が設けられる。仮想化ID/プロセス一覧117は、第1の記憶手段であり、ホストOS11に設けられ、複数の仮想バス識別情報と複数のプロセス識別情報との対応関係である第1対応情報を記憶する。仮想バス識別情報は、複数の仮想マシン124の各々に割り当てられた複数の仮想バス21を識別する識別情報であり、一意に定まる。プロセス識別情報は、複数の仮想マシン124の各々に対応するホストOS11のプロセスを識別する識別情報であり、一意に定まる。従って、プロセス識別情報は、複数の仮想マシン124にそれぞれ対応した仮想マシン制御部のプロセスを識別する。仮想バス識別情報は、例えば、仮想化IDであり、ハイパーバイザ2において複数の仮想バス21を識別する情報である。
As shown in FIG. 4, for example, the virtualization ID /
また、図4に示すように、例えば、ダンプ採取サービス部112に、仮想マシン/プロセス一覧118が設けられる。仮想マシン/プロセス一覧118は、第2の記憶手段であり、ホストOS11に設けられ、複数のプロセス識別情報と複数のマシン識別情報との対応関係である第2対応情報を記憶する。マシン識別情報は、複数の仮想マシン124を識別する識別情報である。マシン識別情報は、例えば、仮想マシン124の仮想マシン名であり、一意に定まる。
As shown in FIG. 4, for example, a virtual machine /
最初に、ホストOS11が複数のゲストOS12についてのメモリダンプを実行するために、以下のような前処理が実行される。
First, in order for the
ホストOS11のダンプ採取サービス部112は、仮想マシン124に対応するプロセスのプロセス識別情報を、複数の仮想マシン124の各々に送る。複数の仮想マシン124の各々は、ホストOS11から受け取ったプロセス識別情報を、仮想デバイス122に格納する。
The dump
複数の仮想マシン124の各々のゲストドライバ121は、仮想デバイス122に格納されたプロセス識別情報を、ホストOS11のホストドライバ113に送る。
Each
ホストOS11のホストドライバ113は、複数の仮想マシン124の各々から受け取ったプロセス識別情報を用いて、仮想化ID/プロセス一覧117に、複数の仮想マシン124の各々に割り当てられた複数の仮想バス21を識別する仮想バス識別情報、換言すれば、仮想化IDと、複数の仮想マシン124であるプロセスを識別するプロセス識別情報との対応関係である第1対応情報を記憶する。更に、ホストOS11のダンプ採取サービス部112は、仮想マシン/プロセス一覧118に、複数の仮想マシン124であるプロセスを識別するプロセス識別情報と、複数の仮想マシン124の各々の識別情報、換言すれば、仮想マシン名との対応関係である第1対応情報を記憶する。
The
次に、情報処理システムの運用において、ホストOS11が、複数のゲストOS12についてのメモリダンプが、以下のように実行される。
Next, in the operation of the information processing system, the
ゲストドライバ121は、ゲストOS12のクラッシュ発生を通知するため、予めそのゲストOS12に割り当てられた仮想化IDの仮想バス21に、割り込みを発生させる。換言すれば、ゲストドライバ121は、障害が発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21に割り込みを発生することにより、ホストOS11に障害の発生を通知する。
The
具体的には、ゲストドライバ121は、自己が動作している仮想マシン124の仮想CPU125に、実行不可能な命令を実行させる。これにより、ゲストドライバ121が動作している仮想マシン124に割り当てられた仮想バス21に割り込みが発生する。
Specifically, the
ホストドライバ113は、割り込みの発生した仮想バス21から、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDを判定する。換言すれば、ホストドライバ113は、ゲストドライバ121により仮想バス21に発生させられた割り込みを捕捉することにより、ゲストドライバ121から障害の発生を通知される。
The
ホストドライバ113は、判定した仮想化IDに基づいて仮想化ID/プロセス一覧117を参照して、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDに基づいて、仮想マシン124に対応するプロセスのプロセス識別情報を求める。
The
ダンプ採取サービス部112は、求めたプロセス識別情報に基づいて仮想マシン/プロセス一覧118を参照して、メモリダンプを採取する対象の仮想マシン124を識別する。これにより、クラッシュが発生したゲストOS12が動作する仮想マシン124の使用するメモリ123の内容を保存状態格納領域114に保存し、ダンプファイルの形式に変換して、ダンプ格納領域115に格納することができる。
The dump
以下、ホストOS11が複数のゲストOS12についてのメモリダンプを実行するための処理について説明する。
Hereinafter, processing for the
ホストドライバ113は、ホストOS11のカーネルドライバであるので仮想バス21への割り込みにおける仮想化IDを知ることができるが、プロセス識別情報は知ることができない。仮想化IDを知ることができるのは、ホストドライバ113のみである。ダンプ採取サービス部112は、プロセス識別情報は知ることができるが、仮想マシン124ではないので仮想化IDにアクセスすることはできない。仮想マシン124は、仮想マシン124を表すプロセス、換言すれば、仮想マシン124に対応するプロセスとは区別されるので、プロセス識別情報は知ることができない。ゲストOS12は、プロセス識別情報も仮想化IDも知ることはできない。
Since the
そこで、ダンプ採取サービス部112が、プロセス識別情報を、例えば、仮想マシン124の生成時に、仮想マシン124の仮想デバイス122に書き込む。仮想マシン124上で動作するゲストOS12のゲストドライバ121は、仮想デバイス122のプロセス識別情報を、仮想デバイス122から読み出してホストドライバ113に渡す。これに応じて、ホストドライバ113は、仮想化ID/プロセス一覧117を作成する。また、ホストドライバ113は、プロセス識別情報を、ダンプ採取サービス部112に渡す。これに応じて、ダンプ採取サービス部112は、仮想マシン/プロセス一覧118を作成する。この結果、仮想マシン124に1対1に割り当てられかつ一意に定まる仮想化IDを有する仮想バス21への割り込みが発生すると、ホストドライバ113が対応するプロセス識別情報を求めることができ、ダンプ採取サービス部112が対応する仮想マシン名、換言すれば、仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求めることができる。
Therefore, the dump
最初に、仮想マシン/プロセス一覧118の作成について説明する。
First, creation of the virtual machine /
ダンプ採取サービス部112は、仮想マシン管理サービス部116に接続して、仮想マシン/プロセス一覧118を作成する。仮想マシン/プロセス一覧118は、仮想マシン124の情報として、仮想マシン名と、仮想マシン124の状態(実行中、停止中、削除)と、仮想マシン124に対応するプロセスのプロセス識別情報とを含む。
The dump
仮想マシン名と、仮想マシン124の状態は、例えば、仮想マシン/プロセス一覧118の作成時又は作成に先立って、ダンプ採取サービス部112により、仮想マシン124を管理する仮想マシン管理サービス部116から取得される。
The virtual machine name and the state of the
仮想マシン124に対応するプロセスのプロセス識別情報は、実行中の仮想マシン124について与えられる一意な情報であり、仮想マシン124の定義とは独立に、実行中の仮想マシン124に対応するプロセスを識別する情報である。従って、プロセス識別情報は、例えば、ダンプ採取サービス部112により、仮想マシン管理サービス部116から取得した実行中の仮想マシン124の各々について定められる。また、プロセス識別情報を仮想マシン定義とは独立に定めることにより、1つの仮想マシン定義から複数の仮想マシン124を同時にプロセス化する場合にも対応することができる。
The process identification information of the process corresponding to the
ダンプ採取サービス部112は、仮想マシン/プロセス一覧118を作成すると、仮想マシン状態の監視を開始し、仮想マシン124のクラッシュの監視を開始する。ダンプ採取サービス部112は、予め定められた時間間隔で、仮想マシン管理サービス部116から仮想マシン状態を取得して、仮想マシン状態の変更に応じて、仮想マシン/プロセス一覧118を更新する。そして、新たに開始された仮想マシン124がある場合には、新たに開始された仮想マシン124について、新しいプロセス識別情報を作成し、その仮想マシン124に接続されている仮想デバイス122に書き込む。
When the dump
仮想マシン管理サービス部116は、仮想マシン/プロセス一覧118を更新すると、ホストドライバ113に仮想マシン状態の変更を通知する。この通知は、状態変更の種別(追加、削除、実行中→停止、停止中→実行)と、仮想マシン124に対応するプロセスのプロセス識別情報とを含む。
When the virtual machine
次に、仮想化ID/プロセス一覧117の作成について説明する。
Next, creation of the virtualization ID /
ホストドライバ113は、ゲストOS12からの割り込みを受付け、また、ダンプ採取サービス部112からの要求を受付ける。例えば、ホストドライバ113は、ダンプ採取サービス部112からの要求の処理において、仮想化ID/プロセス一覧117の作成と更新を行う。前述したように、ホストドライバ113は、ハイパーバイザ2を介してのみ仮想マシン124にアクセスできるので仮想化IDにはアクセスできるが、一方、仮想マシン124に対応するプロセスのプロセス識別情報にはアクセスできない。そこで、ダンプ採取サービス部112が仮想マシン124の仮想デバイス122に書き込んだプロセス識別情報を、ゲストドライバ121を介して読み込み、仮想化IDとプロセス識別情報とを対応付ける仮想化ID/プロセス一覧117を作成する。
The
仮想化IDは、例えば、仮想化ID/プロセス一覧117の作成時又は作成に先立って、ホストドライバ113により、仮想バス21を管理するハイパーバイザ2から取得される。
For example, the virtualization ID is acquired from the
ホストドライバ113は、ダンプ採取サービス部112からIO要求を受け付ける。受け付けるIO要求には、クラッシュの監視開始、仮想マシン124の状態変更(VM開始、VM停止、VM削除)、クラッシュの監視終了の種別がある。
The
ホストドライバ113は、最初にクラッシュの監視開始の要求を受け取り、仮想化ID/プロセス一覧117の作成を開始する。具体的には、ホストドライバ113は、ハイパーバイザ2から仮想化IDを取得し、仮想化IDで識別される仮想マシン124がゲストドライバ121を持つ場合に、その仮想マシン124に対してクラッシュ監視の開始を通知し、応答として、ゲストドライバ121からその仮想マシン124に対応するプロセスのプロセス識別情報を受け取る。仮想化IDに対応するプロセス識別情報が得られた仮想マシン124は、クラッシュの監視対象であるため、仮想化ID/プロセス一覧117に追加される。
The
なお、ゲストOS12からの割り込みの受付は初期処理の後に直ちに開始されるが、実際にゲストOS12からの割り込みが行われるのは、そのゲストOS12のゲストドライバ121の確認が完了し、ゲストOS12の情報が仮想化ID/プロセス一覧117への追加が行われてからである。
The acceptance of the interrupt from the
ホストドライバ113は、クラッシュの監視開始後、仮想マシン124の状態変更の要求を受け取る。ホストドライバ113は、仮想マシン124の状態変更の内容に応じて、仮想化ID/プロセス一覧117を更新する。この際、変更要求に含まれるプロセス識別情報をキーとして仮想化ID/プロセス一覧117が更新される。
The
ホストドライバ113は、ダンプ採取サービス部112の停止にともない、クラッシュ監視停止の要求を受け取る。この要求を受け取ったなら、仮想化ID/プロセス一覧117の全ての情報を破棄する。
The
次に、ゲストドライバ121からホストドライバ113へのプロセス識別情報の引渡しについて説明する。
Next, delivery of process identification information from the
ゲストドライバ121は、ホストドライバ113からのクラッシュの監視開始の通知を受け取って、これを契機として仮想デバイス122にアクセスし、自己が動作する仮想マシン124に対応するプロセスのプロセス識別情報を取得する。ゲストドライバ121は、取得したプロセス識別情報をホストドライバ113に送る。プロセス識別情報は、仮想マシン124の開始に当って、ダンプ採取サービス部112が一意に設定する値であるため、この処理はゲストドライバ121の初期化後に一回だけ実行されれば十分である。
Upon receiving the notification of the start of crash monitoring from the
この際、例えば、ゲストドライバ121は、プロセス識別情報を予め定められたアドレスに設定する。予め定められたアドレスは、例えば、ホストOS11の使用する物理メモリである。ホストドライバ113は、ハイパーバイザ2によりゲストOS12上のアドレスをホストOS11の物理メモリ上のアドレスに変換して、直接参照する。これは、アドレス変換による直接参照である。
At this time, for example, the
なお、ゲストドライバ121が、取得したプロセス識別情報を、ハイパーバイザ2の持つ仮想マシン124の間の通信機能を使用して、ホストドライバ113に送るようにしてもよい。これは、ドライバ間の通信による間接参照である。
Note that the
次に、情報処理システムの運用における、ホストOS11による、複数のゲストOS12についてのメモリダンプについて説明する。
Next, a memory dump for a plurality of
ゲストドライバ121Bは、ゲストOS12Bのクラッシュの監視開始の通知をホストドライバ113から受け取り、プロセス識別情報をホストドライバ113に返す。そして、ゲストドライバ121Bは、ゲストOS12Bのパニック出口にゲストドライバ121Bを登録する。
The
ゲストOS12BがゲストOS12Bにおけるクラッシュの発生を検出すると、ゲストOS12Bのパニック出口として登録されているゲストドライバ121Bが呼び出される。呼び出されたゲストドライバ121Bは、ホストドライバ113に、クラッシュの通知を送る。具体的には、ゲストドライバ121Bは、対応するゲストOS12Bが動作している仮想マシン124に割り当てられた仮想バス21に割り込みを発生させる。仮想バス21には仮想化IDが与えられている。
When the guest OS 12B detects the occurrence of a crash in the guest OS 12B, the
ホストOS11のホストドライバ113は、ゲストドライバ121Bからのクラッシュの通知を受け取り、割り込みの発生した仮想バス21に基づいて、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化ID「ID2」を特定する。そして、ホストドライバ113は、受け取ったクラッシュの通知の仮想化ID「ID2」をキーとして用いて、仮想化ID/プロセス一覧117を検索して、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報である「プロセスY」を得る。
The
ホストドライバ113は、ダンプ採取サービス部112へクラッシュ発生を通知し、この際、プロセス識別情報「プロセスY」も通知する。
The
ダンプ採取サービス部112は、ホストドライバ113に、仮想マシン124のクラッシュの監視の開始を指示する。この際、応答として、ホストドライバ113から、ダンプ採取サービス部112に、クラッシュ発生を通知する際に使用するインタフェース情報が送られる。
The dump
ダンプ採取サービス部112は、ホストドライバ113から前述のインタフェース情報に従うクラッシュの発生通知を受け取り、受け取ったクラッシュの発生通知に含まれるプロセス識別情報「プロセスY」を取り出す。そして、ダンプ採取サービス部112は、取り出したプロセス識別情報「プロセスY」をキーとして用いて、仮想マシン/プロセス一覧118を検索して、クラッシュが発生したゲストOS12が動作する仮想マシン124の仮想マシン名である「仮想マシンB」を得る。これにより、クラッシュが発生した仮想マシンBと、クラッシュが発生した仮想マシンBが動作するプロセスYが特定される。
The dump
ダンプ採取サービス部112は、仮想マシンBを特定すると、特定した仮想マシンBに対するダンプ採取処理を実行する。例えば、ダンプ採取サービス部112は、クラッシュが発生した仮想マシンBのプロセスYが使用するメモリ123の障害発生時におけるメモリ123の内容をコピーして、保存状態格納領域114に保存する。そして、ダンプ採取サービス部112は、保存状態格納領域114に保存したメモリ123の内容を読みだしてダンプファイルに変換し、ダンプ格納領域115に格納する。
When the dump
また、ダンプ採取サービス部112は、仮想マシン管理サービス部116に、仮想マシンBの停止と再起動を依頼する。
Further, the dump
なお、仮想マシン124の停止又は再開に応じて仮想化ID/プロセス一覧117を更新するために、仮想マシン124の状態を監視する監視処理が実行される。この監視処理は、例えば、仮想マシン管理サービス部116により実行され、仮想マシン管理サービス部116から、仮想マシン124の状態が切り替わる度に、ホストドライバ113に仮想マシン124の状態の切り替わりを通知されることにより、仮想化ID/プロセス一覧117を更新する。
In order to update the virtualization ID /
以上のように、本発明によれば、ホストOS11がゲストOS12のメモリ123のメモリダンプを採取することができる。これにより、採取したダンプファイルの保存先をホストOS11側に集約しているので、複数のゲストOS12の間でディスク領域を共用することができる。また、ゲストOS12が備えるダンプ採取機能を使用しないので、ゲストOS12が動作する仮想マシン124の各々に、ダンプ採取のためのリソースを割り当てる必要を無くすことができる。
As described above, according to the present invention, the
例えば、前述したように、2GBの容量を持つメモリ123を使用するゲストOS11が10個存在する場合において、10個の仮想マシン124の全てについてメモリダンプを採取するとしても、20GBのディスク領域は必要ではなく、予備のディスク領域を考慮したとしても、例えば4GBのディスク領域を用意するだけでよい。なお、採取したメモリダンプは、次のメモリダンプの採取に障害のない時間で、例えば、ファイルとして出力すればよい。
For example, as described above, when there are ten
従って、情報処理システムで使用される高価な記憶装置を、発生が予測できないゲストOSのクラッシュに備えて大量に獲得しておく必要をなくして、メモリダンプ採取の負担(コスト)を低減することができる。また、メモリダンプの採取のためのディスク領域を減らしても、実際のクラッシュの発生時に確実にメモリダンプが採取することができ、結果的に原因調査の期間を短縮化することができる。 Accordingly, it is not necessary to acquire a large amount of expensive storage devices used in the information processing system in preparation for a guest OS crash that cannot be predicted, and the burden (cost) of collecting a memory dump can be reduced. it can. Even if the disk area for collecting the memory dump is reduced, the memory dump can be reliably collected when an actual crash occurs, and the cause investigation period can be shortened as a result.
一方、採取したダンプファイルの保存先をホストOS11側に集約しているので、メモリダンプに関して、情報処理システムの構成を単純化することができる。これにより、1台のハードウェア上に複数の仮想マシン124をより容易に実装することができる。
On the other hand, since the storage destinations of the collected dump files are collected on the
また、本発明によれば、ホストドライバ113及びゲストドライバ121を設ける必要はあるが、メモリダンプ採取のための種々の設定を個々のゲストOS12に対して行う必要を無くすことができる。
Further, according to the present invention, it is necessary to provide the
また、本発明によれば、ゲストOS12のメモリ123の内容の保存処理と、保存したメモリ123の内容のダンプファイルへの変換処理とは、異なるタイミングで、換言すれば、独立したタイミングで行うことができる。また、メモリ123の内容の保存処理は、メモリ123のコピーであるので高速で終了することができる。従って、ゲストOS12のクラッシュ発生時に、メモリ123の内容の保存処理のみを終了した時点でメモリダンプ採取が完了する前に、ゲストOS12の停止処理及び再開処理を実行することができる。これにより、通常のメモリダンプ採取によるよりも、仮想マシン124のダウンタイムを大幅に縮小することができる。
Further, according to the present invention, the process of saving the contents of the
また、本発明によれば、ゲストOS12のパニック出口や仮想バス21等の通常のOSやハイパーバイザ2が備える機能を用いて実現することができる。これにより、OSレベルでは、ホストドライバ113及びゲストドライバ121を追加するのみでよく、ゲストOS11やハイパーバイザ2を大きく変更する必要を無くすことができる。また、これにより、各々のゲストOS12のメモリダンプ採取の機能が適切に構成又は設定されていないため、クラッシュの発生時にダンプが採取されなかったり、十分な情報を取得できなかったりすることを防止することができる。
Further, according to the present invention, it can be realized by using a function provided in a normal OS or
図5及び図6は、一体となって識別情報作成処理フローであり、ホストOSのダンプ採取サービス部における処理を示す。 5 and 6 are integrated identification information creation processing flows, and show processing in the dump collection service unit of the host OS.
ホストOS11のダンプ採取サービス部112は、ダンプ採取サービス部112の初期化処理を実行する(ステップS11)。これにより、ダンプ採取サービス部112は、予め定められた初期状態に復帰する。
The dump
初期化処理の後、ダンプ採取サービス部112は、仮想マシン124を識別するために用いられる、仮想マシン124に対応するプロセス識別情報の作成処理を開始し、仮想マシン124を予め定められた順に、例えば仮想マシン名の順に処理対象として、処理対象とした仮想マシン124の状態を判定する(ステップS12)。
After the initialization process, the dump
仮想マシン124の状態が実行中である場合に、ダンプ採取サービス部112は、実行中の仮想マシン124に対応するプロセスに対して、プロセス識別情報を作成して割り当てる(ステップS13)。そして、ダンプ採取サービス部112は、割り当てたプロセス識別情報を、プロセスに対応する仮想マシン124の仮想デバイス122に書き込む(ステップS14)。そして、ダンプ採取サービス部112は、実行中の仮想マシン124について、仮想マシン一覧である仮想マシン/プロセス一覧118に追加する(ステップS15)。
When the state of the
この後、ダンプ採取サービス部112は、全ての仮想マシン124について、仮想マシン/プロセス一覧118への追加を終了したか否かを調べる(ステップS16)。全ての仮想マシン124について、仮想マシン/プロセス一覧118への追加を終了していない場合に、ダンプ採取サービス部112は、次の処理対象についてステップS12を繰り返す。
Thereafter, the dump
全ての仮想マシン124について、仮想マシン/プロセス一覧118への追加を終了した場合に、ダンプ採取サービス部112は、仮想マシン状態の監視を開始し(ステップS17)、また、ゲストOS12のクラッシュの監視を開始する(ステップS18)。ステップS17において、ダンプ採取サービス部112は、仮想マシン状態の監視の開始を、ホストドライバ113に通知する。
When all the
この後、ダンプ採取サービス部112は、ゲストOS12のクラッシュの通知を待つクラッシュ待ちの処理に入る(ステップS19)。
Thereafter, the dump
一方、ダンプ採取サービス部112は、ステップS18の後、仮想マシン状態監視処理を開始する。仮想マシン状態監視処理は、仮想マシン124の状態を監視する状態監視スレッドにおいて実行される。状態監視スレッドは、例えば、ダンプ採取サービス部112により生成され、状態監視スレッド実行部により実行される。
On the other hand, the dump
ステップS18の後、状態監視スレッド実行部は、予め定められた時間間隔で、仮想マシン管理サービス部116から仮想マシン124の状態を示す情報である仮想マシン状態を取得する(ステップS110)。
After step S18, the state monitoring thread execution unit acquires a virtual machine state that is information indicating the state of the
状態監視スレッド実行部は、仮想マシン状態を取得した場合に、取得した仮想マシン状態において仮想マシン状態に変更があるか否かを調べる(ステップS111)。そして、状態監視スレッド実行部は、仮想マシン状態に変更がある場合に、仮想マシン状態の変更の内容を判定する(ステップS112)。 When the virtual machine state is acquired, the state monitoring thread execution unit checks whether there is a change in the virtual machine state in the acquired virtual machine state (step S111). Then, when there is a change in the virtual machine state, the state monitoring thread execution unit determines the content of the change in the virtual machine state (step S112).
マシン状態の変更の内容が新たな仮想マシン124の開始である場合に、状態監視スレッド実行部は、新たに開始される仮想マシン124に対応するプロセスに対して、プロセス識別情報を作成して割り当てる(ステップS113)。そして、状態監視スレッド実行部は、割り当てたプロセス識別情報を、割り当てられたプロセスに対応する仮想マシン124の仮想デバイス122に書き込む(ステップS114)。そして、状態監視スレッド実行部は、新たに開始される仮想マシン124について、仮想マシン一覧である仮想マシン/プロセス一覧118に追加する(ステップS115)。これにより、仮想マシン124に生じた仮想マシン状態の変更に応じて、仮想マシン/プロセス一覧118が更新される。
When the content of the machine state change is the start of a new
この後、状態監視スレッド実行部は、ダンプ採取サービス部112に、仮想マシン状態を変更したことを通知する(ステップS116)。
Thereafter, the state monitoring thread execution unit notifies the dump
ステップS112において、マシン状態の変更の内容が仮想マシン124の停止である場合に、状態監視スレッド実行部は、停止される仮想マシン124について、仮想マシン/プロセス一覧118において、マシン状態を更新する(ステップS117)。これにより、仮想マシン124に生じた仮想マシン状態の変更に応じて、仮想マシン/プロセス一覧118が更新される。この後、状態監視スレッド実行部は、ステップS116を実行する。
In step S112, when the content of the change in the machine state is the stop of the
ステップS112において、マシン状態の変更の内容が仮想マシン124の削除である場合に、状態監視スレッド実行部は、削除される仮想マシン124について、仮想マシン/プロセス一覧118から削除する(ステップS118)。これにより、仮想マシン124に生じた仮想マシン状態の変更に応じて、仮想マシン/プロセス一覧118が更新される。この後、状態監視スレッド実行部は、ステップS116を実行する。
In step S112, when the content of the change in the machine state is deletion of the
この後、状態監視スレッド実行部は、予め定められた時間が経過するまで待機し(ステップS119)、その後、ステップS110を繰り返す。 Thereafter, the state monitoring thread execution unit waits until a predetermined time elapses (step S119), and then repeats step S110.
一方、ステップS111において、仮想マシン状態に変更がない場合に、状態監視スレッド実行部は、ステップS119を実行する。 On the other hand, when there is no change in the virtual machine state in step S111, the state monitoring thread execution unit executes step S119.
図7は、識別情報作成処理フローであり、ホストOS11のホストドライバ113における処理を示す。
FIG. 7 is an identification information creation processing flow and shows processing in the
ホストOS11のホストドライバ113は、ホストドライバ113の初期化処理を実行する(ステップS21)。これにより、ホストドライバ113は、予め定められた初期状態に復帰する。
The
初期化処理の後、ホストドライバ113は、ゲストOS12からの仮想バス21を介しての割り込みの受付を開始する(ステップS22)。ゲストOS12からの割り込みの受付は、初期化処理の後、直ちに開始される。しかし、実際にゲストOS12からの割り込みが発生するのは、ゲストOS12が、下記のように、仮想化ID/プロセス一覧117へ追加された後である。
After the initialization process, the
この後、ホストドライバ113は、ダンプ採取サービス部112からの種々の要求の受付を開始する(ステップS23)。ダンプ採取サービス部112からの要求の受付の処理において、以下のように、仮想化ID/プロセス一覧117の作成及び更新が実行される。
Thereafter, the
ステップS22の後、ホストドライバ113は、ゲストOS12のクラッシュの通知である仮想バス21への割り込みを待つ処理、換言すれば、クラッシュ発生待ちの処理に入る(ステップS24)。
After step S22, the
ステップS23の後、ホストドライバ113は、サービス要求の処理を開始し、ダンプ採取サービス部112からのIO要求を受け付ける(ステップS25)。そして、ホストドライバ113は、ダンプ採取サービス部112からのIO要求を受け付けると、受け付けたIO要求の種別や変更内容を判定する(ステップS26)。
After step S23, the
ステップS26において受け付けたIO要求が仮想マシン124の停止、仮想マシン124の削除である場合には、ホストドライバ113は、停止や削除の対象である仮想マシン124に対応するプロセスのプロセス識別情報を用いて仮想化ID/プロセス一覧117を参照して、停止や削除の対象である仮想マシン124が仮想マシン一覧の仮想化ID/プロセス一覧117に追加されているか否かを調べる(ステップS27)。そして、ホストドライバ113は、停止や削除の対象である仮想マシン124が仮想化ID/プロセス一覧117に追加されている場合には(ステップS27、Yes)、停止や削除の対象である仮想マシン124を、仮想化ID/プロセス一覧117から削除する(ステップS28)。
When the IO request received in step S26 is the stop of the
なお、ホストドライバ113は、停止や削除の対象である仮想マシン124が仮想化ID/プロセス一覧117に追加されていない場合には(ステップS27、No)、停止や削除の対象である仮想マシン124についての処理を行わない。
Note that the
ステップS26において受け付けたIO要求が仮想マシン124のクラッシュの監視開始、仮想マシン124の開始である場合には、ホストドライバ113は、仮想化ID/プロセス一覧117の作成更新処理を開始する。最初に、ホストドライバ113は、ハイパーバイザ2に接続して、全てのゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDを取得して列挙する(ステップS29)。
If the IO request received in step S26 is the start of monitoring the crash of the
この後、ホストドライバ113は、予め定められた順に、例えば仮想化IDの昇順に、1個の仮想化IDを処理対象として、仮想化IDで識別される仮想マシン124がゲストドライバ121を含んでおり仮想化ID/プロセス一覧117に追加されているか否かを調べる(ステップS210)。処理対象である仮想マシン124が仮想化ID/プロセス一覧117に追加されている場合には(ステップS210、Yes)、ホストドライバ113は、次の処理対象である仮想マシン124についてステップS29を繰り返す。
Thereafter, the
処理対象である仮想マシン124が仮想化ID/プロセス一覧117に追加されていない場合には(ステップS210、No)、ホストドライバ113は、処理対象である仮想マシン124に対してクラッシュ監視の開始を通知し(ステップS211)、この通知に対する応答として、処理対象である仮想マシン124からそのプロセス識別情報を取得する(ステップS212)。そして、ホストドライバ113は、処理対象である仮想マシン124について、取得した仮想化IDと、これに対応するプロセス識別情報とを、仮想化ID/プロセス一覧117に追加し(ステップS213)、全ての仮想化IDについての処理を終了するまでステップS29を繰り返す。これにより、仮想化IDとこれに対応するプロセス識別情報とが取得できた仮想マシン124が、仮想化ID/プロセス一覧117に登録され、クラッシュの監視対象とされる。
If the processing target
ステップS26において受け付けたIO要求が仮想マシン124のクラッシュの監視停止である場合には、ホストドライバ113は、仮想化ID/プロセス一覧117の全ての仮想マシン124についての情報を破棄する(ステップS214)。
If the IO request received in step S26 is to stop monitoring the crash of the
図8は、識別情報作成処理フローであり、ゲストOS12のゲストドライバ121における処理を示す。
FIG. 8 is an identification information creation processing flow, and shows processing in the
ゲストドライバ121は、ゲストドライバ121の初期化処理を実行する(ステップS31)。これにより、ゲストドライバ121は、予め定められた初期状態に復帰する。
The
初期化処理の後、ゲストドライバ121は、ホストドライバ113からのクラッシュの監視開始の通知の待ち状態となる(ステップS32)。
After the initialization process, the
この後、待ち状態のゲストドライバ121は、ホストドライバ113からのクラッシュの監視開始の通知を受信する(ステップS33)。そして、クラッシュの監視開始の通知の受信を契機として、ゲストドライバ121は、対応するゲストOS12が使用する仮想デバイス122にアクセスして、仮想デバイス122から自己の動作する仮想マシン124に対応するプロセスのプロセス識別情報を読み出して取得する(ステップS34)。
Thereafter, the waiting
この後、ゲストドライバ121は、仮想デバイス122から取得したプロセス識別情報を、ホストドライバ113に通知する(ステップS35)。そして、ゲストドライバ121は、ゲストOS12のパニック出口にゲストドライバ121を登録する(ステップS36)。ゲストドライバ121の登録は、例えば、クラッシュ発生時にゲストOS12のパニック出口から呼び出される関数を登録することにより行われる。この後、ゲストドライバ121は、ゲストOS12の終了待ち又はクラッシュの発生待ち処理を実行する(ステップS37)。
Thereafter, the
図9は、ダンプ採取処理フローであり、ゲストOS12のゲストドライバ121における処理を示す。
FIG. 9 is a dump collection processing flow and shows processing in the
ゲストドライバ121は、ゲストドライバ121の初期化処理及び仮想マシン識別情報作成処理の後(ステップS41)、OS状態監視スレッドとクラッシュ待ちスレッドとを生成する。OS状態監視スレッドは、OS状態監視スレッド実行部により実行される。クライアント待ちスレッドは、クライアント待ちスレッド実行部により実行される。OS状態監視スレッドとクライアント待ちスレッドとは、並行して実行される。なお、ステップS41の処理は、図8に示す処理である。
The
ゲストドライバ121、換言すれば、OS状態監視スレッド実行部は、ステップS41の後、情報処理システムにおけるイベント待ちの状態となる(ステップS42)。即ち、ゲストドライバ121は、クラッシュの監視開始の通知をホストドライバ113から受け取って、プロセス識別情報をホストドライバ113に返信し、ゲストOS12のパニック出口にゲストドライバ121を登録した後に、イベント待ちの状態になる。
The
この後、OS状態監視スレッド実行部は、イベントが発生すると、発生したイベントがゲストOS12の終了というイベントであるか否かを調べる(ステップS43)。発生したイベントがゲストOS12の終了というイベントでない場合には(ステップS43、No)、OS状態監視スレッド実行部は、ステップS42を繰り返す。 Thereafter, when an event occurs, the OS state monitoring thread execution unit checks whether the generated event is an event of termination of the guest OS 12 (step S43). When the generated event is not an event of termination of the guest OS 12 (No at Step S43), the OS state monitoring thread execution unit repeats Step S42.
発生したイベントがゲストOS12の終了というイベントである場合には(ステップS43、Yes)、OS状態監視スレッド実行部は、ゲストOS12のパニック出口へのゲストドライバ121の登録を解除して、ゲストOS12自体を終了させる(ステップS44)。
When the generated event is an event of termination of the guest OS 12 (step S43, Yes), the OS state monitoring thread execution unit cancels the registration of the
一方、ゲストドライバ121、換言すれば、クラッシュ待ちスレッド実行部は、ゲストOS12が自己におけるクラッシュの発生を検出すると、ゲストOS12のパニック出口に登録されているゲストドライバ121を呼び出す(ステップS45)。
On the other hand, the
呼び出されたゲストドライバ121は、仮想バス21を介してホストOS11に割り込むことにより、ホストドライバ113へ、ゲストOS12におけるクラッシュの発生を通知する(ステップS46)。
The called
そして、ゲストドライバ121は、ステップS46に続いて、又は、ステップS46と並行して、ゲストOS12によるメモリダンプの出力を抑止する処理ルーチンを呼び出して、メモリダンプの出力を抑止させる(ステップS47)。この処理ルーチンは、仮想マシン124の外部からゲストOS12の使用するメモリ123の内容を保存するまで、仮想マシン124のメモリ123の内容が変更されないようにする無限ループである。
Then, the
図10は、ダンプ採取処理フローであり、ホストOS11のホストドライバ113における処理を示す。
FIG. 10 is a dump collection processing flow and shows processing in the
ホストドライバ113は、ホストドライバ113の初期化処理及び仮想マシン識別情報作成処理の後(ステップS51)、OS状態監視スレッドと割り込み待ちスレッドとを生成する。OS状態監視スレッドは、OS状態監視スレッド実行部により実行される。割り込み待ちスレッドは、割り込み待ちスレッド実行部により実行される。OS状態監視スレッドと割り込み待ちスレッドとは、並行して実行される。なお、ステップS51の処理は、図7に示す処理である。
The
割り込み待ちスレッドの生成により、ホストドライバ113は、ゲストOS12のゲストドライバ121からの割り込みの受け付けが可能となる。ホストドライバ113は、ダンプ採取サービス部112からクラッシュの監視開始の要求を受け取って、クラッシュ監視対象の仮想化ID/プロセス一覧117を作成した後に、実際のクラッシュの監視を開始する。換言すれば、ホストドライバ113は、情報処理システムにおけるイベント待ち、及び、割り込み待ちの状態となる。
By generating the interrupt waiting thread, the
ホストドライバ113、換言すれば、OS状態監視スレッド実行部は、ステップS51の後、情報処理システムにおけるイベント待ちの状態となる(ステップS52)。
The
この後、OS状態監視スレッド実行部は、イベントが発生すると、発生したイベントがホストOS11の終了というイベントであるか否かを調べる(ステップS53)。発生したイベントがホストOS11の終了というイベントでない場合には(ステップS53、No)、OS状態監視スレッド実行部は、ステップS52を繰り返す。 Thereafter, when an event occurs, the OS state monitoring thread execution unit checks whether the generated event is an event of termination of the host OS 11 (step S53). When the generated event is not an event of termination of the host OS 11 (No at Step S53), the OS state monitoring thread execution unit repeats Step S52.
発生したイベントがホストOS11の終了というイベントである場合には(ステップS53、Yes)、OS状態監視スレッド実行部は、割り込み待ちスレッドを解除し(ステップS54)、仮想マシン一覧の仮想化ID/プロセス一覧117を破棄して(ステップS55)、処理を終了する。
When the generated event is an event of termination of the host OS 11 (step S53, Yes), the OS state monitoring thread execution unit releases the interrupt waiting thread (step S54), and the virtual machine list virtualization ID / process The
一方、ホストドライバ113、換言すれば、割り込み待ちスレッド実行部は、情報処理システムからの割り込みの待ち状態となる(ステップS56)。
On the other hand, the
割り込み待ちスレッド実行部は、ゲストOS12におけるクラッシュの発生に応じてゲストドライバ121により仮想バス21を介してホストOS11に割り込みが発生すると、発生した割り込みを捕捉する(ステップS57)。そして、割り込み待ちスレッドは、仮想化IDのような割り込みに付随する情報を参照することにより、割り込みがゲストOS12のクラッシュを契機として発生したものか否かを判定する(ステップS58)。
When an interrupt occurs in the
割り込みがゲストOS12のクラッシュを契機として発生したものでない場合には、ホストOS11で発生したイベントを契機として発生した割り込みであるので、割り込み待ちスレッド実行部は、捕捉した割り込みを、ホストOS11用の割り込み待ちスレッドに転送した後(ステップS59)、ステップS56を繰り返す。割り込み待ちスレッドがゲストOS12のクラッシュに起因する割り込みを処理するスレッドであるのに対して、ホストOS11用の割り込み待ちスレッド実行部はホストOS11に起因する割り込みを処理するスレッドである。
If the interrupt is not triggered by the crash of the
割り込みがゲストOS12のクラッシュを契機として発生した場合には、割り込み待ちスレッド実行部は、仮想化IDに基づいて、プロセス識別情報を解決する(ステップS510)。具体的には、割り込み待ちスレッド実行部は、割り込みの発生した仮想バス21に基づいて、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDを特定する。そして、特定した仮想化IDをキーとして用いて仮想化ID/プロセス一覧117を参照することにより、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を得る。これにより、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応する、ホストOS11のプロセスを特定することができる。
When an interrupt occurs when the
この後、割り込み待ちスレッド実行部は、特定した仮想マシン124をダンプ採取サービス部112に通知して(ステップS511)、ステップS56を繰り返す。この通知は、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を含む。
Thereafter, the interrupt waiting thread execution unit notifies the identified
図11は、ダンプ採取処理フローであり、ホストOS11のダンプ採取サービス部112における処理を示す。
FIG. 11 is a dump collection processing flow and shows processing in the dump
ダンプ採取サービス部112は、ダンプ採取サービス部112の初期化処理及び仮想マシン識別情報作成処理の後(ステップS61)、OS状態監視スレッドとクラッシュイベント待ちスレッドとを生成する。OS状態監視スレッドは、OS状態監視スレッド実行部により実行される。クラッシュイベント待ちスレッドは、クラッシュイベント待ちスレッド実行部により実行される。OS状態監視スレッドとクラッシュイベント待ちスレッドとは、並行して実行される。なお、ステップS61の処理は、図5及び図6に示す処理である。
The dump
ダンプ採取サービス部112、換言すれば、OS状態監視スレッド実行部は、ステップS61の後、情報処理システムにおけるイベント待ちの状態となる(ステップS62)。
After step S61, the dump
この後、OS状態監視スレッド実行部は、イベントが発生すると、発生したイベントがホストOS11の終了というイベントであるか否かを調べる(ステップS63)。発生したイベントがホストOS11の終了というイベントでない場合には(ステップS63、No)、OS状態監視スレッド実行部は、ステップS62を繰り返す。 Thereafter, when an event occurs, the OS state monitoring thread execution unit checks whether the generated event is an event of termination of the host OS 11 (step S63). When the event that has occurred is not an event of termination of the host OS 11 (No in step S63), the OS state monitoring thread execution unit repeats step S62.
発生したイベントがホストOS11の終了というイベントである場合には(ステップS63、Yes)、OS状態監視スレッド実行部は、クラッシュイベント待ちスレッドによるクラッシュイベントの受信を停止し(ステップS64)、ホストドライバ113にクラッシュ監視の停止を指示し(ステップS65)、仮想マシン一覧の仮想マシン/プロセス一覧118を破棄して(ステップS66)、処理を終了する。
If the event that has occurred is an event that the
一方、ダンプ採取サービス部112、換言すれば、クラッシュイベント待ちスレッド実行部は、情報処理システムのイベント待ち状態となる(ステップS67)。
On the other hand, the dump
クラッシュイベント待ちスレッド実行部は、ホストドライバ113からのクラッシュの発生通知を受信すると、クラッシュの発生通知に基づいて、クラッシュが発生したゲストOS12が動作する仮想マシン124を特定する。クラッシュの発生通知に基づくのは、仮想マシン124及びゲストOS12は、その仮想マシン124がどのプロセスとして実行されているか知ることができないためである。そして、割り込み待ちスレッド実行部は、仮想マシン124を特定すると、特定した仮想マシン124に対応して、ダンプ採取スレッドを起動する(ステップS68)。ダンプ採取スレッドは、仮想マシン124毎に起動される。従って、複数のダンプ採取スレッドが起動される場合がある。ダンプ採取スレッドは、ダンプ採取スレッド実行部により実行される。メモリダンプ処理はある程度時間のかかる処理であるため、ダンプ採取サービス部112の処理と、クラッシュイベント待ちスレッドの処理とは、非同期に実行される。
When the crash event waiting thread execution unit receives a crash occurrence notification from the
クラッシュイベント待ちスレッド実行部は、ダンプ採取スレッドを起動した後、ステップS67のイベント待ち状態に戻る。 After starting the dump collection thread, the crash event waiting thread execution unit returns to the event waiting state in step S67.
起動されたダンプ採取スレッド実行部は、クラッシュが発生したゲストOS12が使用するメモリ123の内容を、一時ファイルとして保存状態格納領域114に保存する(ステップS69)。そして、ダンプ採取スレッド実行部は、ダンプ変換処理を実行するダンプ変換スレッドを起動する(ステップS610)。
The activated dump collection thread execution unit stores the contents of the
この後、ダンプ採取スレッド実行部は、仮想マシン管理サービス部116に、仮想マシン124の停止と再起動を依頼する(ステップS611)。
Thereafter, the dump collection thread execution unit requests the virtual machine
一方、起動されたダンプ変換スレッド実行部は、保存状態格納領域114に保存されたメモリ123の内容の一時ファイルを、ダンプファイルの形式に変換して、ダンプ格納領域115に格納する(ステップS612)。
On the other hand, the activated dump conversion thread execution unit converts the temporary file having the contents of the
以上、本発明を実施例に基づいて説明したが、本発明は、その主旨の範囲内において種々の変形が可能である。 As mentioned above, although this invention was demonstrated based on the Example, this invention can be variously deformed within the range of the main point.
例えば、ゲストOS12からホストOS11へのクラッシュの通知に、仮想バス21以外を用いるようにしても良い。この場合、クラッシュの通知が、ハードウェア割り込みと同等の優先度で捕捉されるようにすればよい。また、クラッシュの通知において、仮想化ID以外の識別情報を用いるようにしても良い。
For example, a notification other than the
また、ゲストOS12のクラッシュのみでなく、ホストOS11のクラッシュを検出して、同様の手段により、仮想マシン制御部であるホストOS11が使用するメモリのダンプファイルを取得するようにしてもよい。
Further, not only the crash of the
また、ゲストOS12が動作する仮想マシン124が、仮想デバイス122以外の手段により、プロセス識別情報を保持するようにしてもよい。
Further, the
また、ホストドライバ113とダンプ採取サービス部112とを一体に形成するようにしてもよい。この場合、仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118とを一体に形成するようにしてもよい。
Further, the
また、ホストOS11が、仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118と備えるようにしてもよい。また、ホストOS11が、仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118とを一体に形成した一覧を備え、ホストドライバ113及びダンプ採取サービス部112からの要求に応じて必要な情報を提供するようにしてもよい。
Further, the
1 仮想マシン
2 ハイパーバイザ
3 ハードウェア
11 ホストOS
12 ゲストOS
21 仮想バス
111 ダンプ採取ツール
112 ダンプ採取サービス部
113 ホストドライバ
114 保存状態格納領域
115 ダンプ格納領域
116 仮想マシン管理サービス部
117 仮想化ID/プロセス一覧
118 仮想マシン/プロセス一覧
121 ゲストドライバ
122 仮想デバイス
123 メモリ
124 仮想マシン
125 仮想CPU
1
12 Guest OS
21
Claims (9)
前記複数の仮想マシンを制御する仮想マシン制御部と前記複数の仮想マシンそれぞれとを結ぶ複数の仮想バスを識別する複数の仮想バス識別情報と、前記複数の仮想マシンにそれぞれ対応した前記仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である第1対応情報を記憶する第1の記憶手段と、
前記複数のプロセス識別情報と、前記複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である第2対応情報を記憶する第2の記憶手段と、
前記複数の仮想マシンに含まれる第1の仮想マシンで動作する第1のOSより前記第1の仮想マシンに対応する第1の仮想バスに前記第1のOSの障害に対応した割り込みがあった場合に、前記第1対応情報および前記第2対応情報に基づき第1の仮想マシンを特定し、前記第1の仮想マシン上で動作する前記第1のOSが使用するメモリ領域の内容を保存する保存手段とを含む
ことを特徴とする情報処理装置。 An information processing apparatus that operates a plurality of virtual machines,
A plurality of virtual bus identification information for identifying a plurality of virtual buses connecting the virtual machine control unit for controlling the plurality of virtual machines and the plurality of virtual machines, and the virtual machine control corresponding to the plurality of virtual machines, respectively. First storage means for storing first correspondence information that is a correspondence relationship with a plurality of process identification information for identifying a process of a part;
Second storage means for storing second correspondence information which is a correspondence relationship between the plurality of process identification information and the plurality of virtual machine identification information for identifying the plurality of virtual machines;
There was an interrupt corresponding to the failure of the first OS on the first virtual bus corresponding to the first virtual machine from the first OS operating on the first virtual machine included in the plurality of virtual machines. A first virtual machine is identified based on the first correspondence information and the second correspondence information, and the contents of the memory area used by the first OS operating on the first virtual machine are stored. An information processing apparatus comprising: storage means.
ことを特徴とする請求項1に記載の情報処理装置。 The plurality of virtual buses are included in a hypervisor that configures the plurality of virtual machines by virtualizing a physical device of the information processing apparatus, and are assigned to each of the plurality of virtual machines by the hypervisor, The information processing apparatus according to claim 1, wherein bus identification information is given.
ことを特徴とする請求項1に記載の情報処理装置。 The storage means is notified of the occurrence of a failure by causing an interrupt to a virtual bus assigned to the first virtual machine when a failure occurs in the first guest OS from the first virtual machine. The process identification of the process of the virtual machine control unit corresponding to the virtual machine on which the first guest OS operates from the first storage unit based on the virtualization identification information of the virtual bus in which the interrupt occurred A virtual machine having the machine identification information obtained by obtaining the machine identification information of the virtual machine on which the first guest OS operates from the second storage unit based on the obtained process identification information; The content of a memory area used by the operating first OS is stored in a storage device different from the memory area. The information processing apparatus described.
前記ホストドライバは、前記第1の仮想マシンから障害の発生を通知された場合に、前記割り込みが発生した仮想バスの仮想バス識別情報に基づいて前記第1の記憶手段から前記第1のOSが動作する仮想マシンに対応する前記仮想マシン制御部のプロセスの前記プロセス識別情報を求め、
前記ダンプ採取サービス部は、求めた前記プロセス識別情報に基づいて前記第2の記憶手段から前記第1のOSが動作する仮想マシンの前記マシン識別情報を求め、求めた前記マシン識別情報を有する仮想マシンの前記メモリ領域の内容を、前記記憶装置に保存する
ことを特徴とする請求項3に記載の情報処理装置。 The storage means includes a host driver provided in a second OS that is the virtual machine control unit, and a dump collection service unit that is a service program of the second OS,
When the host driver is notified of the occurrence of a failure from the first virtual machine, the first OS stores the first OS from the first storage unit based on virtual bus identification information of the virtual bus in which the interrupt has occurred. Obtaining the process identification information of the process of the virtual machine control unit corresponding to the operating virtual machine;
The dump collection service unit obtains the machine identification information of the virtual machine on which the first OS operates from the second storage unit based on the obtained process identification information, and includes the obtained machine identification information. The information processing apparatus according to claim 3, wherein contents of the memory area of the machine are stored in the storage device.
更に、前記複数の仮想マシンに対応する前記仮想マシン制御部の複数のプロセスを識別するプロセス識別情報を格納する仮想デバイスを含み、
前記複数の仮想マシンの各々は、前記仮想デバイスに格納された前記プロセス識別情報を前記仮想マシン制御部に送り、
前記保存手段は、前記複数の仮想マシンの各々から受け取った前記プロセス識別情報を用いて、前記第1の記憶手段に、複数の前記仮想バス識別情報と複数の前記プロセス識別情報との対応関係である前記第1対応情報を記憶し、前記第2の記憶手段に、複数の前記プロセス識別情報と複数の前記マシン識別情報との対応関係である前記第2対応情報を記憶する
ことを特徴とする請求項1に記載の情報処理装置。 The information processing apparatus includes:
A virtual device for storing process identification information for identifying a plurality of processes of the virtual machine control unit corresponding to the plurality of virtual machines;
Each of the plurality of virtual machines sends the process identification information stored in the virtual device to the virtual machine control unit,
The storage unit uses the process identification information received from each of the plurality of virtual machines, and stores the correspondence between the plurality of virtual bus identification information and the plurality of process identification information in the first storage unit. The first correspondence information is stored, and the second correspondence information that is a correspondence relationship between the plurality of process identification information and the plurality of machine identification information is stored in the second storage unit. The information processing apparatus according to claim 1.
前記複数の仮想マシンの各々は、前記仮想マシン制御部から受け取った前記プロセス識別情報を、前記仮想デバイスに格納する
ことを特徴とする請求項5に記載の情報処理装置。 The storage means sends the process identification information for each of the processes of the virtual machine control unit corresponding to each of the plurality of virtual machines to each of the plurality of virtual machines,
The information processing apparatus according to claim 5, wherein each of the plurality of virtual machines stores the process identification information received from the virtual machine control unit in the virtual device.
前記複数の仮想マシンを制御する仮想マシン制御部が、前記仮想マシン制御部と前記複数の仮想マシンそれぞれとを結ぶ複数の仮想バスを識別する複数の仮想バス識別情報と、前記複数の仮想マシンにそれぞれ対応した前記仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である第1対応情報を、第1の記憶手段に記憶し、
前記仮想マシン制御部が、前記複数のプロセス識別情報と、前記複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である第2対応情報を、第2の記憶手段に記憶し、
前記仮想マシン制御部が、前記複数の仮想マシンに含まれる第1の仮想マシンで動作する第1のOSより前記第1の仮想マシンに対応する第1の仮想バスに前記第1のOSの障害に対応した割り込みがあった場合に、前記第1対応情報および前記第2対応情報に基づき第1の仮想マシンを特定し、前記第1の仮想マシン上で動作する前記第1のOSが使用するメモリ領域の内容を保存する
ことを特徴とする情報処理装置の制御方法。 A method for controlling an information processing apparatus in which a plurality of virtual machines operate,
A plurality of virtual bus identification information for identifying a plurality of virtual buses connecting the virtual machine control unit and each of the plurality of virtual machines; Storing first correspondence information, which is a correspondence relationship with a plurality of process identification information for identifying processes of the corresponding virtual machine control units, in a first storage unit;
The virtual machine control unit stores second correspondence information, which is a correspondence relationship between the plurality of process identification information and the plurality of virtual machine identification information for identifying the plurality of virtual machines, in a second storage unit;
The virtual machine control unit causes a failure of the first OS to a first virtual bus corresponding to the first virtual machine from a first OS operating on a first virtual machine included in the plurality of virtual machines. Is used, the first OS that operates on the first virtual machine is used by specifying the first virtual machine based on the first correspondence information and the second correspondence information. A method for controlling an information processing apparatus, characterized by storing the contents of a memory area.
前記制御プログラムは、コンピュータに、
前記複数の仮想マシンを制御する仮想マシン制御部が、前記仮想マシン制御部と前記複数の仮想マシンそれぞれとを結ぶ複数の仮想バスを識別する複数の仮想バス識別情報と、前記複数の仮想マシンにそれぞれ対応した前記仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である第1対応情報を、第1の記憶手段に記憶する処理と、
前記仮想マシン制御部が、前記複数のプロセス識別情報と、前記複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である第2対応情報を、第2の記憶手段に記憶する処理と、
前記仮想マシン制御部が、前記複数の仮想マシンに含まれる第1の仮想マシンで動作する第1のOSより前記第1の仮想マシンに対応する第1の仮想バスに前記第1のOSの障害に対応した割り込みがあった場合に、前記第1対応情報および前記第2対応情報に基づき第1の仮想マシンを特定し、前記第1の仮想マシン上で動作する前記第1のOSが使用するメモリ領域の内容を保存する処理とを実行させる
ことを特徴とする制御プログラム。 A control program for an information processing apparatus that operates a plurality of virtual machines,
The control program is stored in a computer.
A plurality of virtual bus identification information for identifying a plurality of virtual buses connecting the virtual machine control unit and each of the plurality of virtual machines; A process of storing first correspondence information, which is a correspondence relationship with a plurality of process identification information for identifying processes of the corresponding virtual machine control units, in a first storage unit;
Processing in which the virtual machine control unit stores second correspondence information, which is a correspondence relationship between the plurality of process identification information and the plurality of virtual machine identification information for identifying the plurality of virtual machines, in a second storage unit. When,
The virtual machine control unit causes a failure of the first OS to a first virtual bus corresponding to the first virtual machine from a first OS operating on a first virtual machine included in the plurality of virtual machines. Is used, the first OS that operates on the first virtual machine is used by specifying the first virtual machine based on the first correspondence information and the second correspondence information. A control program for executing a process for saving the contents of a memory area.
前記制御プログラムは、コンピュータに、
前記複数の仮想マシンを制御する仮想マシン制御部が、前記仮想マシン制御部と前記複数の仮想マシンそれぞれとを結ぶ複数の仮想バスを識別する複数の仮想バス識別情報と、前記複数の仮想マシンにそれぞれ対応した前記仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である第1対応情報を、第1の記憶手段に記憶する処理と、
前記仮想マシン制御部が、前記複数のプロセス識別情報と、前記複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である第2対応情報を、第2の記憶手段に記憶する処理と、
前記仮想マシン制御部が、前記複数の仮想マシンに含まれる第1の仮想マシンで動作する第1のOSより前記第1の仮想マシンに対応する第1の仮想バスに前記第1のOSの障害に対応した割り込みがあった場合に、前記第1対応情報および前記第2対応情報に基づき第1の仮想マシンを特定し、前記第1の仮想マシン上で動作する前記第1のOSが使用するメモリ領域の内容を保存する処理とを実行させる
ことを特徴とする記録媒体。 A computer-readable recording medium for recording a control program of an information processing apparatus on which a plurality of virtual machines operate,
The control program is stored in a computer.
A plurality of virtual bus identification information for identifying a plurality of virtual buses connecting the virtual machine control unit and each of the plurality of virtual machines; A process of storing first correspondence information, which is a correspondence relationship with a plurality of process identification information for identifying processes of the corresponding virtual machine control units, in a first storage unit;
Processing in which the virtual machine control unit stores second correspondence information, which is a correspondence relationship between the plurality of process identification information and the plurality of virtual machine identification information for identifying the plurality of virtual machines, in a second storage unit. When,
The virtual machine control unit causes a failure of the first OS to a first virtual bus corresponding to the first virtual machine from a first OS operating on a first virtual machine included in the plurality of virtual machines. Is used, the first OS that operates on the first virtual machine is used by specifying the first virtual machine based on the first correspondence information and the second correspondence information. A recording medium that executes processing for saving the contents of a memory area.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014004007A JP2015132979A (en) | 2014-01-14 | 2014-01-14 | Information processing device and control method thereof, control program and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014004007A JP2015132979A (en) | 2014-01-14 | 2014-01-14 | Information processing device and control method thereof, control program and recording medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015132979A true JP2015132979A (en) | 2015-07-23 |
Family
ID=53900126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014004007A Pending JP2015132979A (en) | 2014-01-14 | 2014-01-14 | Information processing device and control method thereof, control program and recording medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015132979A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853103B2 (en) | 2019-05-28 | 2023-12-26 | Denso Corporation | Vehicular device |
-
2014
- 2014-01-14 JP JP2014004007A patent/JP2015132979A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853103B2 (en) | 2019-05-28 | 2023-12-26 | Denso Corporation | Vehicular device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5176837B2 (en) | Information processing system, management method thereof, control program, and recording medium | |
JP4980792B2 (en) | Virtual machine performance monitoring method and apparatus using the method | |
US11157373B2 (en) | Prioritized transfer of failure event log data | |
US20140359343A1 (en) | Method, Apparatus and System for Switching Over Virtual Application Two-Node Cluster in Cloud Environment | |
CN110941481A (en) | Resource scheduling method, device and system | |
US20160226788A1 (en) | Managing use of lease resources allocated on fallover in a high availability computing environment | |
US20120246644A1 (en) | Virtual computer system and controlling method of virtual computer | |
JP5579650B2 (en) | Apparatus and method for executing monitored process | |
CN111459623B (en) | Method, device and computer for restoring running of application program | |
US9229820B2 (en) | Information processing device with memory dump function, memory dump method, and recording medium | |
WO2012004902A1 (en) | Computer system and system switch control method for computer system | |
WO2016000298A1 (en) | System exception capturing method, main system, shadow system and intelligent device | |
CN102708175A (en) | Automatic reconnection method and automatic reconnection device for contingency interrupt of database connection | |
US11706086B1 (en) | Method and system for monitoring switch on basis of BMC, and device and medium | |
JP5998577B2 (en) | Cluster monitoring apparatus, cluster monitoring method, and program | |
US7953914B2 (en) | Clearing interrupts raised while performing operating system critical tasks | |
JP5597293B2 (en) | Computer system and program | |
JP2011243012A (en) | Memory dump acquisition method for virtual computer system | |
US10324811B2 (en) | Opportunistic failover in a high availability cluster | |
JP2011159249A (en) | Computer system, method and program for managing virtual machine | |
JP2015132979A (en) | Information processing device and control method thereof, control program and recording medium | |
US20090300290A1 (en) | Memory Metadata Used to Handle Memory Errors Without Process Termination | |
JP5557612B2 (en) | Computer and transfer program | |
US20230254200A1 (en) | Network service management apparatus and network service management method | |
JP5390651B2 (en) | Computer system and program |