WO2017119128A1 - 計算機システム、物理計算機、及び、メモリ制御方法 - Google Patents

計算機システム、物理計算機、及び、メモリ制御方法 Download PDF

Info

Publication number
WO2017119128A1
WO2017119128A1 PCT/JP2016/050548 JP2016050548W WO2017119128A1 WO 2017119128 A1 WO2017119128 A1 WO 2017119128A1 JP 2016050548 W JP2016050548 W JP 2016050548W WO 2017119128 A1 WO2017119128 A1 WO 2017119128A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
area
virtual machine
cleared
computer
Prior art date
Application number
PCT/JP2016/050548
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/JP2016/050548 priority Critical patent/WO2017119128A1/ja
Priority to US15/769,347 priority patent/US10331474B2/en
Publication of WO2017119128A1 publication Critical patent/WO2017119128A1/ja

Links

Images

Classifications

    • 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
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • 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]
    • 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
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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

Definitions

  • the present invention generally relates to computer control, for example, memory control technology.
  • a hypervisor that realizes a virtual computer by controlling physical resources of a physical computer is known.
  • the hypervisor allocates a part of physical memory, which is one of the physical resources, to the virtual machine when the virtual machine is created (started up), and assigns it to the virtual machine when the virtual machine disappears (when stopped). Free the allocated physical memory area. Assuming that the released physical memory area is not cleared (initialized) and assigned to the virtual machine to be started next, information on the virtual machine to which a part of this physical memory area was previously assigned is There is a risk of being stolen by the starting virtual machine. However, in the method of generating the virtual machine after clearing all the areas of the physical memory allocated to the virtual machine, the generation time of the virtual machine becomes long.
  • Patent Document 1 when a storage area of a storage device is allocated to a virtual machine, it is not initialized, and when an access occurs from the virtual machine, the access destination storage area is initialized as necessary. It is disclosed.
  • Non-Patent Document 1 describes a technique called Dynamic Memory.
  • Non-Patent Document 2 describes that application optimization does not function well with the method of Non-Patent Document 1.
  • an object of the present invention is to achieve both the allocation of a cleared memory area to a virtual machine and the shortening of the generation time of the virtual machine.
  • the computer system includes a physical computer, a memory pool, and a memory pool management computer.
  • the physical computer includes a hypervisor that controls the virtual computer.
  • the memory pool management computer for the memory area of the memory pool, allocates an area that is an allocated memory area to the virtual machine, a cleared area that is an unallocated and cleared memory area for the virtual machine, and an unallocated area for the virtual machine.
  • An uncleared area that is an allocated and uncleared memory area is managed.
  • the hypervisor transmits a previous memory allocation request to the memory pool management computer.
  • the memory allocation request includes information on the memory capacity allocated to the virtual machine.
  • the hypervisor clears the memory area of the address range belonging to the uncleared area when the memory allocation response received from the memory pool management computer includes the address range belonging to the uncleared area. After that, the virtual machine is generated.
  • the memory pool management computer When the memory pool management computer receives a memory allocation request from the hypervisor, if the memory capacity requested to be allocated is larger than the memory capacity of the cleared area, the memory pool management computer responds to the memory allocation response to the hypervisor in the uncleared area.
  • the address range to which it belongs may be included.
  • the memory pool management computer When the memory pool management computer receives a memory release request from the hypervisor for the memory area allocated to the virtual machine to be erased, the memory pool management computer manages the memory area requested to be released belonging to the allocated memory area as an uncleared area. Then, the clear process of the uncleared area may be executed by the memory pool, and the area cleared by the memory pool among the uncleared areas may be sequentially managed as the cleared area.
  • the structural example of a computer system is shown.
  • 2 shows a configuration example of a memory pool management table. It is a flowchart which shows the example of the initialization process of a memory pool management table. It is a sequence chart which shows the example of a virtual machine starting (generation) and stop (disappearance) process by VMM (Virtual Machine Monitor), and the process of the memory pool management part accompanying it.
  • VMM Virtual Machine Monitor
  • information may be described using the expression “xxx table”, but the information may be expressed in any data structure. That is, in order to show that the information does not depend on the data structure, the “xxx table” can be called “xxx information”.
  • the process may be described using “program” as a subject.
  • the program is executed by a processor (for example, a CPU (Central Processing Unit)), so that a predetermined process is appropriately performed.
  • a storage resource for example, memory
  • the subject of processing may be a processor and an apparatus having the processor. Part or all of the processing performed by the processor may be performed by a hardware circuit.
  • the computer program may be installed from a program source.
  • the program source may be a program distribution server or a storage medium (for example, a portable storage medium).
  • a set of one or more computers that manage at least one device included in the computer system may be referred to as a “management system”.
  • the management computer may be a management system.
  • the management system may be a combination of the management computer and the display computer.
  • multiple computers may perform processing equivalent to that of the management computer. In this case, these multiple computers (for display when the display computer performs display) A computer may also be included).
  • the management computer is a management system.
  • the management computer displaying information may mean displaying information on a display device of the management computer, or displaying information on a display computer (eg client) connected to the management computer (eg server). Information may be transmitted. In the latter case, information represented by the display information is displayed by the display computer on a display device included in the display computer.
  • resource is one element (device or device part) of a computer system, and physical elements (eg, processor, processor core, memory, PDEV, RAID group, I / O device) (For example, interface device)) or a logical element (for example, VOL, pool, server LPAR).
  • LPAR is an abbreviation for Logical Partition.
  • the server LPAR is a section of the server and is a virtual server (virtual computer).
  • the computer system includes a resource group, the resource group includes a plurality of resource units, and each resource unit includes one or more resources (for example, one or more resources of the same type).
  • One resource (for example, a virtual machine) may include a plurality of resources (for example, a virtual processor and a virtual memory).
  • a virtual machine is generated (started up) by using a part of the memory area of a memory pool on one physical computer that can access one memory pool, and a part of memory in the memory pool Perform the process of erasing (stopping) a virtual machine that has been running on a physical computer using an area in cooperation with another computer dedicated to memory pool management (memory pool management computer) that can access the memory pool.
  • memory pool management computer memory pool management computer
  • An example of the case will be described.
  • This embodiment is merely an example, and it goes without saying that the number of memory pools, the number of physical computers that can access the memory pool, and the number of generated virtual computers may increase or decrease.
  • the configuration may be such that the processing of the memory pool management computer is executed by a part of the physical computer resource or the virtual computer, or a part of the physical memory in the physical computer may be used as a memory pool. .
  • FIG. 1 shows a configuration example of the computer system 1.
  • the computer system 1 includes one or more physical computers 100, a memory pool management computer 170, and a memory pool 140.
  • the physical computer 100 and the memory pool management computer 170 may be connected to the memory pool 140 via the memory communication path 150 so as to be capable of bidirectional communication.
  • Examples of the memory communication path 150 are Infiniband and Ethernet (registered trademark).
  • the memory pool 140 provides a memory area configured by one or more memory devices 141 to a plurality of physical computers or virtual computers.
  • the physical computer or the virtual computer may be able to use the memory area provided from the memory pool 140 like a conventional local memory.
  • the memory pool 140 is a volatile memory (for example, DRAM (Dynamic Random Access Memory)), a non-volatile memory (for example, FeRAM (Ferroelectric Random Access Memory), MRAM (Magnetic Resistive Random Access), or MRAM (Magnetic Resistive Random Access). It may be configured by any combination.
  • the physical computer 100 may include one or more physical CPUs 101, a local memory 102, and an I / O device 103 as physical resources.
  • the physical computer 100 may be able to access the memory area of the memory pool 140 through the I / O device 103.
  • the memory pool management computer 170 may include one or more physical CPUs 171, a local memory 172, and an I / O device 173.
  • the memory pool management computer 170 may be able to access the memory area of the memory pool 140 through the I / O device 173.
  • VMM Virtual Machine Monitor
  • a VMM may be referred to as a hypervisor or virtualization mechanism.
  • the VMM 110 can generate a virtual computer 120 by allocating a part of physical resources of the physical computer 100.
  • Examples of physical resources of the physical computer 100 are a physical CPU 101, a local memory 102, an I / O device 103, a memory pool 140, and the like.
  • a guest OS 130 that is a kind of program may operate.
  • the memory pool management unit 180 is a kind of program, and may be expanded in the local memory 172 on the memory pool management computer 170 and executed by the CPU 170.
  • the memory pool management unit 180 may be a logic circuit configured in an ASIC (Application Specific Integrated Circuit) or an FPGA (Field Programmable Gate Array).
  • the memory pool management unit 180 manages a plurality of memory areas in the memory pool 140 using the memory pool management table 181.
  • the memory area of the memory pool 140 includes an allocated memory area 160 that is an area allocated to the virtual machine 120, a cleared memory area 161 that is an unallocated and cleared area for the virtual machine 120, and an unallocated area for the virtual machine 120. It may be divided into an unclear memory area 162 which is an allocated and uncleared area.
  • FIG. 2 shows a configuration example of the memory pool management table 181.
  • the memory pool management table 181 is a table for managing the aforementioned allocated memory area 160, cleared memory area 161, and uncleared memory area 162.
  • the memory pool management table 180 includes an allocated memory area table 200, a cleared memory area table 210, an uncleared memory table 220, a cleared memory total amount 230, and a response memory area table 240. Good.
  • the allocated area table 200 associates and manages the address range 201 of the allocated memory area 160 and the memory capacity 202 of the allocated memory area 160 among the memory areas in the memory pool 140.
  • the cleared memory area table 210 associates and manages the address range 211 of the cleared memory area 161 and the memory capacity 212 of the cleared memory area 161 among the memory areas in the memory pool 140.
  • the uncleared memory area table 220 manages the address range 221 of the uncleared memory area 162 in association with the memory capacity 222 of the uncleared memory area 162 among the memory areas in the memory pool 140.
  • the cleared memory total amount 230 is a total of the memory capacity 212 included in the cleared memory area table 210.
  • the response memory area table 240 is information used when the memory pool management unit 180 generates a response to the memory allocation request issued from the VMM 110 when the virtual machine 120 is generated, and the cleared address range 241. And the uncleared address range 242 is managed.
  • FIG. 3 is a flowchart showing an example of initialization processing of the memory pool management table.
  • the memory pool management unit 180 sets the memory area in the memory pool 140 to be sharable from all the physical computers 100.
  • a memory area that can be shared is called a "shared memory area"
  • the memory pool management unit 180 registers the memory address range and the memory capacity of the shared memory area of the memory pool 140 in the cleared memory area table 210. That is, the address range of the shared memory area of the memory pool 140 is registered in the address range 211, and the memory capacity of the shared memory area is registered in the memory capacity 212.
  • the memory pool management table 181 is initialized.
  • FIG. 4 is a sequence chart showing an example of the generation and disappearance processing of the virtual machine 120 by the VMM 110 and the processing of the memory pool management unit 180 associated therewith.
  • a notice of disappearance of the virtual machine 120A is issued to the VMM 110.
  • the disappearance notice of the virtual machine 120A may be a notice that the power of the virtual machine 120A is turned off.
  • the VMM 110 When the VMM 110 receives this disappearance notification, the VMM 110 performs the disappearance process of the virtual machine 120A. In the erasure process, the allocated physical resources (physical CPU 121, local memory 122, I / O device 123, memory area of the memory pool 140, etc.) may be released. At this time, the memory area allocated to the virtual machine 120A from the memory pool 140 is also released. Note that the VMM 110 may perform the annihilation process of the virtual machine 120 ⁇ / b> A using another notification or factor other than receiving the annihilation notification as a trigger.
  • the allocated physical resources physical CPU 121, local memory 122, I / O device 123, memory area of the memory pool 140, etc.
  • the VMM 110 may perform the annihilation process of the virtual machine 120 ⁇ / b> A using another notification or factor other than receiving the annihilation notification as a trigger.
  • the VMM 110 notifies the memory management unit 180 of the memory area that has been allocated to the virtual machine 120A (that is, released in S4200). For example, the VMM 110 notifies the address range of the memory area released in the memory pool 140. This is because the memory management unit 180 can clear the memory area released in step S4200.
  • the memory pool management unit 180 Upon receiving the notification in step S4201, the memory pool management unit 180 specifies a memory area included in the notification. For example, the memory pool management unit 180 searches the allocated area table 200 for the address range included in the notification, and sets the address range 201 and the memory capacity 202 that match the search to the address range of the uncleared memory area table 220. 221 and the memory capacity 222 are moved.
  • the memory pool management unit 180 issues a clear (initialization) command for the uncleared memory area 162 to the memory pool 140. This is to clear the memory area in the address range specified in S4300.
  • An example of the clear process is a write process of “0” to the memory area in the address range, or a flash process of a memory page corresponding to the memory area.
  • the memory pool 140 starts clear processing of the uncleared memory area 162 in accordance with the clear command of the uncleared memory area 162 in S4301. As soon as the virtual machine 120A disappears, the clearing process of the memory area of the memory pool 140 assigned to the virtual machine 120A may be started.
  • the memory areas that have been cleared are sequentially cleared memory areas.
  • the memory pool management unit 180 periodically checks the cleared status of the cleared memory area. For example, the address range and memory capacity of the cleared memory area 161 are calculated based on the progress of clear processing of the uncleared memory area in S4301, and the address range 211 and memory capacity 212 in the cleared memory area table 210 are added. Update, update the cleared memory total amount 230 calculated based on the memory capacity 212, and update the address range 221 and the memory capacity 222 in the uncleared memory area table 220. That is, the memory pool management unit 180 reflects the progress of the clear process in S4400 in the memory pool management table 181. Typically, the memory pool management unit 180 sequentially shifts the address range that has been cleared among the address ranges 221 registered in the uncleared memory area table 220 to the cleared memory area table 210.
  • the VMM 110 receives a generation request for the virtual machine 120B.
  • the VMM 110 specifies the memory capacity (referred to as “allocation request memory capacity”) to be allocated from the memory pool 140 to the virtual machine 120B requested to be generated in S4500.
  • the VMM 110 transmits a memory allocation request to the memory pool management unit 180.
  • the memory allocation request may include the allocation request memory capacity specified in S4501.
  • the memory pool management unit 180 Upon receiving the memory allocation request in S4502, the memory pool management unit 180 executes, for example, the following processing. That is, the memory pool management unit 180 deletes all values held in the response memory area table 240. Then, the memory pool management unit 180 compares the allocation request memory capacity included in the memory allocation request in S4502 with the cleared memory total amount 230.
  • the memory pool management unit 180 when the allocation request memory capacity is the cleared memory total amount 230 or less, the memory pool management unit 180 performs the following processing. That is, the memory pool management unit 180 calculates an address range corresponding to the allocation request memory capacity in the cleared memory area table 210. Then, the memory pool management unit 180 moves the calculated address range 211 to the cleared address range 241 in the response memory area table 240. Then, the memory pool management unit 180 also registers the amount moved to the cleared address range 241 in the response memory area table 240 in the allocated memory area table 200. Then, the memory pool management unit 180 updates the cleared memory total amount 230.
  • the memory pool management unit 180 performs the following processing. That is, the memory pool management unit 180 moves all the address ranges 211 registered in the cleared memory area table 210 to the allocated memory area table 200. Further, the memory pool management unit 180 calculates the address range 221 that is insufficient to satisfy the allocation request memory capacity in the uncleared memory area table 220. The memory capacity of the address range 221 corresponding to the shortage may be a difference between the allocation request memory capacity included in the memory allocation request and the cleared memory total amount 230 or more. Then, the memory pool management unit 180 moves the calculated address range 221 to the uncleared address range 242 in the response memory area table 240. Then, the memory pool management unit 180 also registers the amount moved to the cleared address range 241 and the uncleared address range 242 in the response memory area table 240 in the allocated memory area table 200.
  • the memory pool management unit 180 returns the free memory information to the VMM 110.
  • An example of the free memory information may be information registered in the response memory area table 240.
  • the VMM 110 performs the generation process of the virtual machine 120B. For example, a part of physical resources on the physical computer 100 (for example, physical CPU 101, local memory 122, I / O device 123, etc.), cleared address range 241 included in the free memory information in S4504, and clear processing in S4505 The uncleared address range 242 thus assigned is assigned to the virtual machine 120B.
  • the VMM 110 issues a generation command for the virtual machine 120B to which the physical resource is allocated in S4506. Thereby, the virtual machine 120B is generated and the operation of the guest OS 130B is started.
  • the generation command may be a command for turning on the power of the virtual machine 120B.
  • the computer system according to this embodiment executes the clear process for the allocated memory area 160 immediately after the virtual computer 120 disappears.
  • the cleared memory area 161 in the memory pool 140 is sequentially increased. Therefore, a relatively large number of cleared memory areas 161 can exist in the memory pool 140 when the virtual machine 120 is generated.
  • the clear process can be completed in a relatively short time because the uncleared memory area 162 need only be cleared for the shortage. That is, according to the computer system 1 according to the present embodiment, it is possible to achieve both the allocation of the cleared memory area to the virtual computer 120 and the generation time of the virtual computer 120 are shortened.
  • the allocated memory area is a static memory allocation, it is possible to receive the benefits of performance optimization in the application layer.
  • Computer system 100 Physical computer 110: VMM 120: VM 140: Memory pool 170: Memory pool management computer 181: Memory pool management table

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

計算機システムは、物理計算機と、メモリプールと、メモリプール管理計算機とを含む。メモリプール管理計算機は、メモリプールのメモリ領域について、割り当て済み領域と、クリア済み領域と、未クリア領域とを管理する。物理計算機のハイパバイザは、仮想計算機を生成する場合、メモリ割り当て要求をメモリプール管理計算機へ送信し、当該要求に対するメモリプール管理計算機からの応答に、未クリア領域に属するアドレス範囲が含まれている場合、その未クリア領域に属するアドレス範囲のメモリ領域をクリアした後、その仮想計算機を生成する。

Description

計算機システム、物理計算機、及び、メモリ制御方法
 本発明は、概して、計算機制御に関し、例えば、メモリ制御の技術に関する。
 物理計算機の物理リソースを制御して仮想計算機を実現するハイパバイザが知られている。ハイパバイザは、仮想計算機の生成時(起動時)に、物理リソースの一つである物理メモリの一部領域を、その仮想計算機に割り当て、仮想計算機の消滅時(停止時)に、その仮想計算機に割り当てた物理メモリの領域を解放する。この解放した物理メモリの領域をクリア(初期化)せずに、次に起動する仮想計算機に割り当てたとすると、以前にこの物理メモリの一部領域が割り当てられていた仮想計算機に関する情報が、次に起動する仮想計算機によって盗み取られてしまうおそれがある。しかしながら、仮想計算機に割り当てる物理メモリの一部領域を全てクリアしてから、その仮想計算機を生成する手法では、仮想計算機の生成時間が長くなってしまう。
 特許文献1には、ストレージ装置の記憶領域を仮想計算機に割り当てるときには初期化せずに、その仮想計算機からアクセスが発生したときに、そのアクセス先の記憶領域を必要に応じて初期化することが開示されている。非特許文献1には、Dynamic Memoryと呼ばれる手法が記載されている。また、非特許文献2には、非特許文献1の手法では、アプリケーション最適化が上手く機能しないことが記載されている。
米国特許出願公開第2012/0159071号明細書
Microsoft Windows Server(登録商標) 2008R2 Implementing and Configuring Dynamic Memory, Microsoft, October 2010 Microsoft Exchange 2013 on VMware Best Practices Guide
 しかし、特許文献1又は非特許文献1の手法を物理メモリに適用すると、次のような問題が発生する。すなわち、仮想計算機から物理メモリに対するアクセスを、ハイパバイザが都度トラップする必要があり、メモリアクセス速度が大きく低下してしまう。そこで、本発明の目的は、仮想計算機にクリアされたメモリ領域を割り当てることと、仮想計算機の生成時間を短くすることを両立させることにある。
 計算機システムは、物理計算機と、メモリプールと、メモリプール管理計算機とを含む。物理計算機は、仮想計算機を制御するハイパバイザを含む。メモリプール管理計算機は、メモリプールのメモリ領域について、仮想計算機に割り当て済みのメモリ領域である割り当て済み領域と、仮想計算機に未割り当て且つクリア済みのメモリ領域であるクリア済み領域と、仮想計算機に未割り当て且つ未クリアのメモリ領域である未クリア領域と、を管理する。ハイパバイザは、仮想計算機を生成する場合、前モリ割り当て要求をメモリプール管理計算機へ送信する。当該メモリ割り当て要求には、当該仮想計算機に割り当てるメモリ容量の情報が含まれている。ハイパバイザは、メモリプール管理計算機から受領した、メモリ割り当て要求に対する応答であるメモリ割り当て応答に、未クリア領域に属するアドレス範囲が含まれている場合、その未クリア領域に属するアドレス範囲のメモリ領域をクリアした後、その仮想計算機を生成する。
 メモリプール管理計算機は、ハイパバイザから、メモリ割り当て要求を受領した場合、その割り当てを要求されたメモリ容量が、クリア済み領域のメモリ容量よりも大きいならば、ハイパバイザに対するメモリ割り当て応答に、未クリア領域に属するアドレス範囲を含めてよい。
 メモリプール管理計算機は、ハイパバイザから、消滅させる仮想計算機に割り当てられていたメモリ領域のメモリ解放要求を受領した場合、割り当て済みメモリ領域に属するその解放を要求されたメモリ領域を、未クリア領域として管理し、その未クリア領域のクリア処理を、メモリプールに実行させ、その未クリア領域の内、メモリプールによってクリアされた領域を、順次、前記クリア済み領域として管理してよい。
 本発明によれば、仮想計算機にクリアされたメモリ領域を割り当てることと、仮想計算機の起動時間を短くすることを両立させることができる。
計算機システムの構成例を示す。 メモリプール管理テーブルの構成例を示す。 メモリプール管理テーブルの初期化処理の例を示すフローチャートである。 VMM(Virtual Machine Monitor)による仮想計算機の起動(生成)及び停止(消滅)処理と、それに付随するメモリプール管理部の処理の例を示すシーケンスチャートである。
 以下、一実施例を説明する。以下の説明では、「xxxテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxテーブル」を「xxx情報」と呼ぶことができる。
 また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び通信インターフェースデバイスのうちの少なくとも1つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア(例えば可搬型の記憶メディア)であってもよい。
 また、以下の説明では、計算機システムに含まれる少なくとも1つの装置を管理する1以上の計算機の集合を「管理システム」と呼ぶことがある。管理計算機が表示用情報を表示する場合は管理計算機が管理システムでよい。また、管理計算機と表示用計算機の組み合わせも管理システムでよい。また、管理処理の高速化や高信頼化のために複数の計算機で管理計算機と同等の処理を実現してもよく、この場合はそれら複数の計算機(表示を表示用計算機が行う場合は表示用計算機も含んでよい)が管理システムでよい。本実施例では、管理計算機が管理システムである。また、管理計算機が情報を表示するとは、管理計算機が有する表示デバイスに情報を表示することであってもよいし、管理計算機(例えばサーバ)に接続された表示用計算機(例えばクライアント)に表示用情報を送信することであってもよい。後者の場合、表示用計算機が有する表示デバイスに表示用情報が表す情報が表示用計算機によって表示される。
 また、以下の説明では、「リソース」とは、計算機システムの一要素(デバイス又はデバイス部分)であり、物理的な要素(例えば、プロセッサ、プロセッサコア、メモリ、PDEV、RAIDグループ、I/Oデバイス(例えばインターフェースデバイス))であってもよいし、論理的な要素(例えば、VOL、プール、サーバLPAR)であってもよい。LPARは、Logical Partitionの略である。サーバLPARは、サーバの一区画であり、仮想的なサーバ(仮想計算機)である。計算機システムは、リソース群を有し、リソース群が、複数のリソースユニットを有し、各リソースユニットが、1以上のリソース(例えば同種の1以上のリソース)を含む。1つのリソース(例えば仮想計算機)が、複数のリソース(例えば仮想プロセッサ、仮想メモリ)を含むこともある。
 本実施例では、1台のメモリプールにアクセス可能な1台の物理計算機上でメモリプールの一部のメモリ領域を利用して仮想計算機を生成(起動)、及び、メモリプールの一部のメモリ領域を利用して物理計算機上で稼働させていた仮想計算機を消滅(停止)させる処理を、メモリプールにアクセス可能なメモリプール管理専用の別の計算機(メモリプール管理計算機)と連携させて実施する場合の例を説明する。なお本実施例はあくまでも一例であり、メモリプールの数、メモリプールにアクセス可能な物理計算機の数、および、生成される仮想計算機の数が増減してもよいことは言うまでもない。また、メモリプール管理計算機の処理を物理計算機の一部リソース若しくは仮想計算機で実施する構成であってもよいし、物理計算機内の物理メモリの一部をメモリプールとして利用する構成であってもよい。
 図1は、計算機システム1の構成例を示す。
 <ハードウェア構成>
 計算機システム1は、1つ以上の物理計算機100と、メモリプール管理計算機170と、メモリプール140とを有する。
 物理計算機100及びメモリプール管理計算機170は、メモリ通信路150を介して、メモリプール140と双方向通信可能に接続されてよい。メモリ通信路150の例は、InfinibandやEthernet(登録商標)である。
 メモリプール140は、1つ以上のメモリデバイス141によって構成されたメモリ領域を、複数の物理計算機又は仮想計算機に提供する。物理計算機又は仮想計算機は、メモリプール140から提供されたメモリ領域を、従来のローカルメモリのように利用できてよい。メモリプール140は、揮発性メモリ(例えば、DRAM(Dynamic Random Access Memory))、不揮発性メモリ(例えば、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、フラッシュメモリ)、又は、これらの組み合わせの何れで構成されてもよい。
 物理計算機100は、物理リソースとして、1つ以上の物理CPU101と、ローカルメモリ102と、I/Oデバイス103とを有してよい。物理計算機100は、I/Oデバイス103を通じて、メモリプール140のメモリ領域にアクセスできてよい。
 メモリプール管理計算機170は、1つ以上の物理CPU171と、ローカルメモリ172と、I/Oデバイス173とを有してよい。メモリプール管理計算機170は、I/Oデバイス173を通じて、メモリプール140のメモリ領域にアクセスできてよい。
 <ソフトウェア構成>
 物理計算機100上では、サーバ仮想化のためのソフトウェアであるVMM(Virtual Machine Monitor)110が、ローカルメモリ102に展開され、システムソフトウェアとして動作する。VMMは、ハイパバイザ又は仮想化機構と呼ばれてもよい。
 VMM110は、物理計算機100の物理リソースの一部を割り当てて、仮想計算機120を生成することができる。物理計算機100の物理リソースの例は、物理CPU101、ローカルメモリ102、I/Oデバイス103、メモリプール140などである。
 仮想計算機120上では、プログラムの一種であるゲストOS130が動作してよい。
 メモリプール管理部180は、プログラムの一種であり、メモリプール管理計算機170上のローカルメモリ172に展開され、CPU170によって実行されてよい。又は、メモリプール管理部180は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)に構成された論理回路であってもよい。
 メモリプール管理部180は、メモリプール管理テーブル181を用いて、メモリプール140内の複数のメモリ領域を管理する。
 メモリプール140のメモリ領域は、仮想計算機120に割り当て済みの領域である割り当て済みメモリ領域160と、仮想計算機120に未割り当て且つクリア済みの領域であるクリア済みメモリ領域161と、仮想計算機120に未割り当て且つ未クリアの領域である未クリアメモリ領域162と、に区分されてよい。
 図2は、メモリプール管理テーブル181の構成例を示す。
 メモリプール管理テーブル181には、上述の割り当て済みメモリ領域160、クリア済みメモリ領域161、及び、未クリアメモリ領域162を管理するためのテーブルである。
 メモリプール管理テーブル180には、割り当て済みメモリ領域テーブル200と、クリア済メモリ領域テーブル210と、未クリアメモリテーブル220と、クリア済みメモリ総量230と、返答用メモリ領域テーブル240と、が含まれてよい。
 割り当て済み領域テーブル200は、メモリプール140内のメモリ領域のうち、割り当て済みメモリ領域160のアドレス範囲201と、その割り当て済みメモリ領域160のメモリ容量202とを関連付けて管理する。
 クリア済メモリ領域テーブル210は、メモリプール140内のメモリ領域のうち、クリア済みメモリ領域161のアドレス範囲211と、そのクリア済みメモリ領域161のメモリ容量212とを関連付けて管理する。
 未クリアメモリ領域テーブル220は、メモリプール140内のメモリ領域のうち、未クリアメモリ領域162のアドレス範囲221と、その未クリアメモリ領域162のメモリ容量222とを関連付けて管理する。
 クリア済メモリ総量230は、クリア済メモリ領域テーブル210に含まれるメモリ容量212の合計である。
 返答用メモリ領域テーブル240は、仮想計算機120の生成時にVMM110から発行されるメモリ割り当て要求に対して、メモリプール管理部180が応答を生成する際に使用される情報であり、クリア済アドレス範囲241、及び、未クリアアドレス範囲242を管理する。
 図3は、メモリプール管理テーブルの初期化処理の例を示すフローチャートである。
 (S3001)メモリプール管理部180は、メモリプール140内のメモリ領域を、全ての物理計算機100から共有可能に設定する。共有可能に設定されたメモリ領域を「共有メモリ領域」という
 (S3002)メモリプール管理部180は、メモリプール140の共有メモリ領域のメモリアドレス範囲とそのメモリ容量を、クリア済メモリ領域テーブル210へ登録する。すなわち、メモリプール140の共有メモリ領域のアドレス範囲をアドレス範囲211に、その共有メモリ領域のメモリ容量をメモリ容量212に登録する。
 以上の処理により、メモリプール管理テーブル181が初期化される。
 図4は、VMM110による仮想計算機120の生成及び消滅処理と、それに付随するメモリプール管理部180の処理の例を示すシーケンスチャートである。
 まず、仮想計算機120の消滅(停止)処理について説明する。
 (S4100)仮想計算機120Aでは、ゲストOS130が稼働中である。
 (S4101)ここで、例えば、シャットダウンコマンドが発行されると、仮想計算機120Aは、ゲストOS130のシャットダウン処理を実施する。
 (S4102)S4101のシャットダウン処理の完了後、仮想計算機120Aの消滅通知が、VMM110へ発行される。仮想計算機120Aの消滅通知は、仮想計算機120Aの電源がOFFされた旨の通知であってよい。
 (S4200)VMM110は、この消滅通知を受領すると、仮想計算機120Aの消滅処理を実施する。消滅処理では、割り当て済みの物理リソース(物理CPU121、ローカルメモリ122、I/Oデバイス123、メモリプール140のメモリ領域等)の解放が行われてよい。このとき、メモリプール140から仮想計算機120Aに割り当てられていたメモリ領域も解放される。なお、VMM110は、消滅通知を受領する以外の他の通知又は要因をトリガーとして、仮想計算機120Aの消滅処理を行ってもよい。
 (S4201)VMM110は、仮想計算機120Aに割り当て済みであった(つまり、S4200で解放した)メモリ領域を、メモリ管理部180へ通知する。例えば、VMM110は、メモリプール140において解放したメモリ領域のアドレス範囲を通知する。メモリ管理部180が、ステップS4200において解放されたメモリ領域をクリアできるようにするためである。
 (S4300)メモリプール管理部180は、ステップS4201の通知を受領すると、その通知に含まれるメモリ領域を特定する。例えば、メモリプール管理部180は、その通知に含まれるアドレス範囲を、割り当て済み領域テーブル200から検索し、その検索に適合するアドレス範囲201及びメモリ容量202を、未クリアメモリ領域テーブル220のアドレス範囲221及びメモリ容量222に移動させる。
 (S4301)メモリプール管理部180は、未クリアメモリ領域162のクリア(初期化)命令を、メモリプール140へ発行する。S4300において特定したアドレス範囲のメモリ領域をクリアするためである。クリア処理の例は、当該アドレス範囲のメモリ領域に対する「0」の書き込み処理、又は、そのメモリ領域に対応するメモリページのフラッシュ処理等である。
 (S4400)メモリプール140は、S4301の未クリアメモリ領域162のクリア命令に従い、未クリアメモリ領域162のクリア処理を開始する。仮想計算機120Aが消滅すると、直ちに、その仮想計算機120Aに割り当てられていたメモリプール140のメモリ領域のクリア処理が開始されてよい。クリア処理し終えたメモリ領域は、順次、クリア済みメモリ領域となる。
 (S4401)メモリプール140は、S4400の完了後、メモリプール管理部180に対して、未クリアメモリ領域162のクリア完了を通知する。
 (S4302)S4400の実施中、メモリプール管理部180は、定期的に、クリア済みメモリ領域のクリア状況を確認する。例えば、S4301での未クリアメモリ領域のクリア処理の進捗に基づいて、クリア済メモリ領域161のアドレス範囲及びメモリ容量を算出し、クリア済メモリ領域テーブル210内のアドレス範囲211及びメモリ容量212を追記・更新し、そのメモリ容量212に基づいて算出したクリア済メモリ総量230を更新し、未クリアメモリ領域テーブル220内のアドレス範囲221及びメモリ容量222を更新する。すなわち、メモリプール管理部180は、S4400のクリア処理の進捗を、メモリプール管理テーブル181に反映する。典型的には、メモリプール管理部180は、未クリアメモリ領域テーブル220に登録されているアドレス範囲221の内、クリア処理し終えたアドレス範囲を、順次、クリア済みメモリ領域テーブル210に移行させる。
 (S4303)メモリプール管理部180は、S4401の完了後、クリア済メモリ領域161のクリア状況の最終更新処理を実施する。
 次に、仮想計算機120Bの生成(起動)処理について説明する。
 (S4500)VMM110は、仮想計算機120Bの生成要求を受領する。
 (S4501)VMM110は、S4500で生成要求された仮想計算機120Bに対してメモリプール140から割り当てるべきメモリ容量(「割り当て要求メモリ容量」という)を特定する。
 (S4502)VMM110は、メモリプール管理部180へ、メモリ割り当て要求を送信する。メモリ割り当て要求には、S4501で特定した割り当て要求メモリ容量が含まれてよい。
 (S4503)メモリプール管理部180は、S4502のメモリ割り当て要求を受領すると、例えば、次の処理を実行する。すなわち、メモリプール管理部180は、返答用メモリ領域テーブル240に保持されている値を全て削除する。そして、メモリプール管理部180は、S4502のメモリ割り当て要求に含まれる割り当て要求メモリ容量と、クリア済メモリ総量230とを比較する。
 ここで、割り当て要求メモリ容量がクリア済みメモリ総量230以下の場合、メモリプール管理部180は、次の処理を実施する。すなわち、メモリプール管理部180は、クリア済みメモリ領域テーブル210の内、割り当て要求メモリ容量の分のアドレス範囲を算出する。そして、メモリプール管理部180は、その算出したアドレス範囲211を、応答用メモリ領域テーブル240のクリア済アドレス範囲241へ移動させる。そして、メモリプール管理部180は、その応答用メモリ領域テーブル240のクリア済みアドレス範囲241へ移動させた分を、割り当て済みメモリ領域テーブル200にも登録する。そして、メモリプール管理部180は、クリア済メモリ総量230を更新する。
 一方、割り当て要求メモリ容量がクリア済みメモリ総量230よりも大きい場合、メモリプール管理部180は、次の処理を実施する。すなわち、メモリプール管理部180は、クリア済みメモリ領域テーブル210に登録されているアドレス範囲211の全てを、割り当て済みメモリ領域テーブル200に移動させる。さらに、メモリプール管理部180は、未クリアメモリ領域テーブル220の内、割り当て要求メモリ容量を満たすために不足している分のアドレス範囲221を算出する。この不足している分のアドレス範囲221のメモリ容量は、メモリ割り当て要求に含まれる割り当て要求メモリ容量と、クリア済みメモリ総量230との差分又はそれ以上であってよい。そして、メモリプール管理部180は、その算出したアドレス範囲221を、応答用メモリ領域テーブル240の未クリアアドレス範囲242へ移動させる。そして、メモリプール管理部180は、その応答用メモリ領域テーブル240のクリア済みアドレス範囲241及び未クリアアドレス範囲242へ移動させた分を、割り当て済みメモリ領域テーブル200にも登録する。
 (S4504)メモリプール管理部180は、空きメモリ情報をVMM110へ返す。空きメモリ情報の例は、返答用メモリ領域テーブル240に登録されている情報であってよい。
 (S4505)VMM110は、S4504の空きメモリ情報を受領すると、その空きメモリ情報に含まれる未クリアアドレス範囲242のみクリア処理を実施する。このクリア処理は、S4301、S4400、S4401と同様の処理であってよい。当該クリア処理が完了すると、メモリプール140における割り当て要求メモリ容量の分は、全てクリアされている状態となる。なお、空きメモリ情報に未クリアアドレス範囲242が含まれていない場合、VMM110は、S4504のクリア処理を実施しなくてよい。
 (S4506)VMM110は、仮想計算機120Bの生成処理を実施する。例えば、物理計算機100上の物理リソースの一部(例えば、物理CPU101、ローカルメモリ122、I/Oデバイス123等)と、S4504の空きメモリ情報に含まれるクリア済みアドレス範囲241と、S4505でクリア処理された未クリアアドレス範囲242と、を仮想計算機120Bに割り当てる。
 (S4507)VMM110は、S4506で物理リソースを割り当てられた仮想計算機120Bの生成命令を発行する。これにより、仮想計算機120Bが生成され、ゲストOS130Bの稼働が開始される。生成命令は、仮想計算機120Bの電源をONする旨の命令であってもよい。
 本実施例に係る計算機システムは、仮想計算機120の消滅後、速やかに割り当て済みメモリ領域160のクリア処理を実行する。これにより、メモリプール140内のクリア済メモリ領域161が順次増加する。よって、仮想計算機120の生成時に、メモリプール140内に比較的多くのクリア済メモリ領域161が存在し得る。さらに、クリア済みメモリ領域161が不足している場合であっても、その不足分だけ未クリアメモリ領域162をクリア処理すればよいので、比較的短時間でクリア処理を完了することができる。すなわち、本実施例に係る計算機システム1によれば、仮想計算機120にクリアされたメモリ領域を割り当てることと、仮想計算機120の生成時間を短くすることとを両立させることができる。また、割り当てられるメモリ領域は静的なメモリ割り当てとなるため、アプリケーション層での性能最適化の恩恵も受けられるようになる。
 上述した実施形態は、本発明の説明のための例示であり、本発明の範囲を実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
 1:計算機システム 100:物理計算機 110:VMM 120:VM 140:メモリプール 170:メモリプール管理計算機 181:メモリプール管理テーブル

Claims (7)

  1.  物理計算機と、メモリプールと、メモリプール管理計算機とを含む計算機システムであって、
     前記物理計算機は、仮想計算機を制御するハイパバイザを含み、
     前記メモリプール管理計算機は、
      前記メモリプールのメモリ領域について、仮想計算機に割り当て済みのメモリ領域である割り当て済み領域と、仮想計算機に未割り当て且つクリア済みのメモリ領域であるクリア済み領域と、仮想計算機に未割り当て且つ未クリアのメモリ領域である未クリア領域と、を管理し、
     前記ハイパバイザは、
      仮想計算機を生成する場合、前記メモリ割り当て要求をメモリプール管理計算機へ送信し、当該メモリ割り当て要求には、当該仮想計算機に割り当てるメモリ容量の情報が含まれており、
      前記メモリプール管理計算機から受領した、前記メモリ割り当て要求に対する応答であるメモリ割り当て応答に、前記未クリア領域に属するアドレス範囲が含まれている場合、その未クリア領域に属するアドレス範囲のメモリ領域をクリアした後、その仮想計算機を生成する
    計算機システム。
  2.  前記メモリプール管理計算機は、
      前記ハイパバイザから、前記メモリ割り当て要求を受領した場合、その割り当てを要求されたメモリ容量が、前記クリア済み領域のメモリ容量よりも大きいならば、前記ハイパバイザに対するメモリ割り当て応答に、前記未クリア領域に属するアドレス範囲を含める
    請求項1に記載の計算機システム。
  3.  前記メモリ割り当て応答に含まれる前記未クリア領域に属するアドレス範囲のメモリ容量は、前記メモリ割り当て要求に含まれるメモリ容量と、前記クリア済み領域の容量との差分に相当する
    請求項2に記載の計算機システム。
  4.  前記メモリプール管理計算機は、
      前記ハイパバイザから、消滅させる仮想計算機に割り当てられていたメモリ領域のメモリ解放要求を受領した場合、割り当て済みメモリ領域に属するその解放を要求されたメモリ領域を、前記未クリア領域として管理し、
      その未クリア領域のクリア処理を、前記メモリプールに実行させ、
      その未クリア領域の内、前記メモリプールによってクリアされた領域を、順次、前記クリア済み領域として管理する
    請求項1に記載の計算機システム。
  5.  仮想計算機を制御するハイパバイザを含み、
     前記ハイパバイザは、前記メモリプールのメモリ領域について、仮想計算機に割り当て済みのメモリ領域である割り当て済み領域と、仮想計算機に未割り当て且つクリア済みのメモリ領域であるクリア済み領域と、仮想計算機に未割り当て且つ未クリアのメモリ領域である未クリア領域と、を管理するメモリプール管理計算機と通信可能であり、
     前記ハイパバイザは、
      仮想計算機を生成する場合、前記メモリ割り当て要求をメモリプール管理計算機へ送信し、当該メモリ割り当て要求には、当該仮想計算機に割り当てるメモリ容量の情報が含まれており、
      前記メモリプール管理計算機から受領した、前記メモリ割り当て要求に対する応答であるメモリ割り当て応答に、前記未クリア領域に属するアドレス範囲が含まれている場合、その未クリア領域に属するアドレス範囲のメモリ領域をクリアした後、その仮想計算機を生成する
    物理計算機。
  6.  物理計算機と、メモリプールと、メモリプール管理計算機とを含む計算機システムにおけるメモリ制御方法であって、
     前記物理計算機は、仮想計算機を制御するハイパバイザを含み、
     前記メモリプール管理計算機は、
      前記メモリプールのメモリ領域について、仮想計算機に割り当て済みのメモリ領域である割り当て済み領域と、仮想計算機に未割り当て且つクリア済みのメモリ領域であるクリア済み領域と、仮想計算機に未割り当て且つ未クリアのメモリ領域である未クリア領域と、を管理し、
     前記ハイパバイザは、仮想計算機を生成する場合、前記メモリ割り当て要求をメモリプール管理計算機へ送信し、当該メモリ割り当て要求には、当該仮想計算機に割り当てるメモリ容量の情報が含まれており、
     前記メモリプール管理計算機は、前記ハイパバイザから前記メモリ割り当て要求を受領した場合、その割り当てを要求されたメモリ容量が、前記クリア済み領域のメモリ容量よりも大きいならば、前記未クリア領域に属するアドレス範囲を含むメモリ割り当て応答を、前記ハイパバイザへ送信し、
     前記ハイパバイザは、前記メモリプール管理計算機から受領した、前記メモリ割り当て応答に、前記未クリア領域に属するアドレス範囲が含まれている場合、その未クリア領域に属するアドレス範囲のメモリ領域をクリアした後、その仮想計算機を生成する
    メモリ制御方法。
  7.  前記ハイパバイザは、
      仮想計算機を消滅させる場合、その消滅させる仮想計算機に割り当てられていたメモリ領域のメモリ解放要求を、前記メモリプール管理計算機へ送信し、
     前記メモリプール管理計算機は、
      前記ハイパバイザから、前記メモリ解放要求を受領した場合、割り当て済み領域に属するその解放を要求されたメモリ領域を、前記未クリア領域として管理し、
      その未クリア領域のクリア処理を、前記メモリプールに実行させ、
      その未クリア領域の内、前記メモリプールによってクリアされた領域を、順次、前記クリア済み領域として管理する
    請求項6に記載のメモリ制御方法。
PCT/JP2016/050548 2016-01-08 2016-01-08 計算機システム、物理計算機、及び、メモリ制御方法 WO2017119128A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2016/050548 WO2017119128A1 (ja) 2016-01-08 2016-01-08 計算機システム、物理計算機、及び、メモリ制御方法
US15/769,347 US10331474B2 (en) 2016-01-08 2016-01-08 Machine system, physical machine, and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/050548 WO2017119128A1 (ja) 2016-01-08 2016-01-08 計算機システム、物理計算機、及び、メモリ制御方法

Publications (1)

Publication Number Publication Date
WO2017119128A1 true WO2017119128A1 (ja) 2017-07-13

Family

ID=59273403

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/050548 WO2017119128A1 (ja) 2016-01-08 2016-01-08 計算機システム、物理計算機、及び、メモリ制御方法

Country Status (2)

Country Link
US (1) US10331474B2 (ja)
WO (1) WO2017119128A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021192184A1 (ja) * 2020-03-26 2021-09-30 日本電気株式会社 メモリ制御方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110431806B (zh) * 2017-04-19 2021-02-05 华为技术有限公司 分布式资源管理中低时延节点本地调度的系统和方法
US20210224121A1 (en) * 2020-01-20 2021-07-22 International Business Machines Corporation Virtual machine-initiated workload management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104530A (ja) * 2007-10-25 2009-05-14 Hitachi Ltd 仮想計算機システム及びその制御方法
JP2009223787A (ja) * 2008-03-18 2009-10-01 Hitachi Software Eng Co Ltd 情報処理装置及び方法、並びにプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478387B2 (en) * 2002-09-25 2009-01-13 International Business Machines Corporation System and method for creating a restartable non-native language routine execution environment
WO2012081058A1 (en) 2010-12-17 2012-06-21 Hitachi, Ltd. Storage subsystem and its logical unit processing method
US9183157B2 (en) * 2011-03-15 2015-11-10 Huawei Technologies Co., Ltd. Method for creating virtual machine, a virtual machine monitor, and a virtual machine system
US9996370B1 (en) * 2012-04-18 2018-06-12 Open Invention Network Llc Page swapping in virtual machine environment
KR101999132B1 (ko) * 2012-12-17 2019-10-01 삼성전자주식회사 가상 머신 환경에서 메모리 관리 방법 및 장치
US10108446B1 (en) * 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10318161B2 (en) * 2016-06-20 2019-06-11 Red Hat Israel, Ltd. Virtual machine initiated memory deduplication
US10255203B2 (en) * 2016-06-30 2019-04-09 Intel Corporation Technologies for zero-copy inter-virtual-machine data movement
US9727368B1 (en) * 2016-08-16 2017-08-08 Red Hat Israel Virtual machine migration acceleration with page state indicators

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104530A (ja) * 2007-10-25 2009-05-14 Hitachi Ltd 仮想計算機システム及びその制御方法
JP2009223787A (ja) * 2008-03-18 2009-10-01 Hitachi Software Eng Co Ltd 情報処理装置及び方法、並びにプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021192184A1 (ja) * 2020-03-26 2021-09-30 日本電気株式会社 メモリ制御方法
JPWO2021192184A1 (ja) * 2020-03-26 2021-09-30

Also Published As

Publication number Publication date
US10331474B2 (en) 2019-06-25
US20180307518A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
US8667207B2 (en) Dynamic reallocation of physical memory responsive to virtual machine events
US9015435B2 (en) Storage management system and storage management method
US8078728B1 (en) Capacity pooling for application reservation and delivery
US20190155548A1 (en) Computer system and storage access apparatus
US20120304171A1 (en) Managing Data Input/Output Operations
JP7280508B2 (ja) 情報処理装置、情報処理方法および仮想マシン接続管理プログラム
US10747563B2 (en) Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group
US9176787B2 (en) Preserving, from resource management adjustment, portions of an overcommitted resource managed by a hypervisor
JP6458146B2 (ja) 計算機及びメモリ領域管理方法
JP2016167143A (ja) 情報処理システムおよび情報処理システムの制御方法
WO2017119128A1 (ja) 計算機システム、物理計算機、及び、メモリ制御方法
US9886387B2 (en) Method and system for performing on-demand data write through based on virtual machine types
US20140129768A1 (en) Raid array transformation in a pooled storage system
JP5966466B2 (ja) バックアップ制御方法、および情報処理装置
JP5492731B2 (ja) 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム
JP5655612B2 (ja) 情報処理システム、情報処理方法、及び制御プログラム
US11907135B2 (en) Faster computer memory access by reducing SLAT fragmentation
US9348769B2 (en) Managing zeroed logical volume
US9292318B2 (en) Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system
KR102460345B1 (ko) 고체 상태 드라이브들에서 입력 및 출력 동작들의 혼재의 감소
US10228859B2 (en) Efficiency in active memory sharing
US20180300259A1 (en) Local disks erasing mechanism for pooled physical resources
JP6696052B2 (ja) ストレージ装置及び記憶領域管理方法
WO2014041664A1 (ja) 情報処理システム、情報処理装置、移行制御プログラム、及び移行制御方法
US20230266992A1 (en) Processor for managing resources using dual queues, and operating 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: 16883631

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15769347

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16883631

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP