WO2013080288A1 - メモリ縮退方法及び情報処理装置 - Google Patents

メモリ縮退方法及び情報処理装置 Download PDF

Info

Publication number
WO2013080288A1
WO2013080288A1 PCT/JP2011/077421 JP2011077421W WO2013080288A1 WO 2013080288 A1 WO2013080288 A1 WO 2013080288A1 JP 2011077421 W JP2011077421 W JP 2011077421W WO 2013080288 A1 WO2013080288 A1 WO 2013080288A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
physical address
virtual
failure
information
Prior art date
Application number
PCT/JP2011/077421
Other languages
English (en)
French (fr)
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/077421 priority Critical patent/WO2013080288A1/ja
Priority to JP2013546870A priority patent/JP5786955B2/ja
Publication of WO2013080288A1 publication Critical patent/WO2013080288A1/ja
Priority to US14/287,311 priority patent/US9146818B2/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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/073Error 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 memory management context, e.g. virtual memory or cache management
    • 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/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

Definitions

  • the present invention relates to a memory degeneration method and an information processing apparatus.
  • Memory degeneration refers to removal of a part of a main memory (hereinafter simply referred to as “memory”) from a use target when a failure is detected (when a memory error occurs). . Due to the degeneration of the memory, repeated access to the failure location is avoided, and the stability of the operating state of the computer is ensured.
  • system firmware firmware
  • OS Operating System
  • System software groups running on the OS
  • FIG. 1 is a diagram for explaining an example of a processing outline when a memory error occurs in the kernel space.
  • (1) shows a state where a memory error has occurred in the kernel space.
  • the system firmware stores memory failure information.
  • the memory failure information is bitmap information in which a bit is assigned for each division unit obtained by dividing the memory area by a predetermined unit.
  • the memory failure information is bitmap information in which a flag indicating whether or not each division unit can be used is recorded.
  • the OS is started, the OS is operated without using the degenerated division unit. As a result, the occurrence of a panic due to re-access to the failure location is avoided.
  • the OS can perform memory degeneration.
  • FIG. 2 is a diagram for explaining an example of a processing outline when a memory error occurs in the user space.
  • (1) shows a state where a memory error has occurred in the user space.
  • the OS stores memory failure information.
  • the OS degenerates the division unit in which the memory error has occurred based on the memory failure information. At this time, it is not necessary to restart the system.
  • FIG. 3 is a diagram for explaining a problem when a memory error occurs in a virtual environment.
  • FIG. 3 shows an example in which n virtual machines (VMs) are operating.
  • VMs virtual machines
  • (1) indicates a state in which a memory error has occurred in the kernel space on VM # 2.
  • the memory failure information is stored by the system firmware.
  • the memory is degenerated based on the memory failure information when the system (that is, all virtual machines and hypervisors) is restarted.
  • Patent Document 1 discloses a memory degeneration method in a virtual environment.
  • the unit (size) of memory degeneration is the unit of memory allocation to virtual machines. It depends.
  • the unit of memory degeneration is the size of a memory area that is degenerated due to a memory failure.
  • FIG. 4 is a diagram showing a state where the unit of memory degeneration depends on the unit of memory allocation to the virtual machine.
  • (1) indicates a state in which a memory error has occurred in the kernel space on VM # 2.
  • (2) shows a state where the memory is degenerated by the hypervisor. Since the unit of memory degeneration is a unit of memory allocation to the virtual machine, in the example of FIG. 4, the area allocated to VM # 2 is degenerated.
  • the division unit in the above increases as the amount of installed memory increases, and the memory failure information managed by the hypervisor increases. Will end up.
  • an object of one aspect of the present invention is to provide a memory degeneration method and an information processing apparatus that can realize prevention of repeated OS panic due to a memory failure with a mechanism capable of dealing with a large-scale virtual environment.
  • a memory degeneration method executed by an information processing apparatus that operates a plurality of virtual machines, wherein a virtual physical address related to the failure is detected in response to detection of a failure in a memory area allocated to the first virtual machine. Before the operating system operating on the first virtual machine is restarted upon detection of the failure.
  • FIG. 3 is a diagram illustrating a state in which a unit of memory degeneration depends on a unit of memory allocation to a virtual machine. It is a figure which shows the hardware structural example of the information processing apparatus in embodiment of this invention. It is a figure which shows the function structural example of the information processing apparatus of embodiment of this invention. It is a figure for demonstrating an example of the memory mapping of the virtual environment of this Embodiment.
  • FIG. 11 is a diagram for describing an example of an outline of processing executed by the information processing apparatus. It is a sequence diagram for demonstrating an example of the process sequence which information processing apparatus performs.
  • FIG. 10 is a diagram for supplementing the description of the processing procedure executed by the information processing apparatus. It is a figure which shows the structural example of a memory management table. It is a flowchart for demonstrating an example of the process sequence performed according to the acquisition request
  • FIG. 5 is a diagram illustrating a hardware configuration example of the information processing apparatus according to the embodiment of the present invention.
  • the information processing apparatus 10 includes a plurality of CPUs 104 such as CPUs 104a, 104b, and 104c. As will be described later, each CPU 104 is assigned to each virtual machine. Note that the information processing apparatus 10 does not necessarily include a plurality of CPUs 104. For example, a plurality of CPUs 104 may be replaced by one multi-core processor. In this case, each processor core may be assigned to each virtual machine.
  • the information processing apparatus 10 further includes a drive device 100, an auxiliary storage device 102, a main storage device 103, an interface device 105, and the like.
  • the CPU 104 and these hardware are connected by a bus B.
  • a program for realizing processing in the information processing apparatus 10 is provided by the recording medium 101.
  • the recording medium 101 on which the program is recorded is set in the drive device 100, the program is installed from the recording medium 101 to the auxiliary storage device 102 via the drive device 100.
  • the program need not be installed from the recording medium 101 and may be downloaded from another computer via a network.
  • the auxiliary storage device 102 stores the installed program and also stores necessary files and data.
  • the main storage device 103 reads the program from the auxiliary storage device 102 and stores it when there is an instruction to start the program.
  • the main storage device 103 is also referred to as “memory” below.
  • the CPU 104 executes functions related to the information processing apparatus 10 according to a program stored in the main storage device 103.
  • the interface device 105 is used as an interface for connecting to a network.
  • An example of the recording medium 101 is a portable recording medium such as a CD-ROM, a DVD disk, or a USB memory.
  • a portable recording medium such as a CD-ROM, a DVD disk, or a USB memory.
  • an HDD Hard Disk Disk Drive
  • flash memory or the like can be given. Both the recording medium 101 and the auxiliary storage device 102 correspond to computer-readable recording media.
  • FIG. 6 is a diagram illustrating a functional configuration example of the information processing apparatus according to the embodiment of this invention.
  • the information processing apparatus 10 includes a hypervisor 11 and a plurality of virtual machines (Virtual Machines) VMs 12a to 12c.
  • the hypervisor 11 and the VM 12 are realized by processing executed by the CPU 104 by a program (virtualization program) installed in the information processing apparatus 10.
  • the hypervisor 11 virtualizes the information processing apparatus 10 and enables parallel execution of a plurality of OSs 13 (operating system: Operating System).
  • the hypervisor 11 creates a virtual computer (VM 12) realized by software, and operates the OS 13 on the VM 12.
  • the hypervisor 11 is also called a virtual machine monitor (VMM (Virtual Machine Monitor)).
  • VMM Virtual Machine Monitor
  • a CPU 104 and an OS disk 120 are allocated to each VM 12.
  • the OS 13 operates on each VM 12.
  • Each OS disk 120 is a partial storage area in the auxiliary storage device 102. Storage areas that do not overlap each other in the auxiliary storage device 102 are allocated to the VMs 12 as OS disks 120a, 120b, or 120c. However, a plurality of auxiliary storage devices 102 may exist, and the OS disk 120 and the auxiliary storage device 102 may be associated one-to-one.
  • the CPU 104 assigned to each VM 12 includes a VA / RA conversion table 141, an RA / PA conversion table 142, an error notification unit 143, and the like.
  • Each VM 12 can use only the CPU 104 assigned to the VM 12, and cannot use the CPU 104 assigned to another VM 12.
  • the hypervisor 11 can use all the CPUs 104.
  • the VA / RA conversion table 141 stores information (conversion information) for converting a virtual address (Virtual Address: hereinafter referred to as “VA”) into a virtual physical address (Real Address: hereinafter referred to as “RA”). .
  • VA Virtual Address
  • RA virtual physical address
  • the VA / RA conversion table 141 stores correspondence information between VA and RA as conversion information.
  • Each CPU 104 cannot access a VA that is not stored in the VA / RA conversion table 141.
  • the VA / RA conversion table 141 is accessible from the OS 13.
  • RA is an address corresponding to a physical address for the OS 13 (or when viewed from the OS 13). However, it is not an actual physical address but a physical address virtually created by the hypervisor 11.
  • the RA / PA conversion table 142 stores information (conversion information) for converting an RA into a physical address (Physical Address: hereinafter referred to as “PA”).
  • conversion information for converting an RA into a physical address
  • PA Physical Address
  • the RA / PA conversion table 142 stores correspondence information between RA and PA as conversion information.
  • Each CPU 104 cannot access an RA that is not stored in the RA / PA conversion table 142.
  • the hypervisor 11 can access the RA / PA conversion table 142 of each CPU 104, but each OS 13 cannot access the RA / PA conversion table 142.
  • VA / RA conversion table 141 and the RA / PA conversion table 142 can be realized by using a register in the CPU 104, for example.
  • the error notification unit 143 notifies the OS 13 and the VM activation control unit 114 of the accessed address (RA) when a memory failure is detected in response to the memory access by the CPU 104.
  • the OS disk 120 of each VM 12 is used as storage means for memory degeneration information when memory degeneration is performed.
  • the memory degeneration information is information indicating a memory failure location.
  • the memory module constituting the main storage device 103 is a DIMM (DualDInline Memory Module).
  • the identification information (DIMM number) of the DIMM having the failure position and the offset value (DIMM address) of the address corresponding to the failure position in the DIMM are stored as memory degeneration information.
  • Each OS 13 can access only the OS disk 120 assigned to the virtual machine on which the OS 13 operates, and cannot access the OS disk 120 assigned to other virtual machines.
  • Each OS 13 includes a memory management table 131, a memory degeneration control unit 132, a memory access control unit 133, and the like.
  • the memory management table 131 stores information indicating the usage status in units of pages.
  • a page is a unit of memory division in the virtual memory paging method. That is, the memory management table 131 stores the usage status for each minimum unit of memory that can be degenerately controlled by the OS 13.
  • the memory management table 131 can be realized by using a memory area allocated to the VM 12 among the memory areas realized by the main storage device 103.
  • the memory degeneration control unit 132 stores memory degeneration information (DIMM number and DIMM address) in the OS disk 120.
  • the memory degeneration control unit 132 also refers to the memory degeneration information in the OS disk 120 and records the RA that has become unusable in the memory management table 131.
  • the VA / RA conversion table 141 indicates correspondence information between the acquired VA of the virtual memory area and the RA of the virtual physical memory area allocated to the VA. To record.
  • the memory management table 131 is referred to, and an available virtual physical memory area is set as an allocation target. Therefore, the RA of the unusable virtual physical memory area is not recorded in the VA / RA conversion table 141.
  • the VA / RA conversion table 141 is often managed separately by the OS 13.
  • the VA / RA conversion table 141 on the CPU 104 becomes a part of the VA / RA conversion table 141 managed by the OS 13.
  • the CPU 104 automatically reads necessary mapping information from the VA / RA conversion table 141 of the OS 13.
  • the hypervisor 11 includes a configuration information storage unit 111, a memory map control unit 112, a memory information conversion unit 113, a VM activation control unit 114, and the like.
  • the alphabet (ac) at the end of the reference number of the VM 12 is given to the end of the reference number of the component of each VM 12.
  • “b” is added to the end of the reference number of the component of the VM 12b.
  • the configuration information storage unit 111 stores memory allocation information that is correspondence information between RA and PA, and memory mounting information that is correspondence information between PA, DIMM number, and DIMM address.
  • the memory allocation information is stored for each VM 12.
  • the configuration information storage unit 111 can be realized using the main storage device 103, for example.
  • the memory map control unit 112 refers to the memory allocation information and registers the conversion information between the RA used by the VM 12 and the PA allocated to the VM 12 in the RA / PA conversion table 142 of each CPU 104 allocated to each VM 12. .
  • the memory information conversion unit 113 refers to the memory mounting information and the RA / PA conversion table 142 and performs bidirectional conversion on the RA, the DIMM number, and the DIMM address.
  • the VM activation control unit 114 performs activation control of the VM 12. Further, when a memory error is notified from the error notification unit 143, the VM activation control unit 114 instructs the memory map control unit 112 to change the RA / PA conversion table 142 before the VM 12 is activated.
  • the change in the RA / PA conversion table 142 means a change in the correspondence between RA and PA.
  • FIG. 7 is a diagram for explaining an example of memory mapping in the virtual environment according to the present embodiment.
  • the mapping (association) between VA and RA is managed by the VA / RA conversion table 141 for each VM 12.
  • the OS 13 on each VM 12 generates conversion information from VA to RA based on the memory management table 131 and records the conversion information in the VA / RA conversion table 141 of the CPU 104.
  • the CPU 104 can obtain the RA from the given VA.
  • the mapping between RA and PA is managed by the RA / PA conversion table 142 for each VM 12.
  • the memory map control unit 112 of the hypervisor 11 generates conversion information from RA to PA based on the memory allocation information, and records the conversion information in the RA / PA conversion table 142 of the CPU 104.
  • the CPU 104 can obtain the PA for the RA obtained based on the VA / RA conversion table 141.
  • the CPU 104 accesses the memory using the obtained PA.
  • the hypervisor 11 can also access the memory using the PA. In the case of the hypervisor 11, there is no restriction by each conversion table in the CPU 104, and all addresses (PA) can be accessed. That is, the hypervisor 11 can access an address assigned to any VM 12.
  • the mapping between PA, DIMM number, and DIMM address usually has a unique relationship determined by hardware specifications.
  • the mapping is incorporated as logic in a memory controller (not shown).
  • the logic is also stored in the configuration information storage unit 111 as memory mounting information.
  • the case where the correspondence between the PA, the DIMM number, and the DIMM address is variable is also considered. Therefore, the mapping of PA to DIMM number and DIMM address is also mentioned.
  • the CPU 104 can access the PA from a given VA. Access to the memory module corresponding to PA is performed by a memory controller (not shown).
  • FIG. 8 is a diagram for explaining an example of an outline of processing executed by the information processing apparatus.
  • the OS 13b operating on the VM 12b receives a notification of the failed memory address (RA) from the CPU 104b (S102). Subsequently, the OS 13b acquires a DIMM number and a DIMM address corresponding to the notified RA (S103).
  • RA failed memory address
  • the OS 13b stores the DIMM number and the DIMM address in the OS disk 120b as memory degeneration information (S104). Subsequently, the OS 13b panics and requests the hypervisor 11 to restart the VM 12b (S105).
  • the hypervisor 11 recognizes that the OS 13b has panicked due to a memory failure (S111). Subsequently, the hypervisor 11 changes memory allocation (mapping between PA and RA) regarding the VM 12b to be restarted (S112). That is, regarding the VM 12b, the memory allocation information and the RA / PA conversion table 142b are changed. At this time, the memory allocation information and the RA / PA conversion table 142b are changed so that the RA related to the memory failure location is not associated with the RA to which the kernel space of the OS 13b is allocated. Subsequently, the hypervisor 11 restarts the VM 12b (S113).
  • the OS 13b restarts with the restart of the VM 12b (S121).
  • the PA assigned to the kernel space of the OS 13b has a high possibility of not including the failure position, the OS 13b is highly likely to be restarted normally.
  • the restarted OS 13b reads memory degeneration information from the OS disk 120b (S122). Subsequently, the OS 13b acquires the RA corresponding to the DIMM number and the DIMM address indicated by the memory degeneration information (S123). Subsequently, the OS 13b removes the RA from the usable memory area (S124). As a result, in subsequent processing, occurrence of a memory error based on the same failure location is suppressed.
  • FIG. 9 is a sequence diagram for explaining an example of a processing procedure executed by the information processing apparatus.
  • FIG. 10 is a diagram for supplementing the description of the processing procedure executed by the information processing apparatus.
  • the error notification unit 143b notifies the occurrence of the memory error with the memory access control unit 133b of the OS 13b.
  • the VM activation control unit 114 of the hypervisor 11 is notified (S201, S202).
  • the RA corresponding to the VA that is the access target is specified.
  • the RA is obtained based on the VA / RA conversion table 141.
  • the memory access control unit 133b notifies the notified RA to the memory degeneration control unit 132b (S203).
  • the memory degeneration control unit 132b requests the memory information conversion unit 113 of the hypervisor 11 to convert the notified RA into a DIMM number and a DIMM address (S204).
  • the memory information conversion unit 113 converts the RA into a DIMM number and a DIMM address, and returns the conversion result to the memory degeneration control unit 132b (S205).
  • conversion from RA to a DIMM number and a DIMM address is performed using memory allocation information and memory mounting information stored in the configuration information storage unit 111. That is, conversion from RA to PA is performed using memory allocation information which is correspondence information between RA and PA.
  • conversion from the PA to the DIMM number and the DIMM address is performed using memory mounting information that is correspondence information between the PA, the DIMM number, and the DIMM address.
  • the memory degeneration control unit 132b stores the DIMM number and the DIMM address in the OS disk 120b as memory degeneration information (S206).
  • FIG. 10 (1) shows a state in which a memory failure is detected in the kernel space of the OS 13b operating on the VM 12b, and the DIMM number and DIMM address corresponding to the failure location are stored in the OS disk 120b. .
  • the OS 13b panics.
  • the memory degeneration control unit 132b of the OS 13b requests the VM start control unit 114 of the hypervisor 11 to restart the VM 12b (S207).
  • the VM activation control unit 114 recognizes that the OS 13b has panicked due to a memory failure based on the restart request after the notification of the occurrence of the memory error from the error notification unit 143b in step S204. Therefore, the VM activation control unit 114 requests the memory map control unit 112 to change the RA / PA conversion table 142b (S208).
  • the memory map control unit 112 executes processing for changing the correspondence relationship (memory mapping) between the RA and the PA with respect to the VM 12b (S209).
  • the contents of the memory allocation information and the RA / PA conversion table 142b are rewritten, and the memory allocation information and the RA so that the PA related to the memory failure location is not associated with the RA allocated to the kernel space of the OS 13b.
  • the / PA conversion table 142b is changed.
  • step S209 is shown in (2) of FIG. (2) of FIG. 10 shows a state in which the physical memory area allocated to the kernel space of the OS 13b and the physical memory area allocated to the user space are switched. As a result, the RA corresponding to the failure position moves.
  • VM 12a and VM 12c other than the VM 12b continue to operate normally.
  • the VM activation control unit 114 clears the VA / RA conversion table 141b of the CPU 104b with the restart of the VM 12b (S210). Subsequently, the VM activation control unit 114 restarts the VM 12b (S211). As the VM 12b restarts, the OS 13b also restarts (S212). At this time, since the PA corresponding to the RA assigned to the kernel space of the OS 13b does not include the failure position, the OS 13b restarts normally.
  • the memory degeneration control unit 132b reads a DIMM number and a DIMM address stored as memory degeneration information in the OS disk 120b (S213). Subsequently, the memory degeneration control unit 132b requests the memory information conversion unit 113 to convert the DIMM number and the DIMM address to RA (S214).
  • the memory information conversion unit 113 converts the DIMM number and the DIMM address into RA based on the memory mounting information and the memory allocation information (S215). Specifically, the DIMM number and DIMM address are converted into PA based on the memory mounting information.
  • the PA is converted to RA based on the memory allocation information.
  • the memory information conversion unit 113 returns RA as a conversion result to the memory degeneration control unit 132b (S216).
  • the memory degeneration control unit 132 updates the memory management table 131b and removes the memory area including the RA from the use target (S217).
  • FIG. 11 is a diagram illustrating a configuration example of the memory management table.
  • the memory management table 131b stores a value indicating the usage status for each page number.
  • page numbers and RA are unique. For example, when the minimum memory size that can be degenerate controlled by the OS 13b is 8K bytes, a value obtained by shifting RA to the right by 13 bits becomes the page number. The value obtained by shifting RA to the right by 13 bits is a value obtained by rounding RA in units of 8 Kbytes. Therefore, the page number indicates an RA area in units of 8 Kbytes.
  • 0, 1, or 2 is recorded in the usage status. 0 indicates unused. 1 indicates that it is in use. 2 indicates that it cannot be used.
  • step S217 the memory degeneration control unit 132 records “2” for the page number that matches the value obtained by shifting the RA to be removed from the use target by 13 bits to the right.
  • the unit of degeneration can be limited to, for example, a page unit.
  • the unit of degeneration can be 8K bytes. As a result, it is possible to reduce the memory area that is normal but is not used.
  • FIG. 10 (3) shows a state in which the DIMM number and the DIMM address are read as the memory degeneration information, and the hypervisor 11 converts the DIMM number and the DIMM address into RA. Furthermore, a state where the page P1 including the RA is degenerated is shown.
  • the memory area acquisition request may be generated in the OS 13b, or may be generated in a program (for example, an application program) operating on the OS 13b.
  • FIG. 12 is a flowchart for explaining an example of a processing procedure executed in response to a memory area acquisition request.
  • the memory access control unit 133b secures a virtual memory area of the size specified in the acquisition request (S222). Subsequently, the memory access control unit 133b refers to the memory management table 131b and searches for usable page numbers (S223). That is, the page number whose usage status value is “0” is searched in the memory management table 131b.
  • the memory access control unit 133b records “1” for the usage status of the page number corresponding to the page of the size corresponding to the acquisition request among the retrieved page numbers (S224). Subsequently, the memory access control unit 133b uses the VA / RA conversion table 141b of the CPU 104b as the correspondence information between the VA in the virtual memory area secured in step S222 and the RA related to the page number used in step S224. (S225).
  • the RA whose usage status is “2” is not registered in the VA / RA conversion table 141b. Further, the OS 13b does not access the memory using anything other than VA. In other words, the OS 13b does not access the memory using RA. As a result, the memory area whose usage status value is “2”, that is, the memory area including the failure position is degenerated.
  • FIG. 13 are diagrams for explaining a first example of the memory mapping change process.
  • the kernel space is arranged from a high address.
  • the address level of the mapping change process described below may be reversed.
  • each entry of the RA / PA conversion table 142b in the first example has items such as RA, size, and PA offset.
  • the PA corresponding to the RA of each entry is obtained by “RA + PA offset”.
  • the “size” virtual physical memory area starting from RA is mapped to the “size” physical memory area starting from RA + PA offset.
  • the virtual physical memory area is referred to as “RA area”
  • the physical memory area is referred to as “PA area”.
  • the memory map control unit 112 searches for an entry with the highest RA in the RA / PA conversion table 142b. Here, entry D is found.
  • the memory map control unit 112 extracts an entry having the same size value as the D entry from the RA / PA conversion table 142b. That is, an entry having a size value of 256 Mbytes is extracted.
  • the A entry and the B entry are extracted.
  • FIG. 14 shows a state after such rotation of mapping is performed.
  • the PA area b corresponding to the RA area D allocated to the kernel space is not a memory failure occurrence location. Therefore, there is a high possibility that the OS 13b can be started normally.
  • FIG. 15 shows a state after such rotation of mapping is performed.
  • the PA area a corresponding to the RA area D assigned to the kernel space is not a memory failure occurrence location. Therefore, there is a high possibility that the OS 13b can be started normally.
  • the memory degeneration control unit 132b degenerates the failed portion of the memory. At this time, degeneration is not performed in units of entries in the RA / PA conversion table 142, but the minimum unit area of the memory that can be degenerated in the OS 13b is degenerated.
  • the memory map control unit 112b replaces the mapping with the RA with respect to the PA area already assigned to the VM 12b (before detection of the memory failure).
  • a change is made with respect to the existing mapping.
  • the unit of degeneration depends on the unit of entries in the RA / PA conversion table 142 (256 Mbytes for the PA area d). That is, for example, if the RA area D is mapped to a new PA area in the state shown in FIG. 13, the 256-Mbyte PA area d becomes an unused memory area.
  • the range of degeneration can be limited to the minimum unit area (for example, 8 Kbytes) of the memory that can be subjected to degeneration control of the OS 13b in the PA area d.
  • FIG. 17, and FIG. 18 are diagrams for explaining a second example of the memory mapping change process. Again, it is assumed that the kernel space is arranged from a high address. In the case of an architecture in which the kernel space is allocated from a low address, the address level of the mapping change process described below may be reversed.
  • each entry of the RA / PA conversion table 142b in the second example has items such as PA, size, RA offset, and status.
  • the RA of each entry is obtained by “PA + RA offset”. That is, the RA area for “size” starting from the PA + RA offset is mapped to the PA area for “size” starting from PA. In the state, either ok or failed is recorded. ok indicates a normal state. “failed” indicates that a location that has failed in the past is included.
  • RA area D is an RA area assigned to the kernel space.
  • the memory map control unit 112 searches the RA / PA conversion table 142b for an entry including the RA notified from the error notification unit 143b. Here, since the entry of d is found, the memory map control unit 112 changes the state of the entry of d to failed.
  • the memory map control unit 112 extracts, from the RA / PA conversion table 142, an entry having the same size value as the entry of d and having a state value of ok.
  • entry a and entry b are extracted.
  • the memory map control unit 112 extracts the entry having the lowest RA among the entries extracted in (2).
  • entry a is extracted.
  • the memory map control unit 112 changes the RA offset of the entries a and d so that the RA area D corresponding to the PA area d and the RA area A corresponding to the PA area a are switched.
  • FIG. 17 shows a state where the mapping is changed in this way.
  • the PA area a corresponding to the RA area D assigned to the kernel space is not a memory failure occurrence location. Therefore, there is a high possibility that the OS 13b can be started normally.
  • FIG. 18 shows a state after such a mapping change is performed.
  • the P area b corresponding to the RA area D allocated to the kernel space is not a memory failure occurrence location. Therefore, there is a high possibility that the OS 13b can be started normally.
  • the memory degeneration control unit 132b degenerates the failed portion of the memory. At this time, degeneration is not performed in units of entries in the RA / PA conversion table 142, but the minimum unit area of the memory that can be degenerated in the OS 13b is degenerated.
  • the memory map control unit 112b replaces the mapping with the RA with respect to the PA area already assigned to the VM 12b. Therefore, it can be avoided that the unit of degeneration depends on the unit of entries in the RA / PA conversion table 142 (256 M bytes for the PA area d).
  • DIMM number and DIMM address are stored as memory degeneration information.
  • PA may be stored instead of the DIMM number and DIMM address.
  • address information that does not affect the change in mapping between RA and PA may be stored as memory degeneration information.
  • SIMM Single In-line Memory Module
  • the failure location may be specified by a method suitable for the memory module.
  • the mapping between the RA and the PA is changed so that the PA corresponding to the memory failure position is not assigned to the OS 13 kernel space.
  • the target of restart is limited to the VM 12 in which a memory failure is detected. That is, there is no need to restart the information processing apparatus 10 itself.
  • the degeneration of the memory is performed by the OS 13 on the VM 12.
  • the hypervisor 11 only has to change the mapping of the RA / PA conversion table 142, and is not directly involved in memory degeneration. Therefore, it is unlikely that the information to be managed by the hypervisor 11 due to the degeneration of the memory increases with the increase of the VM 12. Therefore, even in a large-scale virtualization environment, there is a low possibility that management information of the hypervisor 11 becomes large or the control of the hypervisor 11 becomes complicated due to memory degeneration.
  • the memory can be degenerated in the minimum unit of memory that can be degenerated in the OS 13. Therefore, a normal memory area can be effectively used.
  • the OS 13 does not store the failure location by RA, but stores it by a DIMM number and a DIMM address which are physical address information. Therefore, even if the mapping between RA and PA is changed by the hypervisor 11, it is possible to correctly grasp the RA to be degenerated.
  • Information processing apparatus 11 Hypervisor 12 VM 13 OS 100 drive device 101 recording medium 102 auxiliary storage device 103 main storage devices 104, 104a, 104b, 104c CPU 105 Interface device 111 Configuration information storage unit 112 Memory map control unit 113 Memory information conversion unit 114 VM activation control unit 120 OS disk 131 Memory management table 132 Memory degeneration control unit 133 Memory access control unit 141 VA / RA conversion table 142 RA / PA Conversion table 143 Error notification unit B bus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

 複数の仮想マシンが動作する情報処理装置が実行するメモリ縮退方法であって、第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する処理を実行する。

Description

メモリ縮退方法及び情報処理装置
 本発明は、メモリ縮退方法及び情報処理装置に関する。
 メモリの縮退とは、メインメモリ(以下、単に「メモリ」という。)の一部において故障が検出された場合(メモリエラーが発生した場合)に、当該一部を使用対象から除去することをいう。メモリの縮退によって、故障位置に対して繰り返しアクセスすることが回避され、コンピュータの稼働状態の安定性が確保される。
 従来、カーネル空間においてメモリエラーが発生した場合、メモリの縮退は、例えば、CPUとは別のプロセッサで稼動する監視機構であるファームウェア(以下、「システムファームウェア」という。)が、システム(OS(Operating System)及びOS上で動作するソフトウェア群)の起動時に行われる。
 図1は、カーネル空間においてメモリエラーが発生した場合の処理概要の一例を説明するための図である。
 図1において、(1)は、カーネル空間においてメモリエラーが発生した状態を示す。この場合、システムファームウェアは、メモリ故障情報を記憶する。メモリ故障情報は、メモリ領域が所定の単位で分割された分割単位ごとにビットが割り当てられたビットマップ情報である。すなわち、メモリ故障情報は、分割単位ごとに使用可否を示すフラグが記録されたビットマップ情報である。
 メモリエラーによってOSがパニックしてシステムの再起動が開始されると、(2)に示される状態に移行する。(2)において、システムファームウェアは、メモリ故障情報に基づいて、メモリエラーが発生した分割単位を縮退させる。
 続いて、OSが起動されると、縮退された分割単位は使用されずにOSは稼動する。その結果、故障位置への再度のアクセスによるパニックの発生が回避される。
 一方、ユーザ空間においてエラーが発生した場合は、OSがメモリの縮退を行うことができる。
 図2は、ユーザ空間においてメモリエラーが発生した場合の処理概要の一例を説明するための図である。
 図2において、(1)は、ユーザ空間においてメモリエラーが発生した状態を示す。この場合、OSは、メモリ故障情報を記憶する。
 続いて、OSは、(2)に示されるように、メモリ故障情報に基づいて、メモリエラーが発生した分割単位を縮退させる。この際、システムの再起動は不要である。
 他方において、仮想化技術によって、一つのコンピュータ上に、複数の仮想マシンを起動させることができる。このような仮想化環境において、システムファームウェアは、各仮想マシンの起動又は再起動に関与しない。したがって、メモリの縮退に関して上記の機構を採用した場合、図3に示されるような問題が有る。
 図3は、仮想化環境におけるメモリエラーの発生時の問題点を説明するための図である。図3では、n個の仮想マシン(VM)が稼動している例が示されている。
 (1)は、VM#2上のカーネル空間においてメモリエラーが発生した状態を示す。この場合、図1において説明したように、システムファームウェアによって、メモリ故障情報が記憶される。
 (2)は、メモリエラーによってVM#2のOSがパニックしている状態を示す。但し、VM#2以外のVMは、動作を継続することができる。
 (3)は、パニックに応じて、VM#2のOSが、再起動を開始した状態を示す。この際、システムファームウェアは、VM#2の再起動に関与しない。VMの起動は、ハイパーバイザによって行われるからである。したがって、システムファームウェアが記憶するメモリ故障情報に基づいて、メモリの縮退を行うことはできない。その結果、VM#2上のOSは、再度パニックし、(2)の状態と(3)の状態とを繰り返すことになる。
 なお、図3において、メモリ故障情報に基づいてメモリの縮退が行われるのは、システム(すなわち、全ての仮想マシン及びハイパーバイザ)が再起動される際である。
 そこで、例えば、特許文献1では、仮想化環境におけるメモリの縮退方法が開示されている。
特開2009-245216号公報 特開2009-230596号公報 特開2009-59121号公報
 しかしながら、特許文献1に記載された技術のように、仮想マシンにメモリを割り当てる単位でメモリの縮退が行われると、メモリの縮退の単位(サイズ)は、仮想マシンへのメモリの割り当ての単位に依存してしまう。メモリの縮退の単位とは、メモリの故障によって縮退されるメモリ領域のサイズをいう。
 図4は、メモリの縮退の単位が仮想マシンへのメモリの割り当ての単位に依存する状態を示す図である。
 (1)は、VM#2上のカーネル空間においてメモリエラーが発生した状態を示す。
 (2)は、ハイパーバイザによってメモリの縮退が行われている状態を示す。メモリの縮退の単位は、仮想マシンへのメモリの割り当て単位であるため、図4の例では、VM#2に割り当てられた領域が縮退されてしまう。
 したがって、仮想マシンに割り当てるメモリの単位が大きい場合、メモリの縮退の単位が大きくなり、正常なメモリを無駄にしてしまうことになる。
 このような事態を避けるために、仮想マシンに割り当てるメモリの単位を小さくすると、メモリの搭載量が大きくなればなるほど、上記における分割単位が増加し、ハイパーバイザが管理するメモリ故障情報が肥大化してしまうことになる。
 また、仮想マシンに割り当てるメモリの単位を可変長にすると、ハイパーバイザの制御内容が複雑になるという問題が有る。
 上記の通り、従来の技術では、大規模な仮想化環境に対応するのは困難である。
 そこで、一側面では、メモリ故障によるOSのパニックの繰り返しの防止を仮想化環境の大規模化に対応可能な仕組みで実現することのできるメモリ縮退方法及び情報処理装置の提供を目的とする。
 一つの案では、複数の仮想マシンが動作する情報処理装置が実行するメモリ縮退方法であって、第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する処理を実行する。
 一態様によれば、メモリ故障によるOSのパニックの繰り返しの防止を仮想化環境の大規模化に対応可能な仕組みで実現することができる。
カーネル空間においてメモリエラーが発生した場合の処理概要の一例を説明するための図である。 ユーザ空間においてメモリエラーが発生した場合の処理概要の一例を説明するための図である。 仮想化環境におけるメモリエラーの発生時の問題点を説明するための図である。 メモリの縮退の単位が仮想マシンへのメモリの割り当ての単位に依存する状態を示す図である。 本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。 本発明の実施の形態の情報処理装置の機能構成例を示す図である。 本実施の形態の仮想化環境のメモリマッピングの一例を説明するための図である。 情報処理装置が実行する処理の概要の一例を説明するための図である。 情報処理装置が実行する処理手順の一例を説明するためのシーケンス図である。 情報処理装置が実行する処理手順の説明を補足するための図である。 メモリ管理テーブルの構成例を示す図である。 メモリ領域の獲得要求に応じて実行される処理手順の一例を説明するためのフローチャートである。 メモリマッピングの変更処理の第一の例を説明するための図である。 メモリマッピングの変更処理の第一の例を説明するための図である。 メモリマッピングの変更処理の第一の例を説明するための図である。 メモリマッピングの変更処理の第二の例を説明するための図である。 メモリマッピングの変更処理の第二の例を説明するための図である。 メモリマッピングの変更処理の第二の例を説明するための図である。
 以下、図面に基づいて本発明の実施の形態を説明する。図5は、本発明の実施の形態における情報処理装置のハードウェア構成例を示す図である。図5において、情報処理装置10は、CPU104a、104b、及び104c等の複数のCPU104を有する。後述されるように、各CPU104は、各仮想マシンに割り当てられる。なお、情報処理装置10は、必ずしも複数のCPU104を備えていなくてもよい。例えば、一つのマルチコアプロセッサによって、複数のCPU104が代替されてもよい。この場合、各プロセッサコアが、各仮想マシンに割り当てられればよい。
 情報処理装置10は、更に、ドライブ装置100、補助記憶装置102、主記憶装置103、及びインタフェース装置105等を有する。CPU104とこれらのハードウェアとは、バスBによって接続されている。
 情報処理装置10での処理を実現するプログラムは、記録媒体101によって提供される。プログラムを記録した記録媒体101がドライブ装置100にセットされると、プログラムが記録媒体101からドライブ装置100を介して補助記憶装置102にインストールされる。但し、プログラムのインストールは必ずしも記録媒体101より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
 主記憶装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。なお、主記憶装置103は、以下において「メモリ」とも呼ばれる。CPU104は、主記憶装置103に格納されたプログラムに従って情報処理装置10に係る機能を実行する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。
 なお、記録媒体101の一例としては、CD-ROM、DVDディスク、又はUSBメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置102の一例としては、HDD(Hard Disk Drive)又はフラッシュメモリ等が挙げられる。記録媒体101及び補助記憶装置102のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
 図6は、本発明の実施の形態の情報処理装置の機能構成例を示す図である。図6において、情報処理装置10は、ハイパーバイザ11、及びVM12a~12cの複数の仮想マシン(Virtual Machine)を有する。ハイパーバイザ11及びVM12は、情報処理装置10にインストールされたプログラム(仮想化プログラム)がCPU104に実行させる処理によって実現される。
 ハイパーバイザ11は、情報処理装置10を仮想化し、複数のOS13(オペレーティングシステム:Operating System)の並列実行を可能とする。ハイパーバイザ11は、ソフトウェアによって実現される仮想的なコンピュータ(VM12)を作り出し、VM12上でOS13を動作させる。なお、ハイパーバイザ11は、仮想マシンモニタ(VMM(Virtual Machine Monitor))とも呼ばれる。
 図6に示されるように、各VM12には、CPU104及びOSディスク120が割り当てられている。また、各VM12上では、OS13が動作する。
 OSディスク120は、それぞれ、補助記憶装置102における一部の記憶領域である。各VM12には、補助記憶装置102において相互に重複しない記憶領域が、OSディスク120a、120b、又は120cとして割り当てられる。但し、補助記憶装置102が複数存在し、OSディスク120と補助記憶装置102とが一対一に対応付けられてもよい。
 各VM12に割り当てられたCPU104は、VA/RA変換テーブル141、RA/PA変換テーブル142、及びエラー通知部143等を含む。各VM12は、当該VM12に割り当てられたCPU104のみを使用可能であり、他のVM12に割り当てられたCPU104は使用することはできない。一方、ハイパーバイザ11は、全てのCPU104を使用することができる。
 VA/RA変換テーブル141は、仮想アドレス(Virtual Address:以下、「VA」という。)から仮想物理アドレス(Real Address:以下「RA」という。)に変換するための情報(変換情報)を記憶する。例えば、VA/RA変換テーブル141は、VAとRAとの対応情報を変換情報として記憶する。各CPU104は、VA/RA変換テーブル141に記憶されていないVAへのアクセスは出来ない。また、VA/RA変換テーブル141は、OS13からアクセス可能である。なお、RAは、OS13にとっての(又はOS13から見た場合の)物理アドレスに相当するアドレスである。但し、実際の物理アドレスではなく、ハイパーバイザ11によって仮想的に作り出されている物理アドレスである。
 RA/PA変換テーブル142は、RAから物理アドレス(Physical Address:以下「PA」という。)に変換するための情報(変換情報)を記憶する。例えば、RA/PA変換テーブル142は、RAとPAとの対応情報を変換情報として記憶する。各CPU104は、RA/PA変換テーブル142に記憶されていないRAへのアクセスは出来ない。ハイパーバイザ11は、各CPU104のRA/PA変換テーブル142にアクセス可能であるが、各OS13は、RA/PA変換テーブル142にアクセスすることは出来ない。
 なお、VA/RA変換テーブル141及びRA/PA変換テーブル142は、例えば、CPU104内のレジスタを用いて実現可能である。
 エラー通知部143は、CPU104によるメモリアクセスに応じてメモリの故障が検出された場合、アクセスされたアドレス(RA)を、OS13及びVM起動制御部114に通知する。
 各VM12のOSディスク120は、メモリの縮退が行われた場合に、メモリ縮退情報の記憶手段として利用される。メモリ縮退情報とは、メモリの故障位置を示す情報である。本実施の形態において、主記憶装置103を構成するメモリモジュールは、DIMM(Dual Inline Memory Module)であるとする。故障位置を有するDIMMの識別情報(DIMM番号)と、当該DIMMにおいて、故障位置に対応するアドレスのオフセット値(DIMMアドレス)とが、メモリ縮退情報として記憶される。なお、各OS13は、当該OS13が動作する仮想マシンに割り当てられたOSディスク120にのみアクセス可能であり、他の仮想マシンに割り当てられたOSディスク120にはアクセスすることは出来ない。
 各OS13は、メモリ管理テーブル131、メモリ縮退制御部132、及びメモリアクセス制御部133等を有する。
 メモリ管理テーブル131は、ページ単位で、使用状況を示す情報を記憶する。ページとは、仮想記憶のページング方式におけるメモリの分割単位である。すなわち、メモリ管理テーブル131は、OS13において縮退制御可能なメモリの最小単位ごとに、使用状況を記憶する。なお、メモリ管理テーブル131は、主記憶装置103が実現するメモリ領域のうち、当該VM12に割り当てられたメモリ領域を用いて実現可能である。
 メモリ縮退制御部132は、メモリ縮退情報(DIMM番号及びDIMMアドレス)をOSディスク120に記憶する。メモリ縮退制御部132は、また、OSディスク120内のメモリ縮退情報を参照して、メモリ管理テーブル131に使用不可能となったRAを記録する。
 メモリアクセス制御部133は、新たに仮想メモリ領域を獲得する際に、獲得した仮想メモリ領域のVAと、当該VAに対して割り当てる仮想物理メモリ領域のRAとの対応情報をVA/RA変換テーブル141に記録する。VAに対して割り当てる仮想物理メモリ領域の決定の際には、メモリ管理テーブル131が参照され、使用可能な仮想物理メモリ領域が割り当ての対象とされる。したがって、使用不可能な仮想物理メモリ領域のRAがVA/RA変換テーブル141に記録されることはない。一般的に、CPU104上のVA/RA変換テーブル141のサイズにはハードウェア的に限界があるため、VA/RA変換テーブル141は、OS13によっても別途管理されることが多い。その場合、CPU104上のVA/RA変換テーブル141はOS13によって管理されるVA/RA変換テーブル141の一部となる。CPU104は、必要となるマッピング情報をOS13のVA/RA変換テーブル141から自動的に読み込む。
 ハイパーバイザ11は、構成情報記憶部111、メモリマップ制御部112、メモリ情報変換部113、及びVM起動制御部114等を含む。
 なお、本実施の形態において、各VM12の構成要素の参照番号の末尾には、当該VM12の参照番号の末尾のアルファベット(a~c)が付与される。例えば、VM12bの構成要素の参照番号の末尾には、「b」が付与される。
 構成情報記憶部111は、RAとPAとの対応情報であるメモリ割当情報と、PAとDIMM番号及びDIMMアドレスとのの対応情報であるメモリ実装情報とを記憶する。メモリ割当情報は、VM12ごとに記憶される。構成情報記憶部111は、例えば、主記憶装置103を用いて実現可能である。
 メモリマップ制御部112は、メモリ割当情報を参照して、VM12が使用するRAと、VM12に割り当てるPAとの変換情報を、各VM12に割り当てられるそれぞれのCPU104のRA/PA変換テーブル142に登録する。
 メモリ情報変換部113は、メモリ実装情報とRA/PA変換テーブル142とを参照して、RAとDIMM番号及びDIMMアドレスとについて、双方向の変換を行う。
 VM起動制御部114は、VM12の起動制御を行う。VM起動制御部114は、また、エラー通知部143からメモリエラーの通知があった場合は、VM12を起動する前に、RA/PA変換テーブル142の変更をメモリマップ制御部112に指示する。RA/PA変換テーブル142の変更とは、RAとPAとの対応関係の変更をいう。
 続いて、本実施の形態の情報処理装置10における仮想化環境のメモリマッピングについて説明する。すなわち、VA、RA、PA、並びにDIMM番号及びDIMMアドレスの関係について説明する。図7は、本実施の形態の仮想化環境のメモリマッピングの一例を説明するための図である。
 VAとRAとのマッピング(対応付け)については、VM12ごとにVA/RA変換テーブル141によって管理される。各VM12上のOS13が、メモリ管理テーブル131に基づいてVAからRAへの変換情報を生成し、当該変換情報をCPU104のVA/RA変換テーブル141に記録する。VAからRAへの変換情報がVA/RA変換テーブル141に記録されると、CPU104は、与えられたVAからRAを求めることができるようになる。
 RAとPAとのマッピングについては、VM12ごとにRA/PA変換テーブル142によって管理される。ハイパーバイザ11のメモリマップ制御部112が、メモリ割当情報に基づいてRAからPAへの変換情報を生成し、当該変換情報をCPU104のRA/PA変換テーブル142に記録する。RAからPAへの変換情報がRA/PA変換テーブル142に記録されると、CPU104は、VA/RA変換テーブル141に基づいて求められたRAに関して、PAを求めることができるようになる。CPU104は、求められたPAを使用してメモリへのアクセスを行う。なお、ハイパーバイザ11もPAを使用してメモリにアクセスすることができる。ハイパーバイザ11の場合、CPU104内の各変換テーブルによる制限はなく、全てのアドレス(PA)にアクセス可能である。すなわち、ハイパーバイザ11は、いずれのVM12に割り当てられたアドレスにもアクセス可能である。
 PAとDIMM番号及びDIMMアドレスとのマッピングは、通常、ハードウェア仕様によって決定される一意な関係にある。例えば、非図示のメモリコントローラに、当該マッピングがロジックとして組み込まれている。当該ロジックは、メモリ実装情報として、構成情報記憶部111にも記憶される。なお、本実施の形態では、PAとDIMM番号及びDIMMアドレスとの対応が可変である場合についても考慮している。したがって、PAとDIMM番号及びDIMMアドレスとのマッピングについても言及されている。
 以上の三つのマッピングにより、CPU104は与えられたVAからPAにアクセスすることができる。PAに対応するメモリモジュールへのアクセスは、非図時のメモリコントローラによって行われる。
 以下、情報処理装置10が実行する処理手順について説明する。図8は、情報処理装置が実行する処理の概要の一例を説明するための図である。
 例えば、VM12bにおいて、メモリの故障が検知されると(S101)、VM12b上で動作するOS13bは、故障したメモリアドレス(RA)の通知をCPU104bより受ける(S102)。続いて、OS13bは、通知されたRAに対応するDIMM番号及びDIMMアドレスを取得する(S103)。
 続いて、OS13bは、当該DIMM番号及びDIMMアドレスを、メモリ縮退情報としてOSディスク120bに記憶する(S104)。続いて、OS13bは、パニックし、VM12bの再起動をハイパーバイザ11に要求する(S105)。
 ハイパーバイザ11は、再起動要求に応じ、OS13bがメモリの故障が原因でパニックしたことを認識する(S111)。続いて、ハイパーバイザ11は、再起動対象のVM12bに関するメモリの割り当て(PAとRAとのマッピング)を変更する(S112)。すなわち、VM12bに関して、メモリ割当情報とRA/PA変換テーブル142bとが変更される。この際、OS13bのカーネル空間が割り当てられるRAには、メモリの故障位置に係るPAが対応付けられないように、メモリ割当情報及びRA/PA変換テーブル142bが変更される。続いて、ハイパーバイザ11は、VM12bを再起動させる(S113)。
 続いて、VM12bの再起動に伴って、OS13bが再起動する(S121)。この際、OS13bのカーネル空間に割り当てられたPAは、故障位置を含まない可能性が高いため、OS13bは、正常に再起動される可能性が高い。
 続いて、再起動されたOS13bは、OSディスク120bからメモリ縮退情報を読み込む(S122)。続いて、OS13bは、当該メモリ縮退情報が示すDIMM番号及びDIMMアドレスに対応するRAを取得する(S123)。続いて、OS13bは、当該RAを、使用可能なメモリ領域から除去する(S124)。その結果、以降の処理において、同じ故障位置に基づくメモリエラーの発生は抑止される。
 続いて、情報処理装置10が実行する処理手順を更に詳しく説明する。図9は、情報処理装置が実行する処理手順の一例を説明するためのシーケンス図である。また、図10は、情報処理装置が実行する処理手順の説明を補足するための図である。
 例えば、CPU104bが、OS13bの命令コードに指定されたVAに対応するPAにアクセスした結果、メモリ故障を検出すると、エラー通知部143bは、メモリエラーの発生を、OS13bのメモリアクセス制御部133bと、ハイパーバイザ11のVM起動制御部114とに通知する(S201、S202)。当該通知には、アクセス対象とされたVAに対応するRAが指定される。当該RAは、VA/RA変換テーブル141に基づいて求められる。
 続いて、メモリアクセス制御部133bは、通知されたRAをメモリ縮退制御部132bに通知する(S203)。メモリ縮退制御部132bは、通知されたRAに関して、DIMM番号及びDIMMアドレスへの変換を、ハイパーバイザ11のメモリ情報変換部113に要求する(S204)。メモリ情報変換部113は、当該RAをDIMM番号及びDIMMアドレスに変換し、変換結果をメモリ縮退制御部132bに応答する(S205)。なお、RAからDIMM番号及びDIMMアドレスへの変換は、構成情報記憶部111が記憶する、メモリ割当情報及びメモリ実装情報を用いて行われる。すなわち、RAとPAとの対応情報であるメモリ割当情報を用いて、RAからPAへの変換が行われる。続いて、PAとDIMM番号及びDIMMアドレスとの対応情報であるメモリ実装情報を用いて、PAからDIMM番号及びDIMMアドレスへの変換が行われる。
 続いて、メモリ縮退制御部132bは、DIMM番号及びDIMMアドレスを、メモリ縮退情報としてOSディスク120bに記憶する(S206)。
 以上までの状態が、図10の(1)に示されている。図10の(1)では、VM12b上で動作するOS13bのカーネル空間においてメモリ故障が検出され、当該故障位置に対応するDIMM番号及びDIMMアドレスが、OSディスク120bに記憶される様子が示されている。
 続いて、OS13bがパニックする。パニック処理において、OS13bのメモリ縮退制御部132bは、ハイパーバイザ11のVM起動制御部114に対して、VM12bの再起動を要求する(S207)。VM起動制御部114は、ステップS204におけるエラー通知部143bからのメモリエラーの発生通知の後の再起動要求であることに基づいて、OS13bがメモリ故障が原因でパニックしたことを認識する。そこで、VM起動制御部114は、RA/PA変換テーブル142bの変更をメモリマップ制御部112に要求する(S208)。
 メモリマップ制御部112は、要求に応じ、VM12bに関して、RAとPAとの対応関係(メモリマッピング)の変更処理を実行する(S209)。その結果、メモリ割当情報及びRA/PA変換テーブル142bの内容が書き換えられ、OS13bのカーネル空間に割り当てられるRAには、メモリの故障位置に係るPAが対応付けられないように、メモリ割当情報及びRA/PA変換テーブル142bが変更される。
 ステップS209における状態が、図10の(2)に示されている。図10の(2)では、OS13bのカーネル空間に割り当てられていた物理メモリ領域と、ユーザ空間に割り当てられていた物理メモリ領域とが入れ替えられている様子が示されている。その結果、故障位置に対応するRAは、移動する。
 なお、VM12b以外のVM12a及びVM12cに関しては、正常に動作が継続している。
 続いて、VM起動制御部114は、VM12bの再起動に伴い、CPU104bのVA/RA変換テーブル141bをクリアする(S210)。続いて、VM起動制御部114は、VM12bを再起動させる(S211)。VM12bの再起動に伴って、OS13bも再起動する(S212)。この際、OS13bのカーネル空間に割り当てられるRAに対応するPAは、故障位置を含まないため、OS13bは、正常に再起動する。
 OS13bが再起動すると、メモリ縮退制御部132bは、OSディスク120bにメモリ縮退情報として記憶されているDIMM番号及びDIMMアドレスを読み込む(S213)。続いて、メモリ縮退制御部132bは、当該DIMM番号及びDIMMアドレスについて、RAへの変換をメモリ情報変換部113に要求する(S214)。メモリ情報変換部113は、メモリ実装情報及びメモリ割当情報に基づいて、当該DIMM番号及びDIMMアドレスをRAに変換する(S215)。具体的には、メモリ実装情報に基づいて、当該DIMM番号及びDIMMアドレスがPAに変換される。当該PAは、メモリ割当情報に基づいてRAに変換される。
 続いて、メモリ情報変換部113は、変換結果としてのRAを、メモリ縮退制御部132bに応答する(S216)。続いて、メモリ縮退制御部132は、メモリ管理テーブル131bを更新し、当該RAを含むメモリ領域を使用対象から除去する(S217)。
 図11は、メモリ管理テーブルの構成例を示す図である。図11において、メモリ管理テーブル131bは、ページ番号ごとに、使用状況を示す値を記憶する。
 ページ番号とRAの関係は一意である。例えば、OS13bで縮退制御可能な最小メモリサイズが8Kバイトの場合、RAを右に13ビットシフトした値がページ番号となる。RAを右に13ビットシフトした値とは、RAを8Kバイト単位で丸めた値である。したがって、ページ番号は、8Kバイト単位のRAの領域を示す。
 使用状況には、0、1、又2が記録される。0は、未使用であることを示す。1は、使用中であることを示す。2は、使用不可能であることを示す。
 したがって、ステップS217において、メモリ縮退制御部132は、使用対象から除去すべきRAを右に13ビットシフトした値と一致するページ番号に対して、「2」を記録する。
 例えば、図11では、ページ番号1000に対して「2」が記録されている。したがって、RA=8192000bytes~8200191bytesの範囲の一部又は全部においてメモリが故障した状態が示されている。
 このように、OS13によって縮退が行われる場合、縮退の単位を、例えばページ単位に限定することができる。図11の例では、縮退の単位を8Kバイトとすることができる。その結果、正常であるにも拘わらず使用対象とされないメモリ領域を小さくすることができる。
 なお、ステップS213~S217に対応するのが、図10の(3)である。図10の(3)では、メモリ縮退情報としてもDIMM番号及びDIMMアドレスが読み込まれ、ハイパーバイザ11によって当該DIMM番号及びDIMMアドレスがRAに変換される様子が示されている。更に、当該RAを含むページP1が、縮退されている様子が示されている。
 続いて、メモリ領域の獲得要求が発生した場合に情報処理装置10が実行する処理について説明する。メモリ領域の獲得要求は、OS13b内において発生してもよいし、OS13b上で動作するプログラム(例えば、アプリケーションプログラム)において発生してもよい。
 図12は、メモリ領域の獲得要求に応じて実行される処理手順の一例を説明するためのフローチャートである。
 メモリ領域の獲得要求が発生すると(S221)、メモリアクセス制御部133bは、獲得要求に指定されたサイズ分の仮想メモリ領域を確保する(S222)。続いて、メモリアクセス制御部133bは、メモリ管理テーブル131bを参照して、使用可能なページ番号を検索する(S223)。すなわち、メモリ管理テーブル131bにおいて、使用状況の値が「0」であるページ番号が検索される。
 続いて、メモリアクセス制御部133bは、検索されたページ番号のうち、獲得要求に応じたサイズ分のページに対応するページ番号の使用状況に対して「1」を記録する(S224)。続いて、メモリアクセス制御部133bは、ステップS222において確保された仮想メモリ領域のVAと、ステップS224において使用中とされたページ番号に係るRAとの対応情報を、CPU104bのVA/RA変換テーブル141bに登録する(S225)。
 このように、使用状況が「2」であるRAは、VA/RA変換テーブル141bに登録されない。また、OS13bはVA以外を用いてメモリアクセスをすることはない。換言すれば、OS13bは、RAを用いてメモリアクセスをすることはない。その結果、使用状況の値が「2」とされたメモリ領域、すなわち、故障位置を含むメモリ領域は、縮退される。
 続いて、図9のステップS209の詳細について説明する。図13、図14、及び図15は、メモリマッピングの変更処理の第一の例を説明するための図である。なお、ここでは、カーネル空間が、高いアドレスから配置されるアーキテクチャを前提とする。カーネル空間が低いアドレスから配置されるアーキテクチャの場合は、以下において説明するマッピング変更処理のアドレスの高低を逆にすればよい。
 図13に示されるように、第一の例におけるRA/PA変換テーブル142bの各エントリは、RA、サイズ、及びPAオフセット等の項目を有する。各エントリのRAに対応するPAは、「RA+PAオフセット」により求まる。すなわち、RAから始まる「サイズ」分の仮想物理メモリ領域は、RA+PAオフセットから始まる「サイズ」分の物理メモリ領域にマッピングされていることを示す。以下、仮想物理メモリ領域を「RA領域」といい、物理メモリ領域を「PA領域」という。
 図13の状態では、RA=PAのマッピングが、A(0~256Mバイト)=a(1~1.25Gバイト)、B(256~512Mバイト)=b(1.25~1.5Gバイト)、C(512~1024Mバイト)=c(1.5~2Gバイト)、D(1024~1280Mバイト)=d(2.5~2.75Gバイト)となっている。また、A、B、C、Dの順で、低いRAから高いRAに並んでいる。この状態において、PA領域d内でメモリ故障が検出され、OS13bの起動に失敗したとする。なお、RA領域Dは、カーネル空間に割り当てられるRA領域であるとする。
 (1)まず、メモリマップ制御部112は、RA/PA変換テーブル142bにおいて、RAが最も高いアドレスのエントリを探し出す。ここでは、Dのエントリが見つかる。
 (2)続いて、メモリマップ制御部112は、Dのエントリとサイズの値が同じであるエントリをRA/PA変換テーブル142bより抽出する。すなわち、サイズの値が256Mバイトであるエントリが抽出される。ここではAのエントリ及びBのエントリが抽出される。
 (3)続いて、メモリマップ制御部112は、(1)おいて見つけたDのエントリのPAが、(2)で抽出したエントリの中で、最も低いRAにマッピングされるように、エントリA、B、及びDのPAオフセットを順次変更する。A及びBのエントリの中で、RAの値が低いのはAのエントリである。したがって、A=a、B=b、D=dであったマッピングが、A=d、B=a、D=bへと変更される。すなわち、マッピングがローテーションする。なお、Cのエントリは、Dのエントリとサイズが異なるため、マッピングの変更の対象とはされない。
 このようなマッピングのローテーションが行われた後の状態を示すのが、図14である。図14において、カーネル空間に割り当てられるRA領域Dに対応するPA領域bは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。
 仮に、OS13bの起動中に、PA領域bにおいても故障が検出された場合、OS13bは、再度パニックし、もう一度再起動を実行することになる。この場合、上記(1)、(2)、及び(3)の処理が再度繰り返される。具体的には、A=d、B=a、D=bであったマッピングが、A=b、B=d、D=aへとローテーションされる。
 このようなマッピングのローテーションが行われた後の状態を示すのが、図15である。図15において、カーネル空間に割り当てられるRA領域Dに対応するPA領域aは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。OS13bの起動に成功すると、メモリ縮退制御部132bによって、メモリの故障部分が縮退される。この際、RA/PA変換テーブル142のエントリの単位で縮退が行われるのではなく、OS13bにおいて縮退制御可能なメモリの最小単位の領域が縮退される。
 仮に、図15の状態で、PA領域aにメモリの故障が検出された場合は、更に、同様の処理が繰り返される。図13~図15では、同一サイズのRA領域は、A、B、及びDの三つしかないため、無限ループする可能性が危惧される。しかし、実際的には、RA/PA変換テーブル142bのエントリ数は十分に多く、OS13bの起動に必要なカーネル空間のメモリ領域は十分に小さいため、無限ループの可能性は低い。但し、無限ループを抑止するために、再起動の連続失敗回数の最大値を定義し、当該最大値に達した場合は、VM12bの起動を抑止するようにしてもよい。
 なお、図13~図15において明らかなように、メモリマップ制御部112bは、既に(メモリ故障の検出前に)VM12bに割り当て済みのPA領域に関して、RAとのマッピングを入れ替える。換言すれば、例えば、いずれのVM12に対しても割り当てられていないPA領域を新たにVM12bに対して割り当てるのではなく、既存のマッピングに関して変更が行われる。そうすることにより、縮退の単位が、RA/PA変換テーブル142のエントリの単位(PA領域dに関しては256Mバイト)に依存するのを回避することができる。すなわち、例えば、図13の状態において、RA領域Dを、新たなPA領域にマッピングしたとすると、256Mバイト分のPA領域dは、使用されないメモリ領域となってしまう。一方、本実施の形態のように、既存のマッピングに関して変更が行われれば、PA領域dの使用は継続される。その結果、PA領域dのうち、OS13bの縮退制御可能なメモリの最小単位の領域(例えば、8Kバイト)に、縮退する範囲を限定ことができる。
 メモリマッピングの変更処理は、以下のように実行されてもよい。図16、図17、及び図18は、メモリマッピングの変更処理の第二例を説明するための図である。ここでも、カーネル空間が、高いアドレスから配置されるアーキテクチャを前提とする。カーネル空間が低いアドレスから配置されるアーキテクチャの場合は、以下において説明するマッピング変更処理のアドレスの高低を逆にすればよい。
 図16に示されるように、第二の例におけるRA/PA変換テーブル142bの各エントリは、PA、サイズ、RAオフセット、及び状態等の項目を有する。各エントリのRAは、「PA+RAオフセット」により求まる。すなわち、PA+RAオフセットから始まる「サイズ」分のRA領域は、PAから始まる「サイズ」分のPA領域にマッピングされていることを示す。また、状態には、ok又はfailedのいずれかが記録される。okは通常の状態を示す。failedは過去に故障した位置を含むことを示す。
 図16の状態では、RA=PAのマッピングが、A(0~256Mバイト)=a(1~1.25Gバイト)、B(256~512Mバイト)=b(1.25~1.5Gバイト)、C(512~1024Mバイト)=c(1.5~2Gバイト)、D(1024~1280Mバイト)=d(2.5~2.75Gバイト)となっている。この状態において、PA領域d内でメモリ故障が検出され、OS13bの起動に失敗したとする。なお、RA領域Dは、カーネル空間に割り当てられるRA領域であるとする。
 (1)まず、メモリマップ制御部112は、エラー通知部143bから通知されたRAが含まれるエントリをRA/PA変換テーブル142bより探し出す。ここでは、dのエントリが見つかるため、メモリマップ制御部112は、dのエントリの状態をfailedに変更する。
 (2)続いて、メモリマップ制御部112は、dのエントリとサイズの値が同じであるエントリであって、かつ、状態の値がokであるエントリをRA/PA変換テーブル142より抽出する。ここでは、aのエントリ及びbのエントリが抽出される。
 (3)続いて、メモリマップ制御部112は、(2)において抽出したエントリの中でRAが最も低いエントリを抽出する。ここでは、aのエントリが抽出される。
 (4)続いて、メモリマップ制御部112は、PA領域dに対応するRA領域Dと、PA領域aに対応するRA領域Aとが入れ替わるように、a及びdのエントリのRAオフセットを変更する。ここでは、A=a、D=dが、A=d、D=aへと変更される。このようにマッピングが変更された状態を示すのが図17である。図17において、カーネル空間に割り当てられるRA領域Dに対応するPA領域aは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。
 仮に、OS13bの再起動中に、PA領域aにおいても故障が検出された場合、OS13bは、再度パニックし、もう一度再起動を実行することになる。この場合、上記(1)、(2)、(3)、及び(4)の処理が再度繰り返される。今度は(2)においてa及びdのエントリの状態がfailedであることから、bのエントリのみが抽出される。(4)においてdに対応するRAと、bに対応するRAとが入れ替えられる。すなわち、B=b、D=aであったマッピングが、B=a、D=bへと変更される。
 このようなマッピングの変更が行われた後の状態を示すのが、図18である。図18において、カーネル空間に割り当てられるRA領域Dに対応するP領域bは、メモリ故障の発生箇所ではない。したがって、OS13bは、正常に起動できる可能性が高い。OS13bの起動に成功すると、メモリ縮退制御部132bによって、メモリの故障部分が縮退される。この際、RA/PA変換テーブル142のエントリの単位で縮退が行われるのではなく、OS13bにおいて縮退制御可能なメモリの最小単位の領域が縮退される。
 このように、第二の例においても、メモリマップ制御部112bは、既にそのVM12bに割り当て済みのPA領域に関して、RAとのマッピングを入れ替える。したがって、縮退の単位が、RA/PA変換テーブル142のエントリの単位(PA領域dに関しては256Mバイト)に依存するのを回避することができる。
 なお、OS13は、VA及びRAに関与し、PAには関与しない。したがって、RAとPAとのマッピングの変更によって、OS13に動作に問題が発生する可能性は低い。
 なお、本実施の形態では、VM12bにおいてメモリ故障が検出された例を示したが、他のVM12においてメモリ故障が検出された場合も、当該他のVM12に関して同様の処理が実行されればよい。
 また、本実施の形態では、メモリ縮退情報として、DIMM番号及びDIMMアドレスを記憶する例を示した。但し、一般的に、DIMM番号及びDIMMアドレスとPAとの関係は、固定的である場合が多い。また、当該関係が可変であったとしても、運用時においては、実質的に固定的である場合が多い。したがって、DIMM番号及びDIMMアドレスの代わりに、PAが記憶されてもよい。要するに、RAとPAとのマッピングの変更に影響しないアドレス情報が、メモリ縮退情報として記憶されればよい。また、SIMM(Single In-line Memory Module)等、DIMM以外のメモリモジュールが使用される場合、当該メモリモジュールに適合した方法で、故障位置が特定されてもよい。
 上述したように、本実施の形態によれば、大規模な仮想化環境においても適用可能な仕組みで、メモリ故障によるOS13のパニックの繰り返しを防止することができる。
 すなわち、メモリの故障位置に対応するPAは、OS13のカーネル空間に割り当てられないように、RAとPAとのマッピングが変更される。その結果、メモリエラーの発生に応じて実行されるOS13のパニックの繰り返しを防止することができる。この際、再起動の対象は、メモリ故障が検出されたVM12に限定される。すなわち、情報処理装置10自体を再起動させる必要はない。
 また、メモリの縮退は、VM12上のOS13によって行われる。また、ハイパーバイザ11は、RA/PA変換テーブル142のマッピングを変更すればよく、メモリの縮退には直接的には関与しない。したがって、VM12の増加に伴って、メモリの縮退のためにハイパーバイザ11が管理すべき情報が増加する可能性は低い。よって、大規模な仮想化環境であっても、メモリの縮退のために、ハイパーバイザ11の管理情報が大規模になったり、ハイパーバイザ11の制御が複雑になったりする可能性は低い。
 また、OS13によってメモリの縮退が行われることにより、OS13において縮退制御可能なメモリの最小単位でメモリを縮退させることができる。したがって、正常なメモリ領域を有効活用することができる。
 また、OS13は、故障位置をRAによって記憶するのではなく、物理的なアドレス情報であるDIMM番号及びDIMMアドレスによって記憶する。したがって、RAとPAとのマッピングがハイパーバイザ11によって変更されたとしても、縮退すべきRAを正しく把握することができる。
 以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
10     情報処理装置
11     ハイパーバイザ
12     VM
13     OS
100    ドライブ装置
101    記録媒体
102    補助記憶装置
103    主記憶装置
104、104a、104b、104c  CPU
105    インタフェース装置
111    構成情報記憶部
112    メモリマップ制御部
113    メモリ情報変換部
114    VM起動制御部
120    OSディスク
131    メモリ管理テーブル
132    メモリ縮退制御部
133    メモリアクセス制御部
141    VA/RA変換テーブル
142    RA/PA変換テーブル
143    エラー通知部
B      バス

Claims (7)

  1.  複数の仮想マシンが動作する情報処理装置が実行するメモリ縮退方法であって、
     第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、
     前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、
     前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する処理を実行するメモリ縮退方法。
  2.  前記第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記第一の仮想マシンのオペレーティングシステムが、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶部に記憶し、
     前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、ハイパーバイザが前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更し、
     再起動された前記オペレーティングシステムが、前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを使用対象から除外する処理を実行する請求項1記載のメモリ縮退方法。
  3.  前記対応関係を変更する処理は、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項1又は2記載のメモリ縮退方法。
  4.  前記対応関係を変更する処理は、前記故障に係る物理アドレスが、前記オペレーティングシステムのカーネル空間に割り当てられる仮想物理アドレスに対応付けられないように、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項3記載のメモリ縮退方法。
  5.  複数の仮想マシンが動作する情報処理装置であって、
     第一の仮想マシンに割り当てられたメモリ領域における故障の検出に応じ、前記故障に係る仮想物理アドレスに対応する物理アドレス又はメモリモジュールのアドレス情報を記憶する記憶部と、
     前記第一の仮想マシン上で動作するオペレーティングシステムが前記故障の検出に応じて再起動される前に、前記第一の仮想マシンに関する仮想物理アドレスと物理アドレスとの対応関係を変更する変更部と、
     前記記憶部に記憶された物理アドレス又はメモリモジュールのアドレス情報に対応する仮想物理アドレスを、前記オペレーティングシステムの使用対象から除外する除外部とを有する情報処理装置。
  6.  前記変更部は、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項5記載の情報処理装置。
  7.  前記変更部は、前記故障に係る物理アドレスが、前記オペレーティングシステムのカーネル空間に割り当てられる仮想物理アドレスに対応付けられないように、前記故障の検出前に前記第一の仮想マシンに割り当てられていた物理アドレスについて、仮想物理アドレスとの対応関係を変更する請求項6記載の情報処理装置。
PCT/JP2011/077421 2011-11-28 2011-11-28 メモリ縮退方法及び情報処理装置 WO2013080288A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/077421 WO2013080288A1 (ja) 2011-11-28 2011-11-28 メモリ縮退方法及び情報処理装置
JP2013546870A JP5786955B2 (ja) 2011-11-28 2011-11-28 メモリ縮退方法及び情報処理装置
US14/287,311 US9146818B2 (en) 2011-11-28 2014-05-27 Memory degeneracy method and information processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/077421 WO2013080288A1 (ja) 2011-11-28 2011-11-28 メモリ縮退方法及び情報処理装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/287,311 Continuation US9146818B2 (en) 2011-11-28 2014-05-27 Memory degeneracy method and information processing device

Publications (1)

Publication Number Publication Date
WO2013080288A1 true WO2013080288A1 (ja) 2013-06-06

Family

ID=48534816

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/077421 WO2013080288A1 (ja) 2011-11-28 2011-11-28 メモリ縮退方法及び情報処理装置

Country Status (3)

Country Link
US (1) US9146818B2 (ja)
JP (1) JP5786955B2 (ja)
WO (1) WO2013080288A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015041175A (ja) * 2013-08-21 2015-03-02 Necプラットフォームズ株式会社 メモリ管理装置、制御方法、プログラムおよび記録媒体
JP6073004B1 (ja) * 2016-05-10 2017-02-01 三菱電機株式会社 情報処理装置
JP7447668B2 (ja) 2020-05-07 2024-03-12 株式会社リコー 電子機器および電子機器の制御方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2953028A4 (en) * 2013-01-31 2016-10-12 Mitsubishi Electric Corp COMPUTER DEVICE AND METHOD FOR CONTROLLING THE COMPUTER DEVICE
CN105912277B (zh) * 2016-04-29 2018-12-18 上海交通大学 在虚拟机镜像中实现文件系统单写日志的方法
US11010221B2 (en) * 2019-04-02 2021-05-18 Dell Products L.P. Dynamic distribution of memory for virtual machine systems
US11169870B2 (en) * 2020-01-15 2021-11-09 Vmware, Inc. Managing the migration of virtual machines in the presence of uncorrectable memory errors
KR20210141156A (ko) * 2020-05-15 2021-11-23 삼성전자주식회사 페이지 장애에 기초하여 메모리 고장을 예견하고, 예견되는 메모리 고장을 관리하는 시스템의 운영 체계 핸들링
KR20220166675A (ko) * 2021-06-10 2022-12-19 삼성전자주식회사 보안을 위한 메모리 관리 방법 및 이를 위한 전자 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226413A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd メモリダンプ方法、メモリダンププログラム、及び、計算機システム
JP2008165777A (ja) * 2006-12-26 2008-07-17 Internatl Business Mach Corp <Ibm> 資源回復するための方法、情報処理システムおよびコンピュータ・プログラム
JP2009059121A (ja) * 2007-08-31 2009-03-19 Hitachi Ltd 仮想計算機の制御方法
JP2009245216A (ja) * 2008-03-31 2009-10-22 Toshiba Corp 情報処理装置および障害回復方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6417128A (en) * 1987-07-10 1989-01-20 Fujitsu Ltd Dynamic arrangement system for domain area of virtual computer
US7383471B2 (en) * 2004-12-28 2008-06-03 Hewlett-Packard Development Company, L.P. Diagnostic memory dumping
US20070074067A1 (en) * 2005-09-29 2007-03-29 Rothman Michael A Maintaining memory reliability
JP2009230596A (ja) 2008-03-25 2009-10-08 Hitachi Ltd サーバ装置のユーザデータ保護方法、サーバ装置及びコンピュータプログラム
US8209459B2 (en) * 2008-03-31 2012-06-26 Dell Products L.P. System and method for increased system availability in virtualized environments
US8407515B2 (en) * 2008-05-06 2013-03-26 International Business Machines Corporation Partition transparent memory error handling in a logically partitioned computer system with mirrored memory
JP5574230B2 (ja) * 2010-04-28 2014-08-20 株式会社日立製作所 障害処理方法および計算機
US8447912B2 (en) * 2010-09-28 2013-05-21 International Business Machines Corporation Paging memory from random access memory to backing storage in a parallel computer
US8364932B2 (en) * 2010-10-29 2013-01-29 Vmware, Inc. System and method to prioritize large memory page allocation in virtualized systems
US8627176B2 (en) * 2010-11-30 2014-01-07 Microsoft Corporation Systematic mitigation of memory errors
JP5716830B2 (ja) * 2011-08-31 2015-05-13 富士通株式会社 情報処理装置及び方法、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007226413A (ja) * 2006-02-22 2007-09-06 Hitachi Ltd メモリダンプ方法、メモリダンププログラム、及び、計算機システム
JP2008165777A (ja) * 2006-12-26 2008-07-17 Internatl Business Mach Corp <Ibm> 資源回復するための方法、情報処理システムおよびコンピュータ・プログラム
JP2009059121A (ja) * 2007-08-31 2009-03-19 Hitachi Ltd 仮想計算機の制御方法
JP2009245216A (ja) * 2008-03-31 2009-10-22 Toshiba Corp 情報処理装置および障害回復方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015041175A (ja) * 2013-08-21 2015-03-02 Necプラットフォームズ株式会社 メモリ管理装置、制御方法、プログラムおよび記録媒体
JP6073004B1 (ja) * 2016-05-10 2017-02-01 三菱電機株式会社 情報処理装置
WO2017195276A1 (ja) * 2016-05-10 2017-11-16 三菱電機株式会社 情報処理装置および再起動制御方法
JP7447668B2 (ja) 2020-05-07 2024-03-12 株式会社リコー 電子機器および電子機器の制御方法

Also Published As

Publication number Publication date
US20140281694A1 (en) 2014-09-18
JPWO2013080288A1 (ja) 2015-04-27
US9146818B2 (en) 2015-09-29
JP5786955B2 (ja) 2015-09-30

Similar Documents

Publication Publication Date Title
JP5786955B2 (ja) メモリ縮退方法及び情報処理装置
US10261800B2 (en) Intelligent boot device selection and recovery
JP6050262B2 (ja) 仮想ディスクストレージ技術
US8171236B2 (en) Managing migration of a shared memory logical partition from a source system to a target system
US9152573B2 (en) Sharing memory pages having regular expressions within a virtual machine
US20150186230A1 (en) Physical memory fault mitigation in a computing environment
US20100250824A1 (en) Migrating Virtual Machines Configured With Pass-Through Devices
JP4783392B2 (ja) 情報処理装置および障害回復方法
JP2013542486A (ja) 仮想マシンのオンデマンド型イメージ・ストリーミング
US20150095585A1 (en) Consistent and efficient mirroring of nonvolatile memory state in virtualized environments
JP5778296B2 (ja) 仮想計算機システム、仮想化機構、及びデータ管理方法
WO2012122796A1 (zh) 一种创建虚拟机的方法、虚拟机监控器及虚拟机系统
US20150095576A1 (en) Consistent and efficient mirroring of nonvolatile memory state in virtualized environments
US9977740B2 (en) Nonvolatile storage of host and guest cache data in response to power interruption
US11593170B2 (en) Flexible reverse ballooning for nested virtual machines
US20170277632A1 (en) Virtual computer system control method and virtual computer system
CN113127263B (zh) 一种内核崩溃恢复方法、装置、设备及存储介质
US10983818B2 (en) Method and system for preventing execution of a dirty virtual machine on an undesirable host server in a virtualization cluster environment
JP6745405B2 (ja) ストレージシステム及びマッピング方法
JP2017033375A (ja) 並列計算システム、マイグレーション方法、及びマイグレーションプログラム
JP2010198398A (ja) 計算機装置および制御方法
US20240036881A1 (en) Heterogeneous compute domains with an embedded operating system in an information handling system
JP2022174793A (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
AU2014328735A1 (en) Consistent and efficient mirroring of nonvolatile memory state in virtualized environments

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013546870

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11876683

Country of ref document: EP

Kind code of ref document: A1