WO2012137239A1 - Computer system - Google Patents

Computer system Download PDF

Info

Publication number
WO2012137239A1
WO2012137239A1 PCT/JP2011/001992 JP2011001992W WO2012137239A1 WO 2012137239 A1 WO2012137239 A1 WO 2012137239A1 JP 2011001992 W JP2011001992 W JP 2011001992W WO 2012137239 A1 WO2012137239 A1 WO 2012137239A1
Authority
WO
WIPO (PCT)
Prior art keywords
machine
guest
dump
host machine
area
Prior art date
Application number
PCT/JP2011/001992
Other languages
French (fr)
Japanese (ja)
Inventor
成昊 金
英児 西島
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to PCT/JP2011/001992 priority Critical patent/WO2012137239A1/en
Publication of WO2012137239A1 publication Critical patent/WO2012137239A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis

Definitions

  • the present invention relates to an information processing apparatus having a virtualization function and a failure analysis information acquisition method applied to the apparatus.
  • a virtualization system can be easily constructed on a computer such as a personal computer.
  • Patent Document 1 the contents (data) of a memory for a guest machine operating on a virtual machine monitor (corresponding to a host machine) are periodically acquired and stored, and the latest memory stored when a failure occurs is stored.
  • a method for recovering memory contents using contents is disclosed. This method turns off the writable bit in the page table, generates a memory protection interrupt when the processor tries to update the page data, and reserves the page contents in advance in the interrupt processing routine. It is to save in the memory area.
  • Non-Patent Document 1 when trying to acquire and save the memory contents of the virtual machine monitor using the conventional memory dump technology (Non-Patent Document 1), it is necessary to stop the virtual machine monitor. It is necessary to stop other guest machines operating on the virtual machine monitor, which gives a large overhead to the other guest machines.
  • a technology is provided to acquire and store information necessary for failure analysis of the guest machine without giving a large overhead to other guest machines.
  • the computer has a plurality of guest machines, each of which is a virtual calculation statement having an operation system, and a host machine having an operation system different from the plurality of guest machines and controlling the plurality of guest machines.
  • the computer system further includes a processor for executing the operation system of each of the plurality of guest machines and the operation system of the host machine, and a memory.
  • the memory includes a memory area for the host machine allocated to the host machine, data And a save memory area. Data stored in the host machine memory area is updated by processing executed by the guest machine.
  • the host machine uses the area in the host machine memory area associated with the failure as a dump acquisition area and prohibits writing to the dump acquisition area.
  • the host machine When the host machine receives a write request to the dump acquisition area from a guest machine other than the guest machine where the failure occurred, the host machine copies the data stored in the dump acquisition area to the data save memory area. Then, write to the dump acquisition area is permitted and data is written according to the write request.
  • FIG. 1 is a configuration diagram of a computer system 10 according to this embodiment.
  • FIG. 2 is a diagram showing in detail the configuration in the host computer (also called host machine) 110 of the computer system 10.
  • host computer also called host machine
  • the computer system 10 has a configuration in which a memory 190, one or more processors 170, and a communication interface 180 are connected by a communication path such as a bus.
  • the computer system 10 may include an output device such as a display and an input device such as a keyboard.
  • An external storage device 200 is connected to the communication interface 180.
  • the memory 190 of the computer system 10 stores a program to be executed by the processor 170, and is provided with a later-described saving memory section 160.
  • the processor 170 is a multi-core processor equipped with a plurality of processor cores (hereinafter also referred to as CPU cores or simply cores).
  • the computer system (hereinafter also referred to as a physical machine) 10 creates a virtual environment on the physical machine by executing a virtualization program (also referred to as a virtualization mechanism) 113, and one or a plurality of guest machines on the physical machine It is a computer system that constitutes (also called a virtual machine).
  • the memory 190 of the computer system 10 includes a host cluster program 112, a host OS (Operating System) 111, a virtualization program (hereinafter also referred to as a virtualization mechanism) 113, and for each guest machine.
  • Application program 152, guest cluster program, and guest OS 150 are examples of guest machines.
  • the functional configuration realized by the host cluster program 112, the host OS (Operating System) 111, and the virtualization program 113 is the host machine 110, the application program 152 prepared for each virtual machine, the guest cluster program, and the guest OS 150.
  • the realized functional configuration is called a guest machine 140.
  • the execution of processing may be described with each program as the subject. This indicates that the processing is executed by the processor 170 executing the program.
  • the save memory section 160 is used as a save destination for memory contents to be described later.
  • the save memory section 160 is outside the memory area used by the host machine and the guest machine, and is reserved in advance when the system is booted.
  • the save memory section 160 may be an external memory (SRAM) instead of the memory mounted in the computer system 10.
  • guest machines 140A and 140B are configured by the virtualization mechanism 113 of the host machine 110, and the save memory partition 160 is provided on the system memory 190.
  • Guest machine A140A and guest machine A140B have the same configuration, and each includes guest OS 150A and guest OS 150B, and application program A 152A and application program B 152B.
  • FIG. 2 shows a detailed configuration example of the host machine 110.
  • the host OS 111 has a probe point management table 120 (details will be described later with reference to FIG. 3) for managing a memory address of a probe point to be inserted into the guest machine A 140A and a scenario number at the time of dumping, which will be described later.
  • Dump scenario management table 121 for managing areas (details will be described later with reference to FIG. 5)
  • dump area management table 122 for managing save memory partition 160 (details will be described later with reference to FIG. 6)
  • dump request bitmap table 123 (details will be described later with reference to FIG. 8)
  • probe handler processing (details will be described later with reference to FIG. 11), and a memory saving fault process 125 for performing dump acquisition (details will be described later with reference to FIG. 12).
  • a program for executing the dump writing process 126 (details will be described later with reference to FIG. 13). Equipped.
  • the host cluster program 112 detects a probe insertion program 130 (details will be described later with reference to FIG. 4) for inserting a probe (also referred to as a probe code) into the guest machine A 140A described above, when a failure occurs in the guest machine A 140A.
  • a guest machine failure detection program 131 is provided.
  • the guest OS 150A executes the probe code inserted into the guest OS 150A by the probe point insertion program 130 described above, and notifies the host machine 110 of the failure from the guest machine A 140A. This is to detect abnormalities.
  • Pattern 2 indicates that when the host machine 110 performs a survival check such as a heartbeat with respect to the guest machine A 140A at a certain interval and the survival check cannot be performed (there is no response from the guest machine A 140A), the host machine 110 An abnormality is detected.
  • a survival check such as a heartbeat with respect to the guest machine A 140A at a certain interval and the survival check cannot be performed (there is no response from the guest machine A 140A)
  • FIG. 3 is a diagram illustrating a configuration example of the probe point management table 120.
  • the probe point management table 120 pairs of probe point addresses and scenario numbers are registered.
  • the probe point address stores a memory address value on the guest machine A140A where the probe is inserted.
  • the probe point is set for each subsystem (virtual functional configuration) of the guest machine.
  • the virtualization mechanism 113 of the host machine 110 has a conversion table between a memory address on the host machine and an address on the guest machine.
  • the host machine 110 executes the probe insertion program 130, the host machine 110 uses the conversion table to convert the probe point address specified in the probe point management table 120 into a memory address on the host machine 110, and then the guest machine A 140A. Insert the probe.
  • the scenario number stores an identification number of a scenario managed by a dump scenario management table 121 described later.
  • the probe point management table 120 stores the probe insertion address and scenario number in advance. After the guest machine A 140A loads the guest OS 150A onto the memory, the guest OS 150A notifies the host OS 111 of the end of loading, and stops operating until a notification is received from the host machine 110.
  • the host OS 111 that has received the notification of completion of loading refers to the probe point management table 120, executes the probe insertion program 130, and performs probe insertion processing. After the probe insertion process is completed, the guest OS 150A resumes operation.
  • the probe insertion process can also be performed on the guest machine A 140A, and the probe insertion program 130 and the dump scenario management table 121 may be provided on the guest OS 150A of the guest machine A 140A. In this case, after the guest machine A 140A loads the guest OS 150A, the probe insertion program 130 is executed to perform the probe insertion process.
  • the guest machine A 140A executes the probe insertion process
  • the guest machine A 140A executes the probe insertion program 130 without stopping the operation of the guest machine A 140A. Therefore, an error occurs until the probe insertion process is completed. Cannot be dumped.
  • the host machine 110 can execute the probe insertion program 130 according to this update, thereby inserting a new probe into the guest machine while the system is operating. I can do it.
  • FIG. 4 is a diagram for explaining processing for inserting a probe in accordance with the description of the probe point management table 120. This process is performed by executing the probe insertion program 130.
  • the probe is inserted on the guest machine by the probe insertion program 130 (S401).
  • the probe point described in the probe point management table 120 is specifically the address address of the memory on the guest machine A 140A managed by the guest OS 150A as described above.
  • the probe insertion program 130 on the host OS 111 converts the probe point from the guest machine address to the host machine address using the host machine address / guest machine address conversion table, and inserts the probe at the address.
  • the address value on the host machine of the probe point is obtained for each guest machine, and the probe is inserted at the obtained address for each guest machine.
  • the insertion process is repeatedly executed until all the probes are inserted (S402).
  • FIG. 5 is a diagram illustrating a configuration example of the dump scenario management table 121.
  • the dump location is information for specifying a memory area that is a dump acquisition target (hereinafter also referred to as a dump target), and at least one or more data in the kernel memory space used by the kernel subsystem in the memory space of the host OS 111 The area is specified as the dump target area.
  • the host machine 110 refers to the probe point management table 120 and obtains a scenario number corresponding to the probe point at which the probe is inserted.
  • the memory area specified by the scenario No. is set as the dump target area.
  • the dump target area is a memory area reserved for the host machine 110.
  • the processing of the guest machine is stopped, but another guest machine configured on the same host machine can continue to operate.
  • the memory area for the host machine 110 is rewritten by the processing of another guest machine that continues to operate, the data stored in the memory for the host machine 110 when the failure occurs cannot be restored. It cannot be used for analysis.
  • the data stored in the area is saved in the save memory. A technique for evacuating to the section 160 is provided.
  • Non-Patent Document 2 kdump (see Non-Patent Document 2), which is a conventional dump technology.
  • the host machine 110 may detect a failure other than the failure of the guest machine A 140A by means other than the execution of the probe by the guest machine A 140A (for example, by the method of pattern 2 described above). In this case, it is desirable to dump all data areas in the kernel memory space used by the kernel subsystem in the memory space of the host machine 110. Therefore, no scenario is prepared as a scenario for this case.
  • the dump target area is the entire data area of the kernel memory space, but the other code areas are excluded from the dump target. This is because the data area is changed by the system operation, and the code area is unchanged.
  • the scenario number is selected depending on which subsystem of the kernel (virtual functional configuration of the guest machine) the bug function (probe code) is executed.
  • a bug function is not always executed and fails. In that case, the host machine 110 cannot know which subsystem the guest machine A 140A has failed during execution. Therefore, even if the host machine 110 detects a failure of the guest OS 150A at a time other than the execution of the probe inserted into the guest OS 150A by the probe insertion program 130, all subsystems use it as “no applicable scenario”. Data area to be dumped.
  • FIG. 6 is a diagram illustrating a configuration example of the dump management area table 122.
  • the dump management area table 112 a dump factor for storing the identification information of the guest machine in which the failure has occurred among a plurality of operating guest machines, and the probe executed when the guest machine 140 notifies the failure are stored.
  • the dump location is equivalent to the dump location of the dump scenario management table 121.
  • the dump destination offset is a value representing a difference from the head address of the save memory partition 160, and data is saved in a memory area after the address indicated by the dump destination offset.
  • the value of the dump destination offset is set so that the address value obtained by adding the data area length represented by the dump location to the address value of the dump destination offset falls within the area of the save memory partition 160.
  • FIG. 7 is a diagram illustrating an example of dump locations in the memory area of the host machine 110 when a failure occurs in the guest machine A 140A.
  • the guest machine A140A executes the probe inserted in the code section (for example, BUG_ON () function used in Linux OS) that is executed when a fatal bug exists in the network subsystem in the kernel space of the guest machine A140A.
  • the dump location will be described using an example in which the host machine 110 detects a failure.
  • the memory area used by the network subsystem of the host machine 110 becomes important. . This is because, for example, when packet transmission or the like is performed from the guest machine A 140A, this processing is performed via the network subsystem of the host machine 110.
  • the memory subsystem is dumped as a dump target location regardless of the subsystem in which the failure has occurred, considering that the memory subsystem is always used.
  • the data area 703a of the network subsystem and the data area 703b of the memory subsystem of the host machine 110 are set as dump target locations.
  • conventional dumping there is no way to dump a specific part of the host machine in response to the faulty part of the guest machine.
  • the useless part is dumped.
  • dump processing has caused the overhead of the entire system.
  • the dump target location can be kept to the minimum necessary, and the overhead due to dump processing can be minimized.
  • FIG. 7 illustrates the case where a failure occurs in the memory area 702 used by the network subsystem of the guest machine, the same applies when a failure occurs in the usage area of another subsystem.
  • FIG. 8 is a diagram illustrating a configuration example of the dump request bitmap table 123.
  • the dump request bit table 123 determines the page numbers (page frame numbers) of all pages used by the host machine 110 and whether each page is requested to be dumped (is a dump acquisition target). Dump request flag information is stored.
  • the page is a unit used by the host machine 110 to manage a memory area used by the host machine. That is, the host machine 110 manages the memory area used by the host machine 110 as a collection of a plurality of pages.
  • the dump request flag indicates whether it is a write-protected state set for acquiring a dump or a write-protected state set for other memory management reasons. Used to judge.
  • the value of the dump request flag is 1 when there is a dump request (when it is a dump acquisition target), and 0 when there is no dump request (when it is not a dump acquisition target).
  • FIG. 9 is a diagram for explaining the processing flow of the entire nonstop dump.
  • the guest machine failure detection program 130 of the host cluster program 112 detects an error in the guest machine A 140A based on the notification from the guest machine A 140A that has executed the probe (S501).
  • the host OS 111 analyzes the failure information provided from the guest machine A 140A and determines whether or not the failure detection is due to the execution of the probe (S502). Specifically, the information notified from the guest machine A140A is the bug code head address in the memory area managed by the guest machine A140A.
  • the host machine 110 that has received this calculates the memory address on the host machine 110 using the conversion table between the memory address on the host machine 110 and the memory address on the guest machine A140A, and which probe is in accordance with the probe point management table 120. Determine if it has been executed. When the determined address does not correspond to any of the probe point management tables 120, it is determined that the dump scenario management table 121 does not correspond.
  • the host OS 111 executes probe handler processing 124, and first identifies which probe was executed on the guest machine A 140A from the failure information.
  • the host OS 111 refers to the dump scenario management table 121 for the dump location (that is, the dump target area) associated with the scenario number managed in the dump scenario management table 121 in association with the probe point of this probe. Identify. Then, the host OS 111 prohibits storage writing in the host machine memory including the specified dump location (S504). Specifically, writing is prohibited for all pages including the specified dump location (dump target area).
  • the entire data area in the memory area used by the host machine 110 is write-protected (S503). Specifically, writing is prohibited for all pages included in the data area.
  • an MMU memory management unit
  • This write request is not issued from the failed guest machine A140A, but issued from another guest machine such as the guest machine B140B.
  • the guest machine A140A in which a normal failure has occurred does not issue a write request because the processing is interrupted after the failure has occurred.
  • other guest machines B140B running on the same host machine 110 as the guest machine A140A can continue the processing regardless of the failure of the guest machine A140A. Therefore, a write request may be issued from the other guest machine B 140B to the host machine memory area.
  • the COW (copy on write) method ensures that the kernel secures a new physical page, stores the data requested to be written here, and maps the area where writing has been performed. Change to correspond to this new physical page.
  • the host OS 111 executes the memory saving fault process 125.
  • the memory saving fault process 125 first, a physical page is secured in the saving memory partition 160, and the data currently stored in the page to be written is saved (S505). After that, the page to be written, which has been set to write-inhibited by the processing of S503 or S504, is changed to writable, and the data of the page is updated according to the write request (S506).
  • the data saved in the save memory partition is data stored in the memory area of the host machine 110 when an error occurs.
  • this data can be used as a dump, the system (and processing of other guest machines) can be performed. A dump can be obtained without stopping.
  • FIG. 10 is a diagram for explaining the error detection method in S501 of FIG. 9 and the flow of the probe handler process 124 that occurs after detection. As a premise of this process, it is assumed that the probe point insertion process of FIG. 4 has already been executed and a probe has been inserted into the guest machine A140A.
  • FIG. 11 is a diagram for explaining the probe handler process 124 executed in S510 of FIG.
  • the moment of entering S510 (that is, the moment when the probe handler process 124 is trajected) is the state where the CPU core executing the guest OS 150A has reached the probe point, that is, in the memory area of the guest OS 150A executing the core. An error has occurred.
  • the probe handler process 124 all the cores other than the core that executed the probe are temporarily put to sleep (S513).
  • scenario identification number scenario No
  • the dump scenario management table 121 the dump location linked to the scenario identification number is specified, the page including this dump location (dump target area) is specified, and this page is write-inhibited.
  • FIG. 12 is a diagram for explaining the details of the memory saving fault process 125.
  • the memory saving fault process 125 is executed. As described above, the write request is issued from a guest machine other than the guest machine in which the failure has occurred.
  • the host OS 111 When there is a write to the write protected area (S516), the host OS 111 refers to the dump request bitmap table 123 and determines whether the dump request flag “1” is set in the write target page (S517). ).
  • the host OS determines that the data stored in the page is a dump target, and saves the data stored in the page to be written The page is saved by copying to the memory partition 160 (S520).
  • the dump area management table 122 is created, and the identification information of the guest machine 140 that executed the probe is registered in “dump factor”, and the identification number of the scenario specified in the above process is registered in “scenario No”. Furthermore, the current time information is “dump time”, the dump source page identification information is “dump location”, and the start address information of the copy destination area (offset from the start address of the save memory partition 160 indicating the start address) Is written as “dump destination offset” (S521).
  • the host OS clears the dump request flag in the dump request bitmap table 123 corresponding to the saved page (“0”) (S522), makes the page writable, and writes to the page.
  • the written contents are reflected by writing the data according to the request (S523).
  • the host OS determines that the page is not a dump target. In this case, the host OS executes normal page fault processing. For example, if the host OS uses an operating system that uses the COW (copy-on-write) method, the data stored in the write-inhibited area is copied to the newly secured page frame and newly secured. The page frame is made writable and data is written (S519).
  • COW copy-on-write
  • FIG. 13 is a diagram for explaining the details of the dump writing process 126 for writing the dump saved in the saving memory partition 160 by the memory saving fault process 124 to the external storage area 200.
  • the dump is written to the external storage device 200 connected using the communication interface 180 provided in the computer system 10.
  • the host OS identifies the scenario number from the dump area management table 122 (S524). Then, the host OS refers to the dump scenario management table 121 and identifies the dump location associated with the scenario No acquired in S524, thereby identifying the page including the dump location (S525).
  • the host OS reads the value of the dump request flag in the dump request bitmap table 123 for the page specified in S525 (S526), and whether the dump request flag is set (that is, whether the value of the flag is “1”). Is determined (S527).
  • a specific area is write-protected, and data stored in the page in the save memory partition 160 is dumped page by page when a write request is made. If there is no write request, the data of the page is not dumped to the save memory partition 160.
  • This process is performed for all pages specified in S525 (S531), and the process ends when data is written to the external storage device 200 for all pages.
  • the data writing destination in the dump writing process 126 is not limited to the external storage device 200 but may be the save memory partition 160. In this case, the processing of S528 is eliminated, and the external storage device 200 of S529 is changed to the save memory partition 160.
  • system configuration uses a virtual environment as an embodiment, but can be applied to a non-virtual environment by replacing a guest machine with a process.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Provided is a computer system that makes it possible to obtain and save plentiful dump information including memory content of a virtual machine monitor itself possibly necessary in analyzing the problem, without stopping the system, when a problem occurs in an operating system operating on the virtual machine monitor. The computer system where a guest machine is operating with using a virtualization system on a host machine is provided with: a probe insertion process unit for inserting a probe point from the host machine to the guest machine; a probe point management table for associating probe points with corresponding dump scenarios; a dump scenario management table for limiting dump locations for each scenario; and a guest machine problem detection program for detecting the occurrence of a problem in the guest machine. At the time a problem occurs, the memory content of the virtual machine monitor is dumped without stopping the system, and a memory region subject to the dump is limited according to the type of problem.

Description

計算機システムComputer system
 仮想化機能を有する情報処理装置および同装置に適用される障害解析用情報取得方法に関する。 The present invention relates to an information processing apparatus having a virtualization function and a failure analysis information acquisition method applied to the apparatus.
 近年の半導体技術の向上により、CPU、I/O装置といったハードウェア資源は高性能化かつ低価格化が著しい。これに伴いシステム稼動中における資源使用率が低下し、資源の無駄が発生している。また、データセンター等の設備設置スペースの肥大化も叫ばれており、資源の無駄を有効利用する方法として、仮想化に対応したシステムが開発されている。このシステムは、仮想マシンモニタと呼ばれる仮想化ソフトウェアで制御されている。 Due to recent improvements in semiconductor technology, hardware resources such as CPUs and I / O devices are remarkably increasing in performance and price. As a result, the resource usage rate during system operation is reduced, and resources are wasted. In addition, an increase in the space for installing facilities such as data centers has been screamed, and a system corresponding to virtualization has been developed as a method of effectively using waste of resources. This system is controlled by virtualization software called a virtual machine monitor.
 仮想化ソフトウェアとしては、商用ソフトウェアのVMware(登録商標)や、オープンソースソフトウェアのLinuxカーネルのKVM機能がよく知られている。 As virtualization software, the commercial software VMware (registered trademark) and the open source software Linux kernel KVM function are well known.
 これらの仮想化ソフトウェアを利用することで、パーソナルコンピュータのようなコンピュータ上で簡単に仮想化システムを構築できる。 By using these virtualization software, a virtualization system can be easily constructed on a computer such as a personal computer.
 この仮想化システムでは、CPU、メモリ、I/O装置といったハードウェア資源を複数のオペレーティングシステムが同時に利用する事が可能になる。これにより、ハードウェア資源の有効利用が可能になり、かつ設備を集約することで、設置スペースの省スペース化にも繋がる。 In this virtualization system, it becomes possible for a plurality of operating systems to simultaneously use hardware resources such as a CPU, a memory, and an I / O device. As a result, it is possible to effectively use hardware resources and consolidate facilities, which leads to space saving of the installation space.
 仮想化システムにおいてはホストマシン上で複数のゲストマシンが動作する。 In the virtualization system, multiple guest machines operate on the host machine.
 特許文献1には、仮想マシンモニタ(ホストマシンに相当)上で動作するゲストマシン用のメモリの内容(データ)を定期的に取得・保存しておき、障害発生時には保存されている直近のメモリ内容を用いてメモリ内容を復旧する方法が開示されている。この方法は、ページテーブルの書き込み可能ビットをオフしておき、プロセッサがページのデータを更新しようとした時にメモリ保護割り込みを発生させ、その割り込み処理ルーチンの中で、ページの内容をあらかじめ確保しておいたメモリ領域へ保存しておくというものである。 In Patent Document 1, the contents (data) of a memory for a guest machine operating on a virtual machine monitor (corresponding to a host machine) are periodically acquired and stored, and the latest memory stored when a failure occurs is stored. A method for recovering memory contents using contents is disclosed. This method turns off the writable bit in the page table, generates a memory protection interrupt when the processor tries to update the page data, and reserves the page contents in advance in the interrupt processing routine. It is to save in the memory area.
特開2009-245216JP2009-245216
 しかし、特許文献1の方法では、仮想マシンモニタ(ホストマシンに相当)上で動作するゲストマシンのオペレーティングシステムで発生した障害の解析に必要な情報が、仮想マシンモニタ用のメモリに含まれている場合について考慮されていないため、障害の解析に必要な情報が充分に取得出来なくなる可能性がある。即ち、特許文献1の方法では、ゲストマシン用のメモリの内容を保存しているのみであるので、当該ゲストマシンに障害が発生した場合に、当該ゲストマシン用のメモリの内容は解析できるが、当該ゲストマシンの処理によってデータの変更が生じるホストマシン用のメモリの内容は保存されておらず解析することができない。 However, in the method of Patent Document 1, information necessary for analyzing a failure that has occurred in the operating system of the guest machine operating on the virtual machine monitor (corresponding to the host machine) is included in the virtual machine monitor memory. Since the case is not taken into consideration, there is a possibility that information necessary for failure analysis cannot be obtained sufficiently. That is, in the method of Patent Document 1, only the contents of the memory for the guest machine are stored. Therefore, when a failure occurs in the guest machine, the contents of the memory for the guest machine can be analyzed. The contents of the memory for the host machine whose data is changed by the processing of the guest machine are not saved and cannot be analyzed.
 仮想化システムにおいては、たとえ仮想マシンモニタ上で動作するゲストマシンのオペレーティングシステムで発生した障害であっても、障害解析のためには、ゲストマシン用メモリのデータだけでなく仮想マシンモニタ用メモリのデータを取得及び保存する必要がある。 In a virtualized system, even if a failure occurs in the operating system of the guest machine that runs on the virtual machine monitor, not only the guest machine memory data but also the virtual machine monitor memory is used for failure analysis. Data needs to be acquired and stored.
 ここで従来のメモリダンプ技術(非特許文献1)を用いて仮想マシンモニタのメモリ内容を取得及び保存しようとすると、仮想マシンモニタを停止する必要があるため、障害が発生したゲストマシンだけでなく当該仮想マシンモニタ上で動作する他のゲストマシンも止める必要があり、他のゲストマシンに大きなオーバーヘッドを与えることになる。 Here, when trying to acquire and save the memory contents of the virtual machine monitor using the conventional memory dump technology (Non-Patent Document 1), it is necessary to stop the virtual machine monitor. It is necessary to stop other guest machines operating on the virtual machine monitor, which gives a large overhead to the other guest machines.
 そこで、ゲストマシンに障害が生じた場合に、それ以外のゲストマシンに大きなオーバヘッドを与えることなく、当該ゲストマシンの障害解析に必要な情報を取得、保存する技術を提供する。 Therefore, when a failure occurs in a guest machine, a technology is provided to acquire and store information necessary for failure analysis of the guest machine without giving a large overhead to other guest machines.
  計算機は、各々がオペレーションシステムを有する仮想的な計算記である複数のゲストマシンと、複数のゲストマシンとは異なるオペレーションシステムを有し、複数のゲストマシンを制御するホストマシンとを有する。計算機システムは更に、複数のゲストマシン各々のオペレーションシステムおよびホストマシンのオペレーションシステムを実行するプロセッサと、メモリとを有しており、メモリは、ホストマシンに割り当てられたホストマシン用メモリ領域と、データ退避用メモリ領域とを有している。ホストマシン用メモリ領域に格納されているデータは、ゲストマシンによって実行される処理によって更新される。複数のゲストマシンの一つに障害が生じると、ホストマシンは当該障害と対応付けられているホストマシン用メモリ領域内の領域をダンプ取得領域として当該ダンプ取得領域への書き込みを禁止する。そしてホストマシンは、障害が発生したゲストマシン以外のゲストマシンからダンプ取得領域に対する書き込み要求を受信した場合には、ダンプ取得領域に格納されているデータを、データ退避用メモリ領域へコピーしてから、当該ダンプ取得領域への書き込みを許可して書き込み要求に従ってデータを書き込む。 The computer has a plurality of guest machines, each of which is a virtual calculation statement having an operation system, and a host machine having an operation system different from the plurality of guest machines and controlling the plurality of guest machines. The computer system further includes a processor for executing the operation system of each of the plurality of guest machines and the operation system of the host machine, and a memory. The memory includes a memory area for the host machine allocated to the host machine, data And a save memory area. Data stored in the host machine memory area is updated by processing executed by the guest machine. When a failure occurs in one of a plurality of guest machines, the host machine uses the area in the host machine memory area associated with the failure as a dump acquisition area and prohibits writing to the dump acquisition area. When the host machine receives a write request to the dump acquisition area from a guest machine other than the guest machine where the failure occurred, the host machine copies the data stored in the dump acquisition area to the data save memory area. Then, write to the dump acquisition area is permitted and data is written according to the write request.
 仮想化システムにおいて、ゲストマシンに障害が生じた場合に、当該ゲストマシン以外のゲストマシンに与えるオーバーヘッドを低減しつつ、当該ゲストマシンの障害の解析に必要な情報を取得し保存することができる。 In the virtualization system, when a failure occurs in the guest machine, it is possible to acquire and save information necessary for analyzing the failure of the guest machine while reducing overhead given to the guest machine other than the guest machine.
本実施形態の計算機システムの構成例を示す図である。It is a figure which shows the structural example of the computer system of this embodiment. 本実施形態の計算機の構成例を示す図である。It is a figure which shows the structural example of the computer of this embodiment. 本実施形態のプローブポイント管理テーブルの構成例を示す図である。It is a figure which shows the structural example of the probe point management table of this embodiment. 本実施形態のプローブポイント挿入処理の構成例を示す図である。It is a figure which shows the structural example of the probe point insertion process of this embodiment. 本実施形態のダンプシナリオ管理テーブルの構成例を示す図である。It is a figure which shows the structural example of the dump scenario management table of this embodiment. 本実施形態のダンプ領域管理テーブルの構成例を示す図である。It is a figure which shows the structural example of the dump area management table of this embodiment. 本実施形態のゲストOS障害時のホストOSダンプ箇所例を示す図である。It is a figure which shows the host OS dump location example at the time of guest OS failure of this embodiment. 本実施形態のダンプ要求ビットマップテーブルの構成例を示す図である。It is a figure which shows the structural example of the dump request | requirement bitmap table of this embodiment. 本実施形態の無停止ダンプ全体処理フローの一例を説明する図である。It is a figure explaining an example of the non-stop dump whole processing flow of this embodiment. 本実施形態のエラー検出方法とエラー発生時処理の一例を説明する図である。It is a figure explaining an example of the error detection method and error generation process of this embodiment. 本実施形態のプローブハンドラ処理の一例を説明する図である。It is a figure explaining an example of the probe handler process of this embodiment. 本実施形態のメモリ退避用フォルト処理の一例を説明する図である。It is a figure explaining an example of the fault process for memory saving of this embodiment. 本実施形態のダンプ書き出し処理の一例を説明する図である。It is a figure explaining an example of dump writing processing of this embodiment.
-――システム構成―――
 以下に実施形態について図面を用いて詳細に説明する。図1は、本実施形態の計算機システム10の構成図である。図2は計算機システム10のホスト計算機(ホストマシンとも呼ぶ)110内の構成を詳細に示す図である。
---System configuration---
Embodiments will be described in detail below with reference to the drawings. FIG. 1 is a configuration diagram of a computer system 10 according to this embodiment. FIG. 2 is a diagram showing in detail the configuration in the host computer (also called host machine) 110 of the computer system 10.
 計算機システム10はメモリ190、一又は複数のプロセッサ170、通信インタフェース180がバス等の通信路で接続された構成を有している。計算機システム10はその他にもディスプレイなどの出力装置やキーボード等の入力装置を有していても良い。通信インタフェース180には外部記憶装置200が接続されている。 The computer system 10 has a configuration in which a memory 190, one or more processors 170, and a communication interface 180 are connected by a communication path such as a bus. In addition, the computer system 10 may include an output device such as a display and an input device such as a keyboard. An external storage device 200 is connected to the communication interface 180.
 計算機システム10のメモリ190には、プロセッサ170が実行するプログラムが格納されているほか、後述の退避用メモリ区画160が設けられている。 The memory 190 of the computer system 10 stores a program to be executed by the processor 170, and is provided with a later-described saving memory section 160.
 プロセッサ170は複数のプロセッサコア(以下CPUコア、又は単なるコアとも呼ぶ)を搭載したマルチコアプロセッサである。 The processor 170 is a multi-core processor equipped with a plurality of processor cores (hereinafter also referred to as CPU cores or simply cores).
 計算機システム(以降、物理マシンとも呼ぶ)10は、仮想化プログラム(仮想化機構とも呼ぶ)113を実行することによって物理マシン上に仮想環境を作り出し、物理マシン上に1台または複数台のゲストマシン(仮想マシンとも呼ぶ)を構成するコンピュータシステムである。
このため、計算機システム10のメモリ190は、ホストクラスタプログラム112、ホストOS(Operating System)111、仮想化プログラム(以降、仮想化機構とも呼ぶ)113を有する他、各ゲストマシン毎に当該ゲストマシン用のプログラムとしてアプリケーションプログラム152、ゲストクラスタプログラム、ゲストOS150を有する。
The computer system (hereinafter also referred to as a physical machine) 10 creates a virtual environment on the physical machine by executing a virtualization program (also referred to as a virtualization mechanism) 113, and one or a plurality of guest machines on the physical machine It is a computer system that constitutes (also called a virtual machine).
For this reason, the memory 190 of the computer system 10 includes a host cluster program 112, a host OS (Operating System) 111, a virtualization program (hereinafter also referred to as a virtualization mechanism) 113, and for each guest machine. Application program 152, guest cluster program, and guest OS 150.
 尚、以降ホストクラスタプログラム112、ホストOS(Operating System)111、仮想化プログラム113で実現される機能構成をホストマシン110、各仮想マシン毎に用意されたアプリケーションプログラム152、ゲストクラスタプログラム、ゲストOS150で実現される機能構成をゲストマシン140と呼ぶ。 尚、以降の説明において、各プログラムを主語にして処理の実行を説明することがあるが、これは当該プログラムがプロセッサ170によって実行されることによって処理が実行されることを表している。 It should be noted that the functional configuration realized by the host cluster program 112, the host OS (Operating System) 111, and the virtualization program 113 is the host machine 110, the application program 152 prepared for each virtual machine, the guest cluster program, and the guest OS 150. The realized functional configuration is called a guest machine 140. In the following description, the execution of processing may be described with each program as the subject. This indicates that the processing is executed by the processor 170 executing the program.
 待避用メモリ区画160は、後述するメモリ内容の退避先として用いるものである。退避用メモリ区画160はホストマシンおよびゲストマシンが使用するメモリ領域外にあり、システムブート時に予め確保される。退避用メモリ区画160は計算機システム10に搭載されているメモリではなく、外部メモリ(SRAM)であってもよい。 The save memory section 160 is used as a save destination for memory contents to be described later. The save memory section 160 is outside the memory area used by the host machine and the guest machine, and is reserved in advance when the system is booted. The save memory section 160 may be an external memory (SRAM) instead of the memory mounted in the computer system 10.
 本実施形態では、ホストマシン110の仮想化機構113によって2台のゲストマシン140Aおよびゲストマシン140Bを構成し、システムメモリ190上に退避用メモリ区画160を備えているものとする。ゲストマシンA140AおよびゲストマシンA140Bは同一の構成を有しており、各々がゲストOS150AおよびゲストOS150BならびにアプリケーションプログラムA152AおよびアプリケーションプログラムB152Bを備えている。しかしこれは一例であって、ゲストマシンの数は2台に限られるものではなく、また複数のゲストマシンが必ず同一の構成を有している必要はなく、異なる構成を有していても構わない。以下のゲストマシンについての説明では、ゲストマシンA140Aを用いるが、ゲストマシンB140Bも同様の機能構成を有する。 In this embodiment, it is assumed that two guest machines 140A and 140B are configured by the virtualization mechanism 113 of the host machine 110, and the save memory partition 160 is provided on the system memory 190. Guest machine A140A and guest machine A140B have the same configuration, and each includes guest OS 150A and guest OS 150B, and application program A 152A and application program B 152B. However, this is only an example, and the number of guest machines is not limited to two, and a plurality of guest machines do not necessarily have the same configuration, and may have different configurations. Absent. In the following description of the guest machine, the guest machine A 140A is used, but the guest machine B 140B has the same functional configuration.
 ホストマシン110の詳細な構成例を図2に示す。 FIG. 2 shows a detailed configuration example of the host machine 110.
 ホストOS111は、ゲストマシンA140Aに挿入するプローブポイントのメモリアドレスと後述するダンプ時のシナリオNoを管理するプローブポイント管理テーブル120(詳細は図3を用いて後述)、シナリオ別にダンプ取得対象となるメモリ領域を管理するダンプシナリオ管理テーブル121(詳細は図5を用いて後述)、退避用メモリ区画160を管理するダンプ領域管理テーブル122(詳細は図6を用いて後述)、及びダンプ要求ビットマップテーブル123(詳細は図8を用いて後述)を有し、プローブハンドラ処理(詳細は図11を用いて後述)、ダンプ取得を行うためのメモリ退避用フォルト処理125(詳細は図12を用いて後述)、ダンプ書き出し処理126(詳細は図13を用いて後述)を実行するためのプログラムを備えている。 The host OS 111 has a probe point management table 120 (details will be described later with reference to FIG. 3) for managing a memory address of a probe point to be inserted into the guest machine A 140A and a scenario number at the time of dumping, which will be described later. Dump scenario management table 121 for managing areas (details will be described later with reference to FIG. 5), dump area management table 122 for managing save memory partition 160 (details will be described later with reference to FIG. 6), and dump request bitmap table 123 (details will be described later with reference to FIG. 8), probe handler processing (details will be described later with reference to FIG. 11), and a memory saving fault process 125 for performing dump acquisition (details will be described later with reference to FIG. 12). ), A program for executing the dump writing process 126 (details will be described later with reference to FIG. 13). Equipped.
 ホストクラスタプログラム112は、前述したゲストマシンA140Aにプローブ(プローブコードとも呼ぶ)を挿入するためのプローブ挿入プログラム130(詳細は図4を用いて後述)、ゲストマシンA140Aの障害発生時にこれを検知するためのゲストマシン障害検知プログラム131を備えている。 The host cluster program 112 detects a probe insertion program 130 (details will be described later with reference to FIG. 4) for inserting a probe (also referred to as a probe code) into the guest machine A 140A described above, when a failure occurs in the guest machine A 140A. A guest machine failure detection program 131 is provided.
 ゲストマシン障害検知プログラム131を用いてホストマシン110がゲストマシンA140Aの障害を検知する方法は以下の2パターン存在する。 There are the following two methods for the host machine 110 to detect a failure of the guest machine A 140A using the guest machine failure detection program 131.
 パターン1は、ゲストOS150Aが、前述したプローブポイント挿入プログラム130によってゲストOS150Aに挿入されたプローブコードを実行し、障害をゲストマシンA140Aからホストマシン110に通知することによって、ホストマシン110がゲストマシンA140Aの異常を検知するものである。 In the pattern 1, the guest OS 150A executes the probe code inserted into the guest OS 150A by the probe point insertion program 130 described above, and notifies the host machine 110 of the failure from the guest machine A 140A. This is to detect abnormalities.
 パターン2は、ホストマシン110がゲストマシンA140Aに対して一定の間隔でハートビート等生存確認を行い、生存確認ができない(ゲストマシンA140Aから反応がない)場合に、ホストマシン110がゲストマシンA140Aの異常を検知するものである。 Pattern 2 indicates that when the host machine 110 performs a survival check such as a heartbeat with respect to the guest machine A 140A at a certain interval and the survival check cannot be performed (there is no response from the guest machine A 140A), the host machine 110 An abnormality is detected.
 図3は、プローブポイント管理テーブル120の構成例を示す図である。プローブポイント管理テーブル120には、プローブポイントアドレスとシナリオNoの組が登録されている。 FIG. 3 is a diagram illustrating a configuration example of the probe point management table 120. In the probe point management table 120, pairs of probe point addresses and scenario numbers are registered.
 プローブポイントアドレスには、プローブが挿入されるゲストマシンA140A上でのメモリアドレス値が収納されている。尚プローブポイントは、ゲストマシンが有するサブシステム(仮想的な機能構成)毎に設定されている。 The probe point address stores a memory address value on the guest machine A140A where the probe is inserted. The probe point is set for each subsystem (virtual functional configuration) of the guest machine.
 ホストマシン110の仮想化機構113には、ホストマシン上でのメモリアドレスとゲストマシン上でのアドレスの変換表が搭載されている。ホストマシン110はプローブ挿入プログラム130を実行すると、この変換表を用いて、プローブポイント管理テーブル120にて指定されるプローブポイントアドレスをホストマシン110上でのメモリアドレスに変換した上で、ゲストマシンA140Aへプローブを挿入する。 The virtualization mechanism 113 of the host machine 110 has a conversion table between a memory address on the host machine and an address on the guest machine. When the host machine 110 executes the probe insertion program 130, the host machine 110 uses the conversion table to convert the probe point address specified in the probe point management table 120 into a memory address on the host machine 110, and then the guest machine A 140A. Insert the probe.
 シナリオNo.には、後述するダンプシナリオ管理テーブル121で管理するシナリオの識別番号が格納されている。 The scenario number stores an identification number of a scenario managed by a dump scenario management table 121 described later.
 本実施形態では、予めプローブを挿入するアドレスおよびシナリオNoが、プローブポイント管理テーブル120に収納されている。ゲストマシンA140Aがメモリ上にゲストOS150Aをロード後、ゲストOS150Aは、ホストOS111にロード終了を通知し、ホストマシン110から通知が来るまで稼動を停止する。ロード終了の通知を受けたホストOS111は、プローブポイント管理テーブル120を参照してプローブ挿入プログラム130を実行し、プローブの挿入処理を実施する。プローブ挿入処理終了後、ゲストOS150Aは稼動を再開する。 In this embodiment, the probe point management table 120 stores the probe insertion address and scenario number in advance. After the guest machine A 140A loads the guest OS 150A onto the memory, the guest OS 150A notifies the host OS 111 of the end of loading, and stops operating until a notification is received from the host machine 110. The host OS 111 that has received the notification of completion of loading refers to the probe point management table 120, executes the probe insertion program 130, and performs probe insertion processing. After the probe insertion process is completed, the guest OS 150A resumes operation.
 なお、プローブ挿入処理は、ゲストマシンA140A上で行なうことも可能で、プローブ挿入プログラム130およびダンプシナリオ管理テーブル121は、ゲストマシンA140AのゲストOS150A上に備えられていても良い。この場合には、ゲストマシンA140AがゲストOS150Aをロードした後にプローブ挿入プログラム130を実行してプローブ挿入処理を実施する。 Note that the probe insertion process can also be performed on the guest machine A 140A, and the probe insertion program 130 and the dump scenario management table 121 may be provided on the guest OS 150A of the guest machine A 140A. In this case, after the guest machine A 140A loads the guest OS 150A, the probe insertion program 130 is executed to perform the probe insertion process.
 但し、ゲストマシンA140Aがプローブ挿入処理を実行する場合には、ゲストマシンA140Aの稼動を停止せずにゲストマシンA140Aがプローブ挿入プログラム130を実行するため、プローブ挿入処理が完了するまでの間、エラーに対してダンプ処理を行うことはできない。 However, when the guest machine A 140A executes the probe insertion process, the guest machine A 140A executes the probe insertion program 130 without stopping the operation of the guest machine A 140A. Therefore, an error occurs until the probe insertion process is completed. Cannot be dumped.
 また、後述するプローブハンドラ処理では、ゲストOSからホストOS150Aに制御を遷移させて実行される処理があるため、ゲストマシンA140Aがプローブ挿入処理を実行する場合にはゲストOS150AとホストOS111間の制御遷移が頻繁に発生し、オーバヘッドとなる。 Further, in the probe handler process described later, there is a process that is executed by changing the control from the guest OS to the host OS 150A. Therefore, when the guest machine A 140A executes the probe insertion process, the control transition between the guest OS 150A and the host OS 111 is performed. Frequently occurs, resulting in overhead.
 なお、システムの稼動中にプローブポイント管理テーブル120が更新されると、この更新に従ってホストマシン110がプローブ挿入プログラム130を実行することで、システム稼動中に新たなプローブをゲストマシンに挿入することも出来る。 When the probe point management table 120 is updated while the system is operating, the host machine 110 can execute the probe insertion program 130 according to this update, thereby inserting a new probe into the guest machine while the system is operating. I can do it.
 図4は、プローブポイント管理テーブル120の記述に従ってプローブを挿入する処理を説明する図である。この処理はプローブ挿入プログラム130が実行されることによって行われる。 FIG. 4 is a diagram for explaining processing for inserting a probe in accordance with the description of the probe point management table 120. This process is performed by executing the probe insertion program 130.
 前述のように、プローブポイント管理テーブル120の記述に従って、プローブはプローブ挿入プログラム130によってゲストマシン上に挿入される(S401)。 プローブポイント管理テーブル120に記述されているプローブポイントは、具体的には上述の様に、ゲストOS150Aによって管理されるゲストマシンA140A上でのメモリのアドレス番地である。ホストOS111上のプローブ挿入プログラム130は、プローブポイントをホストマシンアドレスとゲストマシンアドレスの変換表を用いてゲストマシンアドレスからホストマシンアドレスに変換し、当該アドレスにプローブを挿入する。ゲストマシン140が複数存在する場合には、各ゲストマシンについてプローブポイントのホストマシン上でのアドレス値を求め、ゲストマシンごとに求めたアドレスにプローブを挿入する。 As described above, according to the description of the probe point management table 120, the probe is inserted on the guest machine by the probe insertion program 130 (S401). The probe point described in the probe point management table 120 is specifically the address address of the memory on the guest machine A 140A managed by the guest OS 150A as described above. The probe insertion program 130 on the host OS 111 converts the probe point from the guest machine address to the host machine address using the host machine address / guest machine address conversion table, and inserts the probe at the address. When there are a plurality of guest machines 140, the address value on the host machine of the probe point is obtained for each guest machine, and the probe is inserted at the obtained address for each guest machine.
 プローブポイント管理テーブルに記述されたプローブが複数存在する場合は、すべてのプローブが挿入されるまで繰り返し挿入処理を実行する(S402)。 When there are a plurality of probes described in the probe point management table, the insertion process is repeatedly executed until all the probes are inserted (S402).
 図5は、ダンプシナリオ管理テーブル121の構成例を示す図である。ダンプシナリオ管理テーブル121にはシナリオNoに対応してダンプ箇所が登録されている。ダンプ箇所は、ダンプ取得対象(以下ダンプ対象とも呼ぶ)となるメモリ領域を指定する情報であり、ホストOS111のメモリ空間のうち、カーネルサブシステムが使用しているカーネルメモリ空間の少なくとも一以上のデータ領域がダンプ対象領域として指定されている。ホストマシン110によって挿入されたプローブがゲストマシンで実行されて障害が検出されると、ホストマシン110はプローブポイント管理テーブル120を参照して当該プローブが挿入されたプローブポイントに対応するシナリオNoを取得し、更にダンプシナリオ管理テーブル121を参照して当該シナリオNoで指定されるメモリ領域をダンプ対象領域とする。 FIG. 5 is a diagram illustrating a configuration example of the dump scenario management table 121. In the dump scenario management table 121, dump locations are registered corresponding to the scenario numbers. The dump location is information for specifying a memory area that is a dump acquisition target (hereinafter also referred to as a dump target), and at least one or more data in the kernel memory space used by the kernel subsystem in the memory space of the host OS 111 The area is specified as the dump target area. When a failure is detected when a probe inserted by the host machine 110 is executed on the guest machine, the host machine 110 refers to the probe point management table 120 and obtains a scenario number corresponding to the probe point at which the probe is inserted. Further, referring to the dump scenario management table 121, the memory area specified by the scenario No. is set as the dump target area.
 本実施形態のダンプ対象領域は、ホストマシン110用に確保されたメモリ領域である。ゲストマシンに障害が生じると、当該ゲストマシンの処理は停止されるが、同じホストマシン上に構成された別のゲストマシンは継続して稼動し続けることができる。この場合、稼動し続ける別のゲストマシンの処理によってホストマシン110用のメモリ領域が書き換えられてしまうと、障害発生時にホストマシン110用メモリに格納されていたデータを復元することができないので、障害の解析に用いることができない。本実施形態では、この問題を解決するために、継続して稼動し続ける別のゲストマシンの処理によってホストマシン110用のメモリ領域が書き換えられる前に当該領域に格納されているデータを退避用メモリ区画160へ退避する技術を提供する。 In the present embodiment, the dump target area is a memory area reserved for the host machine 110. When a guest machine fails, the processing of the guest machine is stopped, but another guest machine configured on the same host machine can continue to operate. In this case, if the memory area for the host machine 110 is rewritten by the processing of another guest machine that continues to operate, the data stored in the memory for the host machine 110 when the failure occurs cannot be restored. It cannot be used for analysis. In this embodiment, in order to solve this problem, before the memory area for the host machine 110 is rewritten by the processing of another guest machine that continues to operate, the data stored in the area is saved in the save memory. A technique for evacuating to the section 160 is provided.
 尚、ゲストマシンA140A用に確保されたメモリ領域のダンプは、従来のダンプ技術であるkdump(非特許文献2参照)等で実施される。 Note that dumping of the memory area reserved for the guest machine A 140A is performed by kdump (see Non-Patent Document 2), which is a conventional dump technology.
 ゲストマシンA140Aによるプローブの実行以外の手段によって(例えば上述のパターン2の方法によって)ゲストマシンA140Aの障害以外の障害をホストマシン110が検知する場合がある。この場合には、ホストマシン110のメモリ空間のうち、カーネルサブシステムが使用しているカーネルメモリ空間の全データ領域をダンプすることが望ましい。そこでこの場合のためのシナリオとして、該当シナリオなしを用意しておく。シナリオNoとして「該当シナリオなし」を意味する識別番号が選択された場合、ダンプ対象領域は、カーネルメモリ空間の全データ領域であるが、その他コード領域に関してはダンプ対象外とする。なぜなら、システム稼動によって変更されるのはデータ領域であって、コード領域は不変であるからである。 The host machine 110 may detect a failure other than the failure of the guest machine A 140A by means other than the execution of the probe by the guest machine A 140A (for example, by the method of pattern 2 described above). In this case, it is desirable to dump all data areas in the kernel memory space used by the kernel subsystem in the memory space of the host machine 110. Therefore, no scenario is prepared as a scenario for this case. When an identification number meaning “no corresponding scenario” is selected as the scenario number, the dump target area is the entire data area of the kernel memory space, but the other code areas are excluded from the dump target. This is because the data area is changed by the system operation, and the code area is unchanged.
 プローブポイント管理テーブル120によると、シナリオNoは、カーネルのどのサブシステム(ゲストマシンが有する仮想的な機能構成)のバグ関数(プローブコード)が実行されたかにより選択されるが、ゲストマシンA140Aは必ずバグ関数を実行して故障するとは限らない。その場合、どのサブシステムを実行中にゲストマシンA140Aが故障したかをホストマシン110は知ることはできない。よって、プローブ挿入プログラム130によってゲストOS150Aに挿入されたプローブの実行以外の契機で、ゲストOS150Aの故障をホストマシン110が検出した場合にも、「該当シナリオなし」として、全サブシステムが使用しているデータ領域をダンプ対象とする。 According to the probe point management table 120, the scenario number is selected depending on which subsystem of the kernel (virtual functional configuration of the guest machine) the bug function (probe code) is executed. A bug function is not always executed and fails. In that case, the host machine 110 cannot know which subsystem the guest machine A 140A has failed during execution. Therefore, even if the host machine 110 detects a failure of the guest OS 150A at a time other than the execution of the probe inserted into the guest OS 150A by the probe insertion program 130, all subsystems use it as “no applicable scenario”. Data area to be dumped.
 図6は、ダンプ管理領域テーブル122の構成例を示す図である。ダンプ管理領域テーブル112には、稼動している複数のゲストマシンのうち、障害を発生させたゲストマシンの識別情報を格納するダンプ要因と、このゲストマシン140が障害を通知するに際して実行したプローブのアドレスとプローブポイント管理テーブル120によって対応付けられているシナリオNo情報を収納するシナリオNo.と、障害が発生した時刻情報を収納するダンプ時刻がある。 FIG. 6 is a diagram illustrating a configuration example of the dump management area table 122. In the dump management area table 112, a dump factor for storing the identification information of the guest machine in which the failure has occurred among a plurality of operating guest machines, and the probe executed when the guest machine 140 notifies the failure are stored. There are a scenario number storing the scenario number information associated with the address and the probe point management table 120, and a dump time storing the time information when the failure occurs.
 シナリオNo.として格納されているシナリオの識別情報(シナリオNo情報)からは、当該シナリオによって指定されるダンプ対象領域を示すダンプ箇所とダンプの格納先となるメモリ領域を示すダンプ先オフセット情報にポインタが張られている。ダンプ箇所は、ダンプシナリオ管理テーブル121がもつダンプ箇所と同値である。ダンプ先オフセットは、退避用メモリ区画160の先頭アドレスからの差分を表す値であって、このダンプ先オフセットが示すアドレス以降のメモリ領域にデータが退避される。 Pointer from the scenario identification information (scenario No information) stored as the scenario number to the dump location indicating the dump target area specified by the scenario and the dump destination offset information indicating the memory area where the dump is stored Is stretched. The dump location is equivalent to the dump location of the dump scenario management table 121. The dump destination offset is a value representing a difference from the head address of the save memory partition 160, and data is saved in a memory area after the address indicated by the dump destination offset.
 尚、ダンプ先オフセットのアドレスの値にダンプ箇所で表されるデータ領域長を加えたアドレス値が退避用メモリ区画160の領域内に収まるようにダンプ先オフセットの値は設定される。 Note that the value of the dump destination offset is set so that the address value obtained by adding the data area length represented by the dump location to the address value of the dump destination offset falls within the area of the save memory partition 160.
 図7は、ゲストマシンA140Aで障害が発生した場合のホストマシン110のメモリ領域のダンプ箇所の例を示す図である。 FIG. 7 is a diagram illustrating an example of dump locations in the memory area of the host machine 110 when a failure occurs in the guest machine A 140A.
 ゲストマシンA140Aのカーネル空間のうち、ネットワークサブシステムに致命的なバグが存在する場合に実行されるコード部(例えばLinuxOSで用いられるBUG_ON()関数等)に挿入したプローブがゲストマシンA140Aによって実行されたことにより、ホストマシン110が障害を検知した例を用いて、ダンプ箇所を説明する。 The guest machine A140A executes the probe inserted in the code section (for example, BUG_ON () function used in Linux OS) that is executed when a fatal bug exists in the network subsystem in the kernel space of the guest machine A140A. Thus, the dump location will be described using an example in which the host machine 110 detects a failure.
 ゲストマシンA140Aのネットワークサブシステムが使用するメモリ領域702で障害が発生した場合には、ホストマシン110のネットワークサブシステムが使用するメモリ領域、さらにいえばその中のデータ領域703aの内容が重要になる。なぜなら、例えばゲストマシンA140Aからパケット送信等を行なう場合、この処理はホストマシン110のネットワークサブシステムを介して行なわれるからである。 When a failure occurs in the memory area 702 used by the network subsystem of the guest machine A 140A, the memory area used by the network subsystem of the host machine 110, more specifically, the contents of the data area 703a therein becomes important. . This is because, for example, when packet transmission or the like is performed from the guest machine A 140A, this processing is performed via the network subsystem of the host machine 110.
 また、障害が生じたサブシステムに関係なく、メモリサブシステムは、常に使用されていることを考え、ダンプ対象箇所としてダンプされることが望ましい。 Also, it is desirable that the memory subsystem is dumped as a dump target location regardless of the subsystem in which the failure has occurred, considering that the memory subsystem is always used.
 よって、ゲストマシンA140Aのネットワークサブシステムで障害が発生した場合には、ホストマシン110のネットワークサブシステムのデータ領域703aおよびメモリサブシステムのデータ領域703bをダンプ対象箇所とする。 従来のダンプでは、ゲストマシンの障害箇所に対応してホストマシンの特定箇所をダンプする方法は考えられておらず、ホストマシンが利用するデータ領域全てをダンプすることによって、無駄な箇所をダンプしてしまい、ダンプ処理がシステム全体のオーバヘッドの原因となっていた。 Therefore, if a failure occurs in the network subsystem of the guest machine A 140A, the data area 703a of the network subsystem and the data area 703b of the memory subsystem of the host machine 110 are set as dump target locations. In conventional dumping, there is no way to dump a specific part of the host machine in response to the faulty part of the guest machine. By dumping the entire data area used by the host machine, the useless part is dumped. As a result, dump processing has caused the overhead of the entire system.
 一方、本方式ではダンプ対象箇所を必要最低限に留めることができ、ダンプ処理によるオーバヘッドを最小にすることができる。 On the other hand, with this method, the dump target location can be kept to the minimum necessary, and the overhead due to dump processing can be minimized.
 尚、図7ではゲストマシンのネットワークサブシステムが使用しているメモリ領域702で障害が発生した場合を例示したが、他のサブシステムの使用領域で障害が発生した場合も同様である。 Although FIG. 7 illustrates the case where a failure occurs in the memory area 702 used by the network subsystem of the guest machine, the same applies when a failure occurs in the usage area of another subsystem.
 図8は、ダンプ要求ビットマップテーブル123の構成例を示す図である。ダンプ要求ビットテーブル123には、ホストマシン110が使用する全てのページのページNo(ページフレームナンバー)と、各ページがダンプを要求されているか(ダンプ取得対象となっているか)否かを判定するダンプ要求フラグ情報が収納されている。ここで、ページとはホストマシン110が当該ホストマシンが利用するメモリ領域を管理するのに用いる単位である。即ち、ホストマシン110は自身が利用するメモリ領域を複数のページの集まりとして管理している。 FIG. 8 is a diagram illustrating a configuration example of the dump request bitmap table 123. The dump request bit table 123 determines the page numbers (page frame numbers) of all pages used by the host machine 110 and whether each page is requested to be dumped (is a dump acquisition target). Dump request flag information is stored. Here, the page is a unit used by the host machine 110 to manage a memory area used by the host machine. That is, the host machine 110 manages the memory area used by the host machine 110 as a collection of a plurality of pages.
 本実施形態においては、ダンプ対象領域を書き込み禁止にし、書込み禁止領域に対する書き込み要求が起きた場合に発生するページフォルト例外を契機に、従来技術であるCOW(コピー・オン・ライト)に似た処理を実行することによってダンプを取得する(詳細は後述する)。 In this embodiment, a process similar to COW (copy-on-write), which is a conventional technology, is triggered by a page fault exception that occurs when a dump target area is write-protected and a write request to the write-protected area occurs. To obtain a dump (details will be described later).
 UNIX系オペレーティングシステムは、メモリ管理にてCOW方式を採用しており、正常時において頻繁にページフォルト例外が発生している。 * UNIX operating systems employ the COW method for memory management, and page fault exceptions frequently occur during normal operation.
 そこでダンプ要求フラグは、ページフォルト例外が生じた場合に、それがダンプを取得するために設定されている書き込み禁止状態なのか、その他メモリ管理上の理由で設定されている書き込み禁止状態なのかを判断するために用いられる。 Therefore, if a page fault exception occurs, the dump request flag indicates whether it is a write-protected state set for acquiring a dump or a write-protected state set for other memory management reasons. Used to judge.
 本実施形態では、ダンプ要求フラグの値として、ダンプ要求がある場合(ダンプ取得対象となっている場合)は1、ダンプ要求が無い場合(ダンプ取得対象となっていない場合)は0とする。 図9は、無停止ダンプ全体の処理フローを説明する図である。 In the present embodiment, the value of the dump request flag is 1 when there is a dump request (when it is a dump acquisition target), and 0 when there is no dump request (when it is not a dump acquisition target). FIG. 9 is a diagram for explaining the processing flow of the entire nonstop dump.
 前述のプローブを実行したゲストマシンA140Aからの通知によって、ホストクラスタプログラム112のゲストマシン障害検知プログラム130は、ゲストマシンA140Aのエラーを検出する(S501)。 The guest machine failure detection program 130 of the host cluster program 112 detects an error in the guest machine A 140A based on the notification from the guest machine A 140A that has executed the probe (S501).
 ホストOS111は、ゲストマシンA140Aから提供される障害情報を解析し、障害検知がプローブを実行したことによるものか否かを判定する(S502)。具体的には、ゲストマシンA140Aから通知される情報はゲストマシンA140Aが管理するメモリ領域中のバグコード先頭アドレスである。これを受け取ったホストマシン110は、ホストマシン110上のメモリアドレスとゲストマシンA140A上のメモリアドレスの変換表を用いてホストマシン110上のメモリアドレスを割り出し、プローブポイント管理テーブル120に従って、どのプローブが実行されたかを判定する。割り出したアドレスがプローブポイント管理テーブル120のいずれにも該当しない場合は、ダンプシナリオ管理テーブル121の該当なしに判定される。 The host OS 111 analyzes the failure information provided from the guest machine A 140A and determines whether or not the failure detection is due to the execution of the probe (S502). Specifically, the information notified from the guest machine A140A is the bug code head address in the memory area managed by the guest machine A140A. The host machine 110 that has received this calculates the memory address on the host machine 110 using the conversion table between the memory address on the host machine 110 and the memory address on the guest machine A140A, and which probe is in accordance with the probe point management table 120. Determine if it has been executed. When the determined address does not correspond to any of the probe point management tables 120, it is determined that the dump scenario management table 121 does not correspond.
 プローブを実行したことによる障害検知の場合、ホストOS111がプローブハンドラ処理124を実行して、まずどのプローブがゲストマシンA140Aで実行されたのかを障害情報から特定する。 In the case of failure detection due to execution of a probe, the host OS 111 executes probe handler processing 124, and first identifies which probe was executed on the guest machine A 140A from the failure information.
 そして、ホストOS111はこのプローブのプローブポイントと対応付けてダンプシナリオ管理テーブル121で管理されているシナリオNoに紐付けられたダンプ箇所(即ちダンプ対象領域)を、ダンプシナリオ管理テーブル121を参照して特定する。そしてホストOS111は特定されたダンプ箇所を含むホストマシン用メモリ内の記憶書き込み禁止にする(S504)。具体的には、特定されたダンプ箇所(ダンプ対象領域)を含むページを全て書き込み禁止にする。 Then, the host OS 111 refers to the dump scenario management table 121 for the dump location (that is, the dump target area) associated with the scenario number managed in the dump scenario management table 121 in association with the probe point of this probe. Identify. Then, the host OS 111 prohibits storage writing in the host machine memory including the specified dump location (S504). Specifically, writing is prohibited for all pages including the specified dump location (dump target area).
 S502においてプローブの実行以外を契機とする障害検知であると判断された場合、ホストマシン110が使用しているメモリ領域中の全データ領域を書込み禁止にする(S503)。具体的には当該データ領域含まれるページを全て書き込み禁止とする。 If it is determined in S502 that the failure detection is triggered by something other than the execution of the probe, the entire data area in the memory area used by the host machine 110 is write-protected (S503). Specifically, writing is prohibited for all pages included in the data area.
 S503またはS504の処理によって書込み禁止に設定されたページに対して書き込み要求が生じた場合、書込み発生時に計算機システム10が有するMMU(メモリ管理ユニット)がページフォルト例外を発生させる。 When a write request is generated for a page that is set to write-protected by the processing of S503 or S504, an MMU (memory management unit) included in the computer system 10 generates a page fault exception when the write occurs.
 この書き込み要求は、障害が発生したゲストマシンA140Aから発行されたものではなく、ゲストマシンB140B等他のゲストマシンから発行されたものである。通常障害が発生したゲストマシンA140Aは、障害発生後は処理を中断させるので書き込み要求を発行することはない。しかしこのゲストマシンA140Aと同じホストマシン110で稼動する他のゲストマシンB140BはゲストマシンA140Aの障害に関わらず処理を継続することができる。従ってこの他のゲストマシンB140Bからホストマシン用メモリ領域に書き込み要求が発行されることがある。 This write request is not issued from the failed guest machine A140A, but issued from another guest machine such as the guest machine B140B. The guest machine A140A in which a normal failure has occurred does not issue a write request because the processing is interrupted after the failure has occurred. However, other guest machines B140B running on the same host machine 110 as the guest machine A140A can continue the processing regardless of the failure of the guest machine A140A. Therefore, a write request may be issued from the other guest machine B 140B to the host machine memory area.
 通常ページフォルト例外が発生すると、COW(コピー・オン.ライト)方式により、カーネルは新たな物理ページを確保してここに書き込み要求されたデータを格納し、更に書き込みが行われた領域のマッピングを変更して、この新たな物理ページに対応させる。 When a normal page fault exception occurs, the COW (copy on write) method ensures that the kernel secures a new physical page, stores the data requested to be written here, and maps the area where writing has been performed. Change to correspond to this new physical page.
 しかし本実施形態では、ページフォルト例外が発生すると、ホストOS111はメモリ待避用フォルト処理125を実行する。メモリ退避用フォルト処理125によって、まず退避用メモリ区画160に物理ページが確保され、ここに書き込み対象のページに現在記憶されているデータが待避される(S505)。その後に、S503またはS504の処理によって書き込み禁止に設定された書き込み対象ページが書き込み可に変更されて、書き込み要求に従って当該ページのデータが更新される(S506)。 However, in this embodiment, when a page fault exception occurs, the host OS 111 executes the memory saving fault process 125. By the memory saving fault process 125, first, a physical page is secured in the saving memory partition 160, and the data currently stored in the page to be written is saved (S505). After that, the page to be written, which has been set to write-inhibited by the processing of S503 or S504, is changed to writable, and the data of the page is updated according to the write request (S506).
 退避用メモリ区画に待避されたデータは、エラー発生時にホストマシン110のメモリ領域に記憶されていたデータであり、このデータをダンプとして利用することにより、システム(及び他のゲストマシンの処理)を停止することなくダンプを取得することができる。 The data saved in the save memory partition is data stored in the memory area of the host machine 110 when an error occurs. By using this data as a dump, the system (and processing of other guest machines) can be performed. A dump can be obtained without stopping.
 図10は、図9のS501におけるエラー検出の方法と検出後に発生するプローブハンドラ処理124のフローを説明する図である。この処理の前提として、既に図4のプローブポイント挿入処理が実行され、ゲストマシンA140Aにプローブが挿入されているものとする。 FIG. 10 is a diagram for explaining the error detection method in S501 of FIG. 9 and the flow of the probe handler process 124 that occurs after detection. As a premise of this process, it is assumed that the probe point insertion process of FIG. 4 has already been executed and a probe has been inserted into the guest machine A140A.
 ゲストマシンA140Aに挿入されたプローブが実行された際(S507)、int3割り込みが発生し、ホストマシン110に制御が移行する(S508)。ホストマシン110上のホストOS111は、この割り込みを受けプローブハンドラを呼び出し(S509)、後述するプローブハンドラ処理124を実行する(S510)。プローブハンドラ処理124の実行が終了しプローブハンドラから制御権が戻った後(S511)、ゲストOSに制御が戻る(S512)。 When the probe inserted into the guest machine A 140A is executed (S507), an int3 interrupt is generated, and control is transferred to the host machine 110 (S508). Upon receiving this interrupt, the host OS 111 on the host machine 110 calls a probe handler (S509), and executes a probe handler process 124 described later (S510). After the execution of the probe handler process 124 is completed and the control right is returned from the probe handler (S511), the control returns to the guest OS (S512).
 図11は、図10のS510で実行するプローブハンドラ処理124を説明する図である。S510に入った瞬間(即ちプローブハンドラ処理124が軌道された瞬間)は、ゲストOS150Aを実行しているCPUコアがプローブポイントに達した状態、つまり当該コアが実行しているゲストOS150Aのメモリ領域でエラーが発生した状態にある。 FIG. 11 is a diagram for explaining the probe handler process 124 executed in S510 of FIG. The moment of entering S510 (that is, the moment when the probe handler process 124 is trajected) is the state where the CPU core executing the guest OS 150A has reached the probe point, that is, in the memory area of the guest OS 150A executing the core. An error has occurred.
 しかし、マルチコアプロセッサでは、プローブハンドラ処理のS514でダンプシナリオ管理テーブル121の記述に従い、特定のメモリ領域を書込み禁止にし、対応するダンプ要求ビットマップテーブル123のダンプ要求フラグを立てる処理を実行している最中に、別のCPUコアが別のゲストOS140Bを実行し、その特定のメモリ領域に書込みが発生してしまうことがある。結果、エラーが発生した時点でのメモリ内容を退避することができず、メモリ内容を書き込みによって上書きしてしまう可能性がある。 However, in the multi-core processor, according to the description of the dump scenario management table 121 in S514 of the probe handler process, a specific memory area is prohibited from being written, and a process of setting the dump request flag of the corresponding dump request bitmap table 123 is executed. In the middle, another CPU core executes another guest OS 140B, and writing may occur in the specific memory area. As a result, there is a possibility that the memory contents at the time of the error cannot be saved and the memory contents are overwritten by writing.
 よってプローブハンドラ処理124では、プローブを実行したコアコア以外の全てのコアを一時的にスリープさせる(S513)。 次にプローブハンドラ処理124では、S507で実行されたプローブのプローブポイントと対応付けられているシナリオの識別番号(シナリオNo)をプローブポイント管理テーブル120から特定する。そして、ダンプシナリオ管理テーブル121を参照して、当該シナリオの識別番号と紐付けられたダンプ箇所を特定して、このダンプ箇所(ダンプ対象領域)を含むページを特定してこのページを書込み禁止状態とする。 Therefore, in the probe handler process 124, all the cores other than the core that executed the probe are temporarily put to sleep (S513). Next, in the probe handler process 124, the scenario identification number (scenario No) associated with the probe point of the probe executed in S507 is specified from the probe point management table 120. Then, referring to the dump scenario management table 121, the dump location linked to the scenario identification number is specified, the page including this dump location (dump target area) is specified, and this page is write-inhibited. And
 そして書込み禁止状態としたページに対して、ダンプ要求ビットマップテーブル123のダンプ要求フラグに「1」を立てる(S514)。
最後に、S513によってスリープさせたプローブハンドラ処理を行なっているコア以外の全てのコアをスリープから復帰させる(S515)。 これにより、無停止ダンプを実行する準備が終了する。
Then, “1” is set in the dump request flag of the dump request bitmap table 123 for the page in the write-inhibited state (S514).
Finally, all the cores other than the core that is performing the probe handler process that has been put to sleep in S513 are returned from sleep (S515). Thereby, the preparation for executing the nonstop dump is completed.
 図12は、メモリ退避用フォルト処理125の詳細を説明した図である。データの書き込み要求をホストマシン110が受け付け、書き込み対象ページが書き込み禁止状態であった場合に、メモリ退避用フォルト処理125が実行される。尚、上述の様に書き込み要求は、障害が発生したゲストマシン以外のゲストマシンから発行される。 FIG. 12 is a diagram for explaining the details of the memory saving fault process 125. When the host machine 110 accepts a data write request and the write target page is in a write prohibited state, the memory saving fault process 125 is executed. As described above, the write request is issued from a guest machine other than the guest machine in which the failure has occurred.
 書き込み禁止領域への書み込みがあった時(S516)、ホストOS111はダンプ要求ビットマップテーブル123を参照して、書き込み対象ページにおいてダンプ要求フラグ「1」が立てられているかを判定する(S517)。 When there is a write to the write protected area (S516), the host OS 111 refers to the dump request bitmap table 123 and determines whether the dump request flag “1” is set in the write target page (S517). ).
 Yesだった場合、即ちダンプ要求フラグ「1」が立てられている場合、ホストOSは当該ページに格納されているデータをダンプ対象であると判断し、書き込み対象ページに格納されているデータを退避用メモリ区画160へコピーすることによって当該ページを待避させる(S520)。 If Yes, that is, if the dump request flag “1” is set, the host OS determines that the data stored in the page is a dump target, and saves the data stored in the page to be written The page is saved by copying to the memory partition 160 (S520).
 更にダンプ領域管理テーブル122を作成して、プローブを実行したゲストマシン140の識別情報を「ダンプ要因」に、上記処理で特定されたシナリオの識別番号を「シナリオNo」に登録する。更に現在時刻の情報を「ダンプ時刻」として、ダンプ元ページの識別情報を「ダンプ箇所」として、コピー先領域の先頭アドレス情報(当該先頭アドレスを示す退避用メモリ区画160の開始アドレスからのオフセット)を「ダンプ先オフセット」として書き込む(S521)。 Further, the dump area management table 122 is created, and the identification information of the guest machine 140 that executed the probe is registered in “dump factor”, and the identification number of the scenario specified in the above process is registered in “scenario No”. Furthermore, the current time information is “dump time”, the dump source page identification information is “dump location”, and the start address information of the copy destination area (offset from the start address of the save memory partition 160 indicating the start address) Is written as “dump destination offset” (S521).
 データの退避終了後、ホストOSは退避したページに対応するダンプ要求ビットマップテーブル123のダンプ要求フラグをクリア(「0」)とし(S522)、当該ページを書き込み可とし、当該ページに対して書き込み要求に従ってデータを書き込むことで書き込み内容を反映させる(S523)。 After saving the data, the host OS clears the dump request flag in the dump request bitmap table 123 corresponding to the saved page (“0”) (S522), makes the page writable, and writes to the page. The written contents are reflected by writing the data according to the request (S523).
 Noだった場合、即ちダンプ要求フラグが「0」の場合、ホストOSはダンプ対象外のページであると判断する。この場合はホストOSは通常のページフォルト処理を実行する。たとえばホストOSがCOW(コピー・オン・ライト)方式を採用しているオペレーティングシステムであれば、書み込み禁止領域に格納されているデータを新たに確保したページフレームにコピーし、新たに確保したページフレームを書き込み可にしてデータを書き込む(S519)。 If No, that is, if the dump request flag is “0”, the host OS determines that the page is not a dump target. In this case, the host OS executes normal page fault processing. For example, if the host OS uses an operating system that uses the COW (copy-on-write) method, the data stored in the write-inhibited area is copied to the newly secured page frame and newly secured. The page frame is made writable and data is written (S519).
 このメモリ退避用フォルト処理により、退避用メモリ区画160には、エラー発生直後のメモリ内容(ページに格納されていたデータ)がダンプされる。 By this memory saving fault processing, the memory contents immediately after the error occurrence (data stored in the page) are dumped in the saving memory partition 160.
 図13は、メモリ退避用フォルト処理124によって退避用メモリ区画160に退避されたダンプを外部記憶領域200へ書き出すダンプ書き出し処理126の詳細を説明した図である。 FIG. 13 is a diagram for explaining the details of the dump writing process 126 for writing the dump saved in the saving memory partition 160 by the memory saving fault process 124 to the external storage area 200.
 本実施形態では、計算機システム10に備わる通信インターフェース180を用いて接続された外部記憶装置200へダンプを書き出す。 In the present embodiment, the dump is written to the external storage device 200 connected using the communication interface 180 provided in the computer system 10.
 まずホストOSは、ダンプ領域管理テーブル122からシナリオNoを特定する(S524)。そしてホストOSは、ダンプシナリオ管理テーブル121を参照して、S524で取得したシナリオNoに対応付けられているダンプ箇所を特定することによって、当該ダンプ箇所を含むるページを特定する(S525)。 First, the host OS identifies the scenario number from the dump area management table 122 (S524). Then, the host OS refers to the dump scenario management table 121 and identifies the dump location associated with the scenario No acquired in S524, thereby identifying the page including the dump location (S525).
 次にホストOSは、S525で特定したページについてダンプ要求ビットマップテーブル123のダンプ要求フラグの値を読み込み(S526)、ダンプ要求フラグが立っているか(即ちフラグの値が「1」か否か)を判定する(S527)。 Next, the host OS reads the value of the dump request flag in the dump request bitmap table 123 for the page specified in S525 (S526), and whether the dump request flag is set (that is, whether the value of the flag is “1”). Is determined (S527).
 本実施形態ではシナリオに基づいて、特定領域を書き込み禁止にし、書き込み要求があった時にページ単位で退避用メモリ区画160にページに格納されたデータをダンプする。書き込み要求がなければそのページのデータは退避用メモリ区画160にダンプされることはない。 In this embodiment, based on the scenario, a specific area is write-protected, and data stored in the page in the save memory partition 160 is dumped page by page when a write request is made. If there is no write request, the data of the page is not dumped to the save memory partition 160.
 よって、まだ書き込み要求がなく、退避用メモリ区画160にダンプされていないページは、ホストマシン用メモリの当該ページから直接外部記憶装置200へ書き出す必要があり、これを確認するためにダンプ要求フラグの値をチェックする。 Therefore, a page that has not yet been requested to be written and has not been dumped to the save memory partition 160 needs to be written directly from the corresponding page of the host machine memory to the external storage device 200. In order to confirm this, the dump request flag Check the value.
 ダンプ要求フラグが立っている場合、退避用メモリ区画160に未だデータがダンプされていないページであるので、前述のとおりホストマシン用メモリの当該ページより外部記憶装置200へデータを書き出し、その領域を書き込み可能にし(S529)、ダンプ要求ビットマップテーブル123のダンプ要求フラグをクリア(「0」に)する(S530)。 When the dump request flag is set, since the page has not been dumped in the save memory partition 160, the data is written from the page in the host machine memory to the external storage device 200 as described above, and the area is stored. The writing is enabled (S529), and the dump request flag in the dump request bitmap table 123 is cleared (set to “0”) (S530).
 ダンプ要求フラグが立っていない場合、既に当該ページに対して書き込み要求が発生し、退避用メモリ区画160に当該ページのデータはダンプされているので、退避用メモリ区画160より外部記憶装置200へデータを書き出す。 When the dump request flag is not set, a write request has already been generated for the page, and the data of the page has been dumped to the save memory partition 160. Therefore, data is transferred from the save memory partition 160 to the external storage device 200. Write out.
 この処理をS525で特定した全てのページに対して実施し(S531)、全てのページについてデータが外部記憶装置200へ書き出されたら終了とする。 This process is performed for all pages specified in S525 (S531), and the process ends when data is written to the external storage device 200 for all pages.
 ダンプ書き出し処理126におけるデータの書き出し先は、外部記憶装置200に限らず、退避用メモリ区画160であってもよい。その場合は、S528の処理がなくなり、S529の外部記憶装置200が退避用メモリ区画160に変更される。 The data writing destination in the dump writing process 126 is not limited to the external storage device 200 but may be the save memory partition 160. In this case, the processing of S528 is eliminated, and the external storage device 200 of S529 is changed to the save memory partition 160.
 以上、実施の形態について、その実施の形態に基づき具体的に説明したが、これに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
特に、システム構成は仮想化環境を実施形態として用いたが、ゲストマシンをプロセスと置き換えることで、非仮想化環境にも適用可能である。
As mentioned above, although embodiment was concretely demonstrated based on the embodiment, it is not limited to this and can be variously changed in the range which does not deviate from the summary.
In particular, the system configuration uses a virtual environment as an embodiment, but can be applied to a non-virtual environment by replacing a guest machine with a process.
10 計算機システム
110 ホストマシン
111 ホストOS
112 ホストクラスタプログラム
120 プローブポイント管理テーブル
121 ダンプシナリオ管理テーブル
122 ダンプ領域管理テーブル
123 ダンプ要求ビットマップテーブル
124 プローブハンドラ処理
125 メモリ退避用フォルト処理
126 ダンプ書き出し処理
130 プローブ挿入プログラム
131 ゲストマシン障害検知プログラム
140 ゲストマシン
150 ゲストOS
160 退避用メモリ区画
170 プロセッサ
180 通信インターフェース
10 Computer system 110 Host machine 111 Host OS
112 Host cluster program 120 Probe point management table 121 Dump scenario management table 122 Dump area management table 123 Dump request bitmap table 124 Probe handler process 125 Memory saving fault process 126 Dump writing process 130 Probe insertion program 131 Guest machine failure detection program 140 Guest machine 150 Guest OS
160 Memory partition for saving 170 Processor 180 Communication interface

Claims (8)

  1.  各々がオペレーションシステムを有する仮想的な計算記である複数のゲストマシンと、
     前記複数のゲストマシンとは異なるオペレーションシステムを有し、前記複数のゲストマシンを制御するホストマシンとを有する計算機システムであって、
     前記複数のゲストマシン各々のオペレーションシステムおよび前記ホストマシンのオペレーションシステムを実行するプロセッサと、メモリとを有しており、
     前記メモリは、前記ホストマシンに割り当てられたホストマシン用メモリ領域と、データ退避用メモリ領域とを有しており、
     前記ホストマシン用メモリ領域に格納されているデータは、ゲストマシンによって実行される処理によって更新され、
     前記複数のゲストマシンの一つに障害が生じると、前記ホストマシンは当該障害と対応付けられている前記ホストマシン用メモリ領域内の領域をダンプ取得領域として当該ダンプ取得領域への書き込みを禁止し、
     前記障害が発生したゲストマシン以外のゲストマシンによる処理によって前記ダンプ取得領域に対する書き込み要求が発行された場合には、前記ホストマシンは当該ダンプ取得領域に格納されているデータを、前記データ退避用メモリ領域へコピーしてから、当該ダンプ取得領域への書き込みを許可して前記書き込み要求に従ってデータを書き込むことを特徴とする計算機システム。
    A plurality of guest machines, each of which is a virtual calculator with an operation system;
    A computer system having an operation system different from the plurality of guest machines and having a host machine for controlling the plurality of guest machines,
    A processor that executes an operation system of each of the plurality of guest machines and an operation system of the host machine, and a memory;
    The memory includes a host machine memory area allocated to the host machine, and a data saving memory area.
    The data stored in the host machine memory area is updated by a process executed by the guest machine,
    When a failure occurs in one of the guest machines, the host machine prohibits writing to the dump acquisition area using the area in the host machine memory area associated with the failure as a dump acquisition area. ,
    When a write request for the dump acquisition area is issued by a process by a guest machine other than the guest machine in which the failure has occurred, the host machine stores the data stored in the dump acquisition area in the data save memory A computer system characterized in that after copying to an area, writing to the dump acquisition area is permitted and data is written according to the write request.
  2.  請求項1記載の計算機システムであって、
     前記ホストマシンは、ゲストマシンが有する機能構成ごとに当該機能構成に障害が生じた場合に当該ゲストマシンによって実行されるプローブコードを当該ゲストマシンに挿入し、
     前記ホストマシンは、プローブコードがゲストマシンによって実行されると、当該ゲストマシンからの通知に基いて、当該プローブコードと対応付けて当該ホストマシンが管理している前記ホストマシン用メモリ領域内の領域をダンプ取得領域とすることを特徴とする計算機システム。
    The computer system according to claim 1,
    The host machine inserts a probe code to be executed by the guest machine when a failure occurs in the functional configuration for each functional configuration of the guest machine,
    When the probe code is executed by the guest machine, the host machine is an area in the host machine memory area managed by the host machine in association with the probe code based on a notification from the guest machine As a dump acquisition area.
  3. 請求項2記載の計算機システムであって、
    前記プローブコードと対応付けて前記ホストマシンが管理している前記ホストマシン用メモリ領域内の領域とは、当該プローブコードの実行要因となる障害を生じさせるゲストマシンの機能構成によってアクセスされる前記ホストマシン用メモリ領域内の領域であることを特徴とする計算機システム。
    A computer system according to claim 2, wherein
    The area in the memory area for the host machine managed by the host machine in association with the probe code is the host accessed by the functional configuration of the guest machine that causes a failure that causes execution of the probe code A computer system characterized by being an area in a memory area for a machine.
  4.  請求項2記載の計算機システムであって、
     前記ホストマシンがゲストマシンによるプローブコードの実行以外の契機で当該ゲストマシンの障害を検知した場合に、当該ホストマシンは前記ホストマシン用メモリ領域内のデータ領域全体をダンプ取得領域とすることを特徴とする計算機システム。
    A computer system according to claim 2, wherein
    When the host machine detects a failure of the guest machine other than the execution of the probe code by the guest machine, the host machine sets the entire data area in the memory area for the host machine as a dump acquisition area A computer system.
  5.  請求項1記載の計算機システムであって、
     前記ホストマシンは前記ホストマシン用メモリ領域を複数のページとして管理しており、
     ゲストマシンに障害が生じると前記ダンプ取得領域を含む複数のページについて、当該複数のページへの書き込みを禁止し、
     前記障害が発生したゲストマシン以外のゲストマシンの処理によって書き込みが禁止されたページへの書き込み要求が発行されると、当該ページに格納されているデータを前記データ退避用メモリ領域へコピーした後に、当該ページへの書き込みを許可して前記書き込み要求に従って当該ページを更新し、
    コピー先の先頭アドレスと当該ページの識別番号とを記録することを特徴とする計算機システム。
    The computer system according to claim 1,
    The host machine manages the memory area for the host machine as a plurality of pages,
    When a failure occurs in the guest machine, writing to the plurality of pages is prohibited for the plurality of pages including the dump acquisition area,
    When a write request to a page for which writing has been prohibited by processing of a guest machine other than the failed guest machine is issued, after copying the data stored in the page to the data saving memory area, Allow writing to the page, update the page according to the write request,
    A computer system for recording a head address of a copy destination and an identification number of the page.
  6.  請求項5記載の計算機システムであって、
     前記ホストマシンは、ダンプ書き出し要求を受信すると、前記ダンプ取得領域を含む前記複数のページ各々について、当該ページの識別番号がコピー先の先頭アドレスと対応付けて記録されているかを確認し、当該ページの識別番号がコピー先の先頭アドレスと対応付けて記録されている場合には、当該先頭アドレスから当該ページのサイズ分のデータを読み出し、当該ページの識別番号がコピー先の先頭アドレスと対応付けて記録されていない場合には、前記ホストマシン用メモリ領域内の当該ページからデータを読み出して、読み出したデータを記録媒体へ書き込むことを特徴とする計算機システム
    A computer system according to claim 5, wherein
    Upon receiving the dump write request, the host machine checks whether the page identification number is recorded in association with the copy destination start address for each of the plurality of pages including the dump acquisition area. Is recorded in association with the start address of the copy destination, the data corresponding to the size of the page is read from the start address, and the identification number of the page is associated with the start address of the copy destination. When not recorded, the computer system reads data from the page in the memory area for the host machine and writes the read data to a recording medium
  7.  請求項1記載の計算機システムであって、
     前記ホストマシンは、ゲストマシンに対して生存監視のための信号を送り、当該信号への応答を受信しなかった場合に当該ゲストマシンの障害を検知することを特徴とする計算機システム。
    The computer system according to claim 1,
    A computer system, wherein the host machine sends a signal for alive monitoring to a guest machine and detects a failure of the guest machine when a response to the signal is not received.
  8.  請求項2に記載の計算機であって、
     前記プロセッサは複数のコアプロセッサを有するマルチコアプロセッサであって、
     前記ホストマシンが前記ダンプ取得領域への書き込みを禁止する際には、前記ホストマシンは前記プルーブコードを実行したコアプロセッサ以外のコアプロセッサの処理を停止した後に当該ダンプ取得領域への書き込みを禁止し、
     前記ダンプ取得領域への書き込みが禁止された後に、処理を停止させたコアプロセッサの処理を再開させることを特徴とする計算機システム。
    The computer according to claim 2,
    The processor is a multi-core processor having a plurality of core processors,
    When the host machine prohibits writing to the dump acquisition area, the host machine prohibits writing to the dump acquisition area after stopping processing of a core processor other than the core processor that executed the probe code. ,
    A computer system that resumes the processing of a core processor that stopped processing after writing to the dump acquisition area is prohibited.
PCT/JP2011/001992 2011-04-04 2011-04-04 Computer system WO2012137239A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/001992 WO2012137239A1 (en) 2011-04-04 2011-04-04 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/001992 WO2012137239A1 (en) 2011-04-04 2011-04-04 Computer system

Publications (1)

Publication Number Publication Date
WO2012137239A1 true WO2012137239A1 (en) 2012-10-11

Family

ID=46968690

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/001992 WO2012137239A1 (en) 2011-04-04 2011-04-04 Computer system

Country Status (1)

Country Link
WO (1) WO2012137239A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014203360A1 (en) * 2013-06-19 2014-12-24 富士通株式会社 Information processing device, information processing method, and information processing program
US10210035B2 (en) 2014-10-08 2019-02-19 Hitachi, Ltd. Computer system and memory dump method
US11663064B1 (en) * 2019-09-02 2023-05-30 Virtuozzo International Gmbh System and method for generating a guest operating system crash dump

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189254A (en) * 1992-01-14 1993-07-30 Fujitsu Ltd Device and method for collecting control information of virtual computer
JPH05250194A (en) * 1992-03-06 1993-09-28 Nec Field Service Ltd Service processor
JPH10154087A (en) * 1996-11-25 1998-06-09 Mitsubishi Electric Corp Memory content dumping method
JP2001318806A (en) * 2000-05-11 2001-11-16 Nec Corp Method for preparing failure analysis data of program
JP2008186378A (en) * 2007-01-31 2008-08-14 Ipride Co Ltd Program for handling exception

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05189254A (en) * 1992-01-14 1993-07-30 Fujitsu Ltd Device and method for collecting control information of virtual computer
JPH05250194A (en) * 1992-03-06 1993-09-28 Nec Field Service Ltd Service processor
JPH10154087A (en) * 1996-11-25 1998-06-09 Mitsubishi Electric Corp Memory content dumping method
JP2001318806A (en) * 2000-05-11 2001-11-16 Nec Corp Method for preparing failure analysis data of program
JP2008186378A (en) * 2007-01-31 2008-08-14 Ipride Co Ltd Program for handling exception

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014203360A1 (en) * 2013-06-19 2014-12-24 富士通株式会社 Information processing device, information processing method, and information processing program
US10210035B2 (en) 2014-10-08 2019-02-19 Hitachi, Ltd. Computer system and memory dump method
US11663064B1 (en) * 2019-09-02 2023-05-30 Virtuozzo International Gmbh System and method for generating a guest operating system crash dump

Similar Documents

Publication Publication Date Title
US10649853B2 (en) Tracking modifications to a virtual machine image that occur during backup of the virtual machine
US9058195B2 (en) Virtual machines failover
US20140181359A1 (en) Information processing apparatus and method of collecting memory dump
JP4783392B2 (en) Information processing apparatus and failure recovery method
US9792208B2 (en) Techniques for logging addresses of high-availability data via a non-blocking channel
US20120304184A1 (en) Multi-core processor system, computer product, and control method
US9519502B2 (en) Virtual machine backup
US10339009B2 (en) System for flagging data modification during a virtual machine backup
US9430382B2 (en) Logging addresses of high-availability data
US8898413B2 (en) Point-in-time copying of virtual storage
US9904567B2 (en) Limited hardware assisted dirty page logging
WO2012137239A1 (en) Computer system
US8892838B2 (en) Point-in-time copying of virtual storage and point-in-time dumping
CN115576734B (en) Multi-core heterogeneous log storage method and system
JP6356822B2 (en) Computer system and memory dump method
JP5832408B2 (en) Virtual computer system and control method thereof

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11863005

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11863005

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP