[go: up one dir, main page]

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 PDF

Info

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
Application number
JP2014004007A
Other languages
Japanese (ja)
Inventor
保利 鈴木
Yasutoshi Suzuki
保利 鈴木
朋美 大塚
Tomomi Otsuka
朋美 大塚
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
Fujitsu Social Science Labs Ltd
Original Assignee
Fujitsu Ltd
Fujitsu Social Science Labs 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, Fujitsu Social Science Labs Ltd filed Critical Fujitsu Ltd
Priority to JP2014004007A priority Critical patent/JP2015132979A/en
Publication of JP2015132979A publication Critical patent/JP2015132979A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device capable of reducing the load of collecting a memory dump.SOLUTION: A guest driver 121 notifies a host OS 11 of the occurrence of a fault by generating an interrupt in a virtual bus 21 allocated to a virtual machine 124 in which a guest OS 12 with the fault occurring therein operates. The host OS 11 acquires process identification information from a virtualization ID/process list 117 on the basis of a virtualization ID of the virtual bus 21 with the interrupt generated, acquires the virtual machine 124 in which the guest OS 12 with the fault occurring operates from a virtual machine/process list 118 on the basis of the process identification information, and collects contents of a memory 123 in a storage state storage area 114.

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.

特開2010−086181号公報JP 2010-086181 A

例えば、ゲスト仮想マシンのメモリが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.

情報処理システムの構成の一例を示す図である。It is a figure which shows an example of a structure of an information processing system. 情報処理システムの構成の一例を示す図であるIt is a figure showing an example of composition of an information processing system 情報処理システムの説明図である。It is explanatory drawing of an information processing system. 情報処理システムの説明図である。It is explanatory drawing of an information processing system. 識別情報作成処理フローである。It is an identification information creation processing flow. 識別情報作成処理フローである。It is an identification information creation processing flow. 識別情報作成処理フローである。It is an identification information creation processing flow. 識別情報作成処理フローである。It is an identification information creation processing flow. ダンプ採取処理フローである。It is a dump collection processing flow. ダンプ採取処理フローである。It is a dump collection processing flow. ダンプ採取処理フローである。It is a dump collection processing flow.

図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 hypervisor 2, and hardware 3, in other words, a physical computer. The plurality of OSs 1 include, for example, one host OS 11 and a plurality of guest OSs 12. For example, the host OS 11 operates on a virtual CPU 119 described later with reference to FIG. The guest OS 12 operates on, for example, a virtual machine 124 described later with reference to FIG.

ハードウェア3は、物理装置、例えば、物理CPUと、物理メモリと、物理I/O装置、換言すれば、物理入出力装置とを含む。物理メモリは主記憶装置(主メモリ)であり、物理I/O装置は例えば磁気ディスク装置のような周辺記憶装置である。   The hardware 3 includes a physical device, for example, a physical CPU, a physical memory, a physical I / O device, in other words, a physical input / output device. The physical memory is a main storage device (main memory), and the physical I / O device is a peripheral storage device such as a magnetic disk device.

ハイパーバイザ2は、ハードウェア3に含まれる物理的なCPU、物理的なメモリ、物理的なI/O装置等の物理装置を仮想化する。そして、ハイパーバイザ2は、仮想化された物理装置、換言すれば、仮想装置に対する要求を物理装置に転送し、また、物理装置からの応答を仮想装置に転送する。これにより、ハイパーバイザ2は仮想マシン124を構成する。   The hypervisor 2 virtualizes physical devices such as a physical CPU, a physical memory, and a physical I / O device included in the hardware 3. The hypervisor 2 transfers a virtualized physical device, in other words, a request for the virtual device to the physical device, and transfers a response from the physical device to the virtual device. As a result, the hypervisor 2 configures the virtual machine 124.

図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 virtual machines 124 and a plurality of guest OS 12, but only one virtual machine 124 and one guest OS 12 are shown.

情報処理システムは、1個のホストOS11と、複数の仮想マシン124とを含む。ホストOS11は、仮想マシン制御部であり、複数の仮想マシン124を制御する。各々の仮想マシン124上では、ゲストOS12が動作する。   The information processing system includes one host OS 11 and a plurality of virtual machines 124. The host OS 11 is a virtual machine control unit and controls a plurality of virtual machines 124. On each virtual machine 124, the guest OS 12 operates.

ホスト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 virtual CPU 119 and includes a dump collection tool 111, a dump collection service unit 112, a host driver 113, a saved state storage area 114, and a dump storage area 115. In the example of FIG. 1, the dump collection tool 111 includes a dump collection service unit 112 and a host driver 113. The dump collection tool 111 may be provided separately from the dump collection service unit 112 and the host driver 113. The guest OS 12 operates on the virtual machine 124 and includes a guest driver 121. The virtual machine 124 includes a virtual device 122, a memory 123, and a virtual CPU 125. The hypervisor 2 includes a virtual bus 21.

ホストOS11は、オペレーティングシステム又は制御プログラムであり、ハイパーバイザ2を呼び出して、仮想マシン124に仮想化されたCPU、メモリ、I/O装置等の資源を配分する。ホストOS11は、仮想マシン124の実行を制御する仮想マシン制御部である。ホストOS11は、例えば、ホストマシン上で動作する。   The host OS 11 is an operating system or a control program, and calls the hypervisor 2 to allocate resources such as a virtualized CPU, memory, and I / O device to the virtual machine 124. The host OS 11 is a virtual machine control unit that controls execution of the virtual machine 124. The host OS 11 operates on a host machine, for example.

ホストマシンは、例えば、ハイパーバイザ2上に1個だけ存在する特権的な仮想マシンである。ホストマシンである特権的な仮想マシンは、他の仮想マシン124、換言すれば、ゲストOS12が動作する仮想マシン124と異なり、直接、物理装置にアクセスすることができる。従って、ホストマシンである特権的な仮想マシンは、ゲストOS12が動作する仮想マシン124とは、動作が全く異なる。   The host machine is, for example, a privileged virtual machine that exists only on the hypervisor 2. A privileged virtual machine that is a host machine can directly access a physical device, unlike other virtual machines 124, in other words, a virtual machine 124 in which the guest OS 12 operates. Therefore, the privileged virtual machine that is the host machine is completely different from the virtual machine 124 in which the guest OS 12 operates.

また、ホストマシンは、例えば、物理マシンそれ自体であってもよい。また、ホスト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 virtual machine 124 does not need to operate on the virtual machine, and does not operate on the control program that operates on the hypervisor 2 or on the virtual CPU 119. It may be a control program that runs on the CPU.

以上から、図2においては、仮想マシン制御部であるホストOS11が動作するホストマシンの図示を省略している。一方、仮想マシン制御部であるホストOS11が、ハイパーバイザ2により仮想化される仮想CPU119上で動作しているように図示しているが、ホストOS11は、前述したように、仮想CPU119ではなく、直接、物理CPU上で動作しても、又は、物理CPUに対応する論理CPU上で動作してもよい。   From the above, in FIG. 2, illustration of a host machine on which the host OS 11 that is a virtual machine control unit operates is omitted. On the other hand, the host OS 11 that is the virtual machine control unit is illustrated as operating on the virtual CPU 119 that is virtualized by the hypervisor 2, but the host OS 11 is not the virtual CPU 119, as described above. It may operate directly on a physical CPU or may operate on a logical CPU corresponding to the physical CPU.

仮想マシン124は、ホストOS11によって割り当てられた仮想装置、換言すれば、ゲストマシンとして構成される。仮想マシン124は、ホストOS11上のプロセス、具体的には、子プロセスとして実行される。仮想マシン124上でゲストOS12が動作する。なお、仮想マシン124上にゲストOS12が存在しなくてもよい。   The virtual machine 124 is configured as a virtual device assigned by the host OS 11, in other words, a guest machine. The virtual machine 124 is executed as a process on the host OS 11, specifically, as a child process. The guest OS 12 operates on the virtual machine 124. Note that the guest OS 12 does not have to exist on the virtual machine 124.

ゲストOS12は、動作している仮想マシン124上、換言すれば、仮想CPU125及び仮想化されたメモリ123上で動作し、仮想化されたI/O装置、例えば仮想デバイス122にアクセスすることができる。ゲストOS12は、ホストOS11又はハイパーバイザ2を経由して、仮想装置に対するアクセスを物理装置に転送し、アクセスの結果を物理装置から返信される。   The guest OS 12 operates on the operating virtual machine 124, in other words, the virtual CPU 125 and the virtualized memory 123, and can access a virtualized I / O device, for example, the virtual device 122. . The guest OS 12 transfers access to the virtual device to the physical device via the host OS 11 or the hypervisor 2, and the access result is returned from the physical device.

ゲストOS12において、ゲストドライバ121は、ホストOS11に障害の発生を通知する通知手段であり、複数のゲストOS12の各々に設けられる。ゲストドライバ121は、自己の属するゲストOS12、換言すれば、対応するゲストOS12に障害が発生した場合に、ホストOS11に、障害が発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21に割り込みを発生することにより、障害の発生を通知する。換言すれば、仮想マシン124は、その上で動作するゲストOS12に障害が発生した場合に、自己に割り当てられた仮想バス21に割り込みを発生することにより、障害の発生を通知する。ゲストドライバ121は、複数のゲストOS12の各々に設けられる。ゲストドライバ121は、例えば、カーネルドライバであり、ゲストOS12に設けられる。   In the guest OS 12, the guest driver 121 is a notification unit that notifies the host OS 11 of the occurrence of a failure, and is provided in each of the plurality of guest OSs 12. When a failure occurs in the guest OS 12 to which the guest driver 121 belongs, in other words, in the corresponding guest OS 12, the virtual bus 21 assigned to the host machine 11 and the virtual machine 124 in which the failed guest OS 12 operates. The occurrence of a fault is notified by generating an interrupt. In other words, when a failure occurs in the guest OS 12 that operates on the virtual machine 124, the virtual machine 124 notifies the occurrence of the failure by generating an interrupt to the virtual bus 21 assigned to itself. The guest driver 121 is provided in each of the plurality of guest OSs 12. The guest driver 121 is a kernel driver, for example, and is provided in the guest OS 12.

具体的には、ゲストドライバ121は、ゲストOS12のパニック出口としてゲストOS12に登録される。例えば、ゲストドライバ121は、ゲストOS12の起動時に呼び出されて、ゲストOS12の予め定められた位置、具体的にはパニック出口に組み込まれる。そして、ゲストドライバ121は、ゲストOS12にクラッシュが発生した場合に、ゲストOS12から呼び出され、仮想マシンとハードウェアとの間を結ぶ仮想バス21に割り込みを発生させる。   Specifically, the guest driver 121 is registered in the guest OS 12 as a panic exit of the guest OS 12. For example, the guest driver 121 is called when the guest OS 12 is activated, and is incorporated in a predetermined position of the guest OS 12, specifically, a panic exit. The guest driver 121 is called from the guest OS 12 when a crash occurs in the guest OS 12, and generates an interrupt on the virtual bus 21 connecting the virtual machine and the hardware.

仮想デバイス122は、複数の仮想マシン124の各々に設けられる記憶装置である。仮想デバイス122は、自己が接続された仮想マシン124がホストOS11のプロセスとして実行される場合における当該プロセスを識別するプロセス識別情報を格納する。換言すれば、仮想デバイス122は、自己が接続された仮想マシン124に対応した、仮想マシン制御部であるホストOS11のプロセスを識別するプロセス識別情報を格納する。   The virtual device 122 is a storage device provided in each of the plurality of virtual machines 124. The virtual device 122 stores process identification information for identifying the process when the virtual machine 124 to which the virtual device 122 is connected is executed as a process of the host OS 11. In other words, the virtual device 122 stores process identification information that identifies the process of the host OS 11 that is the virtual machine control unit corresponding to the virtual machine 124 to which the virtual device 122 is connected.

プロセス識別情報は、例えば、ホストOS11のダンプ採取サービス部112により、仮想デバイス122に書き込まれる。プロセス識別情報の書込みは、例えば、仮想マシン124の生成時に実行される。これは、プロセス識別情報が仮想マシン124に対応して定まるためである。   For example, the process identification information is written to the virtual device 122 by the dump collection service unit 112 of the host OS 11. The process identification information is written, for example, when the virtual machine 124 is created. This is because the process identification information is determined corresponding to the virtual machine 124.

実際には、仮想デバイス122としては、例えば、DVD(Dijital Versatile Disc)装置が用いられる。例えば、仮想デバイス122は、仮想マシン124に動的に組み込まれる。換言すれば、仮想デバイス122は、仮想マシン124に動的に組み込むことができる記憶装置であればよい。これにより、仮想マシン124の生成に応じて、生成される仮想マシン124に対応するプロセスのプロセス識別情報を仮想デバイス122に書き込み、生成される仮想マシン124で動作するゲストOS12のゲストドライバ121にプロセス識別情報を通知することができる。   Actually, as the virtual device 122, for example, a DVD (Digital Versatile Disc) apparatus is used. For example, the virtual device 122 is dynamically incorporated into the virtual machine 124. In other words, the virtual device 122 may be a storage device that can be dynamically incorporated into the virtual machine 124. Thereby, according to the generation of the virtual machine 124, the process identification information of the process corresponding to the generated virtual machine 124 is written in the virtual device 122, and the process is stored in the guest driver 121 of the guest OS 12 operating on the generated virtual machine 124. Identification information can be notified.

例えば、プロセス識別情報を書き込んだ仮想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 virtual device 122 to the virtual machine 124 to be activated.

仮想デバイス122は、DVD装置に限られず、他の種々の記憶装置を利用することができる。例えば、仮想マシン124の定義に追加することができるデバイス又はリソースであって、プロセス化された仮想マシン124の仮想デバイス122に対してデータを書き込むことができ、かつ、仮想デバイス122からゲストドライバ121がデータを読み出すことができるデバイスであればよい。   The virtual device 122 is not limited to a DVD device, and other various storage devices can be used. For example, a device or resource that can be added to the definition of the virtual machine 124, data can be written to the virtual device 122 of the processed virtual machine 124, and the guest driver 121 can be written from the virtual device 122. Any device that can read data is acceptable.

メモリ123は、ハードウェア3に含まれる主メモリの一部である。メモリ123は、仮想化されて複数の仮想マシン124の各々に含まれ、ゲストOS12が使用するメモリ領域である。   The memory 123 is a part of the main memory included in the hardware 3. The memory 123 is a memory area that is virtualized and included in each of the plurality of virtual machines 124 and is used by the guest OS 12.

ハイパーバイザ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 hypervisor 2, the virtual bus 21 is a virtual interrupt signal line that logically connects each of the plurality of virtual machines 124 and the physical CPU, for example. When a failure occurs, the guest OS 12 causes the virtual CPU of the virtual machine 124 in which the guest OS 12 is operating to execute an instruction that cannot be executed. As a result, an execution exception occurs in the virtual machine 124 in which the guest OS 12 in which the failure has occurred operates, so that the physical CPU eventually captures an interrupt to the virtual bus 21. Therefore, the virtual bus 21 generates an interrupt from the virtual machine 124 executing the guest OS 12 to the physical CPU. On the other hand, as described above, the host OS 11 operates on a host machine that is a privileged virtual machine or physical machine, and therefore processes an interrupt to the virtual bus 21 captured by the physical CPU. As a result, the virtual bus 21 logically connects each of the plurality of virtual machines 124 and the host OS 11. In other words, the plurality of virtual buses 21 connect the virtual machine control unit and each of the plurality of virtual machines. The plurality of virtual buses 21 are assigned one by one to each of the plurality of virtual machines 124 by the hypervisor 2 and given virtual bus identification information. The interrupt to the virtual bus 21 is an interrupt to the physical interrupt signal line to the physical CPU, in other words, the same priority as the hardware interrupt, in other words, the highest priority interrupt.

仮想マシン制御部であるホストOS11は、ゲストOS12に障害が発生した場合に、後述する第1対応情報および第2対応情報に基づいて、ゲストOS12が使用するメモリ123の内容を保存する。   When a failure occurs in the guest OS 12, the host OS 11 serving as the virtual machine control unit stores the contents of the memory 123 used by the guest OS 12 based on first correspondence information and second correspondence information described later.

例えば、複数の仮想マシン124に含まれるある仮想マシン124で動作するゲストOS12に障害が発生したとする。障害が発生したゲストOS12が動作する仮想マシン124を、第1の仮想マシン124ということとする。   For example, it is assumed that a failure has occurred in the guest OS 12 operating on a certain virtual machine 124 included in the plurality of virtual machines 124. The virtual machine 124 on which the guest OS 12 in which the failure has occurred operates is referred to as the first virtual machine 124.

複数の仮想マシン124の各々は、対応するゲストOS12に障害が発生した場合に、障害が発生したゲストOS12が動作する仮想マシン124、換言すれば、第1の仮想マシン124に割り当てられた仮想バス21に割り込みを発生させることにより、仮想マシン制御部であるホストOS11に障害の発生を通知する。   Each of the plurality of virtual machines 124, when a failure occurs in the corresponding guest OS 12, the virtual machine 124 in which the failed guest OS 12 operates, in other words, the virtual bus allocated to the first virtual machine 124. By causing 21 to generate an interrupt, the occurrence of a failure is notified to the host OS 11 which is the virtual machine control unit.

ホストOS11は、複数の仮想マシン124に含まれる第1の仮想マシン124で動作するゲストOS12より、第1の仮想マシン124に対応する第1の仮想バス21に、ゲストOS12の障害に対応した割り込みがあった場合に、第1対応情報および第2対応情報に基づき第1の仮想マシン124を特定し、特定した第1の仮想マシン124上で動作するゲストOS12が使用するメモリ123の内容を保存する。第1対応情報は、後述するように、複数の仮想バスを識別する複数の仮想バス識別情報と、複数の仮想マシンにそれぞれ対応した仮想マシン制御部のプロセスを識別する複数のプロセス識別情報との対応関係である。第2対応情報は、後述するように、複数のプロセス識別情報と、複数の仮想マシンを識別する複数の仮想マシン識別情報との対応関係である。   The host OS 11 receives an interrupt corresponding to the failure of the guest OS 12 from the guest OS 12 operating in the first virtual machine 124 included in the plurality of virtual machines 124 to the first virtual bus 21 corresponding to the first virtual machine 124. If there is, the first virtual machine 124 is identified based on the first correspondence information and the second correspondence information, and the contents of the memory 123 used by the guest OS 12 operating on the identified first virtual machine 124 are saved. To do. As will be described later, the first correspondence information includes a plurality of virtual bus identification information for identifying a plurality of virtual buses and a plurality of process identification information for identifying processes of the virtual machine control unit respectively corresponding to the plurality of virtual machines. It is correspondence. As will be described later, the second correspondence information is a correspondence relationship between a plurality of process identification information and a plurality of virtual machine identification information for identifying a plurality of virtual machines.

実際には、ホストOS11において、ダンプ採取ツール111が、メモリダンプの保存手段であり、ゲストOS12のクラッシュ時に、ゲストOS12のクラッシュ時におけるゲストOS12が使用するメモリ123の内容の保存を行う。メモリダンプは、保存されたメモリ123の内容を、予め定められたフォーマットに変換したものである。保存されたメモリ123の内容は、メモリダンプに変換可能であり、ダンプ採取ツール111によりメモリダンプに変換される。従って、メモリダンプ処理は、情報処理システムのホストOS11により実行される。   In practice, in the host OS 11, the dump collection tool 111 is a memory dump storage unit that stores the contents of the memory 123 used by the guest OS 12 when the guest OS 12 crashes. The memory dump is obtained by converting the stored contents of the memory 123 into a predetermined format. The stored contents of the memory 123 can be converted into a memory dump and converted into a memory dump by the dump collection tool 111. Accordingly, the memory dump process is executed by the host OS 11 of the information processing system.

例えば、ダンプ採取ツール111は、ホストOS11に設けられる。ダンプ採取ツール111は、通知手段であるゲストドライバ121から障害の発生を通知された場合に、割り込みが発生した仮想バス21の仮想バス識別情報、例えば仮想化IDに基づいて、障害が発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める。複数の仮想マシン124の各々に対応するプロセスは、仮想マシン制御部であるホストOS11のプロセスである。   For example, the dump collection tool 111 is provided in the host OS 11. When the dump collection tool 111 is notified of the occurrence of a failure from the guest driver 121 as a notification means, the guest having a failure is generated based on the virtual bus identification information of the virtual bus 21 in which the interrupt has occurred, for example, the virtualization ID. The process identification information of the process corresponding to the virtual machine 124 on which the OS 12 operates is obtained. A process corresponding to each of the plurality of virtual machines 124 is a process of the host OS 11 which is a virtual machine control unit.

更に、ダンプ採取ツール111は、求めたプロセス識別情報に基づいて、障害が発生したゲストOS12が動作する仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求める。更に、ダンプ採取ツール111は、求めた障害が発生したゲストOS12が動作する仮想マシン124のメモリ123の内容を、記憶装置に保存する。換言すれば、求めた障害が発生したゲストOSが使用するメモリ123の内容が、記憶装置に採取される。記憶装置は、例えば、ホストOS11がアクセス可能であり、メモリ123とは異なる記憶装置である。   Furthermore, the dump collection tool 111 obtains the virtual machine 124 on which the guest OS 12 in which the failure has occurred, specifically, the virtual machine name of the virtual machine 124 is obtained based on the obtained process identification information. Further, the dump collection tool 111 saves the contents of the memory 123 of the virtual machine 124 in which the guest OS 12 in which the requested failure has occurred in a storage device. In other words, the contents of the memory 123 used by the guest OS in which the requested failure has occurred are collected in the storage device. For example, the storage device can be accessed by the host OS 11 and is a storage device different from the memory 123.

具体的には、ダンプ採取ツール111は、ゲストドライバ121から障害の発生を通知された場合に、割り込みが発生した仮想バス21の仮想化IDに基づいて、第1の記憶手段である仮想化ID/プロセス一覧117から、障害が発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める。更に、ダンプ採取ツール111は、求めたプロセス識別情報に基づいて、第2の記憶手段である仮想マシン/プロセス一覧118から、障害が発生したゲストOS12が動作する仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求める。仮想化ID/プロセス一覧117及び仮想マシン/プロセス一覧118については後述する。仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118とを合せて仮想マシン一覧ということがある。   Specifically, when the dump collection tool 111 is notified of the occurrence of a failure from the guest driver 121, the virtualization ID that is the first storage unit is based on the virtualization ID of the virtual bus 21 in which the interrupt has occurred. / From the process list 117, process identification information of the process corresponding to the virtual machine 124 in which the guest OS 12 in which the failure has occurred operates is obtained. Further, the dump collection tool 111 determines, based on the obtained process identification information, from the virtual machine / process list 118 as the second storage unit, the virtual machine 124 in which the guest OS 12 in which the failure has occurred, specifically, The virtual machine name of the virtual machine 124 is obtained. The virtualization ID / process list 117 and the virtual machine / process list 118 will be described later. The virtualization ID / process list 117 and the virtual machine / process list 118 may be collectively referred to as a virtual machine list.

実際には、ダンプ採取ツール111において、ホストドライバ113は、ゲストOS12からのクラッシュの通知を検出して、ダンプ採取サービス部112にゲストOS12のクラッシュを通知する。ゲストOS12からのクラッシュの通知は、後述するように、仮想マシンとハードウェアとの間を論理的に結ぶ仮想バス21への割り込みを捕捉することにより検出される。ホストドライバ113は、例えば、カーネルドライバであり、ホストOS11に設けられる。   Actually, in the dump collection tool 111, the host driver 113 detects a crash notification from the guest OS 12, and notifies the dump collection service unit 112 of the crash of the guest OS 12. The notification of the crash from the guest OS 12 is detected by capturing an interrupt to the virtual bus 21 that logically connects the virtual machine and the hardware, as will be described later. The host driver 113 is a kernel driver, for example, and is provided in the host OS 11.

具体的には、ホストドライバ113は、通知手段であるゲストドライバ121から障害の発生を通知された場合に、ゲストドライバ121からの割り込みが発生した仮想バス21の仮想化IDに基づいて、仮想化ID/プロセス一覧117から、障害が発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める。ホストドライバ113は、求めたプロセスをダンプ採取サービス部112に通知する。   Specifically, when the host driver 113 is notified of the occurrence of a failure from the guest driver 121 as a notification unit, the host driver 113 performs virtualization based on the virtualization ID of the virtual bus 21 in which the interrupt from the guest driver 121 has occurred. From the ID / process list 117, process identification information of a process corresponding to the virtual machine 124 in which the guest OS 12 in which the failure has occurred operates is obtained. The host driver 113 notifies the dump collection service unit 112 of the obtained process.

また、ダンプ採取ツール111において、ダンプ採取サービス部112は、障害が発生したゲストOS12が動作する仮想マシン124を特定して、障害が発生したゲストOS12が動作する仮想マシン124が使用するメモリ123の内容を保存する。ダンプ採取サービス部112は、ホストOS11が提供するサービスプログラムである。   In the dump collection tool 111, the dump collection service unit 112 identifies the virtual machine 124 in which the guest OS 12 in which the failure has occurred operates, and the memory 123 used by the virtual machine 124 in which the guest OS 12 in which the failure has occurred operates. Save the contents. The dump collection service unit 112 is a service program provided by the host OS 11.

具体的には、ダンプ採取サービス部112は、ホストドライバ113が求めたプロセス識別情報に基づいて、仮想マシン/プロセス一覧118から、障害が発生したゲストOS12が動作する仮想マシン124、具体的には、仮想マシン124の仮想マシン名を求める。そして、ダンプ採取サービス部112は、求めた仮想マシン名を有する仮想マシン124のメモリ123、換言すれば、障害が発生したゲストOS12が使用するメモリ123の内容を、記憶装置に採取する。ゲストOS12が使用するメモリ123は、ゲストOS12が動作する仮想マシン124に含まれるメモリである。   Specifically, the dump collection service unit 112 determines, based on the process identification information obtained by the host driver 113, from the virtual machine / process list 118, the virtual machine 124 in which the failed guest OS 12 operates, specifically, The virtual machine name of the virtual machine 124 is obtained. Then, the dump collection service unit 112 collects the contents of the memory 123 of the virtual machine 124 having the obtained virtual machine name, in other words, the contents of the memory 123 used by the guest OS 12 in which a failure has occurred. The memory 123 used by the guest OS 12 is a memory included in the virtual machine 124 on which the guest OS 12 operates.

例えば、ダンプ採取サービス部112は、障害が発生したゲストOS12が使用するメモリ123にアクセスして、障害発生時におけるメモリ123の内容をコピーして、保存状態格納領域114に保存する。そして、ダンプ採取サービス部112は、保存状態格納領域114に保存したメモリ123の内容を読みだしてダンプファイルに変換し、ダンプ格納領域115に格納する。   For example, the dump collection service unit 112 accesses the memory 123 used by the guest OS 12 in which the failure has occurred, copies the contents of the memory 123 at the time of the failure, and saves it in the storage state storage area 114. Then, the dump collection service unit 112 reads the contents of the memory 123 stored in the storage state storage area 114, converts the contents into a dump file, and stores the dump file in the dump storage area 115.

また、ダンプ採取サービス部112は、仮想マシン124の停止手段であって、通知手段であるゲストドライバ121によって障害の発生を通知された場合に、障害が発生したゲストOS12が動作する仮想マシン124を停止させる。また、ダンプ採取サービス部112は、仮想マシン124の再開手段であって、停止させた仮想マシン124を再開又は再起動させる。実際には、ダンプ採取サービス部112は、仮想マシン124の停止や再開を、ハイパーバイザ2に依頼する。ハイパーバイザ2は、ダンプ採取サービス部112から仮想マシン124の停止や再開の依頼を受けると、これに応じて、仮想マシン124を停止し再開する。   The dump collection service unit 112 is a means for stopping the virtual machine 124. When the guest driver 121, which is a notification means, notifies the occurrence of the failure, the dump collection service unit 112 displays the virtual machine 124 on which the guest OS 12 in which the failure has occurred operates. Stop. The dump collection service unit 112 is a restart unit for the virtual machine 124 and restarts or restarts the stopped virtual machine 124. Actually, the dump collection service unit 112 requests the hypervisor 2 to stop or restart the virtual machine 124. When receiving a request to stop or restart the virtual machine 124 from the dump collection service unit 112, the hypervisor 2 stops and restarts the virtual machine 124 accordingly.

図2の例では、ダンプ採取ツール111がダンプ採取サービス部112とホストドライバ113とを含むが、ダンプ採取ツール111を、ダンプ採取サービス部112及びホストドライバ113と別個に設けるようにしてもよい。   In the example of FIG. 2, the dump collection tool 111 includes the dump collection service unit 112 and the host driver 113. However, the dump collection tool 111 may be provided separately from the dump collection service unit 112 and the host driver 113.

例えば、ダンプ採取サービス部112はホストOS11のサービスプログラムであり、ホストドライバ113はホストOS11のカーネルドライバであり、ダンプ採取ツール111は、例えばホストOS11上で動作するアプリケーションとして設けられる。これにより、利用者は、ホストOS11の改変によることなく、メモリ123の内容を取得しメモリダンプを実行することができる。   For example, the dump collection service unit 112 is a service program of the host OS 11, the host driver 113 is a kernel driver of the host OS 11, and the dump collection tool 111 is provided as an application that operates on the host OS 11, for example. Thereby, the user can acquire the contents of the memory 123 and execute a memory dump without changing the host OS 11.

保存状態格納領域114は、ハードウェア3に含まれる磁気ディスク装置のような記憶装置の領域である。磁気ディスク装置のような記憶装置は、ホストOS11がアクセス可能であり、メモリ123とは異なる記憶装置である。保存状態格納領域114は、1個の領域であり、複数の仮想マシン124に共通である。   The storage state storage area 114 is an area of a storage device such as a magnetic disk device included in the hardware 3. A storage device such as a magnetic disk device can be accessed by the host OS 11 and is a storage device different from the memory 123. The saved state storage area 114 is one area and is common to a plurality of virtual machines 124.

ダンプ格納領域115は、ハードウェア3に含まれる磁気ディスク装置のような記憶装置の領域である。磁気ディスク装置のような記憶装置は、ホストOS11がアクセス可能であり、メモリ123とは異なる記憶装置である。ダンプ格納領域115は、1個の領域であり、複数の仮想マシン124に共通である。   The dump storage area 115 is an area of a storage device such as a magnetic disk device included in the hardware 3. A storage device such as a magnetic disk device can be accessed by the host OS 11 and is a storage device different from the memory 123. The dump storage area 115 is a single area and is common to a plurality of virtual machines 124.

図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 host OS 11 and processing executed by the guest OS 12. Specifically, FIG. 3 illustrates processing executed by the guest driver 121 of the guest OS 12 and processing executed by the host driver 113 and the dump collection service unit 112 of the host OS 11. In FIG. 3, only one guest OS 12 is shown.

ダンプ採取サービス部112は、ダンプ採取サービスの初期処理において、ゲスト制御処理の前処理を実行する。ゲスト制御処理の前処理は、仮想マシン124の仮想デバイス122にプロセス識別情報を書き込む処理である。書き込まれるプロセス識別情報は、指定された仮想マシン124に対応するホストOS11のプロセスを示す。仮想マシン124に対応するプロセスは、仮想マシン124毎に定められる。   The dump collection service unit 112 performs a pre-process of the guest control process in the initial process of the dump collection service. The pre-process for the guest control process is a process for writing process identification information in the virtual device 122 of the virtual machine 124. The written process identification information indicates the process of the host OS 11 corresponding to the designated virtual machine 124. A process corresponding to the virtual machine 124 is determined for each virtual machine 124.

仮想マシン管理サービス部116は、複数の仮想マシン124を管理するVMM(Virtual Machine Monitor)であり、仮想マシン124の開始、停止、削除、再開等の処理を行う。仮想マシン管理サービス部116は、ダンプ採取サービス部112からプロセス識別情報の書き込みを依頼されると、指定された仮想マシン124の仮想デバイス122へ、プロセス識別情報を書き込む。   The virtual machine management service unit 116 is a VMM (Virtual Machine Monitor) that manages a plurality of virtual machines 124, and performs processes such as starting, stopping, deleting, and restarting the virtual machine 124. When requested by the dump collection service unit 112 to write process identification information, the virtual machine management service unit 116 writes the process identification information to the virtual device 122 of the designated virtual machine 124.

例えば、ダンプ採取サービス部112は、情報処理システムの仮想マシン管理サービス部116を呼び出す。呼び出された仮想マシン管理サービス部116は、例えば仮想化されたDVD装置のような仮想デバイス122を用意して、ホストマシンに接続する。ホストマシン上で動作するホストOS11のダンプ採取サービス部112は、用意された仮想DVD装置内の書込み可能なDVDに、プロセス識別情報を書き込む。この後、仮想マシン管理サービス部116は、仮想DVD装置をホストマシンから切断して、ゲストマシンに接続する。接続されるゲストマシンは、そのゲストマシンに対応するホストOS11のプロセスであって、書き込まれるプロセス識別情報を有するプロセスに対応する。   For example, the dump collection service unit 112 calls the virtual machine management service unit 116 of the information processing system. The called virtual machine management service unit 116 prepares a virtual device 122 such as a virtualized DVD device and connects it to the host machine. The dump collection service unit 112 of the host OS 11 running on the host machine writes process identification information to a writable DVD in the prepared virtual DVD device. Thereafter, the virtual machine management service unit 116 disconnects the virtual DVD device from the host machine and connects it to the guest machine. The guest machine to be connected corresponds to a process of the host OS 11 corresponding to the guest machine and having process identification information to be written.

ゲストOS12のゲストドライバ121は、ゲストドライバ121の初期処理として、プロセス識別取得処理を実行する。プロセス識別取得処理は、仮想デバイス122からプロセス識別情報を取得する処理である。これにより、仮想マシン124に対応するプロセスを外部から識別する情報が取得される。   The guest driver 121 of the guest OS 12 executes a process identification acquisition process as an initial process of the guest driver 121. The process identification acquisition process is a process for acquiring process identification information from the virtual device 122. Thereby, information for identifying the process corresponding to the virtual machine 124 from the outside is acquired.

初期処理の後、ゲストドライバ121は、クラッシュ検知処理を開始、換言すれば、ゲストOS12のパニック出口として登録される。クラッシュ検知処理は、クラッシュ発生時に、ゲストOS12から呼び出される処理である。この呼び出しのために、ゲストドライバ121は、ゲストOS12のパニック出口として登録される。クラッシュの検知は、実際には、ゲストOS12自体が種々の手段により実行する。従って、ゲストOS12は、自己のクラッシュを検知すると、自己のパニック出口として登録されたゲストドライバ121を呼び出す。   After the initial process, the guest driver 121 starts the crash detection process, in other words, is registered as a panic exit of the guest OS 12. The crash detection process is a process called from the guest OS 12 when a crash occurs. For this call, the guest driver 121 is registered as a panic exit of the guest OS 12. In practice, the guest OS 12 itself performs the crash detection by various means. Therefore, when the guest OS 12 detects its own crash, the guest OS 12 calls the guest driver 121 registered as its own panic exit.

また、ゲストドライバ121は、クラッシュ通知処理を実行する。クラッシュ通知処理は、クラッシュの発生時に、換言すれば、ゲストOS12から呼び出された場合に、ゲストOS12が動作する仮想マシン124と、仮想マシン制御部であるホストOS11との間を論理的に結ぶ仮想バス21に割り込みを発生する処理である。クラッシュ通知処理は、例えば、クラッシュ検知処理に続いて実行される。   Further, the guest driver 121 executes a crash notification process. The crash notification process is a virtual link that logically connects between the virtual machine 124 in which the guest OS 12 operates and the host OS 11 as the virtual machine control unit when a crash occurs, in other words, when called from the guest OS 12. This is a process for generating an interrupt on the bus 21. The crash notification process is executed following the crash detection process, for example.

仮想バス21への割り込みは、ゲストドライバ121が動作する仮想マシン124に割り当てられた仮想バス21に発生する。仮想バス21は、例えば、ハイパーバイザ2により、仮想マシン124の開始時に、仮想マシン124毎に割り当てられる。従って、ゲストOS12のクラッシュは、個々のゲストOS12が動作している仮想マシン124に割り当てられた仮想バス21により、ホストドライバ113に通知される。   The interruption to the virtual bus 21 occurs in the virtual bus 21 assigned to the virtual machine 124 on which the guest driver 121 operates. The virtual bus 21 is assigned to each virtual machine 124 by the hypervisor 2 when the virtual machine 124 is started, for example. Accordingly, the crash of the guest OS 12 is notified to the host driver 113 through the virtual bus 21 assigned to the virtual machine 124 in which each guest OS 12 is operating.

また、ゲストドライバ121は、ダンプ出力抑止処理を実行する。ダンプ抑止処理は、クラッシュ発生時に、換言すれば、ゲストOS12から呼び出された場合に、ゲストOS12によるメモリ123のダンプ採取を抑止する処理である。ダンプ出力抑止処理は、例えば、クラッシュ通知処理に続いて又はクラッシュ通知処理と並行して実行される。   In addition, the guest driver 121 executes dump output suppression processing. The dump suppression process is a process of suppressing dumping of the memory 123 by the guest OS 12 when a crash occurs, in other words, when called from the guest OS 12. The dump output suppression process is executed, for example, following the crash notification process or in parallel with the crash notification process.

ゲストOS12は、通常、ゲストOS12のメモリ123のメモリダンプを採取する機能であるダンプ採取機能を含むので、ゲストOS12のクラッシュ時に、メモリダンプが採取されてしまう。そこで、ゲストドライバ121は、クラッシュ発生時に、ゲストOS12によるメモリ123のダンプ採取を抑止する。   Since the guest OS 12 usually includes a dump collection function that is a function of collecting the memory dump of the memory 123 of the guest OS 12, a memory dump is collected when the guest OS 12 crashes. Therefore, the guest driver 121 suppresses dumping of the memory 123 by the guest OS 12 when a crash occurs.

一方、ホストOS11のホストドライバ113は、割り込み捕捉処理を実行する。割り込み捕捉処理は、ゲストドライバ121による仮想バス21への割り込みを捕捉する処理である。換言すれば、割り込み捕捉処理は、ゲストドライバ121からのクラッシュ通知を受信する受信処理である。ゲストドライバ121からのクラッシュ通知のための割り込みの優先度は最優先である。そこで、ホストドライバ113は、割り込み捕捉処理を繰り返し実行する。割り込み捕捉処理は、例えば、最初のゲストOS12の開始の後に実行される。   On the other hand, the host driver 113 of the host OS 11 executes an interrupt capturing process. The interrupt capturing process is a process for capturing an interrupt to the virtual bus 21 by the guest driver 121. In other words, the interrupt capturing process is a receiving process for receiving a crash notification from the guest driver 121. The priority of the interrupt for the crash notification from the guest driver 121 is the highest priority. Therefore, the host driver 113 repeatedly executes the interrupt capturing process. The interrupt capturing process is executed after the start of the first guest OS 12, for example.

また、ホストドライバ113は、クラッシュ判定処理を開始、換言すれば、ホストOS11の予め定められた位置に登録する。クラッシュ判定処理は、クラッシュ判定時に、ホストOS11から呼び出される処理である。この呼び出しのために、ホストドライバ113は、ホストOS11の予め定められた位置に登録される。クラッシュ判定処理は、仮想バス21への全ての割り込みを調べて、ゲストOS12のクラッシュを通知する割り込みと、それ以外の割り込みとを判別する処理である。クラッシュ判定処理は、例えば、割り込み捕捉処理に続いて実行される。   Further, the host driver 113 starts the crash determination process, in other words, registers at a predetermined position of the host OS 11. The crash determination process is a process called from the host OS 11 when a crash is determined. For this call, the host driver 113 is registered at a predetermined position of the host OS 11. The crash determination process is a process for checking all interrupts to the virtual bus 21 and determining an interrupt notifying the guest OS 12 of a crash and other interrupts. The crash determination process is executed, for example, following the interrupt capturing process.

また、ホストドライバ113は、プロセス識別情報解決処理を実行する。プロセス識別情報解決処理は、クラッシュが発生したゲストOS12がどの仮想マシン124に対応するプロセスで動作しているかを解決する処理、換言すれば、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を求める処理である。プロセス識別情報解決処理は、例えば、割り込みがゲストOS12のクラッシュを通知する割り込みであると判別された場合に、クラッシュ判定処理に続いて実行される。   In addition, the host driver 113 executes process identification information resolution processing. The process identification information resolution process is a process for resolving the process corresponding to which virtual machine 124 the guest OS 12 in which the crash has occurred, in other words, corresponding to the virtual machine 124 in which the guest OS 12 in which the crash has occurred is operating. This is a process for obtaining process identification information of a process to be performed. The process identification information resolution process is executed following the crash determination process, for example, when it is determined that the interrupt is an interrupt for notifying the guest OS 12 of a crash.

また、ホストドライバ113は、クラッシュ発生通知処理を実行する。クラッシュ発生通知処理は、ゲストOS12にクラッシュが発生したことを、ダンプ採取サービス部112に通知する処理である。クラッシュ発生通知処理は、例えば、割り込みがゲストOS12のクラッシュを通知する割り込みであると判定された場合に、プロセス識別情報解決処理に続いて実行される。クラッシュ発生通知処理において、プロセス識別情報解決処理により求められた、クラッシュが発生したゲストOS12が動作するプロセスのプロセス識別情報が、ダンプ採取サービス部112に通知される。   In addition, the host driver 113 executes a crash occurrence notification process. The crash occurrence notification process is a process for notifying the dump collection service unit 112 that a crash has occurred in the guest OS 12. The crash occurrence notification process is executed following the process identification information resolution process, for example, when it is determined that the interrupt is an interrupt for notifying the guest OS 12 of a crash. In the crash occurrence notification process, the process identification information of the process in which the guest OS 12 in which the crash has occurred, obtained by the process identification information resolution process, is notified to the dump collection service unit 112.

一方、ホストOS11のダンプ採取サービス部112は、メモリ内容保存処理、換言すれば、メモリ状態保存処理を実行する。メモリ状態保存処理は、クラッシュが発生したゲストOS12が使用するメモリ123の内容を保存する処理である。ゲストOS12が使用するメモリ123は、ゲストOS12が動作する仮想マシン124に含まれる仮想化されたメモリ、換言すれば、仮想メモリである。メモリ状態保存処理は、例えば、ダンプ採取サービス部112がゲストOS12にクラッシュが発生した通知をホストドライバ113から受け取った場合に実行される。   On the other hand, the dump collection service unit 112 of the host OS 11 executes a memory content saving process, in other words, a memory state saving process. The memory state saving process is a process for saving the contents of the memory 123 used by the guest OS 12 in which the crash has occurred. The memory 123 used by the guest OS 12 is a virtualized memory included in the virtual machine 124 on which the guest OS 12 operates, in other words, a virtual memory. The memory state saving process is executed, for example, when the dump collection service unit 112 receives a notification from the host driver 113 that the guest OS 12 has crashed.

メモリ状態保存処理により、クラッシュが発生したゲストOS12が使用するメモリ123の内容がコピーされて、予め定められた記憶領域、換言すれば、保存状態格納領域114に格納される。保存状態格納領域114は、例えば、ダンプ採取ツール111により予め定められる。例えば、利用者は、ホストOS11上で動作するダンプ採取ツール111に端末からアクセスして、保存状態格納領域114を予め定めることができる。   Through the memory state saving process, the contents of the memory 123 used by the guest OS 12 in which the crash has occurred are copied and stored in a predetermined storage area, in other words, in the saved state storage area 114. The storage state storage area 114 is determined in advance by the dump collection tool 111, for example. For example, the user can access the dump collection tool 111 operating on the host OS 11 from the terminal and determine the storage state storage area 114 in advance.

メモリ状態保存処理は、メモリ123の内容をコピーして保存状態格納領域114に格納するのみであるので、ダンプファイルの作成と比べて短時間で処理を終了することができる。また、メモリ状態保存処理が終了すると、ダンプファイルの作成を待たずに、クラッシュが発生したゲストOS12が動作する仮想マシン124を停止し、再開することができる。   Since the memory state saving process only copies the contents of the memory 123 and stores it in the saving state storage area 114, the process can be completed in a shorter time than the creation of the dump file. When the memory state saving process is completed, the virtual machine 124 on which the guest OS 12 in which the crash occurred can be stopped and restarted without waiting for the creation of the dump file.

メモリ内容保存処理の後、ダンプ採取サービス部112は、メモリ内容保存処理の後処理として、ダンプ変換処理を実行する。ダンプ変換処理は、保存状態格納領域114に格納したメモリ123の内容を、予め定められたフォーマットのダンプファイルに変換して保存する処理である。ダンプ変換処理は、メモリ状態保存処理の実行の後において、ゲスト制御処理の実行の後に又はゲスト制御処理の実行と並行して、ゲスト制御処理の実行の障害とならないタイミングで実行される。   After the memory content saving process, the dump collection service unit 112 executes a dump conversion process as a post process of the memory content saving process. The dump conversion process is a process of converting the contents of the memory 123 stored in the storage state storage area 114 into a dump file having a predetermined format and storing it. The dump conversion process is executed after the execution of the memory state saving process, at a timing that does not cause an obstacle to the execution of the guest control process after the guest control process or in parallel with the guest control process.

ダンプ変換処理により、保存状態格納領域114に格納したメモリ123の内容がダンプファイルに変換されて、予め定められた記憶領域、換言すれば、ダンプ格納領域115に格納される。ダンプ格納領域115は、例えば、ダンプ採取ツール111により予め定められる。例えば、利用者は、ホストOS11上で動作するダンプ採取ツール111に端末からアクセスして、ダンプ格納領域115を予め定めることができる。   By the dump conversion process, the contents of the memory 123 stored in the saved state storage area 114 are converted into a dump file and stored in a predetermined storage area, in other words, the dump storage area 115. The dump storage area 115 is predetermined by the dump collection tool 111, for example. For example, the user can access the dump collection tool 111 operating on the host OS 11 from the terminal and determine the dump storage area 115 in advance.

ダンプ変換処理は、例えば、ゲスト制御処理の実行の障害とならないタイミングで実行される。換言すれば、ゲスト制御処理がダンプ変換処理に優先して実行される。これにより、メモリ状態保存処理の終了の後に、ゲスト制御処理を実行することができる。   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 collection service unit 112 executes guest control processing. The guest control process is a process for controlling the state of the virtual machine 124 that is executing the guest OS 12 in which the crash has occurred. For example, the dump collection service unit 112 calls the virtual machine management service unit 116 of the information processing system and requests the called virtual machine management service unit 116 to control the virtual device 122 used by the specified guest OS 12. Accordingly, the guest control process is actually executed by the virtual machine management service unit 116.

ゲスト制御処理は、ダンプ採取サービス部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 collection service unit 112 receives a notification that a crash has occurred in the guest OS 12. By the guest control process, the state of the virtual machine 124 on which the guest OS 12 operates is left as it is, or is stopped or restarted.

なお、図3において説明した処理は、各々、ゲストドライバ121、ホストドライバ113又はダンプ採取サービス部112のルーチン又はサブルーチンとして実現するようにしてもよい。   3 may be realized as a routine or a subroutine of the guest driver 121, the host driver 113, or the dump collection service unit 112, respectively.

図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 virtual machine 124B, in other words, the virtual machine B is executed as the process Y, and the guest OS 12B operates on the virtual machine 124B. A virtual CPU 125B, in other words, virtual CPU-1 is assigned to the virtual machine 124B. The guest OS 12 and the guest driver 121 corresponding to the virtual machine 124B are represented as a guest OS 12B and a guest driver 121B, respectively. The same applies to virtual machine A and virtual machine C. In FIG. 4, it is assumed that a crash occurs in the virtual machine B.

前述したように、ホストOS11が複数のゲストOS12についてのメモリダンプを実行するためには、ホストOS11が、クラッシュしたゲストOS12がどの仮想マシン124で動作中であるのかを知る必要がある。   As described above, in order for the host OS 11 to perform a memory dump for a plurality of guest OSs 12, the host OS 11 needs to know which virtual machine 124 the crashed guest OS 12 is operating on.

ここで、情報処理システムにおいて、仮想マシン124は情報処理システム又はホストOS11におけるプロセスとして存在する。このため、仮想マシン124のメモリ123の内容は、仮想マシン124の外部からも取得可能である。従って、クラッシュが発生した際のメモリ123の内容も仮想マシン124の外部から採取でき、メモリダンプを生成することができる。   Here, in the information processing system, the virtual machine 124 exists as a process in the information processing system or the host OS 11. Therefore, the contents of the memory 123 of the virtual machine 124 can be acquired from outside the virtual machine 124. Therefore, the contents of the memory 123 when a crash occurs can be collected from outside the virtual machine 124, and a memory dump can be generated.

しかし、ゲストOS12から見える仮想マシン124は1個だけであり、一方、情報処理システム上には複数の仮想マシン124が存在する。例えば、ホストOS11から見た場合に、1個の仮想マシン124は1つのプロセスであり、その上でゲストOS12が動作する。情報処理システムから見た仮想マシン124は、情報処理システムが管理する1セットの仮想ハードウェア(COP、メモリ、ストレージ、ネットワークデバイス等)の集合である。そして、情報処理システムにおいて、仮想ハードウェアは、仮想マシン124上のホストOS11及びゲストOS12と厳密に分離されている。このため、例えば、ゲストOS12は、そのゲストOS12自身がどの仮想マシン124上で動作するかを知ることはできない。   However, only one virtual machine 124 is visible from the guest OS 12, while there are a plurality of virtual machines 124 on the information processing system. For example, when viewed from the host OS 11, one virtual machine 124 is one process on which the guest OS 12 operates. The virtual machine 124 viewed from the information processing system is a set of a set of virtual hardware (COP, memory, storage, network device, etc.) managed by the information processing system. In the information processing system, the virtual hardware is strictly separated from the host OS 11 and the guest OS 12 on the virtual machine 124. For this reason, for example, the guest OS 12 cannot know on which virtual machine 124 the guest OS 12 itself operates.

以上から、ゲストOS12のクラッシュの発生を通知する場合、ゲストOS12の動作する仮想マシン124を情報処理システム上で識別可能な情報を、合わせて通知することができる必要がある。   From the above, when notifying the occurrence of a crash of the guest OS 12, it is necessary to be able to notify information that can identify the virtual machine 124 on which the guest OS 12 operates on the information processing system.

そこで、ダンプ採取サービス部112、ホストドライバ113、ゲストドライバ121が設けられる。ダンプ採取サービス部112は、仮想マシン124のプロセスを識別する情報、換言すれば、プロセス識別情報を持つ。ホストドライバ113は、仮想化システムの仮想バス21上で仮想ハードウェアを識別する情報、換言すれば、仮想化IDを持つ。ゲストドライバ121は、それ自体は、プロセス識別情報及び仮想化IDを持たない。   Therefore, a dump collection service unit 112, a host driver 113, and a guest driver 121 are provided. The dump collection service unit 112 has information for identifying the process of the virtual machine 124, in other words, process identification information. The host driver 113 has information for identifying virtual hardware on the virtual bus 21 of the virtualization system, in other words, a virtualization ID. The guest driver 121 itself does not have process identification information and virtualization ID.

そして、図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 / process list 117 is provided in the host driver 113. The virtualization ID / process list 117 is a first storage unit and is provided in the host OS 11 and stores first correspondence information that is a correspondence relationship between a plurality of virtual bus identification information and a plurality of process identification information. The virtual bus identification information is identification information for identifying the plurality of virtual buses 21 assigned to each of the plurality of virtual machines 124, and is uniquely determined. The process identification information is identification information for identifying a process of the host OS 11 corresponding to each of the plurality of virtual machines 124, and is uniquely determined. Therefore, the process identification information identifies the process of the virtual machine control unit corresponding to each of the plurality of virtual machines 124. The virtual bus identification information is, for example, a virtualization ID, and is information for identifying a plurality of virtual buses 21 in the hypervisor 2.

また、図4に示すように、例えば、ダンプ採取サービス部112に、仮想マシン/プロセス一覧118が設けられる。仮想マシン/プロセス一覧118は、第2の記憶手段であり、ホストOS11に設けられ、複数のプロセス識別情報と複数のマシン識別情報との対応関係である第2対応情報を記憶する。マシン識別情報は、複数の仮想マシン124を識別する識別情報である。マシン識別情報は、例えば、仮想マシン124の仮想マシン名であり、一意に定まる。   As shown in FIG. 4, for example, a virtual machine / process list 118 is provided in the dump collection service unit 112. The virtual machine / process list 118 is a second storage unit, is provided in the host OS 11, and stores second correspondence information that is a correspondence relationship between a plurality of process identification information and a plurality of machine identification information. The machine identification information is identification information for identifying a plurality of virtual machines 124. The machine identification information is, for example, the virtual machine name of the virtual machine 124 and is uniquely determined.

最初に、ホストOS11が複数のゲストOS12についてのメモリダンプを実行するために、以下のような前処理が実行される。   First, in order for the host OS 11 to execute a memory dump for a plurality of guest OSs 12, the following pre-processing is executed.

ホストOS11のダンプ採取サービス部112は、仮想マシン124に対応するプロセスのプロセス識別情報を、複数の仮想マシン124の各々に送る。複数の仮想マシン124の各々は、ホストOS11から受け取ったプロセス識別情報を、仮想デバイス122に格納する。   The dump collection service unit 112 of the host OS 11 sends process identification information of a process corresponding to the virtual machine 124 to each of the plurality of virtual machines 124. Each of the plurality of virtual machines 124 stores the process identification information received from the host OS 11 in the virtual device 122.

複数の仮想マシン124の各々のゲストドライバ121は、仮想デバイス122に格納されたプロセス識別情報を、ホストOS11のホストドライバ113に送る。   Each guest driver 121 of the plurality of virtual machines 124 sends the process identification information stored in the virtual device 122 to the host driver 113 of the host OS 11.

ホストOS11のホストドライバ113は、複数の仮想マシン124の各々から受け取ったプロセス識別情報を用いて、仮想化ID/プロセス一覧117に、複数の仮想マシン124の各々に割り当てられた複数の仮想バス21を識別する仮想バス識別情報、換言すれば、仮想化IDと、複数の仮想マシン124であるプロセスを識別するプロセス識別情報との対応関係である第1対応情報を記憶する。更に、ホストOS11のダンプ採取サービス部112は、仮想マシン/プロセス一覧118に、複数の仮想マシン124であるプロセスを識別するプロセス識別情報と、複数の仮想マシン124の各々の識別情報、換言すれば、仮想マシン名との対応関係である第1対応情報を記憶する。   The host driver 113 of the host OS 11 uses the process identification information received from each of the plurality of virtual machines 124 to store the plurality of virtual buses 21 assigned to each of the plurality of virtual machines 124 in the virtualization ID / process list 117. In other words, the first correspondence information that is a correspondence relationship between the virtualization ID and the process identification information that identifies the processes that are the plurality of virtual machines 124 is stored. Furthermore, the dump collection service unit 112 of the host OS 11 includes, in the virtual machine / process list 118, process identification information for identifying processes that are a plurality of virtual machines 124, and identification information for each of the plurality of virtual machines 124, in other words, First correspondence information that is a correspondence relationship with the virtual machine name is stored.

次に、情報処理システムの運用において、ホストOS11が、複数のゲストOS12についてのメモリダンプが、以下のように実行される。   Next, in the operation of the information processing system, the host OS 11 performs a memory dump for the plurality of guest OSs 12 as follows.

ゲストドライバ121は、ゲストOS12のクラッシュ発生を通知するため、予めそのゲストOS12に割り当てられた仮想化IDの仮想バス21に、割り込みを発生させる。換言すれば、ゲストドライバ121は、障害が発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21に割り込みを発生することにより、ホストOS11に障害の発生を通知する。   The guest driver 121 generates an interrupt to the virtual bus 21 of the virtualization ID assigned in advance to the guest OS 12 in order to notify the occurrence of the crash of the guest OS 12. In other words, the guest driver 121 notifies the host OS 11 of the occurrence of a failure by generating an interrupt on the virtual bus 21 assigned to the virtual machine 124 in which the guest OS 12 in which the failure has occurred operates.

具体的には、ゲストドライバ121は、自己が動作している仮想マシン124の仮想CPU125に、実行不可能な命令を実行させる。これにより、ゲストドライバ121が動作している仮想マシン124に割り当てられた仮想バス21に割り込みが発生する。   Specifically, the guest driver 121 causes the virtual CPU 125 of the virtual machine 124 in which the guest driver 121 is operating to execute an instruction that cannot be executed. As a result, an interrupt occurs in the virtual bus 21 assigned to the virtual machine 124 in which the guest driver 121 is operating.

ホストドライバ113は、割り込みの発生した仮想バス21から、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDを判定する。換言すれば、ホストドライバ113は、ゲストドライバ121により仮想バス21に発生させられた割り込みを捕捉することにより、ゲストドライバ121から障害の発生を通知される。   The host driver 113 determines the virtualization ID of the virtual bus 21 assigned to the virtual machine 124 in which the guest OS 12 in which the crash occurred operates from the interrupted virtual bus 21. In other words, the host driver 113 is notified of the occurrence of a failure from the guest driver 121 by capturing an interrupt generated on the virtual bus 21 by the guest driver 121.

ホストドライバ113は、判定した仮想化IDに基づいて仮想化ID/プロセス一覧117を参照して、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDに基づいて、仮想マシン124に対応するプロセスのプロセス識別情報を求める。   The host driver 113 refers to the virtualization ID / process list 117 based on the determined virtualization ID, and based on the virtualization ID of the virtual bus 21 assigned to the virtual machine 124 on which the guest OS 12 in which the crash occurred operates. Thus, the process identification information of the process corresponding to the virtual machine 124 is obtained.

ダンプ採取サービス部112は、求めたプロセス識別情報に基づいて仮想マシン/プロセス一覧118を参照して、メモリダンプを採取する対象の仮想マシン124を識別する。これにより、クラッシュが発生したゲストOS12が動作する仮想マシン124の使用するメモリ123の内容を保存状態格納領域114に保存し、ダンプファイルの形式に変換して、ダンプ格納領域115に格納することができる。   The dump collection service unit 112 refers to the virtual machine / process list 118 based on the obtained process identification information, and identifies the virtual machine 124 that is the target of collecting the memory dump. As a result, the contents of the memory 123 used by the virtual machine 124 on which the guest OS 12 in which the crash has occurred can be stored in the storage state storage area 114, converted into a dump file format, and stored in the dump storage area 115. it can.

以下、ホストOS11が複数のゲストOS12についてのメモリダンプを実行するための処理について説明する。   Hereinafter, processing for the host OS 11 to execute a memory dump for a plurality of guest OSs 12 will be described.

ホストドライバ113は、ホストOS11のカーネルドライバであるので仮想バス21への割り込みにおける仮想化IDを知ることができるが、プロセス識別情報は知ることができない。仮想化IDを知ることができるのは、ホストドライバ113のみである。ダンプ採取サービス部112は、プロセス識別情報は知ることができるが、仮想マシン124ではないので仮想化IDにアクセスすることはできない。仮想マシン124は、仮想マシン124を表すプロセス、換言すれば、仮想マシン124に対応するプロセスとは区別されるので、プロセス識別情報は知ることができない。ゲストOS12は、プロセス識別情報も仮想化IDも知ることはできない。   Since the host driver 113 is a kernel driver of the host OS 11, it can know the virtualization ID in the interrupt to the virtual bus 21, but cannot know the process identification information. Only the host driver 113 can know the virtualization ID. The dump collection service unit 112 can know the process identification information, but cannot access the virtualization ID because it is not the virtual machine 124. Since the virtual machine 124 is distinguished from a process representing the virtual machine 124, in other words, a process corresponding to the virtual machine 124, the process identification information cannot be known. The guest OS 12 cannot know the process identification information and the virtualization ID.

そこで、ダンプ採取サービス部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 collection service unit 112 writes the process identification information in the virtual device 122 of the virtual machine 124 when, for example, the virtual machine 124 is generated. The guest driver 121 of the guest OS 12 operating on the virtual machine 124 reads the process identification information of the virtual device 122 from the virtual device 122 and passes it to the host driver 113. In response to this, the host driver 113 creates a virtualization ID / process list 117. In addition, the host driver 113 passes the process identification information to the dump collection service unit 112. In response to this, the dump collection service unit 112 creates the virtual machine / process list 118. As a result, when an interrupt to the virtual bus 21 having a virtual ID that is uniquely assigned to the virtual machine 124 and has a unique ID occurs, the host driver 113 can obtain the corresponding process identification information, and the dump collection service The virtual machine name corresponding to the unit 112, in other words, the virtual machine 124, specifically, the virtual machine name of the virtual machine 124 can be obtained.

最初に、仮想マシン/プロセス一覧118の作成について説明する。   First, creation of the virtual machine / process list 118 will be described.

ダンプ採取サービス部112は、仮想マシン管理サービス部116に接続して、仮想マシン/プロセス一覧118を作成する。仮想マシン/プロセス一覧118は、仮想マシン124の情報として、仮想マシン名と、仮想マシン124の状態(実行中、停止中、削除)と、仮想マシン124に対応するプロセスのプロセス識別情報とを含む。   The dump collection service unit 112 connects to the virtual machine management service unit 116 and creates a virtual machine / process list 118. The virtual machine / process list 118 includes, as information on the virtual machine 124, a virtual machine name, a state of the virtual machine 124 (running, stopped, deleted), and process identification information of a process corresponding to the virtual machine 124. .

仮想マシン名と、仮想マシン124の状態は、例えば、仮想マシン/プロセス一覧118の作成時又は作成に先立って、ダンプ採取サービス部112により、仮想マシン124を管理する仮想マシン管理サービス部116から取得される。   The virtual machine name and the state of the virtual machine 124 are acquired from the virtual machine management service unit 116 that manages the virtual machine 124 by the dump collection service unit 112 when the virtual machine / process list 118 is created or prior to creation, for example. Is done.

仮想マシン124に対応するプロセスのプロセス識別情報は、実行中の仮想マシン124について与えられる一意な情報であり、仮想マシン124の定義とは独立に、実行中の仮想マシン124に対応するプロセスを識別する情報である。従って、プロセス識別情報は、例えば、ダンプ採取サービス部112により、仮想マシン管理サービス部116から取得した実行中の仮想マシン124の各々について定められる。また、プロセス識別情報を仮想マシン定義とは独立に定めることにより、1つの仮想マシン定義から複数の仮想マシン124を同時にプロセス化する場合にも対応することができる。   The process identification information of the process corresponding to the virtual machine 124 is unique information given to the running virtual machine 124, and identifies the process corresponding to the running virtual machine 124 independently of the definition of the virtual machine 124. Information. Accordingly, the process identification information is determined for each of the running virtual machines 124 acquired from the virtual machine management service unit 116 by the dump collection service unit 112, for example. Further, by defining the process identification information independently of the virtual machine definition, it is possible to cope with a case where a plurality of virtual machines 124 are simultaneously processed from one virtual machine definition.

ダンプ採取サービス部112は、仮想マシン/プロセス一覧118を作成すると、仮想マシン状態の監視を開始し、仮想マシン124のクラッシュの監視を開始する。ダンプ採取サービス部112は、予め定められた時間間隔で、仮想マシン管理サービス部116から仮想マシン状態を取得して、仮想マシン状態の変更に応じて、仮想マシン/プロセス一覧118を更新する。そして、新たに開始された仮想マシン124がある場合には、新たに開始された仮想マシン124について、新しいプロセス識別情報を作成し、その仮想マシン124に接続されている仮想デバイス122に書き込む。   When the dump collection service unit 112 creates the virtual machine / process list 118, the dump collection service unit 112 starts monitoring the virtual machine state and starts monitoring the crash of the virtual machine 124. The dump collection service unit 112 acquires the virtual machine state from the virtual machine management service unit 116 at predetermined time intervals, and updates the virtual machine / process list 118 according to the change of the virtual machine state. If there is a newly started virtual machine 124, new process identification information is created for the newly started virtual machine 124 and written to the virtual device 122 connected to the virtual machine 124.

仮想マシン管理サービス部116は、仮想マシン/プロセス一覧118を更新すると、ホストドライバ113に仮想マシン状態の変更を通知する。この通知は、状態変更の種別(追加、削除、実行中→停止、停止中→実行)と、仮想マシン124に対応するプロセスのプロセス識別情報とを含む。   When the virtual machine management service unit 116 updates the virtual machine / process list 118, the virtual machine management service unit 116 notifies the host driver 113 of a change in the virtual machine state. This notification includes the type of state change (addition, deletion, executing → stopped, stopped → executed) and process identification information of the process corresponding to the virtual machine 124.

次に、仮想化ID/プロセス一覧117の作成について説明する。   Next, creation of the virtualization ID / process list 117 will be described.

ホストドライバ113は、ゲストOS12からの割り込みを受付け、また、ダンプ採取サービス部112からの要求を受付ける。例えば、ホストドライバ113は、ダンプ採取サービス部112からの要求の処理において、仮想化ID/プロセス一覧117の作成と更新を行う。前述したように、ホストドライバ113は、ハイパーバイザ2を介してのみ仮想マシン124にアクセスできるので仮想化IDにはアクセスできるが、一方、仮想マシン124に対応するプロセスのプロセス識別情報にはアクセスできない。そこで、ダンプ採取サービス部112が仮想マシン124の仮想デバイス122に書き込んだプロセス識別情報を、ゲストドライバ121を介して読み込み、仮想化IDとプロセス識別情報とを対応付ける仮想化ID/プロセス一覧117を作成する。   The host driver 113 accepts an interrupt from the guest OS 12 and accepts a request from the dump collection service unit 112. For example, the host driver 113 creates and updates the virtualization ID / process list 117 in the processing of the request from the dump collection service unit 112. As described above, since the host driver 113 can access the virtual machine 124 only through the hypervisor 2, it can access the virtualization ID, but it cannot access the process identification information of the process corresponding to the virtual machine 124. . Therefore, the process ID information written to the virtual device 122 of the virtual machine 124 by the dump collection service unit 112 is read via the guest driver 121, and a virtualization ID / process list 117 that associates the virtualization ID with the process identification information is created. To do.

仮想化IDは、例えば、仮想化ID/プロセス一覧117の作成時又は作成に先立って、ホストドライバ113により、仮想バス21を管理するハイパーバイザ2から取得される。   For example, the virtualization ID is acquired from the hypervisor 2 that manages the virtual bus 21 by the host driver 113 when or before the creation of the virtualization ID / process list 117.

ホストドライバ113は、ダンプ採取サービス部112からIO要求を受け付ける。受け付けるIO要求には、クラッシュの監視開始、仮想マシン124の状態変更(VM開始、VM停止、VM削除)、クラッシュの監視終了の種別がある。   The host driver 113 receives an IO request from the dump collection service unit 112. The received IO requests include types of crash monitoring start, virtual machine 124 status change (VM start, VM stop, VM deletion), and crash monitoring end.

ホストドライバ113は、最初にクラッシュの監視開始の要求を受け取り、仮想化ID/プロセス一覧117の作成を開始する。具体的には、ホストドライバ113は、ハイパーバイザ2から仮想化IDを取得し、仮想化IDで識別される仮想マシン124がゲストドライバ121を持つ場合に、その仮想マシン124に対してクラッシュ監視の開始を通知し、応答として、ゲストドライバ121からその仮想マシン124に対応するプロセスのプロセス識別情報を受け取る。仮想化IDに対応するプロセス識別情報が得られた仮想マシン124は、クラッシュの監視対象であるため、仮想化ID/プロセス一覧117に追加される。   The host driver 113 first receives a request to start monitoring for crashes, and starts creating the virtualization ID / process list 117. Specifically, the host driver 113 acquires a virtualization ID from the hypervisor 2, and when the virtual machine 124 identified by the virtualization ID has the guest driver 121, the host driver 113 performs crash monitoring for the virtual machine 124. The start is notified, and the process identification information of the process corresponding to the virtual machine 124 is received from the guest driver 121 as a response. The virtual machine 124 for which the process identification information corresponding to the virtualization ID is obtained is added to the virtualization ID / process list 117 because it is a crash monitoring target.

なお、ゲストOS12からの割り込みの受付は初期処理の後に直ちに開始されるが、実際にゲストOS12からの割り込みが行われるのは、そのゲストOS12のゲストドライバ121の確認が完了し、ゲストOS12の情報が仮想化ID/プロセス一覧117への追加が行われてからである。   The acceptance of the interrupt from the guest OS 12 starts immediately after the initial processing, but the actual interrupt from the guest OS 12 is performed after the confirmation of the guest driver 121 of the guest OS 12 is completed and the information on the guest OS 12 Is added to the virtualization ID / process list 117.

ホストドライバ113は、クラッシュの監視開始後、仮想マシン124の状態変更の要求を受け取る。ホストドライバ113は、仮想マシン124の状態変更の内容に応じて、仮想化ID/プロセス一覧117を更新する。この際、変更要求に含まれるプロセス識別情報をキーとして仮想化ID/プロセス一覧117が更新される。   The host driver 113 receives a request to change the state of the virtual machine 124 after the start of crash monitoring. The host driver 113 updates the virtualization ID / process list 117 according to the contents of the status change of the virtual machine 124. At this time, the virtualization ID / process list 117 is updated using the process identification information included in the change request as a key.

ホストドライバ113は、ダンプ採取サービス部112の停止にともない、クラッシュ監視停止の要求を受け取る。この要求を受け取ったなら、仮想化ID/プロセス一覧117の全ての情報を破棄する。   The host driver 113 receives a request to stop crash monitoring as the dump collection service unit 112 stops. If this request is received, all information in the virtualization ID / process list 117 is discarded.

次に、ゲストドライバ121からホストドライバ113へのプロセス識別情報の引渡しについて説明する。   Next, delivery of process identification information from the guest driver 121 to the host driver 113 will be described.

ゲストドライバ121は、ホストドライバ113からのクラッシュの監視開始の通知を受け取って、これを契機として仮想デバイス122にアクセスし、自己が動作する仮想マシン124に対応するプロセスのプロセス識別情報を取得する。ゲストドライバ121は、取得したプロセス識別情報をホストドライバ113に送る。プロセス識別情報は、仮想マシン124の開始に当って、ダンプ採取サービス部112が一意に設定する値であるため、この処理はゲストドライバ121の初期化後に一回だけ実行されれば十分である。   Upon receiving the notification of the start of crash monitoring from the host driver 113, the guest driver 121 accesses the virtual device 122 as a trigger, and acquires process identification information of the process corresponding to the virtual machine 124 on which the guest driver 121 operates. The guest driver 121 sends the acquired process identification information to the host driver 113. Since the process identification information is a value that is uniquely set by the dump collection service unit 112 at the start of the virtual machine 124, it is sufficient that this process is executed only once after the initialization of the guest driver 121.

この際、例えば、ゲストドライバ121は、プロセス識別情報を予め定められたアドレスに設定する。予め定められたアドレスは、例えば、ホストOS11の使用する物理メモリである。ホストドライバ113は、ハイパーバイザ2によりゲストOS12上のアドレスをホストOS11の物理メモリ上のアドレスに変換して、直接参照する。これは、アドレス変換による直接参照である。   At this time, for example, the guest driver 121 sets the process identification information to a predetermined address. The predetermined address is, for example, a physical memory used by the host OS 11. The host driver 113 converts the address on the guest OS 12 into an address on the physical memory of the host OS 11 by the hypervisor 2 and directly refers to it. This is a direct reference by address translation.

なお、ゲストドライバ121が、取得したプロセス識別情報を、ハイパーバイザ2の持つ仮想マシン124の間の通信機能を使用して、ホストドライバ113に送るようにしてもよい。これは、ドライバ間の通信による間接参照である。   Note that the guest driver 121 may send the acquired process identification information to the host driver 113 using a communication function between the virtual machines 124 of the hypervisor 2. This is an indirect reference by communication between drivers.

次に、情報処理システムの運用における、ホストOS11による、複数のゲストOS12についてのメモリダンプについて説明する。   Next, a memory dump for a plurality of guest OSs 12 by the host OS 11 in the operation of the information processing system will be described.

ゲストドライバ121Bは、ゲストOS12Bのクラッシュの監視開始の通知をホストドライバ113から受け取り、プロセス識別情報をホストドライバ113に返す。そして、ゲストドライバ121Bは、ゲストOS12Bのパニック出口にゲストドライバ121Bを登録する。   The guest driver 121B receives from the host driver 113 a notification that the guest OS 12B has started to monitor crashes, and returns process identification information to the host driver 113. Then, the guest driver 121B registers the guest driver 121B at the panic exit of the guest OS 12B.

ゲスト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 guest driver 121B registered as a panic exit of the guest OS 12B is called. The called guest driver 121B sends a crash notification to the host driver 113. Specifically, the guest driver 121B generates an interrupt on the virtual bus 21 assigned to the virtual machine 124 in which the corresponding guest OS 12B is operating. A virtual ID is given to the virtual bus 21.

ホストOS11のホストドライバ113は、ゲストドライバ121Bからのクラッシュの通知を受け取り、割り込みの発生した仮想バス21に基づいて、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化ID「ID2」を特定する。そして、ホストドライバ113は、受け取ったクラッシュの通知の仮想化ID「ID2」をキーとして用いて、仮想化ID/プロセス一覧117を検索して、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報である「プロセスY」を得る。   The host driver 113 of the host OS 11 receives the notification of the crash from the guest driver 121B, and based on the virtual bus 21 in which the interrupt has occurred, the virtual bus 21 assigned to the virtual machine 124 in which the guest OS 12 in which the crash has occurred operates. The virtualization ID “ID2” is specified. Then, the host driver 113 searches the virtualization ID / process list 117 using the virtual ID “ID2” of the received notification of the crash as a key, and sends it to the virtual machine 124 on which the guest OS 12 in which the crash occurred operates. “Process Y” which is the process identification information of the corresponding process is obtained.

ホストドライバ113は、ダンプ採取サービス部112へクラッシュ発生を通知し、この際、プロセス識別情報「プロセスY」も通知する。   The host driver 113 notifies the dump collection service unit 112 of the occurrence of the crash, and at this time, also notifies the process identification information “process Y”.

ダンプ採取サービス部112は、ホストドライバ113に、仮想マシン124のクラッシュの監視の開始を指示する。この際、応答として、ホストドライバ113から、ダンプ採取サービス部112に、クラッシュ発生を通知する際に使用するインタフェース情報が送られる。   The dump collection service unit 112 instructs the host driver 113 to start monitoring the crash of the virtual machine 124. At this time, as a response, interface information used when notifying the occurrence of the crash is sent from the host driver 113 to the dump collection service unit 112.

ダンプ採取サービス部112は、ホストドライバ113から前述のインタフェース情報に従うクラッシュの発生通知を受け取り、受け取ったクラッシュの発生通知に含まれるプロセス識別情報「プロセスY」を取り出す。そして、ダンプ採取サービス部112は、取り出したプロセス識別情報「プロセスY」をキーとして用いて、仮想マシン/プロセス一覧118を検索して、クラッシュが発生したゲストOS12が動作する仮想マシン124の仮想マシン名である「仮想マシンB」を得る。これにより、クラッシュが発生した仮想マシンBと、クラッシュが発生した仮想マシンBが動作するプロセスYが特定される。   The dump collection service unit 112 receives a crash occurrence notification according to the above-described interface information from the host driver 113, and extracts process identification information “process Y” included in the received crash occurrence notification. Then, the dump collection service unit 112 searches the virtual machine / process list 118 using the extracted process identification information “process Y” as a key, and the virtual machine 124 of the virtual machine 124 on which the guest OS 12 in which the crash occurred operates. The name “virtual machine B” is obtained. Thereby, the virtual machine B in which the crash has occurred and the process Y in which the virtual machine B in which the crash has occurred operate are specified.

ダンプ採取サービス部112は、仮想マシンBを特定すると、特定した仮想マシンBに対するダンプ採取処理を実行する。例えば、ダンプ採取サービス部112は、クラッシュが発生した仮想マシンBのプロセスYが使用するメモリ123の障害発生時におけるメモリ123の内容をコピーして、保存状態格納領域114に保存する。そして、ダンプ採取サービス部112は、保存状態格納領域114に保存したメモリ123の内容を読みだしてダンプファイルに変換し、ダンプ格納領域115に格納する。   When the dump collection service unit 112 identifies the virtual machine B, the dump collection service unit 112 executes dump collection processing for the identified virtual machine B. For example, the dump collection service unit 112 copies the contents of the memory 123 at the time of failure of the memory 123 used by the process Y of the virtual machine B in which the crash has occurred, and saves it in the save state storage area 114. Then, the dump collection service unit 112 reads the contents of the memory 123 stored in the storage state storage area 114, converts the contents into a dump file, and stores the dump file in the dump storage area 115.

また、ダンプ採取サービス部112は、仮想マシン管理サービス部116に、仮想マシンBの停止と再起動を依頼する。   Further, the dump collection service unit 112 requests the virtual machine management service unit 116 to stop and restart the virtual machine B.

なお、仮想マシン124の停止又は再開に応じて仮想化ID/プロセス一覧117を更新するために、仮想マシン124の状態を監視する監視処理が実行される。この監視処理は、例えば、仮想マシン管理サービス部116により実行され、仮想マシン管理サービス部116から、仮想マシン124の状態が切り替わる度に、ホストドライバ113に仮想マシン124の状態の切り替わりを通知されることにより、仮想化ID/プロセス一覧117を更新する。   In order to update the virtualization ID / process list 117 according to the stop or restart of the virtual machine 124, a monitoring process for monitoring the state of the virtual machine 124 is executed. This monitoring process is executed by, for example, the virtual machine management service unit 116, and the virtual machine management service unit 116 notifies the host driver 113 of the switching of the state of the virtual machine 124 every time the state of the virtual machine 124 is switched. As a result, the virtualization ID / process list 117 is updated.

以上のように、本発明によれば、ホストOS11がゲストOS12のメモリ123のメモリダンプを採取することができる。これにより、採取したダンプファイルの保存先をホストOS11側に集約しているので、複数のゲストOS12の間でディスク領域を共用することができる。また、ゲストOS12が備えるダンプ採取機能を使用しないので、ゲストOS12が動作する仮想マシン124の各々に、ダンプ採取のためのリソースを割り当てる必要を無くすことができる。   As described above, according to the present invention, the host OS 11 can collect the memory dump of the memory 123 of the guest OS 12. Thereby, since the storage destinations of the collected dump files are collected on the host OS 11 side, the disk area can be shared among the plurality of guest OSs 12. In addition, since the dump collection function of the guest OS 12 is not used, it is possible to eliminate the need to allocate resources for dump collection to each of the virtual machines 124 on which the guest OS 12 operates.

例えば、前述したように、2GBの容量を持つメモリ123を使用するゲストOS11が10個存在する場合において、10個の仮想マシン124の全てについてメモリダンプを採取するとしても、20GBのディスク領域は必要ではなく、予備のディスク領域を考慮したとしても、例えば4GBのディスク領域を用意するだけでよい。なお、採取したメモリダンプは、次のメモリダンプの採取に障害のない時間で、例えば、ファイルとして出力すればよい。   For example, as described above, when there are ten guest OSs 11 using the memory 123 having a capacity of 2 GB, even if a memory dump is collected for all of the ten virtual machines 124, a disk area of 20 GB is required. Instead, even if a spare disk area is considered, for example, a 4 GB disk area need only be prepared. The collected memory dump may be output as a file, for example, at a time when there is no failure in collecting the next memory dump.

従って、情報処理システムで使用される高価な記憶装置を、発生が予測できないゲスト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 host OS 11 side, the configuration of the information processing system can be simplified with respect to the memory dump. Thereby, a plurality of virtual machines 124 can be more easily mounted on one piece of hardware.

また、本発明によれば、ホストドライバ113及びゲストドライバ121を設ける必要はあるが、メモリダンプ採取のための種々の設定を個々のゲストOS12に対して行う必要を無くすことができる。   Further, according to the present invention, it is necessary to provide the host driver 113 and the guest driver 121, but it is possible to eliminate the need to perform various settings for collecting the memory dump for each guest OS 12.

また、本発明によれば、ゲストOS12のメモリ123の内容の保存処理と、保存したメモリ123の内容のダンプファイルへの変換処理とは、異なるタイミングで、換言すれば、独立したタイミングで行うことができる。また、メモリ123の内容の保存処理は、メモリ123のコピーであるので高速で終了することができる。従って、ゲストOS12のクラッシュ発生時に、メモリ123の内容の保存処理のみを終了した時点でメモリダンプ採取が完了する前に、ゲストOS12の停止処理及び再開処理を実行することができる。これにより、通常のメモリダンプ採取によるよりも、仮想マシン124のダウンタイムを大幅に縮小することができる。   Further, according to the present invention, the process of saving the contents of the memory 123 of the guest OS 12 and the process of converting the saved contents of the memory 123 into a dump file are performed at different timings, in other words, at independent timings. Can do. In addition, the storage process of the contents of the memory 123 can be completed at high speed because it is a copy of the memory 123. Therefore, when the guest OS 12 crashes, the stop processing and the restart processing of the guest OS 12 can be executed before the memory dump collection is completed when only the storage processing of the contents of the memory 123 is completed. As a result, the downtime of the virtual machine 124 can be significantly reduced as compared with the normal memory dump collection.

また、本発明によれば、ゲスト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 hypervisor 2 such as a panic exit of the guest OS 12 or the virtual bus 21. Thus, at the OS level, it is only necessary to add the host driver 113 and the guest driver 121, and it is possible to eliminate the need to greatly change the guest OS 11 and the hypervisor 2. In addition, this prevents the memory dump collection function of each guest OS 12 from being appropriately configured or set, so that a dump is not collected or sufficient information cannot be acquired when a crash occurs. be able to.

図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 collection service unit 112 of the host OS 11 executes initialization processing of the dump collection service unit 112 (step S11). Thereby, the dump collection service unit 112 returns to a predetermined initial state.

初期化処理の後、ダンプ採取サービス部112は、仮想マシン124を識別するために用いられる、仮想マシン124に対応するプロセス識別情報の作成処理を開始し、仮想マシン124を予め定められた順に、例えば仮想マシン名の順に処理対象として、処理対象とした仮想マシン124の状態を判定する(ステップS12)。   After the initialization process, the dump collection service unit 112 starts creating process identification information corresponding to the virtual machine 124 used to identify the virtual machine 124, and sets the virtual machines 124 in a predetermined order. For example, the status of the virtual machine 124 to be processed is determined as the processing target in the order of the virtual machine name (step S12).

仮想マシン124の状態が実行中である場合に、ダンプ採取サービス部112は、実行中の仮想マシン124に対応するプロセスに対して、プロセス識別情報を作成して割り当てる(ステップS13)。そして、ダンプ採取サービス部112は、割り当てたプロセス識別情報を、プロセスに対応する仮想マシン124の仮想デバイス122に書き込む(ステップS14)。そして、ダンプ採取サービス部112は、実行中の仮想マシン124について、仮想マシン一覧である仮想マシン/プロセス一覧118に追加する(ステップS15)。   When the state of the virtual machine 124 is being executed, the dump collection service unit 112 creates and assigns process identification information to the process corresponding to the virtual machine 124 being executed (step S13). Then, the dump collection service unit 112 writes the assigned process identification information to the virtual device 122 of the virtual machine 124 corresponding to the process (step S14). Then, the dump collection service unit 112 adds the virtual machine 124 being executed to the virtual machine / process list 118, which is a virtual machine list (step S15).

この後、ダンプ採取サービス部112は、全ての仮想マシン124について、仮想マシン/プロセス一覧118への追加を終了したか否かを調べる(ステップS16)。全ての仮想マシン124について、仮想マシン/プロセス一覧118への追加を終了していない場合に、ダンプ採取サービス部112は、次の処理対象についてステップS12を繰り返す。   Thereafter, the dump collection service unit 112 checks whether or not all the virtual machines 124 have been added to the virtual machine / process list 118 (step S16). If the addition to the virtual machine / process list 118 has not been completed for all virtual machines 124, the dump collection service unit 112 repeats step S12 for the next processing target.

全ての仮想マシン124について、仮想マシン/プロセス一覧118への追加を終了した場合に、ダンプ採取サービス部112は、仮想マシン状態の監視を開始し(ステップS17)、また、ゲストOS12のクラッシュの監視を開始する(ステップS18)。ステップS17において、ダンプ採取サービス部112は、仮想マシン状態の監視の開始を、ホストドライバ113に通知する。   When all the virtual machines 124 have been added to the virtual machine / process list 118, the dump collection service unit 112 starts monitoring the virtual machine state (step S17), and also monitors the guest OS 12 for crashes. Is started (step S18). In step S17, the dump collection service unit 112 notifies the host driver 113 of the start of monitoring of the virtual machine state.

この後、ダンプ採取サービス部112は、ゲストOS12のクラッシュの通知を待つクラッシュ待ちの処理に入る(ステップS19)。   Thereafter, the dump collection service unit 112 enters a process of waiting for a crash waiting for a notification of a crash of the guest OS 12 (step S19).

一方、ダンプ採取サービス部112は、ステップS18の後、仮想マシン状態監視処理を開始する。仮想マシン状態監視処理は、仮想マシン124の状態を監視する状態監視スレッドにおいて実行される。状態監視スレッドは、例えば、ダンプ採取サービス部112により生成され、状態監視スレッド実行部により実行される。   On the other hand, the dump collection service unit 112 starts virtual machine state monitoring processing after step S18. The virtual machine state monitoring process is executed in a state monitoring thread that monitors the state of the virtual machine 124. For example, the state monitoring thread is generated by the dump collection service unit 112 and executed by the state monitoring thread execution unit.

ステップ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 virtual machine 124 from the virtual machine management service unit 116 at predetermined time intervals (step S110).

状態監視スレッド実行部は、仮想マシン状態を取得した場合に、取得した仮想マシン状態において仮想マシン状態に変更があるか否かを調べる(ステップ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 virtual machine 124, the state monitoring thread execution unit creates and assigns process identification information to the process corresponding to the newly started virtual machine 124. (Step S113). Then, the state monitoring thread execution unit writes the assigned process identification information to the virtual device 122 of the virtual machine 124 corresponding to the assigned process (step S114). Then, the state monitoring thread execution unit adds the newly started virtual machine 124 to the virtual machine / process list 118, which is a virtual machine list (step S115). As a result, the virtual machine / process list 118 is updated in accordance with the change in the virtual machine state that has occurred in the virtual machine 124.

この後、状態監視スレッド実行部は、ダンプ採取サービス部112に、仮想マシン状態を変更したことを通知する(ステップS116)。   Thereafter, the state monitoring thread execution unit notifies the dump collection service unit 112 that the virtual machine state has been changed (step S116).

ステップ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 virtual machine 124, the state monitoring thread execution unit updates the machine state in the virtual machine / process list 118 for the virtual machine 124 to be stopped ( Step S117). As a result, the virtual machine / process list 118 is updated in accordance with the change in the virtual machine state that has occurred in the virtual machine 124. Thereafter, the state monitoring thread execution unit executes Step S116.

ステップ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 virtual machine 124, the state monitoring thread execution unit deletes the virtual machine 124 to be deleted from the virtual machine / process list 118 (step S118). As a result, the virtual machine / process list 118 is updated in accordance with the change in the virtual machine state that has occurred in the virtual machine 124. Thereafter, the state monitoring thread execution unit executes Step S116.

この後、状態監視スレッド実行部は、予め定められた時間が経過するまで待機し(ステップ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 host driver 113 of the host OS 11.

ホストOS11のホストドライバ113は、ホストドライバ113の初期化処理を実行する(ステップS21)。これにより、ホストドライバ113は、予め定められた初期状態に復帰する。   The host driver 113 of the host OS 11 executes initialization processing for the host driver 113 (step S21). As a result, the host driver 113 returns to a predetermined initial state.

初期化処理の後、ホストドライバ113は、ゲストOS12からの仮想バス21を介しての割り込みの受付を開始する(ステップS22)。ゲストOS12からの割り込みの受付は、初期化処理の後、直ちに開始される。しかし、実際にゲストOS12からの割り込みが発生するのは、ゲストOS12が、下記のように、仮想化ID/プロセス一覧117へ追加された後である。   After the initialization process, the host driver 113 starts accepting an interrupt from the guest OS 12 via the virtual bus 21 (step S22). Acceptance of an interrupt from the guest OS 12 is started immediately after the initialization process. However, the interruption from the guest OS 12 actually occurs after the guest OS 12 is added to the virtualization ID / process list 117 as described below.

この後、ホストドライバ113は、ダンプ採取サービス部112からの種々の要求の受付を開始する(ステップS23)。ダンプ採取サービス部112からの要求の受付の処理において、以下のように、仮想化ID/プロセス一覧117の作成及び更新が実行される。   Thereafter, the host driver 113 starts accepting various requests from the dump collection service unit 112 (step S23). In the process of receiving a request from the dump collection service unit 112, the creation and update of the virtualization ID / process list 117 are executed as follows.

ステップS22の後、ホストドライバ113は、ゲストOS12のクラッシュの通知である仮想バス21への割り込みを待つ処理、換言すれば、クラッシュ発生待ちの処理に入る(ステップS24)。   After step S22, the host driver 113 enters a process of waiting for an interrupt to the virtual bus 21 that is a notification of a crash of the guest OS 12, in other words, a process of waiting for a crash to occur (step S24).

ステップS23の後、ホストドライバ113は、サービス要求の処理を開始し、ダンプ採取サービス部112からのIO要求を受け付ける(ステップS25)。そして、ホストドライバ113は、ダンプ採取サービス部112からのIO要求を受け付けると、受け付けたIO要求の種別や変更内容を判定する(ステップS26)。   After step S23, the host driver 113 starts service request processing and accepts an IO request from the dump collection service unit 112 (step S25). When the host driver 113 receives the IO request from the dump collection service unit 112, the host driver 113 determines the type of the received IO request and the change content (step S26).

ステップ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 virtual machine 124 or the deletion of the virtual machine 124, the host driver 113 uses the process identification information of the process corresponding to the virtual machine 124 to be stopped or deleted. Then, it is checked whether or not the virtual machine 124 to be stopped or deleted has been added to the virtualization ID / process list 117 of the virtual machine list with reference to the virtualization ID / process list 117 (step S27). When the virtual machine 124 to be stopped or deleted has been added to the virtualization ID / process list 117 (Yes in step S27), the host driver 113 determines that the virtual machine 124 to be stopped or deleted. Is deleted from the virtualization ID / process list 117 (step S28).

なお、ホストドライバ113は、停止や削除の対象である仮想マシン124が仮想化ID/プロセス一覧117に追加されていない場合には(ステップS27、No)、停止や削除の対象である仮想マシン124についての処理を行わない。   Note that the host driver 113 determines that the virtual machine 124 to be stopped or deleted is not added to the virtualization ID / process list 117 (No in step S27), and the virtual machine 124 to be stopped or deleted. Do not process for.

ステップ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 virtual machine 124 or the start of the virtual machine 124, the host driver 113 starts the process of creating and updating the virtualization ID / process list 117. First, the host driver 113 connects to the hypervisor 2 and acquires and enumerates the virtualization IDs of the virtual bus 21 assigned to the virtual machines 124 on which all the guest OSs 12 operate (step S29).

この後、ホストドライバ113は、予め定められた順に、例えば仮想化IDの昇順に、1個の仮想化IDを処理対象として、仮想化IDで識別される仮想マシン124がゲストドライバ121を含んでおり仮想化ID/プロセス一覧117に追加されているか否かを調べる(ステップS210)。処理対象である仮想マシン124が仮想化ID/プロセス一覧117に追加されている場合には(ステップS210、Yes)、ホストドライバ113は、次の処理対象である仮想マシン124についてステップS29を繰り返す。   Thereafter, the host driver 113 includes the guest driver 121 in the virtual machine 124 identified by the virtualization ID, with one virtualization ID as a processing target, in the ascending order of the virtualization ID, for example. It is checked whether it has been added to the cage virtualization ID / process list 117 (step S210). When the processing target virtual machine 124 has been added to the virtualization ID / process list 117 (step S210, Yes), the host driver 113 repeats step S29 for the next processing target virtual machine 124.

処理対象である仮想マシン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 virtual machine 124 has not been added to the virtualization ID / process list 117 (No in step S210), the host driver 113 starts the crash monitoring for the processing target virtual machine 124. Notification is made (step S211), and as a response to this notification, the process identification information is acquired from the virtual machine 124 to be processed (step S212). Then, the host driver 113 adds the acquired virtualization ID and process identification information corresponding to the acquired virtual machine 124 to the virtualization ID / process list 117 (step S213). Step S29 is repeated until the process for the virtualization ID is completed. As a result, the virtual machine 124 for which the virtualization ID and the process identification information corresponding to the virtualization ID can be acquired is registered in the virtualization ID / process list 117 and is subject to crash monitoring.

ステップS26において受け付けたIO要求が仮想マシン124のクラッシュの監視停止である場合には、ホストドライバ113は、仮想化ID/プロセス一覧117の全ての仮想マシン124についての情報を破棄する(ステップS214)。   If the IO request received in step S26 is to stop monitoring the crash of the virtual machine 124, the host driver 113 discards information on all virtual machines 124 in the virtualization ID / process list 117 (step S214). .

図8は、識別情報作成処理フローであり、ゲストOS12のゲストドライバ121における処理を示す。   FIG. 8 is an identification information creation processing flow, and shows processing in the guest driver 121 of the guest OS 12.

ゲストドライバ121は、ゲストドライバ121の初期化処理を実行する(ステップS31)。これにより、ゲストドライバ121は、予め定められた初期状態に復帰する。   The guest driver 121 executes initialization processing for the guest driver 121 (step S31). As a result, the guest driver 121 returns to a predetermined initial state.

初期化処理の後、ゲストドライバ121は、ホストドライバ113からのクラッシュの監視開始の通知の待ち状態となる(ステップS32)。   After the initialization process, the guest driver 121 waits for a crash monitoring start notification from the host driver 113 (step S32).

この後、待ち状態のゲストドライバ121は、ホストドライバ113からのクラッシュの監視開始の通知を受信する(ステップS33)。そして、クラッシュの監視開始の通知の受信を契機として、ゲストドライバ121は、対応するゲストOS12が使用する仮想デバイス122にアクセスして、仮想デバイス122から自己の動作する仮想マシン124に対応するプロセスのプロセス識別情報を読み出して取得する(ステップS34)。   Thereafter, the waiting guest driver 121 receives a notification of the start of crash monitoring from the host driver 113 (step S33). Upon receiving the notification of the start of monitoring the crash, the guest driver 121 accesses the virtual device 122 used by the corresponding guest OS 12, and the process of the process corresponding to the virtual machine 124 that operates itself from the virtual device 122. Process identification information is read and acquired (step S34).

この後、ゲストドライバ121は、仮想デバイス122から取得したプロセス識別情報を、ホストドライバ113に通知する(ステップS35)。そして、ゲストドライバ121は、ゲストOS12のパニック出口にゲストドライバ121を登録する(ステップS36)。ゲストドライバ121の登録は、例えば、クラッシュ発生時にゲストOS12のパニック出口から呼び出される関数を登録することにより行われる。この後、ゲストドライバ121は、ゲストOS12の終了待ち又はクラッシュの発生待ち処理を実行する(ステップS37)。   Thereafter, the guest driver 121 notifies the host driver 113 of the process identification information acquired from the virtual device 122 (step S35). Then, the guest driver 121 registers the guest driver 121 at the panic exit of the guest OS 12 (step S36). For example, the guest driver 121 is registered by registering a function called from a panic exit of the guest OS 12 when a crash occurs. Thereafter, the guest driver 121 executes a waiting process for waiting for the guest OS 12 to end or a crash occurrence (step S37).

図9は、ダンプ採取処理フローであり、ゲストOS12のゲストドライバ121における処理を示す。   FIG. 9 is a dump collection processing flow and shows processing in the guest driver 121 of the guest OS 12.

ゲストドライバ121は、ゲストドライバ121の初期化処理及び仮想マシン識別情報作成処理の後(ステップS41)、OS状態監視スレッドとクラッシュ待ちスレッドとを生成する。OS状態監視スレッドは、OS状態監視スレッド実行部により実行される。クライアント待ちスレッドは、クライアント待ちスレッド実行部により実行される。OS状態監視スレッドとクライアント待ちスレッドとは、並行して実行される。なお、ステップS41の処理は、図8に示す処理である。   The guest driver 121 generates an OS state monitoring thread and a crash waiting thread after the initialization process and the virtual machine identification information creation process of the guest driver 121 (step S41). The OS state monitoring thread is executed by the OS state monitoring thread execution unit. The client waiting thread is executed by the client waiting thread execution unit. The OS state monitoring thread and the client waiting thread are executed in parallel. The process in step S41 is the process shown in FIG.

ゲストドライバ121、換言すれば、OS状態監視スレッド実行部は、ステップS41の後、情報処理システムにおけるイベント待ちの状態となる(ステップS42)。即ち、ゲストドライバ121は、クラッシュの監視開始の通知をホストドライバ113から受け取って、プロセス識別情報をホストドライバ113に返信し、ゲストOS12のパニック出口にゲストドライバ121を登録した後に、イベント待ちの状態になる。   The guest driver 121, in other words, the OS state monitoring thread execution unit enters an event waiting state in the information processing system after step S41 (step S42). That is, the guest driver 121 receives a notification of the start of crash monitoring from the host driver 113, returns process identification information to the host driver 113, registers the guest driver 121 in the panic exit of the guest OS 12, and then waits for an event. become.

この後、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 guest driver 121 at the panic exit of the guest OS 12, and the guest OS 12 itself Is terminated (step S44).

一方、ゲストドライバ121、換言すれば、クラッシュ待ちスレッド実行部は、ゲストOS12が自己におけるクラッシュの発生を検出すると、ゲストOS12のパニック出口に登録されているゲストドライバ121を呼び出す(ステップS45)。   On the other hand, the guest driver 121, in other words, the crash waiting thread execution unit, when the guest OS 12 detects the occurrence of a crash in itself, calls the guest driver 121 registered in the panic exit of the guest OS 12 (step S45).

呼び出されたゲストドライバ121は、仮想バス21を介してホストOS11に割り込むことにより、ホストドライバ113へ、ゲストOS12におけるクラッシュの発生を通知する(ステップS46)。   The called guest driver 121 interrupts the host OS 11 via the virtual bus 21, thereby notifying the host driver 113 of the occurrence of a crash in the guest OS 12 (step S46).

そして、ゲストドライバ121は、ステップS46に続いて、又は、ステップS46と並行して、ゲストOS12によるメモリダンプの出力を抑止する処理ルーチンを呼び出して、メモリダンプの出力を抑止させる(ステップS47)。この処理ルーチンは、仮想マシン124の外部からゲストOS12の使用するメモリ123の内容を保存するまで、仮想マシン124のメモリ123の内容が変更されないようにする無限ループである。   Then, the guest driver 121 calls a processing routine for suppressing the output of the memory dump by the guest OS 12 subsequent to step S46 or in parallel with step S46, and suppresses the output of the memory dump (step S47). This processing routine is an infinite loop that prevents the contents of the memory 123 of the virtual machine 124 from being changed until the contents of the memory 123 used by the guest OS 12 are stored from outside the virtual machine 124.

図10は、ダンプ採取処理フローであり、ホストOS11のホストドライバ113における処理を示す。   FIG. 10 is a dump collection processing flow and shows processing in the host driver 113 of the host OS 11.

ホストドライバ113は、ホストドライバ113の初期化処理及び仮想マシン識別情報作成処理の後(ステップS51)、OS状態監視スレッドと割り込み待ちスレッドとを生成する。OS状態監視スレッドは、OS状態監視スレッド実行部により実行される。割り込み待ちスレッドは、割り込み待ちスレッド実行部により実行される。OS状態監視スレッドと割り込み待ちスレッドとは、並行して実行される。なお、ステップS51の処理は、図7に示す処理である。   The host driver 113 generates an OS state monitoring thread and an interrupt waiting thread after the initialization process of the host driver 113 and the virtual machine identification information creation process (step S51). The OS state monitoring thread is executed by the OS state monitoring thread execution unit. The interrupt waiting thread is executed by the interrupt waiting thread execution unit. The OS state monitoring thread and the interrupt waiting thread are executed in parallel. Note that the processing in step S51 is the processing shown in FIG.

割り込み待ちスレッドの生成により、ホストドライバ113は、ゲストOS12のゲストドライバ121からの割り込みの受け付けが可能となる。ホストドライバ113は、ダンプ採取サービス部112からクラッシュの監視開始の要求を受け取って、クラッシュ監視対象の仮想化ID/プロセス一覧117を作成した後に、実際のクラッシュの監視を開始する。換言すれば、ホストドライバ113は、情報処理システムにおけるイベント待ち、及び、割り込み待ちの状態となる。   By generating the interrupt waiting thread, the host driver 113 can accept an interrupt from the guest driver 121 of the guest OS 12. The host driver 113 receives a crash monitoring start request from the dump collection service unit 112 and creates a crash monitoring target virtualization ID / process list 117, and then starts actual crash monitoring. In other words, the host driver 113 enters an event waiting state and an interrupt waiting state in the information processing system.

ホストドライバ113、換言すれば、OS状態監視スレッド実行部は、ステップS51の後、情報処理システムにおけるイベント待ちの状態となる(ステップS52)。   The host driver 113, in other words, the OS state monitoring thread execution unit enters a state of waiting for an event in the information processing system after step S51 (step S52).

この後、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 list 117 is discarded (step S55), and the process is terminated.

一方、ホストドライバ113、換言すれば、割り込み待ちスレッド実行部は、情報処理システムからの割り込みの待ち状態となる(ステップS56)。   On the other hand, the host driver 113, in other words, the interrupt waiting thread execution unit waits for an interrupt from the information processing system (step S56).

割り込み待ちスレッド実行部は、ゲストOS12におけるクラッシュの発生に応じてゲストドライバ121により仮想バス21を介してホストOS11に割り込みが発生すると、発生した割り込みを捕捉する(ステップS57)。そして、割り込み待ちスレッドは、仮想化IDのような割り込みに付随する情報を参照することにより、割り込みがゲストOS12のクラッシュを契機として発生したものか否かを判定する(ステップS58)。   When an interrupt occurs in the host OS 11 via the virtual bus 21 by the guest driver 121 in response to the occurrence of a crash in the guest OS 12, the interrupt waiting thread execution unit captures the generated interrupt (step S57). Then, the interrupt waiting thread determines whether or not the interrupt is generated when the guest OS 12 crashes by referring to information accompanying the interrupt such as the virtualization ID (step S58).

割り込みがゲストOS12のクラッシュを契機として発生したものでない場合には、ホストOS11で発生したイベントを契機として発生した割り込みであるので、割り込み待ちスレッド実行部は、捕捉した割り込みを、ホストOS11用の割り込み待ちスレッドに転送した後(ステップS59)、ステップS56を繰り返す。割り込み待ちスレッドがゲストOS12のクラッシュに起因する割り込みを処理するスレッドであるのに対して、ホストOS11用の割り込み待ちスレッド実行部はホストOS11に起因する割り込みを処理するスレッドである。   If the interrupt is not triggered by the crash of the guest OS 12, it is an interrupt that was triggered by an event that occurred in the host OS 11, so the interrupt-waiting thread execution unit sends the captured interrupt to the interrupt for the host OS 11. After transferring to the waiting thread (step S59), step S56 is repeated. The interrupt waiting thread is a thread that processes an interrupt caused by the crash of the guest OS 12, whereas the interrupt waiting thread execution unit for the host OS 11 is a thread that processes an interrupt caused by the host OS 11.

割り込みがゲストOS12のクラッシュを契機として発生した場合には、割り込み待ちスレッド実行部は、仮想化IDに基づいて、プロセス識別情報を解決する(ステップS510)。具体的には、割り込み待ちスレッド実行部は、割り込みの発生した仮想バス21に基づいて、クラッシュが発生したゲストOS12が動作する仮想マシン124に割り当てられた仮想バス21の仮想化IDを特定する。そして、特定した仮想化IDをキーとして用いて仮想化ID/プロセス一覧117を参照することにより、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を得る。これにより、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応する、ホストOS11のプロセスを特定することができる。   When an interrupt occurs when the guest OS 12 crashes, the interrupt waiting thread execution unit resolves the process identification information based on the virtualization ID (step S510). Specifically, the interrupt waiting thread execution unit identifies the virtualization ID of the virtual bus 21 assigned to the virtual machine 124 in which the guest OS 12 in which the crash occurred operates based on the virtual bus 21 in which the interrupt has occurred. Then, by referring to the virtualization ID / process list 117 using the specified virtualization ID as a key, process identification information of a process corresponding to the virtual machine 124 on which the guest OS 12 in which the crash has occurred is obtained. Thereby, the process of the host OS 11 corresponding to the virtual machine 124 in which the guest OS 12 in which the crash occurred operates can be specified.

この後、割り込み待ちスレッド実行部は、特定した仮想マシン124をダンプ採取サービス部112に通知して(ステップS511)、ステップS56を繰り返す。この通知は、クラッシュが発生したゲストOS12が動作する仮想マシン124に対応するプロセスのプロセス識別情報を含む。   Thereafter, the interrupt waiting thread execution unit notifies the identified virtual machine 124 to the dump collection service unit 112 (step S511), and repeats step S56. This notification includes process identification information of a process corresponding to the virtual machine 124 in which the guest OS 12 in which the crash has occurred operates.

図11は、ダンプ採取処理フローであり、ホストOS11のダンプ採取サービス部112における処理を示す。   FIG. 11 is a dump collection processing flow and shows processing in the dump collection service unit 112 of the host OS 11.

ダンプ採取サービス部112は、ダンプ採取サービス部112の初期化処理及び仮想マシン識別情報作成処理の後(ステップS61)、OS状態監視スレッドとクラッシュイベント待ちスレッドとを生成する。OS状態監視スレッドは、OS状態監視スレッド実行部により実行される。クラッシュイベント待ちスレッドは、クラッシュイベント待ちスレッド実行部により実行される。OS状態監視スレッドとクラッシュイベント待ちスレッドとは、並行して実行される。なお、ステップS61の処理は、図5及び図6に示す処理である。   The dump collection service unit 112 generates an OS state monitoring thread and a crash event waiting thread after the initialization process and the virtual machine identification information creation process of the dump collection service unit 112 (step S61). The OS state monitoring thread is executed by the OS state monitoring thread execution unit. The crash event waiting thread is executed by the crash event waiting thread execution unit. The OS state monitoring thread and the crash event waiting thread are executed in parallel. The process of step S61 is the process shown in FIGS.

ダンプ採取サービス部112、換言すれば、OS状態監視スレッド実行部は、ステップS61の後、情報処理システムにおけるイベント待ちの状態となる(ステップS62)。   After step S61, the dump collection service unit 112, in other words, the OS state monitoring thread execution unit enters an event waiting state in the information processing system (step S62).

この後、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 host OS 11 has ended (step S63, Yes), the OS state monitoring thread execution unit stops receiving the crash event by the crash event waiting thread (step S64), and the host driver 113 Is instructed to stop crash monitoring (step S65), the virtual machine / process list 118 in the virtual machine list is discarded (step S66), and the process is terminated.

一方、ダンプ採取サービス部112、換言すれば、クラッシュイベント待ちスレッド実行部は、情報処理システムのイベント待ち状態となる(ステップS67)。   On the other hand, the dump collection service unit 112, in other words, the crash event waiting thread execution unit enters an event waiting state of the information processing system (step S67).

クラッシュイベント待ちスレッド実行部は、ホストドライバ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 host driver 113, the crash event waiting thread execution unit identifies the virtual machine 124 in which the guest OS 12 in which the crash occurred operates based on the crash occurrence notification. The reason for the occurrence of the crash is that the virtual machine 124 and the guest OS 12 cannot know as which process the virtual machine 124 is executed. Then, when specifying the virtual machine 124, the interrupt waiting thread execution unit activates a dump collection thread corresponding to the specified virtual machine 124 (step S68). The dump collection thread is activated for each virtual machine 124. Therefore, a plurality of dump collection threads may be activated. The dump collection thread is executed by the dump collection thread execution unit. Since the memory dump process takes a certain amount of time, the process of the dump collection service unit 112 and the process of the crash event waiting thread are executed asynchronously.

クラッシュイベント待ちスレッド実行部は、ダンプ採取スレッドを起動した後、ステップ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 memory 123 used by the guest OS 12 in which the crash has occurred in the storage state storage area 114 as a temporary file (step S69). Then, the dump collection thread execution unit activates a dump conversion thread that executes dump conversion processing (step S610).

この後、ダンプ採取スレッド実行部は、仮想マシン管理サービス部116に、仮想マシン124の停止と再起動を依頼する(ステップS611)。   Thereafter, the dump collection thread execution unit requests the virtual machine management service unit 116 to stop and restart the virtual machine 124 (step S611).

一方、起動されたダンプ変換スレッド実行部は、保存状態格納領域114に保存されたメモリ123の内容の一時ファイルを、ダンプファイルの形式に変換して、ダンプ格納領域115に格納する(ステップS612)。   On the other hand, the activated dump conversion thread execution unit converts the temporary file having the contents of the memory 123 stored in the storage state storage area 114 into a dump file format and stores it in the dump storage area 115 (step S612). .

以上、本発明を実施例に基づいて説明したが、本発明は、その主旨の範囲内において種々の変形が可能である。   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 virtual bus 21 may be used for notification of a crash from the guest OS 12 to the host OS 11. In this case, the crash notification may be captured with the same priority as the hardware interrupt. Further, identification information other than the virtualization ID may be used in the crash notification.

また、ゲストOS12のクラッシュのみでなく、ホストOS11のクラッシュを検出して、同様の手段により、仮想マシン制御部であるホストOS11が使用するメモリのダンプファイルを取得するようにしてもよい。   Further, not only the crash of the guest OS 12 but also the crash of the host OS 11 may be detected, and a dump file of the memory used by the host OS 11 as the virtual machine control unit may be acquired by the same means.

また、ゲストOS12が動作する仮想マシン124が、仮想デバイス122以外の手段により、プロセス識別情報を保持するようにしてもよい。   Further, the virtual machine 124 on which the guest OS 12 operates may hold the process identification information by means other than the virtual device 122.

また、ホストドライバ113とダンプ採取サービス部112とを一体に形成するようにしてもよい。この場合、仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118とを一体に形成するようにしてもよい。   Further, the host driver 113 and the dump collection service unit 112 may be integrally formed. In this case, the virtualization ID / process list 117 and the virtual machine / process list 118 may be integrally formed.

また、ホストOS11が、仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118と備えるようにしてもよい。また、ホストOS11が、仮想化ID/プロセス一覧117と仮想マシン/プロセス一覧118とを一体に形成した一覧を備え、ホストドライバ113及びダンプ採取サービス部112からの要求に応じて必要な情報を提供するようにしてもよい。   Further, the host OS 11 may include a virtualization ID / process list 117 and a virtual machine / process list 118. The host OS 11 includes a list in which the virtualization ID / process list 117 and the virtual machine / process list 118 are integrally formed, and provides necessary information in response to requests from the host driver 113 and the dump collection service unit 112. You may make it do.

1 仮想マシン
2 ハイパーバイザ
3 ハードウェア
11 ホストOS
12 ゲストOS
21 仮想バス
111 ダンプ採取ツール
112 ダンプ採取サービス部
113 ホストドライバ
114 保存状態格納領域
115 ダンプ格納領域
116 仮想マシン管理サービス部
117 仮想化ID/プロセス一覧
118 仮想マシン/プロセス一覧
121 ゲストドライバ
122 仮想デバイス
123 メモリ
124 仮想マシン
125 仮想CPU
1 Virtual machine 2 Hypervisor 3 Hardware 11 Host OS
12 Guest OS
21 Virtual Bus 111 Dump Collection Tool 112 Dump Collection Service Unit 113 Host Driver 114 Storage State Storage Area 115 Dump Storage Area 116 Virtual Machine Management Service Section 117 Virtualization ID / Process List 118 Virtual Machine / Process List 121 Guest Driver 122 Virtual Device 123 Memory 124 Virtual machine 125 Virtual CPU

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の仮想マシンから前記第1のゲストOSに障害が発生した場合において前記第1の仮想マシンに割り当てられた仮想バスに割り込みを発生させることにより障害の発生を通知された場合に、割り込みが発生した仮想バスの仮想化識別情報に基づいて前記第1の記憶手段から前記第1のゲストOSが動作する仮想マシンに対応する前記仮想マシン制御部のプロセスの前記プロセス識別情報を求め、求めた前記プロセス識別情報に基づいて前記第2の記憶手段から前記第1のゲストOSが動作する仮想マシンの前記マシン識別情報を求め、求めた前記マシン識別情報を有する仮想マシンで動作する前記第1のOSが使用するメモリ領域の内容を、前記メモリ領域と異なる記憶装置に保存する
ことを特徴とする請求項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.
前記保存手段は、前記仮想マシン制御部である第2のOSに設けられたホストドライバと、前記第2のOSのサービスプログラムであるダンプ採取サービス部とを含み、
前記ホストドライバは、前記第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.
JP2014004007A 2014-01-14 2014-01-14 Information processing device and control method thereof, control program and recording medium Pending JP2015132979A (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11853103B2 (en) 2019-05-28 2023-12-26 Denso Corporation Vehicular device

Cited By (1)

* Cited by examiner, † Cited by third party
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