WO2017022014A1 - 仮想計算機システムの制御方法及び仮想計算機システム - Google Patents
仮想計算機システムの制御方法及び仮想計算機システム Download PDFInfo
- Publication number
- WO2017022014A1 WO2017022014A1 PCT/JP2015/071805 JP2015071805W WO2017022014A1 WO 2017022014 A1 WO2017022014 A1 WO 2017022014A1 JP 2015071805 W JP2015071805 W JP 2015071805W WO 2017022014 A1 WO2017022014 A1 WO 2017022014A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- computer
- logical partition
- hypervisor
- lpar
- address
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 67
- 238000005192 partition Methods 0.000 claims abstract description 111
- 238000006243 chemical reaction Methods 0.000 claims abstract description 34
- 102000004137 Lysophosphatidic Acid Receptors Human genes 0.000 claims description 424
- 108090000642 Lysophosphatidic Acid Receptors Proteins 0.000 claims description 424
- 230000005012 migration Effects 0.000 claims description 171
- 238000013508 migration Methods 0.000 claims description 171
- 230000015654 memory Effects 0.000 claims description 146
- 230000006870 function Effects 0.000 claims description 33
- 238000013519 translation Methods 0.000 claims description 22
- 238000007726 management method Methods 0.000 description 196
- 238000012545 processing Methods 0.000 description 45
- 230000008569 process Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 26
- 230000001133 acceleration Effects 0.000 description 11
- 230000004913 activation Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000012508 change request Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
Definitions
- the present invention relates to a technique for reducing overhead when converting a memory address of a virtual machine.
- LPAR logical partitioning technique that logically divides these abundant resources and operates an OS (guest OS) for each logical partition
- LPAR computer resources such as a CPU and a memory are allocated to each LPAR by a control program called a hypervisor.
- the memory on the computer is managed by an address space, and in a virtual computer such as a virtual machine or LPAR, a guest physical address (GPA: Guest) recognized by the guest OS from a virtual address (VA: Virtual Address) recognized by the application.
- GPA guest physical address
- VA Virtual Address
- HPA host physical address
- the above two-stage address conversion is performed by INTE's EPT (Extended Page Tables) known as a hardware virtualization support mechanism or AMD's NPT (Nested Page Table). be able to.
- EPT Extended Page Tables
- AMD's NPT Nested Page Table
- the address space is expanded in the x64 architecture in which the x86 system CPU is converted to 64 bits.
- the address space is managed using a four-stage multi-stage page table. For this reason, the performance degradation of LPAR is a problem due to the overhead due to the occurrence of memory access during address translation.
- Patent Document 1 a technique in which the CPU holds a small number of address conversion information on a register basis has been disclosed (Patent Document 1).
- the hypervisor sets up address conversion information from GPA to HPA for a register, thereby realizing address conversion from VA to HPA without referring to an EPT page table.
- the hypervisor that manages the LPAR is running on the CPU of INTEL, and it is difficult to implement the technique of Patent Document 1 in these x64 architectures (or AMD64 architectures).
- an application with a wide access range such as an in-memory DB is operated on the LPAR, the processing performance may be lowered.
- the present invention has been made in view of the above problems, and it is possible to operate the guest OS without modification in a virtual machine system using an existing CPU, thereby reducing the overhead caused by the above-described two-stage address translation.
- the purpose is to reduce.
- the present invention assigns a computer resource of a first computer including a processor and a memory to one or more logical partitions and operates a guest OS and an application, and a computer resource of a second computer including a processor and a memory Is assigned to one or more logical partitions, and a virtual machine system having a second hypervisor that runs a guest OS and an application, and the management computer that controls the first hypervisor and the second hypervisor
- a method of controlling a virtual machine system to be controlled wherein the first hypervisor recognizes a first logical partition at an address including a host physical address of the memory of the first computer recognized by the first hypervisor. And the first hypervisor is configured to assign the first argument to the first argument.
- a third step of determining a computer that allocates the second logical partition to an address including the host physical address including 0 as a migration destination computer The management computer causes the hypervisor of the migration destination computer to generate a third logical partition at an address including the host physical address of 0, assigns the processor of the migration destination computer, and A fourth function for enabling an address conversion function for converting a guest physical address to be allocated to a logical partition into the host physical address.
- the hypervisor of the migration destination computer invalidates the address translation, so that it is not necessary to modify the guest OS and the overhead of the two-stage memory address translation without stopping the management computer system.
- FIG. 1 is a block diagram illustrating an example of a virtual machine system according to a first embodiment of this invention.
- FIG. It is a block diagram which shows the 1st Example of this invention and shows the content of the memory of the computer which provides a virtual computer.
- It is a block diagram which shows the 1st Example of this invention and shows the content of the memory of a management computer.
- FIG. 3 is a block diagram illustrating a relationship between a host page table and a host physical address according to the first embodiment of this invention. It is a figure which shows the 1st Example of this invention and demonstrates the movement of LPAR according to progress of a migration process.
- FIG. 3 is a memory map illustrating an example of a physical address space and a virtual address space according to the first embodiment of this invention. It is a block diagram which shows the 1st Example of this invention and shows the relationship between a guest page table and a virtual address.
- FIG. 1 is a block diagram showing an example of a virtual machine system according to the first embodiment.
- a computer 1000 is a physical computer for operating logically divided LPARs (logical partitions) 1011 and 1012, an FC I / F 1001 that transmits and receives input / output data to and from the storage device 1400, and a management An IP I / F 1005 that transmits / receives management data to / from the computer 1100, a CPU 1002 that executes a program to control the computer, a memory 1007 that is a storage area for storing programs and LPAR data, and programs and data Etc., a storage device (HDD in the figure) 1006, an input device 1003 for inputting information from the user such as a keyboard and a mouse, and an output device 1004 for displaying information to the user such as a display. .
- LPARs logical partitions
- FC I / F 1001 that transmits and receives input / output data to and from the storage device 1400
- the memory 1007 stores computer resources of the LPARs 1011 and 1012 logically divided by the hypervisor 10 in addition to programs and tables to be described later. As will be described later, the LPARs 1011 and 1012 function as virtual machines including a computer resource that executes a guest OS and applications.
- the LPARs 1011 and 1012 are virtual computers generated by logical partitioning, and can use physical resources such as the CPU 1002 and the storage device 1006 transparently.
- the LPARs 1011 and 1012 are different in the resource usage method from the virtual computer method in which the CPU and disk used by the computer by the hypervisor 10 are managed as abstracted virtual devices.
- the virtual computer called LPAR is not limited to one generated by either a logical partitioning method or a virtual computer method.
- the computer 1100 is the same as the computer 1000 described above, and is a physical computer for operating logically partitioned LPARs 1111, 1112, and an FC I / F 1101 that transmits / receives input / output data to / from the storage apparatus 1400, and a management computer 1100 IP I / F 1105 for transmitting / receiving management data between the CPU, CPU 1102 for executing the program and controlling the entire computer 1100, memory 1107 as a storage area for storing the program and LPAR, and the program and user data
- a storage device (HDD in the figure) 1106 to be held, an input device 1103 for inputting information from the user such as a keyboard and a mouse, and an output device 1104 for displaying information to the user such as a display are included.
- the memory 1107 stores LPARs 1111 and 1112 logically divided by the hypervisor 11 in addition to programs and tables described later, and can function as a virtual machine.
- the FC switch 1200 is a switch device for transferring input / output data from the management computer 1500 to the storage device 1400, etc., and an FC I / F 1203 for transmitting / receiving input / output data, and an IP I / F 1204 for transmitting / receiving management data.
- the CPU 1201 controls the entire FC switch by executing a program
- the memory 1202 is a storage area for storing the program and data.
- the FC switch 1200 controls a SAN (Storage Area Network) that connects the computers 1000 and 1100 that provide virtual machines and the storage device 1400.
- SAN Storage Area Network
- the IP switch 1300 is a switch device for transferring management data from the management computer 1500 to the computer 1000, etc., and a plurality of IP I / Fs 1303 that transmit and receive management data, and a CPU 1301 that executes a program and controls the entire IP switch. And a memory 1302 which is a storage area for programs and data.
- the IP switch 1300 controls an IP network connecting the management computer 1500, the computers 1000 and 1100 that provide virtual computers, the storage device 1400, and a user terminal (not shown).
- the storage device 1400 is a node that processes input / output data from the computers 1000 and 1100, and receives an FC I / F 1401 that receives input / output data transferred from the FC switch 1200 and management data from the management computer 1100.
- An IP I / F 1402 a controller 1403 that executes a program to control the entire storage apparatus, a memory 1404 that is a storage area for the program, and pools 1411, 1412, 1413, and 1414 that are user data storage areas Including.
- the pools 1411 to 1414 can include volumes configured with SSDs, HDDs, or the like.
- the management computer 1500 is a computer for managing physical computer resources such as the computers 1000 and 1100 and the storage device 1400 and logical computer resources such as LPAR.
- the management computer 1500 executes programs such as an FC I / F 1501 that transmits / receives input / output data and control data to / from the storage device 1400, and an IP I / F 1505 that transmits / receives management data to / from the computers 1000, 1100 and the storage device 1400.
- a CPU 1502 for controlling the entire computer, a memory 1507 which is a storage area for programs, a storage device (HDD in the figure) 1506 for storing programs and user data, and information from users such as a keyboard and a mouse are input.
- an output device 1504 for displaying information to the user such as a display.
- the management computer 1500 instructs the hypervisors 10 and 11 to generate, move, and delete the LPARs 1011 to 1112 based on a command received from the input device 1503 as described later.
- FIG. 2 is a block diagram showing the contents of the memory 1007 of the computer 1000 that provides the virtual computer.
- the contents of the memory 1107 of the computer 1100 are the same as those in FIG.
- the computer 1000 provides a predetermined function by reading each program, table, and the like from the storage device 1006 to the memory 1007 at startup and causing the CPU 1002 to execute each program.
- the hypervisor 10 provides two LPARs 1011 and 1012 is shown.
- the memory 1007 includes a hypervisor (virtualization unit) 10 that allocates computer resources of the computer 1000 to one or more LPARs 1011, 1012, a guest OS 2008-1 that provides the application 2001-1 with the LPAR 1011, and an application 2001-2 with the LPAR 1012.
- a hypervisor virtualization unit 10 that allocates computer resources of the computer 1000 to one or more LPARs 1011, 1012, a guest OS 2008-1 that provides the application 2001-1 with the LPAR 1011, and an application 2001-2 with the LPAR 1012.
- Guest OS 2008-2 to be provided, computer management unit 2003 for performing transmission / reception of each table, allocation management table 2004 for managing configuration information of LPARs 1011, 1012, memory addresses managed by the hypervisor 10, and memory for each LPAR Memory allocation management table 2006 for managing the allocation status of the virtual machine, the guest physical address space recognized by the guest OS 2008-1 and 2008-2, and the host physical address space recognized by the hypervisor 10
- An address conversion management table 2007 for storing conversion mapping information, a VMCS (Virtual Machine Data Structure) 15 in which the hypervisor 10 manages control information of the LPARs 1011, 1012, and a hypervisor 10 to manage guest physical addresses and host physical addresses.
- VMCS Virtual Machine Data Structure
- Host page table (PT in the figure) 20 for conversion guest page table (PT in the figure) 30-1 for conversion from a virtual address to a guest physical address by the LPAR 1011 under the management of the guest OS 2008-1, and a guest OS 2008 -2 stores a guest page table (PT in the figure) 30-2 for conversion from a virtual address to a guest physical address by the LPAR 1012.
- Each function unit of the hypervisor 10, the guest OS 2008, the application 2001, and the computer management unit 2003 is loaded into the memory 1007 as a program.
- the CPU 1002 operates as a functional unit that provides a predetermined function by processing according to the program of each functional unit.
- the CPU 1002 functions as the hypervisor 10 by processing according to the hypervisor program
- the guest OS 2008 functions as the guest OS by processing according to the guest OS program.
- the CPU 1002 also operates as a function unit that provides each function of a plurality of processes executed by each program.
- a computer and a computer system are an apparatus and a system including these functional units.
- Information such as programs and tables for realizing the functions of the hypervisor 10, the guest OS 2008, and the application 2001 includes a storage device 1006, a nonvolatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), an IC card, It can be stored in a computer-readable non-transitory data storage medium such as an SD card or DVD.
- a storage device 1006 a nonvolatile semiconductor memory, a hard disk drive, a storage device such as an SSD (Solid State Drive), an IC card, It can be stored in a computer-readable non-transitory data storage medium such as an SD card or DVD.
- FIG. 3 is a block diagram showing the contents of the memory 1507 of the management computer 1500.
- the management computer 1500 manages a migration control unit 3001 that controls LPAR migration to the memory 1507 at startup, an LPAR management unit 3002 that manages computer resources allocated to the LPARs of the computers 1000 and 1100, and a migration control state.
- a migration management table 3003 for storing information to be executed, a computer resource management table 3004 for managing the configuration information of each computer resource to be allocated to the LPAR, and an LPAR management table for managing the state of each LPAR of each of the computers 1000 and 1100 3005 are read from the storage device 1506.
- FIG. 4 is a block diagram showing the contents of the memory 1404 of the storage apparatus 1400.
- the storage device 1400 has a data processing unit 4001 that processes an access request received from the computer 1000 or the like to the memory 1404 at the time of startup, a storage information management unit 4002 that manages configuration information and performance information of the storage device 1400, and a storage device 1400.
- the storage management table 4003 storing the configuration information is read.
- the storage management table 4003 can include a pool identifier, a volume identifier, and an LPAR identifier to which the volume is assigned.
- FIG. 5 is a diagram showing an example of the computer resource management table 3004.
- the computer resource management table 3004 stores configuration information acquired from the computers 1000 and 1100 by the management computer 1500 at a predetermined timing.
- the computer resource management table 3004 includes a computer 5001 that stores the identifier of the computer, a mode 5002 that stores the operation mode of the computer, a CPU 5003 that stores the CPU resource amount of the computer (the number of sockets: S), and the free memory resource amount of the computer ( GB) is stored in a single record.
- Mode 5002 will be described in two modes, “Basic” and “LPAR”.
- “Basic” is a mode for using a computer as a single physical computer, and installs an OS and an application on the computer. At this time, one OS and application can use hardware resources such as all CPUs and memories of the computer.
- LPAR is a mode for using a computer as a plurality of virtual computers, and a plurality of LPARs or virtual computers can be generated and operated by logical division or a virtual computer system.
- the CPU 5003 indicates the number of sockets (S) as the resource amount in the illustrated example, but is not limited to this, and may be managed by the number of cores, the operating frequency, or the like.
- the computer 1000 is operating in the “LPAR” mode
- the CPU 1002 is configured with two sockets
- the capacity of the memory 1007 is 512 GB.
- FIG. 6 is a diagram illustrating an example of the LPAR management table 3005.
- the LPAR management table 3005 stores configuration information acquired by the management computer 1500 from the hypervisors 10 and 11 of the computers 1000 and 1100 at a predetermined timing or a predetermined cycle, and state information of each LPAR.
- the LPAR management table 3005 includes a computer 6001 that stores computer identifiers, an LPAR # 6002 that stores LPAR identifiers (slot numbers and the like) set on the computer, and a CPU 6003 that stores operating states of CPUs assigned to the LPARs. , A memory 6004 for storing the capacity of the memory allocated to the LPAR, and a TEMP 6005 indicating the state of the LPAR are included in one record.
- the hypervisors 10 and 11 manage the computer resources of the computers 1000 and 1100 using the respective LPAR management tables 3005.
- a temporary startup state in which the allocation of computer resources (memory 1007, 1107 and CPUs 1002, 1102, etc.) to the LPAR is completed, and a startup in which the guest OS and application are started with the computer resources allocated to the LPAR It shall have two states of state (or operation state).
- the management computer 1500 sets one of two states of “YES” indicating the temporary activation state and “NO” indicating the activation state.
- the hypervisors 10 and 11 have assigned the memories 1007 and 1107 and the CPUs 1002 and 1102 to the respective LPARs, but the guest OS is not started, and the external (user) computer identifies the virtual machine as a virtual machine. Status).
- the hypervisors 10 and 11 complete the assignment of computer resources to the LPAR, and the guest OS has not yet been activated, but is temporarily activated. In this state, the LPAR is activated (Activated). It is good. Also, releasing the allocation of computer resources from the LPAR is referred to as LPAR deletion.
- LPAR 1011 and 1012 are assigned to the computer 1000, the CPU 6003 is “YES”, the CPU 1002 has been assigned to the LPAR 1011 and 1012, and the memory 1007 of 32 GB and 30 GB are assigned to the LPAR 1011 and 1012, respectively. It is done.
- the LPARs 1011 and 1012 indicate the activated state when the TEMP 6005 is “NO”.
- LPAR 1111 and 1112 are allocated, and 32 GB and 30 GB of memory 1107 are allocated to LPAR 1111 and 1112 respectively.
- the LPAR 1112 indicates an activated state when the TEMP 6005 is “NO”.
- LPAR 1111 indicates a temporary activation state when TEMP 6005 is “YES”. That is, the LPAR 1111 indicates a state before the guest OS starts operating after the computer resource assignment is completed.
- FIG. 7A and 7B are diagrams showing an example of the memory allocation management table 2006.
- FIG. 7A shows a memory allocation management table 2006 managed by the hypervisor 10 of the computer 1000 from which the LPAR 1011 is the migration source.
- FIG. 7B shows a memory allocation management table 2006 managed by the hypervisor 11 of the computer 1100 that is the migration destination of the LPAR 1011.
- the memory allocation management table 2006 is a conversion table corresponding to EPT, and corresponds to the host page table 20 in FIG.
- Each guest OS 2008 sets the guest page table 30-1 shown in FIG. 24 on the memory 1007 and operates in the same manner as the memory allocation management table 2006.
- the memory allocation management table 2006 includes a computer 7001 that stores computer identifiers, an LPAR # 7002 that stores LPAR identifiers set in the computer 1000, and a guest physical address (GPA :) recognized by the guest OS allocated to the LPAR.
- GPA_Base7003 that stores Guest Physical Address
- HPA_Base7004 that stores the first address of the host physical address (HPA: Host Physical Address) that specifies the physical memory location of the guest physical address assigned to the LPAR
- the size 7005 for storing the allocated capacity of the memory 1007 is included in one record.
- the memory allocation management table 2006 is updated by the hypervisors 10 and 11 when the LPAR is generated or deleted.
- FIG. 8 is a diagram illustrating an example of the address conversion management table 2007.
- the address translation management table 2007 is managed by the hypervisors 10 and 11 of the computers 1000 and 1100, respectively.
- the address conversion management table 2007 includes a computer 18001 for storing computer identifiers, an LPAR # 18002 for storing LPAR identifiers set in the computers, and a GPA 18003 for storing guest physical addresses that are virtual addresses recognized by the application 2001. , HPA 18004 for storing the host physical address which is the address of the physical memory is included in one record.
- the illustrated example shows an example in which the LPAR 1011 of the computer 1000 and the guest physical addresses of 1012 are assigned to consecutive HPAs, respectively.
- FIG. 21 is a diagram showing an example of the migration management table 3003.
- the migration management table 3003 is managed by the management computer 1500 and is updated each time migration is executed.
- the migration management table 3003 includes a migration source computer 7501 that stores the identifier of the migration source computer, a migration source LPAR 7502 that stores the identifier of the migration source LPAR, a size 7503 that stores the memory size of the migration source LPAR, and a migration source destination One record includes a migration destination Computer 7504 that stores the identifier of the computer, a migration destination LPAR 7505 that stores the identifier of the migration destination LPAR, and the migration status 7506.
- the migration status 7506 can store a status such as “Migrating” indicating that the migration is being executed, and “Reserved” indicating the standby status of the migration.
- the management computer 1500 deletes the corresponding record from the migration management table 3003.
- the computer resources to be migrated by migration can include, for each of the migration source and migration destination, a guest OS identifier, an application identifier, and the like in addition to the computer identifier and the LPAR identifier to be migrated.
- the resources allocated to the LPAR of the migration destination computer can include the number of CPU sockets (or the number of cores), storage volume identifiers, and the like in addition to the memory size. Note that the detailed contents of migration are not described in detail in this embodiment because a known or publicly known technique may be used.
- LPAR migration is performed between the computers 1000 and 1100.
- the LPAR migration of this embodiment is a process of moving the guest OS 2008, the application 2001, and the storage apparatus 1400 (allocated volume), which are logical computer resources operating on the LPAR 1011, to another LPAR 1111.
- the migration of the LPAR of this embodiment is equivalent to moving a virtual machine running on a virtualization unit such as the hypervisor 10 to another hypervisor 11.
- FIG. 22 is a diagram illustrating an example of the allocation management table 2004 managed by the hypervisors 10 and 11.
- the allocation management table 2004 is configuration information for managing computer resources allocated to the LPARs operating on the computers 1000 and 1100, and is managed by the hypervisors 10 and 11, respectively.
- the allocation management table 2004 includes an LPAR # 9001 that stores an identifier of the LPAR, a CPU 9002 that stores an amount of CPU resources (for example, the number of sockets) allocated to the LPAR, and an amount of memory resources allocated to the LPAR ( Capacity: GB), a storage 9004 for storing the identifier of the volume of the storage apparatus 1400 assigned to the LPAR, and an I / O # for storing the identifier of the I / O device assigned to the LPAR. 9005 is included in one record.
- the elements for allocating computer resources include the LPAR (or virtual machine), the hypervisors 10 and 11 or the OS of the “Basic” Mode 5002. Note that the CPU 9002 may manage the number of cores instead of the number of sockets.
- the hypervisor 10 can allocate the FC I / F 1001, the IP I / F 1005, and the like to the LPARs 1011 and 1012.
- FIG. 23 is a memory map showing an example of a physical address space and a virtual address space of the computer 1000 managed by the hypervisor 10. Although not shown, the address space of the computer 1100 is the same.
- the hypervisor 10 allocates 0 to 62 GB of the host physical address (HPA), which is the address space of the memory (physical memory) 1007, to the LPARs 1011 and 1012. Further, the hypervisor 10 sets the host physical address from 62 GB to 64 GB as a reserved area used by itself.
- HPA host physical address
- the hypervisor 10 allocates the LPAR 1011 in the range of 0 to 2 GB and 4 GB to 32 GB of the host physical address.
- An area from 2 GB to less than 4 GB of the host physical address is set as an I / O space (non-memory area) to be allocated to MMIO or the like of the shared resource, and MMIO or the like of an I / O device that performs shared allocation is allocated.
- the hypervisor 10 assigns the LPAR 221 to a range from 2 GB to 62 GB of the host physical address.
- the guest physical address (GPA) recognized by the guest OS 2008-1 is assigned in the range of 0 to 2 GB and 4 GB to 32 GB.
- the guest physical address of the guest OS 2008-1 is the same as the host physical address.
- An area from 2 GB to less than 4 GB of the guest physical address is set as an I / O space.
- the guest physical address recognized by the guest OS 2008-2 is assigned in the range of 0 to 2 GB and 4 GB to 32 GB.
- the guest physical address of the guest OS 2008-2 is converted by the host page table 20, and becomes a host physical address from 32 GB to 62 GB of the end address used by the LPAR 1011.
- the I / O space (2 GB to 4 GB) of the shared resource allocated to the guest OS 2008-2 is 2 GB to 4 GB having the same host physical address as that of the guest OS 2008-1.
- the virtual address (VA) recognized by the application 2001-1 of the LPAR 1011 is an area from 0 to the maximum value allocated by the guest OS 2008-1.
- the virtual address (VA) and the guest physical address are converted by the guest page table 30-1 of the guest OS 2008-1.
- the virtual address recognized by the LPAR 1012 application 2001-2 is the same as the LPAR 1011 application, and is an area from 0 to the maximum value allocated by the guest OS 2008-2.
- the host physical address area assigned to the guest physical address is offset by the amount of the LPAR 1011. Therefore, the conversion between the guest physical address and the host physical address is performed using the host page table 20.
- the LPAR 1011 is assigned to an address space in which the guest physical address and the host physical address are the same and conversion by the host page table 20 is unnecessary.
- the host physical address corresponding to the guest physical address is assigned to an address space that needs to be translated by the host page table 20.
- the guest OS 2008-1 and the application 2001-1 of the LPAR 1011 to which the host physical address is assigned from 0 can realize high-speed memory access without overhead due to the EPT of the physical CPU 202.
- the MMIO of the physical I / O device that performs shared allocation is allocated to the I / O space (2 GB to 4 GB) of the shared resource of the host physical address.
- the virtual I / O devices 225a and 225b of the respective LPARs 1011 and 1012 are shared and allocated by being allocated to the same guest physical address.
- FIG. 24 is a block diagram showing the relationship between the guest page table 30-1 managed by the guest OS 2008-1 and the virtual address. Since the guest page table 30-2 of the guest OS 2008-2 is the same, a duplicate description is omitted.
- the address is managed by a page of 4 Kbytes, and the virtual address (VA) 501 recognized by the application 2001-1 is expressed by 48 bits.
- the guest page table 30-1 for converting the virtual address (VA) 501 to the guest physical address (GPA) 511 has a four-stage table as described in the conventional example.
- the guest physical address (start address) of the guest page table 30-1 is stored in the CR3 control register 531 in the guest status area of the VMCS 15.
- conversion from the virtual address (VA) 501 to the guest physical address (GPA) 511 is performed using this address as the starting point of the guest page table 30-1.
- the virtual address (VA) 501 includes 39 to 47 bits of PML4 (Page Map Level 4), 30 to 38 bits of Page Directory Pointer, 21 to 29 bits of Page Directory, 12 to 20 bits of Page Table, Includes a 0-11 bit offset.
- PML4 Page Map Level 4 entry (PML4E) to Page Directory Pointer Table entry (PDPTE), Page Directory entry (PDE),
- the guest physical address (GPA) 511 is obtained by tracing the entry (PTE) of the Page table.
- PML4 Page Map Level 4 entry (PML4E) to Page Directory Pointer Table entry (PDPTE), Page Directory entry (PDE),
- the guest physical address (GPA) 511 is obtained by tracing the entry (PTE) of the Page table.
- Nested ⁇ Paging reference to the CR3 control register 531 to the page table is called Nested ⁇ Paging, and each table is composed of four stages L1 to L
- FIG. 9 is a block diagram showing the relationship between the host page table 20 managed by the hypervisor 10 and the guest physical address (GPA).
- the address is managed by a 4 Kbyte page, and the guest physical address (GPA) 8001 recognized by the guest OS 2008-1 is expressed by 48 bits.
- the host page table 20 for converting the guest physical address (GPA) 8001 to the host physical address (HPA) 8002 has a four-stage table, as described in the conventional example.
- the host physical address (start address) of the host page table 20 is stored in the EPT pointer in the host status area of the VMCS 15.
- conversion from the guest physical address (GPA) 8001 to the host physical address (HPA) 8002 is performed with this address as a starting point.
- the guest physical address (GPA) 8001 is similar to the virtual address shown in FIG. 24, and includes 39 to 47 bits of PML4, 30 to 38 bits of Page Directory Pointer, 21 to 29 bits of Page Directory, and 12 to 20 bits. Page Table and Offset of 0 to 11 bits.
- the host page table 20 traces the host physical address from the PML4 entry (PML4E) to the PDPT entry (PDPTE), the PD entry (PDE), and the PT entry (PTE) starting from the address of the EPT pointer. (HPA) 8002 is obtained.
- PML4E PML4 entry
- PDE PD entry
- PTE PT entry
- HPA 8002 is obtained. Note that the reference to the EPT pointer to the page table is the above-mentioned nested paging, and each table is composed of four levels L1 to L4 as in the guest page table 30-1. For this reason, as described in the conventional example, when all the tables are traced, 20 memory accesses occur.
- FIG. 10 is a diagram for explaining LPAR movement according to the progress of migration.
- the hypervisor 10 of the computer 1000 operates two LPARs 1011 and 1012.
- the hypervisor 10 assigns the LPAR 1011 to consecutive addresses including the host physical address of 0, and assigns the LPAR 1012 to a host physical address different from the LPAR 1011.
- the hypervisor 11 of the computer 1100 operates one LPAR 1112.
- the hypervisor 11 assigns the LPAR 1112 to consecutive addresses whose host physical addresses do not include 0.
- the management computer 1500 migrates the LPAR 1012 (LPAR # 2 in the figure) on the hypervisor 10 running on the computer 1000 to the LPAR 1111 in which the host physical address of the other computer 1100 is assigned to 0.
- the hypervisor 11 of the computer 1100 invalidates the address translation by the EPT of the CPU 1102 assigned to the LPAR 1111. Thereafter, the guest OS 2008 and the application 2001 are started on the LPAR 1111, and the guest OS 2008 and the application 20001 on the LPAR 1111 access the host physical address without performing address translation, thereby speeding up the processing.
- an administrator or the like inputs an LPAR 1012 speed-up request from the input device 1503 of the management computer 1500, and the management computer 1500 accepts the LPAR 1012 speed-up request, and selects a migration destination computer of the LPAR 1012 and performs migration. Control is started, and processing is executed in the order of Phase 1 to Phase 3 in the figure.
- Phase1 The computer 1000 operates two LPARs 1011 and 1012.
- the host physical address used by the LPAR 1012 needs to be zero. Note that the speeding up of LPAR is to allocate LPAR with the host physical address starting from 0, invalidate the EPT which is the address translation function of the processor assigned to the LPAR, and suppress the overhead of address translation. Show.
- the guest physical address of the LPAR 1011 is assigned to 0 of the host physical address in the computer 1000, the host physical address of 0 cannot be used in the LPAR 1012.
- the management computer 1500 searches the address conversion management table 2007 acquired from each of the computers 1000 and 1100, and determines the computer 1100 in which 0 is empty in the host physical address as the migration destination of the LPAR 1012 to be accelerated.
- the management computer 1500 transmits a command for generating an LPAR from the host physical address 0 to the hypervisor 11 of the computer 1100.
- the hypervisor 11 of the computer 1500 allocates the memory 1107 and the CPU 1102 according to a command from the management computer 1500, generates the LPAR 1111, and sets the temporary startup state before starting the guest OS 2008 and the application 2001.
- the hypervisor 11 of the computer 1100 can secure the LPAR 1111 from 0 of the host physical address by the above Phase 1.
- Phase 2 The management computer 1500 transmits a command to migrate the LPAR 1012 (LPAR # 2) to the LPAR 1111 of the computer 1100 to the hypervisors 10 and 11.
- the hypervisor 10 transmits the memory contents of the LPAR 1012 to the hypervisor 11 and starts memory copy from the LPAR 1012 to the LPAR 1111.
- an application of another computer using the application 2001 on the guest OS 2008 or a user computer is accessing the LPAR 1012 of the computer 1000.
- the hypervisor 10 copies the data in the memory 1007 to the LPAR 1111 including the difference data of the memory 1007 in the LPAR 1012 generated by the access.
- Phase3 When the data in the memory 1007 including the difference data to be copied from the memory 1007 in Phase2 is equal to or less than the threshold, the hypervisor 10 determines that the remaining amount of memory copy has decreased, and stops the CPU 1002 assigned to the migration source LPAR 1012. Then, the hypervisor 10 copies the remaining difference data to the LPAR 1111. That is, the application 2001 provided by the LPAR 1012 is stopped, and the generation of difference data is stopped, and then the LPAR switching is performed.
- the hypervisor 10 When the memory copy is completed, the hypervisor 10 notifies the management computer 1500 of the completion of the memory copy.
- the management computer 1500 instructs the hypervisor 11 to load and start the guest OS 2008 on the LPAR 1111, and then starts the application 20001.
- the management computer 1500 instructs the hypervisor 11 to invalidate the EPT.
- the hypervisor 11 can invalidate the EPT of the CPU 1102, reduce the overhead due to the conversion from the guest physical address to the host physical address, and improve the performance of the application 2001 of the LPAR 1111.
- the management computer 1500 receives an acceleration request (performance change request) to the LPAR 1012, after selecting a computer with a free host physical address of 0 as a migration destination computer and executing a memory copy, The guest OS 2008 and the application 2001 are sequentially activated. Then, the migration destination hypervisor 11 invalidates the EPT, thereby speeding up the application 2001 of the LPAR 1111 (LPAR # 2) assigned to the host physical address 0.
- an acceleration request performance change request
- FIG. 11 is a sequence diagram showing an example of LPAR speed-up processing.
- the administrator inputs an LPAR acceleration request from the input device 1103 of the management computer 1500 (10001).
- the management computer 1500 receives a speed-up request as a performance change request and starts a process of migrating the migration source LPAR 1012 to an LPAR that includes a host physical address of 0.
- the LPAR management unit 3002 executes a table acquisition process (step 10002).
- the table acquisition process is a process in which the management computer 1500 acquires the configuration information of each of the computers 1000 and 1100 and the LPAR status information.
- the computer resource management table 3004 and the LPAR management table 3005 are stored. Get or update.
- the LPAR management unit 3002 acquires the memory allocation management table 2006 of each computer 1000, 1100.
- the LPAR management unit 3002 executes a computer determination process for determining a computer that is a migration destination of the LPAR to be accelerated (step 10006).
- the LPAR management unit 3002 searches the obtained memory allocation management table 2006 of each of the computers 1000 and 1100 for a computer that has a continuous address space from 0 of the host physical address 7004, and uses the computer as a migration destination computer.
- the LPAR management unit 3002 transmits a high-speed LPAR generation request to the hypervisor 11 of the migration destination computer 1100 (step 10007).
- the high-speed LPAR generation request of the present embodiment allocates a continuous address space from 0 to the host physical address to the LPAR, and allocates an access space that does not require address translation by EPT to the new LPAR.
- the LPAR generation request can include the amount of element resources such as the capacity of the memory allocated to the generated LPAR and the number of CPUs.
- the element resource amount can include an I / O device, a volume identifier of the storage apparatus 1400, and the like in addition to the memory and the CPU.
- the hypervisor 11 of the migration destination computer that has received the high-speed LPAR generation request generates the LPAR 1111 from the guest physical address to which the host physical address is continuously assigned from 0, as shown in FIG. Hold (step 10008).
- the hypervisor 11 notifies the management computer 1500 when generation and temporary activation of the LPAR 1111 are completed.
- the migration control unit 3001 of the management computer 1500 transmits a data copy request to the migration source computer 1000 (step 10009).
- the data copy request includes the copy source LPAR identifier, the copy destination computer identifier, the LPAR identifier, the memory capacity, and the like.
- the data copy request can be issued after the management computer 1500 receives a notification of completion of the LPAR generation processing from the computer 1100.
- the hypervisor 10 of the computer 1000 that has received the data copy request from the migration control unit 3001 transmits the contents of the memory 1007 to which the LPAR 1012 is allocated to the migration destination computer 1100, and executes data copy processing (step 10010).
- the hypervisor 10 also transmits the difference data between the data updated during the data copy and the original data to the migration destination computer 1100, and the difference data to be copied and the remaining amount of data are equal to or less than the threshold (the data copy state is predetermined). ), The CPU 1002 assigned to the LPAR 1012 is stopped, the application 2001 provided by the LPAR 1012 is stopped, and the generation of difference data is suppressed.
- the migration source hypervisor 10 transmits a copy completion notification to the management computer 1500.
- the migration control unit 3001 that has received the copy completion notification transmits an LPAR switching request to the migration source computer 1000 and the migration destination computer 1100 (step 10011).
- the hypervisor 10 releases the computer resources of the LPAR 1012.
- the migration control unit 3001 transmits an EPT invalidation request to the migration destination computer 1100 (step 10013).
- the hypervisor 11 of the migration destination computer 1100 executes EPT invalidation (step 10014).
- the guest OS 2008 is started after the hypervisor 11 invalidates the EPT of the CPU 1102 assigned to the LPAR 1111.
- the hypervisor 11 takes over the setting value of the I / O device from the LPAR 1012, starts the application 2001 of the LPAR 1111 and accepts access from the client (step 10012).
- the migration control unit 3001 of the management computer 1500 displays the processing result to the administrator via the output device 1504 after completing all the processing (step 10015).
- FIG. 12 is a sequence diagram showing an example of the table acquisition process performed in step 10002 of FIG.
- the LPAR management unit 3002 of the management computer 1500 transmits a table transmission request to the computer 1100 (step 19001).
- the computer management unit 2003 transmits the contents of the allocation management table 2004, the memory allocation management table 2006, and the address conversion management table 2007 to the management computer 1500 (step 19002).
- the LPAR management unit 3002 of the management computer 1500 transmits a table transmission request to the computer 1000 (step 19003).
- the computer management unit 2003 transmits the contents of the allocation management table 2004, the memory allocation management table 2006, and the address conversion management table 2007 to the management computer 1500 (step 19004).
- the LPAR management unit 3002 of the management computer 1500 transmits a table transmission request to the storage apparatus 1400 (step 19005).
- the storage management unit 4002 of the storage apparatus 1400 transmits the contents of all management tables such as the computer resource management table to the management computer 1500 (step 19006).
- the management computer 1500 collects the configuration information and operation information (operation state) of the computers 1000 and 1100 and the storage device 1400.
- FIG. 13 is a flowchart showing an example of the computer determination process performed in step 10006 of FIG.
- the LPAR management unit 3002 of the management computer 1500 reads the computer resource management table 3004 (step 11101), and determines whether or not the requested memory amount included in the LPAR acceleration request is larger than the free memory amount Memory 3004 of the computer. (Step 11102). In this determination, the computer 5001 of the computer resource management table 3004 sequentially compares the records of the computer 1000 in which the source LPAR 1012 is operating. The requested memory amount may be the memory allocation amount of the current LPAR stored in the memory 6004 of the LPAR management table 3005.
- step 11102 If it is determined in step 11102 that the requested memory amount is larger than the free memory amount 5004, the process proceeds to step 11106, and migration is executed otherwise, the process proceeds to step 11103.
- the LPAR management 3002 refers to the HPA_Base 7003 of the memory allocation management table 2006 read in the table acquisition processing 10002, and determines whether or not the memory address 0 of the computer currently being compared is free.
- the LPAR management 3002 refers to the size 7005 that is a continuous address area secured from the HPA_Base 7003 in the memory allocation management table 2006, and the memory address of the free area is determined. It is determined whether or not it is continuous (step 11104).
- step 11104 If the determination result in step 11104 is “Y”, it is determined to generate a high-speed LPAR in the current computer (step 11105). If the determination result in step 11103 and step 11104 is “N”, migration is required as in the case where the determination result in step 11102 is “Y”.
- the LPAR management unit 3002 reads the computer resource management table 3004 to determine the migration destination computer of the LPAR 1012, references the next computer 5001 record (step 11106), and references the HPA_Base 7003 of the memory allocation management table 2006 It is determined whether or not the memory address 0 of the computer is free (step 11107).
- step 11107 it is determined whether or not the memory address of the free area is continuous by referring to Size 7005 which is a continuous address area secured from the HPA_Base 7003 of the memory allocation management table 2006. (Step 11108).
- step 11108 determines that this computer is the migration destination (step 11109).
- step 11108 determines whether or not the processing has been completed for all the computers (Computer 5001) in the computer resource management table 3004.
- step 11110 If the determination result in step 11110 is “Y”, there is no computer having a free host physical address of 0, so the process proceeds to step 11111 and an error indicating that there is no migration destination in the output device 1504 is displayed. The process ends after notification.
- step 11107 and 11110 If the determination result in steps 11107 and 11110 is “N”, the process returns to step 11106 to read the computer resource management table 3004 and determine whether or not the computer of the next record is to be the migration destination. The above steps 11106 to 11108 are repeated.
- the LPAR management unit 3002 can determine a computer having a free host physical address of 0 as the migration destination of the LPAR 1012.
- FIG. 14 is a flowchart showing an example of LPAR generation processing.
- the hypervisor 11 of the computer 1100 that has received the LPAR generation request (10007) from the management computer 1500 generates an LPAR according to the element resource amount such as the memory capacity and the number of CPUs included in the LPAR generation request.
- the hypervisor 10 of the computer 1000 can perform the same processing.
- the hypervisor 11 of the computer 1100 that has received the LPAR generation request generates an LPAR 1111 that satisfies the element resource amount on the computer 1100 (step 12001), and then transmits a notification of generation completion to the management computer 1500. At this time, the hypervisor 11 maintains a temporary activation state in which the guest OS 2008-2 and the application 2001-2 are not loaded in the LPAR 1111.
- the management computer 1500 that has received the notification that the LPAR generation has been completed stores the identifiers in the computer 6001 and LPAR # 6002 in the added record, stores the memory capacity allocated to the Memory 6004, and the TEMP 6005 is in a temporarily activated state. “YES” indicating this is stored.
- the LPAR 1111 is recognized by the hypervisor 11, but cannot be recognized as an LPAR by an external computer.
- the management computer 1500 can recognize the LPAR 1111 from an external computer for the first time by setting TEMP 6005 to NO after the migration of the LPAR 1111 is completed.
- the hypervisor 11 of the computer 1100 adds a new record to the memory allocation management table 2006 that functions as an EPT, and sets the information of the generated LPAR 1111.
- the hypervisor 11 is updated so that GPA_Base 7003 and HPA_Base 7004 in the memory allocation management table 2006 become 0 in the record of the LPAR 1111.
- 0 of the guest physical address (GPA) of the generated LPAR 1111 becomes 0 of the host physical address (HPA) (step 12002).
- HPA host physical address
- the hypervisor 11 validates the EPT in order to temporarily activate the LPAR 1111 (step 12003).
- the EPT is validated by the hypervisor 11 setting the VM-execution control fields of the CPU 1102.
- the hypervisor 11 temporarily reserves the LPAR 1111 to secure a predetermined area in the memory 1107 (step 12004).
- the hypervisor 11 can notify the management computer 1500 of a notification that the temporary activation of the LPAR 1111 has been completed (a notification of completion of the LPAR generation processing).
- the notification that the temporary activation of the LPAR 1111 has been completed may be a notification of the completion of the LPAR generation processing.
- the hypervisor 11 performs a data copy process (to be described later) based on a command from the migration control unit 3001 of the management computer 1500 while maintaining this temporary activation state, and the contents of the memory from the migration source LPAR 1012 to the migration destination LPAR 1111 (Data) is copied.
- FIG. 15 is a flowchart showing an example of the LPAR switching process. This process indicates a process performed by the hypervisor 10 of the migration source LPAR 1012. The hypervisor 10 copies the contents of the memory 1007 to which the LPAR 1012 is allocated to the LPAR 1111 of the computer 1100 based on a command from the migration control unit 3001 of the management computer 1500.
- the LPAR 1012 accepts access from an external computer (not shown) even during migration, and the data updated in the copied area is accumulated in a predetermined area as difference data and then transferred to the migration destination computer 1100. Is transmitted (step 13000).
- the hypervisor 10 of the computer 1000 determines whether or not the amount of difference data that has not been copied to the computer 1100 is equal to or less than a preset threshold (step 13001).
- step 13001 If the determination result in step 13001 is “Y”, the process proceeds to step 13002. On the other hand, if the determination result is “N” in step 13001, the process returns to step 13000 to repeat the data copy process.
- step 13002 the CPU 1002 assigned to the migration source LPAR 1101 is stopped (step 13002).
- the processing of the application 2001 or the guest OS 2008 of the LPAR 1012 may be stopped.
- the provision of the application 2001-2 in the migration source LPAR 1012 is stopped, thereby suppressing the occurrence of difference data and preparing for switching from the LPAR 1012 to the LPAR 1111.
- the LPAR that provides the application 2001 is switched from the computer 1000 to the computer 1100.
- the management computer 1500 instructs the hypervisor 11 of the migration destination computer 1100 to start the guest OS 2008 and the application 2001 using the LPAR 1111.
- the LPAR 1012 of the migration source computer 1000 since the assigned CPU 1002 is stopped, the provision of the application 2001 is terminated.
- the external computer can The use of the application 2001 can be continued.
- FIG. 16 is a diagram showing an example of a management screen for LPAR acceleration. This management screen is displayed on the output device 1504 of the management computer 1500.
- a management screen LPAR ConfigurationScreen 14000 displays a table 14001 for displaying LPAR definition information.
- the table 14001 includes a computer that displays a computer identifier, an LPAR # that displays an LPAR identifier, a CPU allocated to the LPAR, a memory capacity allocated to the LPAR, and whether or not the LPAR is accelerated. Include in record.
- Acceleration of LPAR indicates that FASTMode is “Enable” and the acceleration mode is valid, and “Disable” indicates that the acceleration mode is invalid.
- the selected LPAR information is displayed in 14002, 14003, and 14004 in the figure.
- the computer identifier Computer 14002 the LPAR identifier LPAR # 14003, and the FastMode 14004 flag indicating whether the LPAR is accelerated or not are displayed.
- an LPAR acceleration request from a user or an administrator is received by the management computer 1500, the guest physical address 0 is matched with the host physical address 0 by LPAR migration, and memory address conversion is performed during LPAR migration.
- the management computer 1500 By switching the settings related to LPAR, it is possible to speed up LPAR without stopping the virtual machine system.
- the management computer 1500 detects a computer in which an address space continuous from 0 of the host physical address is available among available computers. Then, the LPAR to be accelerated is migrated to the computer. After the migration is completed, the management computer 1500 transmits a command for invalidating the address translation function (EPT) to the migration destination computer.
- EPT address translation function
- the migration destination computer can execute the processing without converting the guest physical address used by the guest OS 2008 and the host physical address of the computer.
- the processing speed of the application 2001 on the guest OS 2008 can be increased by reducing the overhead of LPAR (virtual computer) address translation.
- the hypervisor 10 of the migration source computer 1000 stops the CPU 1002 assigned to the migration source LPAR 1012 when the amount of difference data to be copied is equal to or less than a predetermined threshold.
- the migration source LPAR 1012 can smoothly switch LPARs between computers by stopping the generation of difference data by stopping the application 2001.
- the management computer 1500 instructs the migration destination computer 1100 to invalidate the address conversion function after the memory copy is completed (difference data is less than the threshold).
- the address translation function can be invalidated before the guest OS 2008 on the hypervisor 11 starts the application 2001.
- the migration destination LPAR 1111 can start the application 2001 in a state where the address translation function is stopped, and provide high-speed processing.
- the management computer 1500 uses a memory capacity used by the LPAR 1012 to be accelerated as the required memory size, and migrates a computer capable of generating an LPAR 1111 having a LPAR size including the host physical address of 0 and the required memory size or more. Select as target. Thereby, it is possible to prevent the migration destination computer 1100 from running out of computer resources of the LPAR 1012 to be accelerated.
- the hypervisor 11 of the migration destination computer 1100 can allocate the memory 1107 to the newly generated LPAR 1111 by activating the LPAR 1111 that operates the LPAR # 2 of the computer 1000 after enabling the EPT of the CPU 1102. it can.
- the LPAR 1012 is migrated to another computer 1100
- the present invention is not limited to this.
- the LPAR 1012 may be migrated to the LPAR 1011.
- the same processing as described above may be executed by the hypervisor 10 of the computer 1000.
- the second embodiment is carried out when the LPAR that has been speeded up in the first embodiment is returned to a normal performance LPAR.
- a series of processing shown in FIG. 17 is executed by setting LPAR which is enabled in FastMode 14004 shown in FIG. 16 of Embodiment 1 to Disable and clicking an OK button 14005.
- the normal performance LPAR indicates an LPAR in which EPT is validated and address conversion is performed by the host page table 20 (and the guest page table 30).
- FIG. 17 is a flowchart showing an example of the computer determination process.
- the management computer 1500 inputs the accelerated LPAR computer resource selected on the screen of FIG. 16 to the LPAR management unit 3002 as a request resource.
- the LPAR management unit 3002 of the management computer 1500 reads the computer resource management table 3004 and sequentially performs processing from the computer on which the LPAR selected on the screen of FIG. 16 operates (step 15001).
- the LPAR management unit 3002 determines whether or not the request memory included in the element resource of the LPAR acceleration request is larger than the free memory amount Memory 3004 of the currently focused computer (step 15002).
- step 15002 determines that migration is necessary and proceeds to step 15004. On the other hand, if the determination result is “N”, it is determined to generate a normal performance LPAR in the computer in which the target LPAR is operating (step 15003).
- step 15002 since migration is necessary, the LPAR management unit 3002 of the management computer 1500 refers to the computer resource management table to select an LPAR migration destination from another computer, and sequentially reads unprocessed records (step 15004). Then, the LPAR management unit 3002 determines whether or not the requested memory amount of the computer of the read record is smaller than the free memory amount 5004 of the computer (step 15005).
- step 15005 determines that the currently focused computer is the LPAR migration destination (step 15006).
- step 15005 determines whether or not the processing has been completed for all the computers (Computer 5001) in the computer resource management table 3004.
- step 11110 If the determination result in step 11110 is “Y”, there is no computer having a free request memory, so the process proceeds to step 15008 to notify the output device 1504 of an error indicating that there is no migration destination. The process is terminated.
- step 15007 If the determination result in step 15007 is “N”, the process returns to step 15004 to read the computer resource management table 3004 and repeat the process as to whether or not the computer of the next record is the migration destination.
- the LPAR management unit 3002 can select a migration destination computer that returns an accelerated LPAR to a normal performance LPAR. Then, in the same manner as in FIG. 11 of the first embodiment, the migration destination computer is instructed to generate LPAR (FIG. 18), and then the data copy processing is instructed to execute migration, and then the LPAR switching processing is performed. (FIG. 15) is carried out.
- FIG. 18 is a flowchart illustrating an example of LPAR generation processing.
- the management computer 1500 transmits an LPAR generation request to the LPAR migration destination computer selected in the processing of FIG.
- the hypervisor of the computer that has received the LPAR generation request from the management computer 1500 generates an LPAR on the computer and adds a new record in which TEMP 6005 of the LPAR management table 3005 is set to “YES” (step 16001). ).
- the LPAR is recognized by the hypervisor but is not recognized as an LPAR by an external computer, and the LPAR migration is performed.
- the management computer 1500 updates the TEMP 6005 to “NO” so that an external computer can recognize it for the first time.
- the hypervisor of the LPAR migration destination computer validates the EPT to activate the LPAR (Step 16002). Thereby, in the migration destination computer, even if the guest physical address of the LPAR is set to a value other than 0 of the host physical address, the address conversion can be performed by the host page table 20.
- the hypervisor of the LPAR migration destination computer secures memory by temporarily starting the generated LPAR (step 16003). Thereafter, the data copy processing 10010 shown in FIG. 11 of the first embodiment is executed, and the contents of the memory are copied from the migration source LPAR to the migration destination LPAR.
- the management computer 1500 instructs the hypervisor of the migration destination computer to perform LPAR switching processing, as in FIG. 15 of the first embodiment.
- an LPAR normal performance request from a user or an administrator is received by the management computer 1500, and the host page table 20 is used for the LPAR that has been accelerated by migration and EPT setting change. Can be changed to normal LPAR.
- the management computer 1500 can return the accelerated LPAR to normal performance without stopping the virtual computer system by switching the setting relating to the memory address translation during the migration of the LPAR.
- the third embodiment is executed when there is no computer that can secure addresses consecutive from the host physical address 0 as in step 11111 of FIG. 13 of the first embodiment, so that the LPAR can be executed at a desired timing. High speed is achieved.
- FIG. 19 is a diagram for explaining the movement of the LPAR in accordance with the progress of the migration process.
- the third embodiment shows an example in which the speed of the LPAR 1012 (LPAR # 2) operating on the hypervisor 10 of the computer 1000 is increased.
- LPAR # 2 indicates a virtual machine including a guest OS 2008-2 and an application 2001-2 running on the LPAR 1012.
- LPAR # 1 indicates a logical computer resource of a virtual machine operating on the LPAR 1011.
- Phase 1 The computer 1000 operates two LPARs 1011 (LPAR # 1) and 1012 (LPAR # 2), and in order to increase the speed of the LPAR1012, the host physical address used by the LPAR1012 (LPAR # 2) is 0. It is necessary to change to.
- the LPAR 1011 is assigned the host physical address from 0, and in the computer 1100, the LPAR 1111 is assigned the host physical address from 0. Therefore, the LPAR 1012 to be accelerated may use the host physical address 0. Can not.
- Phase 2 The management computer 1500 migrates the LPAR 1011 (LPAR # 1) and the LPAR1012 (LPAR # 2) to the LPARs 1112 and 1113 of the computer 1100. During migration memory copy, other applications that use the application 2001 on the LPARs 1011 and 1012 and user computers (not shown) continue to access the LPARs 1011 and 1012.
- the hypervisor 10 of the computer 1000 copies the memory data including the difference data generated by the access to the LPARs 1112 and 1113.
- Phase3 By migrating LPAR1011 (LPAR # 1) and LPAR1012 (LPAR # 2) to computer 1100 in Phase2, the host physical address of computer 1000 can free a continuous space from 0.
- the management computer 1500 causes the hypervisor 10 of the computer 1000 to generate LPARs 1012 'in which host physical addresses are continuously assigned from 0. Then, the management computer 1500 migrates (LPAR # 2) migrated to the LPAR 1113 of the computer 1100 to the LPAR 1012 ′ of the computer 1000, and speeds up LPAR # 2 by continuously assigning host physical addresses from 0. be able to.
- FIG. 20 is a diagram for explaining another example of the movement of the LPAR according to the progress of the migration process.
- LPAR 1012 LPAR # 2 to be accelerated is migrated on the same computer 1000 without being migrated to another computer 1100.
- Phase 1 The computer 1000 operates two LPARs 1011 (LPAR # 1) and 1012 (LPAR # 2), and in order to increase the speed of the LPAR1012, the host physical address used by the LPAR1012 (LPAR # 2) is 0. It is necessary to change to.
- Phase 2 The management computer 1500 migrates the LPAR 1011 (LPAR # 1) assigned the host physical address 0 to the LPAR 1112 of the computer 1100. During migration memory copy, other applications using the application 2001 on the LPAR 1011 and user computers (not shown) continue to access the LPAR 1011.
- the hypervisor 10 of the computer 1000 copies the memory data including the difference data generated by the access to the LPAR 1112.
- Phase 3 Migrating LPAR 1011 (LPAR # 1) to computer 1100 with Phase 2 allows the host physical address of computer 1000 to free a continuous space from zero.
- the management computer 1500 causes the hypervisor 10 of the computer 1000 to generate LPARs 1012 'in which host physical addresses are continuously assigned from 0. Then, the management computer 1500 causes the hypervisor 10 to migrate the contents of the LPAR 1012 (LPAR # 2) to the LPAR 1012 '.
- an LPAR that uses the host physical address 0 is migrated to another computer in an environment where all of the available computers do not have a host physical address 0. Thereafter, the target LPAR can be speeded up without stopping the virtual machine system by shifting the target LPAR to be speeded up to the LPAR assigned with the host physical address from 0.
- the speed-up target LPAR 1012 is once migrated to another computer 1100 from the computer 1000 on which the speed-up target LPAR 1012 operates.
- each of the above-described configurations, functions, processing units, processing means, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
- each of the above-described configurations, functions, and the like may be realized by software by the processor interpreting and executing a program that realizes each function.
- Information such as programs, tables, and files that realize each function can be stored in a memory, a hard disk, a recording device such as an SSD (Solid State Drive), or a recording medium such as an IC card, an SD card, or a DVD.
- control lines and information lines indicate what is considered necessary for the explanation, and not all the control lines and information lines on the product are necessarily shown. Actually, it may be considered that almost all the components are connected to each other.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
管理計算機が、第1の計算機と第2の計算機のうち、ホスト物理アドレスが0を含むアドレスに第2の論理区画を割り当て可能な計算機を移行先の計算機として決定し、移行先の計算機のハイパバイザに物理アドレスが0を含むアドレスに第3の論理区画を生成させて計算機リソースを割り当て、第1のハイパバイザに第2の論理区画のデータを第3の論理区画にコピーさせてから、前記移行先の計算機のハイパバイザに、前記第3の論理区画に割り当てるゲスト物理アドレスを前記ホスト物理アドレスに変換するアドレス変換機能を無効化させ、前記ゲストOSを起動させてから前記アプリケーションを稼働させる。
Description
本発明は、仮想計算機のメモリアドレス変換時のオーバヘッドを削減する技術に関する。
近年、計算機の性能向上により、計算機上に搭載されるCPUソケット/コア数やメモリ量が増加している。これらの潤沢なリソースを論理的に分割し、それぞれの論理的な区画(Logical Partition、以下LPAR)毎にOS(ゲストOS)を稼働させる論理分割技術が普及している。
LPARにおいて、CPUやメモリといった計算機リソースはハイパバイザと呼ばれる制御プログラムにより各LPARに割り当てられる。計算機上のメモリはアドレス空間によって管理されており、仮想マシンやLPARなどの仮想的な計算機では、アプリケーションが認識する仮想アドレス(VA:Virtual Address)からゲストOSが認識するゲスト物理アドレス(GPA:Guest Physical Address)への変換に加えて、ゲスト物理アドレスの物理的なメモリ位置を指定するホスト物理アドレス(HPA:Host Physical Address)への変換の2段階のアドレス変換を行う必要がある。
例えば、X86系CPUでは、ハードウェアでの仮想化支援機構として知られているINTEL社のEPT(Extended Page Tables)や、AMD社のNPT(Nested Page Table)により、上記2段階のアドレス変換を行うことができる。x86系CPUを64bit化したx64アーキテクチャではアドレス空間が拡張されており、EPTでは4段の多段ページテーブルを用いてアドレス空間を管理している。このため、アドレス変換時のメモリアクセス発生によるオーバヘッドによりLPARの性能劣化が問題となっている。
この問題に対して、CPUがレジスタベースで少数のアドレス変換情報を保持する技術が公開されている(特許文献1)。特許文献1によれば、ハイパバイザがレジスタに対してGPAからHPAへのアドレス変換情報をセットアップすることで、EPTのページテーブル参照することなしにVAからHPAのアドレス変換を実現できる。
LPARを管理しているハイパバイザはINTEL社のCPU上で稼働しており、これらx64アーキテクチャ(もしくはAMD64アーキテクチャ)において、上記特許文献1の技術を実装することは難しい。
したがって、既存のプロセッサである上記INTEL社のx64アーキテクチャのCPUを使用し、かつ、OSのメモリ管理モジュールの改変が許可されていないOS(または、物理サーバで使用可能なOS=0番地を含むアドレス空間で起動)を利用する場合は、インメモリDB等のアクセス範囲の広いアプリケーションをLPAR上で稼働させると、処理性能を低下させる場合があった。
そこで本発明は、上記問題点に鑑みて成されたもので、既存のCPUを使用する仮想計算機システムでゲストOSを改変することなく稼働させて、上述の2段階のアドレス変換に起因するオーバヘッドを削減することを目的とする。
本発明は、プロセッサとメモリを含む第1の計算機の計算機リソースを1以上の論理区画に割り当ててゲストOSとアプリケーションを稼働させる第1のハイパバイザと、プロセッサとメモリを含む第2の計算機の計算機リソースを1以上の論理区画に割り当ててゲストOSとアプリケーションを稼働させる第2のハイパバイザと、を有する仮想計算機システムで、前記第1のハイパバイザと前記第2のハイパバイザを制御する管理計算機が前記論理区画を制御する仮想計算機システムの制御方法であって、前記第1のハイパバイザが、当該第1のハイパバイザが認識する前記第1の計算機の前記メモリのホスト物理アドレスが0を含むアドレスに第1の論理区画を割り当てる第1のステップと、前記第1のハイパバイザが、前記第1の論理区画とは異なる前記メモリのホスト物理アドレスに第2の論理区画を割り当て、当該第2の論理区画に前記プロセッサを割り当て、ゲストOSを起動してアプリケーションを稼働させる第2のステップと、前記管理計算機が、前記第1の計算機と第2の計算機の構成情報に基づいて、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる計算機を移行先の計算機として決定する第3のステップと、前記管理計算機が、前記移行先の計算機のハイパバイザに、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成させて、前記移行先の計算機のプロセッサを割り当て、前記第3の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を有効化させる第4のステップと、前記管理計算機が、前記第1のハイパバイザに前記第2の論理区画のデータを、前記第3の論理区画にコピーさせる第5のステップと、前記第1のハイパバイザが、前記第2の論理区画のデータのコピーの状態が所定の条件になると、前記第2の論理区画に割り当てたプロセッサを停止させる第6のステップと、前記第1のハイパバイザが、前記第2の論理区画のデータのコピーが完了すると、前記管理計算機にコピーの完了を通知する第7のステップと、前記管理計算機が、前記移行先の計算機のハイパバイザに、前記第3の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を無効化する指令を送信する第8のステップと、前記移行先の計算機のハイパバイザが、前記第3の論理区画に割り当てたプロセッサのアドレス変換機能を無効化し、前記ゲストOSを起動してから前記アプリケーションを稼働させる第第9のステップと、を含む。
本発明によれば、移行先の計算機のハイパバイザがアドレス変換を無効化することで、ゲストOSの改変を必要とせずに、かつ、管理計算機システムを停止することなく2段階のメモリアドレス変換のオーバヘッドを削減することで、LPAR上で稼働するアプリケーション及びゲストOSの性能を向上し、サービスレベルを向上させることができる。
以下、本発明の一実施形態について添付図面を用いて説明する。
本実施例1では、物理計算機上のLPARを高速化するため、別の計算機に移行してから計算機リソースを拡張する例を示す。
図1は、第1の実施例を示し、仮想計算機システムの一例を示すブロック図である。図1において、計算機1000は、論理分割されたLPAR(論理区画)1011、1012を稼働させるための物理計算機であり、ストレージ装置1400との間で入出力データを送受信するFC I/F1001と、管理計算機1100との間で管理データを送受信するIP I/F1005と、プログラムを実行して計算機を制御するCPU1002と、プログラムやLPARのデータを保持するための記憶領域であるメモリ1007と、プログラムやデータなどを記憶する記憶装置(図中HDD)1006と、キーボードやマウスなどユーザからの情報を入力するための入力装置1003と、ディスプレイなどユーザへ情報を表示するための出力装置1004とを含んでいる。
メモリ1007には後述するプログラムやテーブル以外にハイパバイザ10によって論理分割されたLPAR1011、1012の計算機リソースが格納されている。LPAR1011、1012は、後述するように、ゲストOSやアプリケーションを実行する計算機リソースを含む仮想計算機として機能する。
以下の説明では、ゲストOSやアプリケーションの実行による仮想計算機の稼働を、LPAR1011、1012がハイパバイザ10上で稼働するものとして説明する。なお、他のLPARについても同様である。
LPAR1011、1012は論理分割により生成された仮想的な計算機であり、CPU1002や記憶装置1006などの物理リソースを透過的に利用することができる。LPAR1011、1012は、ハイパバイザ10により計算機が利用するCPUやディスクを抽象化した仮想デバイスとして管理する仮想計算機方式とはリソースの利用方法が異なる。ただし、本発明においてはLPARと呼ぶ仮想的な計算機は、論理分割式または仮想計算機式のいずれかにより生成されたものに限定されるものではない。
計算機1100は、上記計算機1000と同様であり、論理分割されたLPAR1111、1112を稼働させるための物理計算機であり、ストレージ装置1400との入出力データを送受信するFC I/F1101と、管理計算機1100との間で管理データを送受信するIP I/F1105と、プログラムを実行して計算機1100全体を制御するCPU1102と、プログラムやLPARを格納するための記憶領域であるメモリ1107と、プログラムやユーザデータなどを保持する記憶装置(図中HDD)1106と、キーボードやマウスなどのユーザからの情報を入力するための入力装置1103と、ディスプレイなどユーザへ情報を表示するための出力装置1104を含む。
メモリ1107には後述するプログラムやテーブル以外にハイパバイザ11によって論理分割されたLPAR1111、1112が格納され、仮想計算機として機能することができる。
FCスイッチ1200は、管理計算機1500からストレージ装置1400などへの入出力データを転送するためのスイッチ装置であり、入出力データを送受信するFC I/F1203と、管理データを送受信するIP I/F1204と、プログラムを実行してFCスイッチ全体を制御するCPU1201と、プログラムやデータを格納するための記憶領域であるメモリ1202を有している。
FCスイッチ1200は、仮想計算機を提供する計算機1000、1100と、ストレージ装置1400を接続するSAN(Storage Area Network)を制御する。
IPスイッチ1300は、管理計算機1500から計算機1000などへの管理データを転送するためのスイッチ装置であり、管理データを送受信する複数のIP I/F1303と、プログラムを実行しIPスイッチ全体を制御するCPU1301と、プログラムやデータのための記憶領域であるメモリ1302を有する。
IPスイッチ1300は、管理計算機1500と仮想計算機を提供する計算機1000、1100と、ストレージ装置1400及び図示しないユーザ端末を接続するIPネットワークを制御する。
ストレージ装置1400は、計算機1000、1100からの入出力データを処理するノードであり、FCスイッチ1200から転送された入出力データを受信するFC I/F1401と、管理計算機1100からの管理データを受信するIP I/F1402と、プログラムを実行してストレージ装置全体を制御するコントローラ1403と、プログラムのための記憶領域であるメモリ1404と、ユーザデータ格納領域であるプール1411、1412、1413、1414と、を含む。なお、プール1411~1414は、SSDやHDD等で構成されたボリュームを含むことができる。
管理計算機1500は、計算機1000、1100やストレージ装置1400等の物理的な計算機リソースと、LPAR等の論理的な計算機リソースを管理するための計算機である。
管理計算機1500は、ストレージ装置1400との入出力データと制御データを送受信するFC I/F1501と、計算機1000、1100やストレージ装置1400との管理データを送受信するIP I/F1505と、プログラムを実行し計算機全体を制御するCPU1502と、プログラムのための記憶領域であるメモリ1507と、プログラムやユーザデータなどを記憶する記憶装置(図中HDD)1506と、キーボードやマウスなどのユーザからの情報を入力するための入力装置1503と、ディスプレイなどユーザへの情報を表示するための出力装置1504を含む。
管理計算機1500は、入力装置1503から受け付けた指令に基づいて、後述するようにLPAR1011~1112の生成、移動及び削除をハイパバイザ10、11に指令する。
図2は、仮想計算機を提供する計算機1000のメモリ1007の内容を示すブロック図である。なお、計算機1100のメモリ1107の内容も図2と同様である。
計算機1000は、起動時にメモリ1007へ各プログラムやテーブル等を記憶装置1006から読み込んで、各プログラムをCPU1002に実行させることで所定の機能を提供する。図示の例では、ハイパバイザ10が2つのLPAR1011、1012を提供する例を示す。
メモリ1007には、計算機1000の計算機リソースを1以上のLPAR1011、1012に割り当てるハイパバイザ(仮想化部)10と、LPAR1011でアプリケーション2001-1を提供するゲストOS2008-1と、LPAR1012でアプリケーション2001-2を提供するゲストOS2008-2と、各テーブルの送受信などを行う計算機管理部2003と、LPAR1011、1012の構成情報を管理する割り当て管理テーブル2004と、ハイパバイザ10が管理するメモリアドレスと、各LPARへのメモリの割り当て状態を管理するメモリ割当管理テーブル2006と、ゲストOS2008-1、2008-2が認識するゲスト物理アドレス空間とハイパバイザ10が認識するホスト物理アドレス空間の変換マッピング情報を格納するアドレス変換管理テーブル2007と、ハイパバイザ10がLPAR1011、1012の制御情報を管理するVMCS(Virtual Machine Control data Structure)15と、ハイパバイザ10が管理してゲスト物理アドレスとホスト物理アドレスを変換するためのホストページテーブル(図中PT)20と、ゲストOS2008-1の管理によりLPAR1011で仮想アドレスからゲスト物理アドレスへ変換するためのゲストページテーブル(図中PT)30-1と、ゲストOS2008-2の管理によりLPAR1012で仮想アドレスからゲスト物理アドレスへ変換するためのゲストページテーブル(図中PT)30-2と、が格納される。
なお、以下の説明では、ゲストOSの総称を“-”のない符号2008で示し、個々のゲストOSを“-”以降を付加した符号で示す。なお、他の構成要素の符号についても同様である。
ハイパバイザ10と、ゲストOS2008と、アプリケーション2001と、計算機管理部2003の各機能部はプログラムとしてメモリ1007にロードされる。
CPU1002は、各機能部のプログラムに従って処理することによって、所定の機能を提供する機能部として稼働する。例えば、CPU1002は、ハイパバイザプログラムに従って処理することでハイパバイザ10として機能し、ゲストOSプログラムに従ってゲストOS2008は処理することでゲストOSとして機能する。他のプログラムについても同様である。さらに、CPU1002は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
ハイパバイザ10やゲストOS2008やアプリケーション2001の各機能を実現するプログラム、テーブル等の情報は、記憶装置1006や不揮発性半導体メモリ、ハードディスクドライブ、SSD(Solid State Drive)等の記憶デバイス、または、ICカード、SDカード、DVD等の計算機読み取り可能な非一時的データ記憶媒体に格納することができる。
計算機1100についても上述の計算機1000と同様のプログラムやテーブルがメモリ1107に読み込まれる。
図3は、管理計算機1500のメモリ1507の内容を示すブロック図である。管理計算機1500は、起動時にメモリ1507へ、LPARのマイグレーションを制御するマイグレーション制御部3001と、各計算機1000、1100のLPARに割り当てる計算機リソースを管理するLPAR管理部3002と、マイグレーションの制御状態などを管理するための情報を格納するマイグレーション管理テーブル3003と、LPARに割り当てる計各算機リソースの構成情報を管理する計算機リソース管理テーブル3004と、各計算機1000、1100の各LPARの状態を管理するLPAR管理テーブル3005と、を記憶装置1506から読み込む。
図4は、ストレージ装置1400のメモリ1404の内容を示すブロック図である。ストレージ装置1400は、起動時にメモリ1404へ、計算機1000などから受け付けたアクセス要求を処理するデータ処理部4001と、ストレージ装置1400の構成情報や性能情報を管理するストレージ情報管理部4002と、ストレージ装置1400の構成情報を格納するストレージ管理テーブル4003を読み込む。
なお、ストレージ管理テーブル4003は、図示はしないが、プールの識別子と、ボリュームの識別子と、当該ボリュームが割り当てられたLPARの識別子を含むことができる。
図5は、計算機リソース管理テーブル3004の一例を示す図である。計算機リソース管理テーブル3004は、管理計算機1500が所定のタイミングで計算機1000、1100から取得した構成情報を格納する。
計算機リソース管理テーブル3004は、計算機の識別子を格納するComputer5001と、計算機の動作モードを格納するMode5002と、計算機のCPUリソース量(ソケット数:S)を格納するCPU5003と、計算機の空きメモリリソース量(GB)を格納するMemory5004とをひとつのレコードに含む。
Mode5002について、本実施例では“Basic”と“LPAR”という二つのモードで説明する。 “Basic”とは、計算機を単一の物理的な計算機として利用するためのモードであり、計算機上にOS及びアプリケーションをインストールする。このとき、一つのOS及びアプリケーションは、計算機の全てのCPUやメモリといったハードウェアリソースを利用することができる。
“LPAR”とは、計算機を複数の仮想的な計算機として利用するためのモードであり、計算機を論理分割もしくは仮想計算機方式により複数のLPARもしくは仮想計算機を生成及び運用することができる。
CPU5003は、図示の例ではリソース量としてソケット数(S)を示したが、これに限定されるものではなく、コア数や動作周波数などで管理するようにしても良い。
図示の例では、例えば、計算機1000が“LPAR”のモードで稼働しており、CPU1002が2ソケットで構成され、メモリ1007の容量が512GBであることを示している。
図6は、LPAR管理テーブル3005の一例を示す図である。LPAR管理テーブル3005は、管理計算機1500が各計算機1000、1100のハイパバイザ10、11から所定のタイミングまたは所定の周期でそれぞれ取得した構成情報と、各LPARの状態情報を格納する。
LPAR管理テーブル3005は、計算機の識別子を格納するComputer6001と、計算機上に設定したLPARの識別子(スロット番号等)を格納するLPAR#6002と、LPARに割り当てられたCPUの稼働状態を格納するCPU6003と、LPARに割り当てられたメモリの容量を格納するMmory6004と、LPARの状態を示すTEMP6005と、をひとつのレコードに含む。ハイパバイザ10、11は、それぞれのLPAR管理テーブル3005を用いて、計算機1000、1100の計算機リソースをそれぞれ管理する。
本実施例では、LPARの状態について、LPARに対する計算機リソース(メモリ1007、1107とCPU1002、1102等)の割り当てを完了した仮起動状態と、LPARに割り当てた計算機リソースでゲストOSとアプリケーションを起動した起動状態(または稼働状態)の2つの状態を有するものとする。TEMP6005には、仮起動状態を示す“YES”と、起動状態を示す“NO”の2つの状態の何れか一方が、管理計算機1500によって設定される。
なお、仮起動状態は、ハイパバイザ10、11が各LPARにメモリ1007、1107とCPU1002、1102の、割り当てが完了したが、ゲストOSが未起動で、外部(ユーザ)の計算機からは仮想計算機として識別できない状態)を示す。
なお、本実施例では、ハイパバイザ10、11がLPARに計算機リソースの割り当てを完了し、ゲストOSが未起動の状態を仮起動状態としたが、この状態は、LPARを有効化(Activate)した状態としてもよい。また、LPARから計算機リソースの割り当てを解除することを、LPARの削除とする。
図6の例では、計算機1000ではLPAR1011、1012が割り当てられており、CPU6003は“YES”でLPAR1011、1012にはCPU1002が割り当て済みであり、LPAR1011、1012にはそれぞれ32GBと30GBのメモリ1007が割り当てられる。LPAR1011、1012はTEMP6005が“NO”で起動状態を示す。
計算機1100ではLPAR1111、1112が割り当てられており、LPAR1111、1112にはそれぞれ32GBと30GBのメモリ1107が割り当てられる。LPAR1112はTEMP6005が“NO”で起動状態を示す。一方、LPAR1111はTEMP6005が“YES”で仮起動状態を示す。すなわち、LPAR1111は、計算機リソースの割り当てが完了した後で、ゲストOSが稼働を開始する前の状態を示す。
図7A、図7Bは、メモリ割当管理テーブル2006の一例を示す図である。なお、図7Aは、LPAR1011が移行元となる計算機1000のハイパバイザ10が管理するメモリ割当管理テーブル2006を示す。図7Bは、LPAR1011の移行先となる計算機1100のハイパバイザ11が管理するメモリ割当管理テーブル2006を示す。
なお、メモリ割当管理テーブル2006は、EPTに相当する変換テーブルであり、図9のホストページテーブル20に対応する。また、各ゲストOS2008は、図24に示すゲストページテーブル30-1をメモリ1007上に設定しメモリ割当管理テーブル2006と同様に操作する。
メモリ割当管理テーブル2006は、計算機の識別子を格納するComputer7001と、計算機1000に設定されているLPARの識別子を格納するLPAR#7002と、LPARに割り当てられたゲストOSが認識するゲスト物理アドレス(GPA:Guest Physical Address)を格納するGPA_Base7003と、LPARに割り当てられたゲスト物理アドレスの物理的なメモリ位置を指定するホスト物理アドレス(HPA:Host Physical Address)の最初のアドレスを格納するHPA_Base7004と、当該LPARに割り当てられたメモリ1007の容量を格納するSize7005とをひとつのレコードに含む。
なお、メモリ割当管理テーブル2006は、LPARの生成または削除の際にハイパバイザ10、11によって更新される。
図8は、アドレス変換管理テーブル2007の一例を示す図である。アドレス変換管理テーブル2007は、各計算機1000、1100のハイパバイザ10、11がそれぞれ管理する。
アドレス変換管理テーブル2007は、計算機の識別子を格納するComputer18001と、計算機に設定されているLPARの識別子を格納するLPAR#18002と、アプリケーション2001が認識する仮想アドレスであるゲスト物理アドレスを格納するGPA18003と、物理メモリのアドレスであるホスト物理アドレスを格納するHPA18004とをひとつのレコードに含む。
図示の例では、計算機1000のLPAR1011と、1012のゲスト物理アドレスが、それぞれ連続するHPAに割り当てられた例を示す。
図21は、マイグレーション管理テーブル3003の一例を示す図である。マイグレーション管理テーブル3003は、管理計算機1500が管理して、マイグレーションを実行する度に更新される。
マイグレーション管理テーブル3003は、移行元の計算機の識別子を格納する移行元Computer7501と、移行元のLPARの識別子を格納する移行元LPAR7502と、移行元のLPARのメモリサイズを格納するSIZE7503と、移行元先の計算機の識別子を格納する移行先Computer7504と、移行先のLPARの識別子を格納する移行先LPAR7505と、当該マイグレーションの状態7506と、をひとつのレコードに含む。
マイグレーションの状態7506は、マイグレーションの実行中を示す“移行中”と、マイグレーションの待機状態を示す“予約”等の状態を格納することができる。なお、管理計算機1500は、マイグレーションが完了すると、マイグレーション管理テーブル3003の該当するレコードを削除する。
マイグレーションで移行する計算機リソースとしては、移行元と移行先のそれぞれについて、計算機の識別子と、移動対象のLPARの識別子に加えて、ゲストOSの識別子やアプリケーションの識別子などを含むことができる。また、移行先の計算機のLPARに割り当てるリソースとしては、メモリのサイズの他にCPUのソケット数(あるいはコア数)やストレージのボリューム識別子などを含むことができる。なお、マイグレーションの詳細な内容については、周知または公知の技術を用いればよいので、本実施例では詳述しない。
本実施例では、計算機1000、1100間でLPARのマイグレーションを行うと記述する。本実施例のLPARのマイグレーションは、例えば、LPAR1011で稼働する論理的な計算機リソースであるゲストOS2008及びアプリケーション2001及びストレージ装置1400(割り当てられたボリューム)を、他のLPAR1111に移動させる処理である。本実施例のLPARのマイグレーションは、ハイパバイザ10等の仮想化部上で稼働する仮想計算機を他のハイパバイザ11上に移動させることと等価である。
図22は、ハイパバイザ10、11が管理する割り当て管理テーブル2004の一例を示す図である。割り当て管理テーブル2004は、各計算機1000、1100上で稼働するLPARに割り当てられる計算機リソースを管理する構成情報であり、ハイパバイザ10、11がそれぞれ管理する。
割り当て管理テーブル2004は、LPARの識別子を格納するLPAR#9001と、当該LPARに割り当てられたCPUのリソース量(例えば、ソケット数)を格納するCPU9002と、当該LPARに割り当てられたメモリのリソース量(容量:GB)を格納するメモリ9003と、当該LPARに割り当てられたストレージ装置1400のボリュームの識別子を格納するストレージ9004と、当該LPARに割り当てられたI/Oデバイスの識別子を格納するI/O#9005と、をひとつのレコードに含む。
計算機リソースを割り当てる要素としては、LPAR(または仮想マシン)やハイパバイザ10、11あるいは“Basic”のMode5002のOS等が含まれる。なお、CPU9002は、ソケット数に代わってコア数等で管理しても良い。
なお、I/Oデバイスとしては、FC I/F1001や、IP I/F1005等をハイパバイザ10がLPAR1011、1012へ割り当てることができる。
図23は、ハイパバイザ10が管理する計算機1000の物理アドレス空間及び仮想アドレス空間の一例を示すメモリマップである。なお、図示はしないが、計算機1100のアドレス空間も同様である。
ハイパバイザ10は、メモリ(物理メモリ)1007のアドレス空間であるホスト物理アドレス(HPA)の0~62GBまでをLPAR1011、1012に割り当てる。また、ハイパバイザ10は、ホスト物理アドレスの62GB以降64GBまでを、自身が使用する予約領域とする。
なお、ハイパバイザ10は、LPAR1012のホスト物理アドレス上に共有リソースのI/O空間を設定せず、ホスト物理アドレス=2GB~4GBの領域をゲスト物理アドレス=2GB~4GBの領域に割り当てて共有させる。このため、LPAR1012のホスト物理アドレスは30GBの範囲となり、LPAR1011の32GBよりも小さい領域となる。
ハイパバイザ10は、LPAR1011をホスト物理アドレスの0~2GBと4GB~32GBまでの範囲に割り当てる。ホスト物理アドレスの2GB以降4GB未満の領域は、共有リソースのMMIOなどに割り当てるI/O空間(非メモリ領域)として設定し、共有割当を行うI/OデバイスのMMIO等が割り当てられる。そして、ハイパバイザ10は、LPAR221をホスト物理アドレスの2GB以降62GBまでの範囲に割り当てる。
次に、ゲストOS2008-1が認識するゲスト物理アドレス(GPA)は、0~2GBと4GB~32GBまでの範囲に割り当てられる。ゲストOS2008-1のゲスト物理アドレスは、ホスト物理アドレスと同一となる。そして、ゲスト物理アドレスの2GB以降4GB未満の領域はI/O空間として設定される。
ゲストOS2008-2が認識するゲスト物理アドレスは、0~2GBと4GB~32GBまでの範囲に割り当てられる。ゲストOS2008-2のゲスト物理アドレスは、ホストページテーブル20で変換されて、LPAR1011が使用する終端アドレスの32GB以降から62GBまでのホスト物理アドレスとなる。ゲストOS2008-2に割り当てられた共有リソースのI/O空間(2GB~4GB)は、ゲストOS2008-1と同一のホスト物理アドレスの2GB~4GBである。
次に、LPAR1011のアプリケーション2001-1が認識する仮想アドレス(VA)は、ゲストOS2008-1が割り当てた0~最大値までの領域となる。仮想アドレス(VA)とゲスト物理アドレスの変換は、ゲストOS2008-1のゲストページテーブル30-1によって変換される。
LPAR1012のアプリケーション2001-2が認識する仮想アドレスも、LPAR1011のアプリケーションと同様であり、ゲストOS2008-2が割り当てた0~最大値までの領域となる。
図23において、ホスト物理アドレス=0から割り当てられたゲストOS2008-1は、ゲスト物理アドレス=ホスト物理アドレスであるので、ホストページテーブル20を使用せずにメモリ1007へアクセスすることになる。
一方、ゲストOS2008-2は、ゲスト物理アドレスに割り当てられるホスト物理アドレスの領域が、LPAR1011の分だけオフセットする。このため、ゲスト物理アドレスとホスト物理アドレスの変換は、ホストページテーブル20を用いて行われる。
以上のように、LPAR1011は、ゲスト物理アドレスとホスト物理アドレスが同一でホストページテーブル20による変換が不要なアドレス空間に割り当てられる。一方、LPAR1012は、ゲスト物理アドレスに対応するホスト物理アドレスは、ホストページテーブル20による変換が必要なアドレス空間に割り当てられる。
したがって、ホスト物理アドレスが0から割り当てられたLPAR1011のゲストOS2008-1及びアプリケーション2001-1は、物理CPU202のEPTによるオーバヘッドのない高速なメモリアクセスを実現することが可能である。
また、共有割当を行う物理的なI/OデバイスのMMIOは、ホスト物理アドレスの共有リソースのI/O空間(2GB~4GB)に割り当てられる。各LPAR1011、1012の仮想I/Oデバイス225a、225bは同一のゲスト物理アドレスに割り当てることで共有割当が行われる。
図24は、ゲストOS2008-1が管理するゲストページテーブル30-1と仮想アドレスの関係を示すブロック図である。なお、ゲストOS2008-2のゲストページテーブル30-2も同様であるので、重複した説明を省略する。
図示の例は、4Kバイトのページでアドレスを管理する場合であり、アプリケーション2001-1が認識する仮想アドレス(VA)501は、48ビットで表現される。仮想アドレス(VA)501をゲスト物理アドレス(GPA)511に変換するゲストページテーブル30-1は、前記従来例でも述べたように、4段のテーブルを有する。
ゲストページテーブル30-1のゲスト物理アドレス(先頭アドレス)は、VMCS15のゲスト状態エリアのCR3制御レジスタ531に格納される。ゲストページテーブル30-1では、このアドレスをゲストページテーブル30-1の起点として仮想アドレス(VA)501からゲスト物理アドレス(GPA)511への変換が行われる。
仮想アドレス(VA)501は、39~47ビットのPML4(Page Map Level 4)と、30~38ビットのPage Directory Pointerと、21~29ビットのPage Directoryと、12~20ビットのPage Tableと、0~11ビットのOffsetを含む。
ゲストページテーブル30-1は、CR3制御レジスタ531のアドレスを起点として、PML4=Page Map Level 4のエントリ(PML4E)からPage Directory Pointer Tableのエントリ(PDPTE)と、Page Directoryのエントリ(PDE)と、Page Tableのエントリ(PTE)を辿って、ゲスト物理アドレス(GPA)511を得る。なお、CR3制御レジスタ531~ページテーブルの参照はNested Pagingと呼ばれ、各テーブルがL1~L4の4段で構成される。このため、前記従来例で述べたように、全てのテーブルを辿ると20回のメモリアクセスが発生することになる。
図9は、ハイパバイザ10が管理するホストページテーブル20とゲスト物理アドレス(GPA)の関係を示すブロック図である。
図示の例は、4Kバイトのページでアドレスを管理する場合であり、ゲストOS2008-1が認識するゲスト物理アドレス(GPA)8001は、48ビットで表現される。ゲスト物理アドレス(GPA)8001をホスト物理アドレス(HPA)8002に変換するホストページテーブル20は、前記従来例でも述べたように、4段のテーブルを有する。
ホストページテーブル20のホスト物理アドレス(先頭アドレス)は、VMCS15のホスト状態エリアのEPTポインタに格納される。ホストページテーブル20では、このアドレスを起点としてゲスト物理アドレス(GPA)8001からホスト物理アドレス(HPA)8002への変換が行われる。
ゲスト物理アドレス(GPA)8001は、上記図24の仮想アドレスと同様に、39~47ビットのPML4と、30~38ビットのPage Directory Pointerと、21~29ビットのPage Directoryと、12~20ビットのPage Tableと、0~11ビットのOffsetを含む。
ホストページテーブル20は、EPTポインタのアドレスを起点として、PML4のエントリ(PML4E)からPDPTのエントリ(PDPTE)と、PDのエントリ(PDE)と、PTのエントリ(PTE)を辿って、ホスト物理アドレス(HPA)8002を得る。なお、EPTポインタ~ページテーブルの参照は上述のNested Pagingであり、ゲストページテーブル30-1と同様に、各テーブルがL1~L4の4段で構成される。このため、前記従来例で述べたように、全てのテーブルを辿ると20回のメモリアクセスが発生することになる。
図10は、マイグレーションの進行に応じたLPARの移動を説明する図である。図10の例では、計算機1000のハイパバイザ10は、2つのLPAR1011、1012を稼働させている。ハイパバイザ10は、ホスト物理アドレスが0を含む連続したアドレスにLPAR1011を割り当て、LPAR1011とは異なるホスト物理アドレスにLPAR1012を割り当てる。
一方、計算機1100のハイパバイザ11は、1つのLPAR1112を稼働させている。ハイパバイザ11は、ホスト物理アドレスが0を含まない連続したアドレスにLPAR1112を割り当てる。
本実施例では、管理計算機1500が、計算機1000で稼働するハイパバイザ10上のLPAR1012(図中LPAR#2)を、他の計算機1100のホスト物理アドレスが0に割り当てられたLPAR1111にマイグレーションする。
マイグレーションが完了してから、計算機1100のハイパバイザ11は、LPAR1111に割り当てたCPU1102のEPTによるアドレス変換を無効化する。その後、LPAR1111上でゲストOS2008とアプリケーション2001を起動し、当該LPAR1111上のゲストOS2008及びアプリケーション20001はアドレス変換を行うことなくホスト物理アドレスをアクセスし、処理を高速化する例を示す。
図示の例では、管理計算機1500の入力装置1503から管理者等がLPAR1012の高速化要求を入力し、管理計算機1500がLPAR1012の高速化要求を受け付けて、LPAR1012の移行先の計算機の選択とマイグレーションの制御を開始し、図中Phase1~Phase3の順で処理を実行する。
Phase1:計算機1000では2つのLPAR1011、1012を稼働させており、後述の通りLPAR1012を高速化するために、LPAR1012が使用するホスト物理アドレスを0にする必要がある。
なお、LPARの高速化は、ホスト物理アドレスが0から連続するアドレスでLPARを割り当てて、当該LPARに割り当てられたプロセッサのアドレス変換機能であるEPTを無効化してアドレス変換のオーバヘッドを抑制することを示す。
なお、LPARの高速化は、ホスト物理アドレスが0から連続するアドレスでLPARを割り当てて、当該LPARに割り当てられたプロセッサのアドレス変換機能であるEPTを無効化してアドレス変換のオーバヘッドを抑制することを示す。
図10の例では、計算機1000では、LPAR1011のゲスト物理アドレスがホスト物理アドレスの0に割り当てられているため、LPAR1012ではホスト物理アドレスの0を利用することができない。
管理計算機1500は、各計算機1000、1100から取得したアドレス変換管理テーブル2007を検索し、ホスト物理アドレスで0が空いている計算機1100を、高速化するLPAR1012の移行先として決定する。
管理計算機1500は、計算機1100のハイパバイザ11に、ホスト物理アドレスの0からLPARを生成する指令を送信する。計算機1500のハイパバイザ11は、管理計算機1500からの指令に応じてメモリ1107やCPU1102を割り当ててLPAR1111を生成し、ゲストOS2008及びアプリケーション2001を起動する前の仮起動状態とする。
上記Phase1により計算機1100のハイパバイザ11は、ホスト物理アドレスの0からLPAR1111を確保することができる。
Phase2:管理計算機1500は、LPAR1012(LPAR#2)を計算機1100のLPAR1111にマイグレーションする指令をハイパバイザ10、11に送信する。ハイパバイザ10は、LPAR1012のメモリの内容をハイパバイザ11に送信し、LPAR1012からLPAR1111へのメモリコピーを開始する。
マイグレーション中では、計算機1000のLPAR1012に、ゲストOS2008上のアプリケーション2001を利用する他の計算機のアプリケーションやユーザの計算機(図示省略)がアクセスしている。ハイパバイザ10は、当該アクセスにより発生したLPAR1012内のメモリ1007の差分データを含めてメモリ1007のデータをLPAR1111にコピーする。
Phase3:Phase2でメモリ1007からコピーする差分データを含むメモリ1007のデータが閾値以下になると、ハイパバイザ10はメモリコピーの残量が少なくなったと判定し、移行元のLPAR1012に割り当てたCPU1002を停止させる。そして、ハイパバイザ10は、残りの差分データをLPAR1111にコピーする。すなわち、LPAR1012が提供するアプリケーション2001を停止させて、差分データの発生を停止させてからLPARの切り替えを実施する。
メモリコピーが完了すると、ハイパバイザ10は管理計算機1500にメモリコピーの完了を通知する。管理計算機1500は、ハイパバイザ11に指令してLPAR1111にゲストOS2008をロードして起動させてから、アプリケーション20001を起動させる。
LPAR1111(LPAR#2)が起動状態になると、管理計算機1500は、ハイパバイザ11にEPTの無効化を指令する。ハイパバイザ11は、CPU1102のEPTを無効化し、ゲスト物理アドレスからホスト物理アドレスへの変換によるオーバヘッドを削減して、LPAR1111のアプリケーション2001の性能を向上させることができる。
以上の処理によって、管理計算機1500はLPAR1012に高速化要求(性能変更要求)を受け付けると、ホスト物理アドレスの0が空いている計算機を移行先の計算機として選択し、メモリコピーを実行させた後に、ゲストOS2008とアプリケーション2001を順次起動させる。そして、移行先のハイパバイザ11がEPTを無効化することで、ホスト物理アドレスの0に割り当てたLPAR1111(LPAR#2)のアプリケーション2001を高速化できる。
図11は、LPARの高速化処理の一例を示すシーケンス図である。
まず、管理者は管理計算機1500の入力装置1103からLPARの高速化要求を入力する(10001)。管理計算機1500は、性能変更要求としての高速化要求を受け付けて、移行元のLPAR1012をホスト物理アドレスが0を含むLPARへマイグレーションさせる処理を開始する。
次に、LPAR管理部3002はテーブル取得処理を実行する(ステップ10002)。テーブル取得処理は、後述するように、管理計算機1500が各計算機1000、1100の構成情報とLPARの状態情報を取得する処理で、本実施例1では、計算機リソース管理テーブル3004とLPAR管理テーブル3005を取得または更新する。また、LPAR管理部3002は、各計算機1000、1100のメモリ割り当て管理テーブル2006を取得しておく。
次に、LPAR管理部3002は、高速化するLPARの移行先となる計算機を決定する計算機決定処理を実行する(ステップ10006)。LPAR管理部3002は、上記取得した各計算機1000、1100のメモリ割り当て管理テーブル2006から、ホスト物理アドレス7004の0から連続的なアドレス空間が空いている計算機を検索し、当該計算機を移行先の計算機とする。
LPAR管理部3002は、移行先の計算機1100のハイパバイザ11に高速なLPARの生成要求を送信する(ステップ10007)。本実施例の高速なLPARの生成要求は、ホスト物理アドレスが0から連続的なアドレス空間をLPARに割り当てるもので、EPTによるアドレス変換が不要なアクセス空間を新たなLPARに割り当てる。
なお、LPAR生成要求には、生成するLPARに割り当てるメモリの容量やCPUの数などの要素リソース量を含めることができる。要素リソース量には、メモリやCPUの他にI/Oデバイスやストレージ装置1400のボリュームの識別子などを含めることができる。
高速なLPARの生成要求を受信した移行先の計算機のハイパバイザ11は、図23で示したように、ホスト物理アドレスを0から連続的に割り当てたゲスト物理アドレスにLPAR1111を生成し、仮起動状態を保持する(ステップ10008)。ハイパバイザ11は、LPAR1111を生成及び仮起動が完了すると、管理計算機1500へ通知する。
次に、移行先のLPAR1111の生成処理が完了すると、管理計算機1500のマイグレーション制御部3001が、移行元の計算機1000にデータコピー要求を送信する(ステップ10009)。データコピー要求には、コピー元のLPARの識別子と、コピー先の計算機の識別子とLPARの識別子やメモリの容量などが含まれる。なお、データコピー要求の発行は、管理計算機1500が、計算機1100からLPAR生成処理の完了の通知を受信した後に行うことができる。
マイグレーション制御部3001からデータコピー要求を受信した計算機1000のハイパバイザ10は、LPAR1012が割り当てられているメモリ1007の内容を、移行先の計算機1100に送信し、データコピー処理を実行する(ステップ10010)。
ハイパバイザ10は、データコピー中に更新されたデータと、元のデータとの差分データも移行先の計算機1100に送信し、コピーする差分データ及びデータの残量が閾値以下(データコピーの状態が所定の状態)になると、LPAR1012に割り当てたCPU1002を停止して、LPAR1012が提供するアプリケーション2001を停止して差分データの発生を抑止する。
移行元のハイパバイザ10は、LPAR1012のデータのコピーが完了すると、コピーの完了通知を管理計算機1500へ送信する。
次に、コピーの完了通知を受信したマイグレーション制御部3001は、移行元の計算機1000と移行先の計算機1100にLPAR切り替え要求を送信する(ステップ10011)。移行元の計算機1000では、ハイパバイザ10がLPAR1012の計算機リソースを解放する。
次に、マイグレーション制御部3001は、移行先の計算機1100にEPT無効化要求を送信する(ステップ10013)。移行先の計算機1100のハイパバイザ11は、EPT無効化要求を受信すると、EPTの無効化を実行する(ステップ10014)。
移行先の計算機1100では、ハイパバイザ11がLPAR1111に割り当てたCPU1102のEPTを無効化してから、ゲストOS2008を起動させる。
ハイパバイザ11はI/Oデバイスの設定値をLPAR1012から引き継いで、LPAR1111のアプリケーション2001を起動して、クライアントからのアクセスを受け付ける(ステップ10012)。
管理計算機1500のマイグレーション制御部3001は、全ての処理を終了すると出力装置1504を介して管理者に処理の結果を表示する(ステップ10015)。
図12は、図11のステップ10002で行われるテーブル取得処理の一例を示すシーケンス図である。
管理計算機1500のLPAR管理部3002は、計算機1100にテーブル送信要求を送信する(ステップ19001)。テーブル送信要求を受信した計算機1100では、計算機管理部2003が、割り当て管理テーブル2004、メモリ割り当て管理テーブル2006、アドレス変換管理テーブル2007の内容を管理計算機1500へ送信する(ステップ19002)。
次に、管理計算機1500のLPAR管理部3002は、計算機1000にテーブル送信要求を送信する(ステップ19003)。テーブル送信要求を受信した計算機1000では、計算機管理部2003が、割り当て管理テーブル2004、メモリ割り当て管理テーブル2006、アドレス変換管理テーブル2007の内容を管理計算機1500へ送信する(ステップ19004)。
次に、管理計算機1500のLPAR管理部3002は、ストレージ装置1400にテーブル送信要求を送信する(ステップ19005)。ストレージ装置1400のストレージ管理部4002は計算機リソース管理テーブルなど全ての管理テーブルの内容を管理計算機1500に送信する(ステップ19006)。
以上の処理によって、管理計算機1500には計算機1000、1100及びストレージ装置1400の構成情報と稼働情報(稼働状態)が収集される。
図13は、図11のステップ10006で行われる計算機決定処理の一例を示すフローチャートである。
管理計算機1500のLPAR管理部3002は、計算機リソース管理テーブル3004を読み込んで(ステップ11101)、LPARの高速化要求に含まれる要求メモリ量が、計算機の空きメモリ量Memory3004より大きいか否かを判定する(ステップ11102)。この判定は、計算機リソース管理テーブル3004のComputer5001で、移動元のLPAR1012が稼働している計算機1000のレコードから順次比較する。また、要求メモリ量は、LPAR管理テーブル3005のMemory6004に格納されている、現在のLPARのメモリ割り当て量としても良い。
ステップ11102の判定で、要求メモリ量の方が空きメモリ量5004よりも大きい場合には、ステップ11106に進んでマイグレーションを実行し、そうでない場合にはステップ11103へ進む。
ステップ11103では、LPAR管理に3002が、テーブル取得処理10002で読み込んだ、メモリ割当管理テーブル2006のHPA_Base7003を参照して現在比較対象としている計算機のメモリアドレスの0が空いているか否かを判定する。
LPAR管理に3002は、ステップ11103の判定結果が“Y”である場合には、メモリ割当管理テーブル2006のHPA _Base7003から確保されている連続アドレス領域であるSize7005を参照し、空き領域のメモリアドレスが連続か否かを判定する(ステップ11104)。
ステップ11104の判定結果が“Y”である場合には、現在の計算機に高速なLPARを生成することを決定する(ステップ11105)。上記ステップ11103およびステップ11104において判定結果が“N”である場合には、ステップ11102の判定結果が“Y”である場合と同様にマイグレーションが必要となる。
LPAR管理部3002は、LPAR1012の移行先の計算機を決定するために計算機リソース管理テーブル3004を読み込んで、次のComputer5001のレコードを参照し(ステップ11106)、メモリ割当管理テーブル2006のHPA_Base7003を参照して計算機のメモリアドレスの0が空いているか否かを判定する(ステップ11107)。
ステップ11107の判定結果が“Y”である場合には、メモリ割当管理テーブル2006のHPA _Base7003から確保されている連続アドレス領域であるSize7005を参照し空き領域のメモリアドレスが連続か否かを判定する(ステップ11108)。
ステップ11108の判定結果が“Y”である場合、LPAR管理部3002は、本計算機を移行先とすることを決定する(ステップ11109)。
一方、上記ステップ11108の判定結果が“N”である場合には、ステップ11110に進んで、計算機リソース管理テーブル3004の全ての計算機(Computer5001)について処理が完了したか否かを判定する。
上記ステップ11110の判定結果が“Y”である場合には、ホスト物理アドレスの0が空いている計算機が存在しないので、ステップ11111へ進んで出力装置1504に移行先が存在しないことを示すエラーを通知してから処理を終了する。
また、上記ステップ11107、11110の判定結果が“N”である場合には、ステップ11106に戻って計算機リソース管理テーブル3004を読み込んで、次のレコードの計算機について移行先とするか否かの処理を上記ステップ11106からステップ11108で繰り返す。
以上の処理により、LPAR管理部3002は、ホスト物理アドレスの0が空いている計算機をLPAR1012の移行先として決定することができる。
図14に、LPAR生成処理の一例を示すフローチャートである。管理計算機1500からLPAR生成要求(10007)を受信した計算機1100のハイパバイザ11は、LPAR生成要求に含まれるメモリの容量とCPUの数などの要素リソース量に応じてLPARを生成する。なお、計算機1000のハイパバイザ10も同様の処理を行うことが出来る。
LPAR生成要求を受け付けた計算機1100のハイパバイザ11は、計算機1100上に要素リソース量を満たすLPAR1111を生成(ステップ12001)してから、管理計算機1500へ生成が完了した通知を送信する。なお、この時点で、ハイパバイザ11は、LPAR1111にゲストOS2008-2やアプリケーション2001-2をロードしていない仮起動状態を維持する。
LPARの生成が完了した通知を受信した管理計算機1500は、追加したレコードに、Computer6001、LPAR#6002にそれぞれ識別子を格納し、Memory6004に割り当てたメモリ容量を格納し、TEMP6005には仮起動状態であることを示す“YES”を格納する。
TEMP6005がYESである場合、当該LPAR1111はハイパバイザ11からは認識されているが、外部の計算機からはLPARとしては認識できない状態となっている。管理計算機1500は、LPAR1111のマイグレーションが完了した後にTEMP6005をNOに設定することで、初めて外部の計算機から当該LPAR1111を認識することができる。
次に、計算機1100のハイパバイザ11は、EPTとして機能するするメモリ割当管理テーブル2006に新たなレコードを追加して、生成されたLPAR1111の情報を設定する。ハイパバイザ11は、LPAR1111のレコードで、メモリ割当管理テーブル2006のGPA_Base7003とHPA_Base 7004が0となるように更新する。
上記の処理により、EPTとして機能するメモリ割当管理テーブル2006では、生成されたLPAR1111のゲスト物理アドレス(GPA)の0がホスト物理アドレス(HPA)の0となる(ステップ12002)。これにより、ゲスト物理アドレスとホスト物理アドレスは、変換することなくアクセス可能となる。
次に、ハイパバイザ11は、LPAR1111を仮起動するためにEPTを有効化する(ステップ12003)。EPTの有効化は、ハイパバイザ11がCPU1102のVM-execution control fieldsを設定することで行われる。
ハイパバイザ11が、LPAR1111を仮起動することでメモリ1107に所定の領域を確保する(ステップ12004)。ハイパバイザ11は、LPAR1111の仮起動が完了した通知(LPAR生成処理の完了の通知)を管理計算機1500に通知することができる。なお、LPAR1111の仮起動が完了した通知を、LPAR生成処理の完了の通知としてもよい。
ハイパバイザ11は、この仮起動の状態を維持したまま、管理計算機1500のマイグレーション制御部3001の指令に基づいて、後述するデータコピー処理が実行され、移行元のLPAR1012から移行先のLPAR1111へメモリの内容(データ)がコピーされる。
図15は、LPAR切り替え処理の一例を示すフローチャートである。この処理は、移行元のLPAR1012のハイパバイザ10で行われる処理を示す。ハイパバイザ10は、管理計算機1500のマイグレーション制御部3001からの指令に基づいて、LPAR1012が割り当てられたメモリ1007の内容を、計算機1100のLPAR1111へコピーする。
LPAR1012では、マイグレーションの実行中でも外部の計算機(図示省略)からのアクセスを受け付けており、コピーされた領域で更新されたデータは差分データとして所定の領域へ蓄積された後に、移行先の計算機1100へ送信される(ステップ13000)。
計算機1000のハイパバイザ10は、計算機1100へのデータコピーが完了していない差分データのメモリ量が予め設定した閾値以下か否かを判定する(ステップ13001)。
ステップ13001の判定結果が“Y”である場合には、ステップ13002へ進む。一方、上記ステップ13001において、判定結果が“N”である場合には、ステップ13000へ戻ってデータコピー処理を繰り返す。
ステップ13002では、移行元のLPAR1101に割り当てられたCPU1002を停止させる(ステップ13002)。なお、LPAR1012に割り当てられたCPU1002を停止する代わりに、LPAR1012のアプリケーション2001またはゲストOS2008の処理を停止させても良い。これにより、移行元のLPAR1012でのアプリケーション2001-2の提供を停止することで、差分データの発生を抑制して、LPAR1012からLPAR1111への切り替えの準備を行う。
次に、アプリケーション2001を提供するLPARを計算機1000から計算機1100に切り替える。この処理は、管理計算機1500が移行先の計算機1100のハイパバイザ11に、LPAR1111でゲストOS2008の起動と、アプリケーション2001の起動を指令する。移行元の計算機1000のLPAR1012では、割り当てられたCPU1002が停止しているのでアプリケーション2001の提供は終了しており、LPAR1111でゲストOS2008を起動してからアプリケーション2001を提供することで、外部の計算機はアプリケーション2001の利用を継続することができる。
図16は、LPAR高速化のための管理画面の一例を示す図である。この管理画面は、管理計算機1500の出力装置1504に表示される。
管理画面であるLPAR ConfigurationScreen14000は、LPARの定義情報を表示するテーブル14001が表示されている。テーブル14001は、計算機の識別子を表示するComputerと、LPARの識別子を表示するLPAR#と、LPARに割り当てたCPUと、LPARに割り当てたメモリの容量と、LPARの高速化の有無と、をひとつのレコードに含む。
LPARの高速化は、FASTModeが“Enable”で高速化モードが有効であり、“Disable”で高速化モードが無効であることを示す。
テーブル14001において、参照もしくはサイズを変更したいLPARの行を図示しないマウスなどでクリックすると、選択したLPAR情報が図中14002、14003、14004に表示される。
図示の例では、計算機の識別子であるComputer14002、LPARの識別子であるLPAR#14003、高速化されたLPARであるか否かを示すフラグであるFastMode14004を表示している。
例えば、表示される項目のうち、高速化されているかどうかを示すFastModeのテキストボックス14004を編集するか、クリックにより値をEnableに変更することができる。その後、OKボタン14005をクリックすることでLPAR高速化処理を管理計算機1500へ要求する。
本実施例により、ユーザや管理者などからのLPARの高速化要求を管理計算機1500で受け付け、LPARのマイグレーションによってゲスト物理アドレスの0とホスト物理アドレスの0を一致させ、LPARマイグレーション中にメモリアドレス変換に関する設定を切り替えることにより、仮想計算機システムを停止することなくLPARを高速化することができる。
以上のように、LPAR(または仮想計算機)で行われるアプリケーションの処理を高速化させるため、管理計算機1500は利用可能な計算機のうちホスト物理アドレスの0から連続したアドレス空間が空いている計算機を検出し、当該計算機に高速化の対象のLPARをマイグレーションする。管理計算機1500は、マイグレーションが完了した後に、マイグレーション先の計算機に対してアドレス変換機能(EPT)を無効化する指令を送信する。
これにより、マイグレーション先の計算機では、ゲストOS2008が使用するゲスト物理アドレスと、計算機のホスト物理アドレスの変換を行うことなく処理を実行することができる。すなわち、LPAR(仮想計算機)のアドレス変換のオーバヘッドを削減することで、ゲストOS2008上のアプリケーション2001の処理速度を高速化することができる。
なお、移行元の計算機1000のハイパバイザ10は、メモリコピーを行う差分データの量が所定の閾値以下になると、移行元のLPAR1012に割り当てたCPU1002を停止させる。これにより、移行元のLPAR1012では、アプリケーション2001の停止によって差分データの発生を停止して、計算機間でのLPARの切り替えを円滑に行うことができる。
また、高速化の対象のLPAR1012の内容を移行先の計算機1100へマイグレーションする際には、アドレス変換機能(EPT)を有効化した状態で、移行元のLPAR1012から移行先のLPAR1111へ、メモリコピーを実施する。そして、管理計算機1500は、メモリコピーが完了(差分データが閾値未満)してから移行先の計算機1100にアドレス変換機能の無効化を指令する。これにより、移行先の計算機1100では、ハイパバイザ11上のゲストOS2008がアプリケーション2001を起動する前にアドレス変換機能を無効化することができる。すなわち、移行先のLPAR1111ではアドレス変換機能を停止させた状態でアプリケーション2001を起動し、高速な処理を提供できる。
また、管理計算機1500は、高速化対象のLPAR1012が使用しているメモリの容量を要求メモリサイズとし、ホスト物理アドレスが0を含むLPARのサイズが要求メモリサイズ以上のLPAR1111を生成可能な計算機を移行対象として選択する。これにより、移行先の計算機1100で高速化対象のLPAR1012の計算機リソースが不足するのを防止できる。
また、移行先の計算機1100のハイパバイザ11は、CPU1102のEPTを有効化してから、計算機1000のLPAR#2を稼働させるLPAR1111を仮起動することで、新たに生成したLPAR1111にメモリ1107を割り当てることができる。
また、上記実施例1では、LPAR1012を他の計算機1100へマイグレーションする例を示したが、これに限定されるものではない。例えば、計算機1000でLPAR1011が無い場合には、LPAR1012をLPAR1011へマイグレーションしても良い。この場合も、上記と同様の処理を計算機1000のハイパバイザ10で実行すれば良い。
本実施例2は、前記実施例1で高速化したLPARを通常性能のLPARに戻す場合に実施される。本実施例では、実施例1の 図16に示したFastMode14004にてEnableとなっているLPARをDisableに設定し、OKボタン14005をクリックすることで、図17に示す一連の処理が実行される。なお、通常性能のLPARは、EPTを有効化してホストページテーブル20(及びゲストページテーブル30)でアドレスの変換を実施するLPARを示す。
図17に、計算機決定処理の一例を示すフローチャートである。管理計算機1500は、図16の画面で選択された高速化済みのLPARの計算機リソースを要求リソースとして、LPAR管理部3002へ入力する。
管理計算機1500のLPAR管理部3002は、計算機リソース管理テーブル3004を読み込んで、図16の画面で選択したLPARが稼働する計算機から順次処理を行う(ステップ15001)。
LPAR管理部3002は、LPARの高速化要求の要素リソースに含まれる要求メモリが、現在着目している計算機の空きメモリ量Memory3004より大きいか否かを判定する(ステップ15002)。
管理計算機1500は、ステップ15002の判定結果が“Y”である場合には、マイグレーションが必要と判定してステップ15004へ進む。一方、判定結果が“N”である場合には、対象のLPARが稼働している本計算機に通常性能LPARを生成することを決定する(ステップ15003)。
ステップ15002では、マイグレーションが必要となるため、管理計算機1500のLPAR管理部3002はLPARの移行先を他の計算機から選択するために計算機リソース管理テーブルを参照し、未処理のレコードを順次読み込む(ステップ15004)。そして、LPAR管理部3002は、読み込んだレコードの計算機について、要求メモリ量が計算機の空きメモリ量5004より小さいか否かを判定する(ステップ15005)。
LPAR管理部3002は、ステップ15005の判定結果が“Y”である場合には、現在着目している計算機をLPARの移行先とすることを決定する(ステップ15006)。
一方、上記ステップ15005の判定結果が“N”である場合には、ステップ150070に進んで、計算機リソース管理テーブル3004の全ての計算機(Computer5001)について処理が完了したか否かを判定する。
上記ステップ11110の判定結果が“Y”である場合には、要求メモリの空きを有する計算機が存在しないので、ステップ15008へ進んで出力装置1504に移行先が存在しないことを示すエラーを通知してから処理を終了する。
また、上記ステップ15007の判定結果が“N”である場合には、ステップ15004に戻って計算機リソース管理テーブル3004を読み込んで、次のレコードの計算機について移行先とするか否かの処理を繰り返す。
以上の処理により、LPAR管理部3002は、高速化したLPARを通常性能のLPARに戻す移行先の計算機を選択することができる。そして、前記実施例1の図11と同様にして、移行先の計算機にLPARの生成を指令し(図18)、その後、データコピー処理を指令してマイグレーションを実行してから、LPARの切り替え処理(図15)を実施する。
図18は、LPAR生成処理の一例を示すフローチャートである。管理計算機1500は、図17の処理で選択したLPARの移行先の計算機に対してLPARの生成要求を送信する。
管理計算機1500からLPARの生成要求を受信した計算機のハイパバイザは、当該計算機上にLPARを生成し、LPAR管理テーブル3005のTEMP6005を“YES”に設定した新しいレコードをLPAR管理テーブルに追加する(ステップ16001)。
LPAR管理テーブル3005のTEMP6005の値が“YES”である場合、当該LPARは、ハイパバイザからは認識されているが外部の計算機からはLPARとしては認識できない仮起動状態となっており、LPARのマイグレーションが完了した後に管理計算機1500がTEMP6005を“NO”に更新することで、初めて外部の計算機が認識することができる。
次に、LPARの移行先の計算機のハイパバイザは、LPARを起動するためにEPTを有効化(ステップ16002)する。これにより、移行先の計算機では、LPARのゲスト物理アドレスがホスト物理アドレスの0以外に設定されていても、ホストページテーブル20によってアドレス変換を行うことができる。
次に、LPARの移行先の計算機のハイパバイザは、生成したLPARを仮起動することでメモリを確保する(ステップ16003)。この後、前記実施例1の図11に示したデータコピー処理10010が実行され、移行元のLPARから移行先のLPARへメモリの内容がコピーされる。
この後、移行先の計算機へのデータコピー処理が完了すると、前記実施例1の図15と同様に、管理計算機1500は、移行先の計算機のハイパバイザにLPAR切り替え処理を指令する。
以上のように、本実施例2により、ユーザや管理者等からのLPARの通常性能化の要求を管理計算機1500で受け付け、マイグレーションとEPTの設定変更によって高速化したLPARをホストページテーブル20を使用する通常のLPARに変更することができる。管理計算機1500は、LPARのマイグレーション中にメモリアドレス変換に関する設定を切り替えることにより、仮想計算機システムを停止することなく高速化したLPARを通常の性能に戻すことができる。
本実施例3は、管理者は通常性能のLPAR1012を高速化したLPARに変更したいが、既に高速化のために必要な物理メモリのアドレス=0を利用している他のLPARが存在する場合に実施される。
本実施例3は、前記実施例1の図13のステップ11111のように、ホスト物理アドレスの0から連続したアドレスが確保可能な計算機が存在しないときに実行することで、所望のタイミングでLPARの高速化を実現するものである。
図19は、マイグレーション処理の進行に応じたLPARの移動を説明する図である。
本実施例3では、計算機1000のハイパバイザ10上で稼働するLPAR1012(LPAR#2)を高速化する例を示している。なお、LPAR#2は、LPAR1012で稼働するゲストOS2008-2及びアプリケーション2001-2を含む仮想計算機を示す。また、LPAR#1も同様であり、LPAR1011で稼働する仮想計算機の論理的な計算機リソースを示す。
Phase1:計算機1000では二つのLPAR1011(LPAR#1)、1012(LPAR#2)を稼働しており、LPAR1012を高速化するためにはLPAR1012(LPAR#2)が使用しているホスト物理アドレスを0に変更する必要がある。
しかしながら、計算機1000ではLPAR1011がホスト物理アドレスを0から割り当てられ、また、計算機1100ではLPAR1111がホスト物理アドレスを0から割り当てられているため、高速化対象のLPAR1012はホスト物理アドレス0を利用することができない。
そこで、本実施例3では、管理計算機1500が、ホスト物理アドレスの0に割り当てられたLPAR1011(LPAR#1)を他の計算機1100に移動させて、計算機1000のホスト物理アドレス=0にLPAR#2を移動させる。
Phase2:管理計算機1500は、LPAR1011(LPAR#1)及びLPAR1012(LPAR#2)を、計算機1100のLPAR1112、1113にマイグレーションする。マイグレーションのメモリコピー中では、LPAR1011及び1012上のアプリケーション2001を利用する他のアプリケーションやユーザの計算機(図示省略)はLPAR1011及び1012に対してアクセスを継続する。計算機1000のハイパバイザ10は、アクセスにより発生した差分データを含めメモリデータをLPAR1112及び1113にコピーする。
Phase3:Phase2でLPAR1011(LPAR#1)及びLPAR1012(LPAR#2)を計算機1100にマイグレーションしたことにより、計算機1000のホスト物理アドレスは0から連続的な空間を空けることができる。
管理計算機1500は、計算機1000のハイパバイザ10に、ホスト物理アドレスを0から連続的に割り当てたLPAR1012’を生成させる。そして、管理計算機1500は、計算機1100のLPAR1113にマイグレーションさせた(LPAR#2)を、計算機1000のLPAR1012’に移行し、ホスト物理アドレスを0から連続的に割り当てることでLPAR#2を高速化させることができる。
図20は、マイグレーション処理の進行に応じたLPARの移動の他の例を説明する図である。この例では、高速化対象であるLPAR1012(LPAR#2)を他の計算機1100に移行させることなく、同じ計算機1000上で移行する場合を示す。
Phase1:計算機1000では2つのLPAR1011(LPAR#1)、1012(LPAR#2)を稼働しており、LPAR1012を高速化するためにはLPAR1012(LPAR#2)が使用しているホスト物理アドレスを0に変更する必要がある。
Phase2:管理計算機1500は、ホスト物理アドレスを0に割り当てられたLPAR1011(LPAR#1)を、計算機1100のLPAR1112にマイグレーションする。マイグレーションのメモリコピー中では、LPAR1011上のアプリケーション2001を利用する他のアプリケーションやユーザの計算機(図示省略)はLPAR1011に対してアクセスを継続する。計算機1000のハイパバイザ10は、アクセスにより発生した差分データを含めメモリデータをLPAR1112にコピーする。
Phase3:Phase2でLPAR1011(LPAR#1)を計算機1100にマイグレーションしたことにより、計算機1000のホスト物理アドレスは0から連続的な空間を空けることができる。
管理計算機1500は、計算機1000のハイパバイザ10に、ホスト物理アドレスを0から連続的に割り当てたLPAR1012’を生成させる。そして、管理計算機1500は、ハイパバイザ10にLPAR1012の内容(LPAR#2)をLPAR1012’へマイグレーションさせる。
以上のように、本実施例3により、利用可能な計算機のうち全ての計算機でホスト物理アドレスの0が空いていない環境において、ホスト物理アドレスの0を利用するLPARを他の計算機に移行させた後、高速化の対象のLPARをホスト物理アドレスが0から割り当てられたLPARに移行させることで、仮想計算機システムを停止することなく対象のLPARを高速化することができる。
また、高速化の対象のLPAR1012が稼働する計算機1000から、ホスト物理アドレスの0を使用しているLPAR1011に加えて、高速化対象のLPAR1012も一旦、他の計算機1100へマイグレーションしておく。
これにより、LPAR1011の高速化を行う計算機1000の内部でマイグレーションが行われた際に、計算機リソースが不足するのを抑制してLPAR1012の高速化処理を円滑に行うことが可能となる。
<まとめ>
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。
また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
Claims (14)
- プロセッサとメモリを含む第1の計算機の計算機リソースを1以上の論理区画に割り当ててゲストOSとアプリケーションを稼働させる第1のハイパバイザと、プロセッサとメモリを含む第2の計算機の計算機リソースを1以上の論理区画に割り当ててゲストOSとアプリケーションを稼働させる第2のハイパバイザと、を有する仮想計算機システムで、前記第1のハイパバイザと前記第2のハイパバイザを制御する管理計算機が前記論理区画を制御する仮想計算機システムの制御方法であって、
前記第1のハイパバイザが、当該第1のハイパバイザが認識する前記第1の計算機の前記メモリのホスト物理アドレスが0を含むアドレスに第1の論理区画を割り当てる第1のステップと、
前記第1のハイパバイザが、前記第1の論理区画とは異なる前記メモリのホスト物理アドレスに第2の論理区画を割り当て、当該第2の論理区画に前記プロセッサを割り当て、ゲストOSを起動してアプリケーションを稼働させる第2のステップと、
前記管理計算機が、前記第1の計算機と第2の計算機の構成情報に基づいて、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる計算機を移行先の計算機として決定する第3のステップと、
前記管理計算機が、前記移行先の計算機のハイパバイザに、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成させて、前記移行先の計算機のプロセッサを割り当て、前記第3の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を有効化させる第4のステップと、
前記管理計算機が、前記第1のハイパバイザに前記第2の論理区画のデータを、前記第3の論理区画にコピーさせる第5のステップと、
前記第1のハイパバイザが、前記第2の論理区画のデータのコピーの状態が所定の条件になると、前記第2の論理区画に割り当てたプロセッサを停止させる第6のステップと、
前記第1のハイパバイザが、前記第2の論理区画のデータのコピーが完了すると、前記管理計算機にコピーの完了を通知する第7のステップと、
前記管理計算機が、前記移行先の計算機のハイパバイザに、前記第3の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を無効化する指令を送信する第8のステップと、
前記移行先の計算機のハイパバイザが、前記第3の論理区画に割り当てたプロセッサのアドレス変換機能を無効化し、前記ゲストOSを起動してから前記アプリケーションを稼働させる第第9のステップと、
を含むことを特徴とする仮想計算機システムの制御方法。 - 請求項1に記載の仮想計算機システムの制御方法であって、
前記第3のステップは、
前記ホスト物理アドレスの0に割り当てる前記第2の論理区画を受け付けるステップと、
前記第1の計算機と第2の計算機の構成情報を取得して、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当て可能な計算機を検索するステップと、
を含むことを特徴とする仮想計算機システムの制御方法。 - 請求項1に記載の仮想計算機システムの制御方法であって、
前記第3のステップは、
前記第1の計算機と第2の計算機のうち、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当て可能な前記第2の計算機を、移行先の計算機として決定することを特徴とする仮想計算機システムの制御方法。 - 請求項1に記載の仮想計算機システムの制御方法であって、
前記第3のステップは、
前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる移行先の計算機として第1の計算機を決定するステップと、
前記第1のハイパバイザが、前記第1の論理区画を前記第2の計算機にマイグレーションするステップと、を含み、
前記第4のステップは、
前記第1のハイパバイザが、前記第1の論理区画の前記マイグレーションが完了した後に、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成することを特徴とする仮想計算機システムの制御方法。 - 請求項1に記載の仮想計算機システムの制御方法であって、
前記第3のステップは、
前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる移行先の計算機として第1の計算機を決定するステップと、
前記第1のハイパバイザが、前記第1の論理区画と前記第2の論理区画を前記第2の計算機にマイグレーションするステップと、を含み、
前記第4のステップは、
前記第1のハイパバイザが、前記第1の論理区画と前記第2の論理区画の前記マイグレーションが完了した後に、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成するステップと、
前記第2のハイパバイザが、前記第2の論理区画を前記第1の計算機へマイグレーションするステップと、
を含むことを特徴とする仮想計算機システムの制御方法。 - 請求項1に記載の仮想計算機システムの制御方法であって、
前記第3のステップは、
前記第1の計算機と第2の計算機のうち前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当て可能で、かつ、前記第2の論理区画の容量よりも空きメモリの容量が大きい方を、移行先の計算機として決定することを特徴とする仮想計算機システムの制御方法。 - 請求項1に記載の仮想計算機システムの制御方法であって、
前記管理計算機が、前記第3の論理区画を前記ホスト物理アドレスが0を含まないアドレスに戻す要求を受け付ける第10のステップと、
前記管理計算機が、前記第1の計算機と第2の計算機のうち、前記ホスト物理アドレスが0を含まないアドレスに前記第3の論理区画を割り当て可能な計算機を検索する第11のステップと、
前記管理計算機が、前記第1の計算機と第2の計算機のうち前記ホスト物理アドレスが0を含まないアドレスに前記第3の論理区画を割り当てる計算機を、移行先の計算機として決定する第12のステップと、
前記管理計算機が、前記移行先の計算機のハイパバイザに、前記ホスト物理アドレスが0を含まないアドレスに第4の論理区画を生成させて、前記移行先の計算機のプロセッサを割り当て、前記第4の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を有効化させる第13のステップと、
前記管理計算機が、前記移行先のハイパバイザに前記第3の論理区画のデータを、前記第4の論理区画にコピーさせる第14のステップと、
前記移行先のハイパバイザが、前記第3の論理区画のデータのコピーの状態が所定の条件になると、前記第3の論理区画に割り当てたプロセッサを停止させる第15のステップと、
前記移行先のハイパバイザが、前記第3の論理区画のデータのコピーが完了すると、前記管理計算機にコピーの完了を通知する第16のステップと、
前記管理計算機は、前記移行先のハイパバイザに、前記第4の論理区画で前記ゲストOSを起動させてから前記アプリケーションを稼働させる第17のステップと、
をさらに含むことを特徴とする仮想計算機システムの制御方法。 - プロセッサとメモリを含む第1の計算機の計算機リソースを1以上の論理区画に割り当ててゲストOSとアプリケーションを稼働させる第1のハイパバイザと、
プロセッサとメモリを含む第2の計算機の計算機リソースを1以上の論理区画に割り当ててゲストOSとアプリケーションを稼働させる第2のハイパバイザと、
前記第1のハイパバイザと前記第2のハイパバイザを制御する管理計算機と、を含む仮想計算機システムであって、
前記第1のハイパバイザは、
当該第1のハイパバイザが認識する前記第1の計算機の前記メモリのホスト物理アドレスが0を含むアドレスに第1の論理区画を割り当て、前記第1の論理区画とは異なる前記ホスト物理アドレスに第2の論理区画を割り当て、当該第2の論理区画に前記プロセッサを割り当て、ゲストOSを起動してアプリケーションを稼働させ、
前記管理計算機は、
前記第1の計算機と第2の計算機の構成情報を取得して、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当て可能な計算機を検索し、前記第1の計算機と第2の計算機のうち前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる計算機を、移行先の計算機として決定し、前記移行先の計算機のハイパバイザに、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成させて、前記移行先の計算機のプロセッサを割り当て、前記第3の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を有効化させるLPAR管理部と、
前記第1のハイパバイザに前記第2の論理区画のデータを、前記第3の論理区画にコピーさせるマイグレーション管理部と、を含み、
前記第1のハイパバイザは、
前記第2の論理区画のデータのコピーの状態が所定の条件になると、前記第2の論理区画に割り当てたプロセッサを停止させ、前記第2の論理区画のデータのコピーが完了すると、前記管理計算機にコピーの完了を通知し、
前記LPAR管理部は、
前記移行先の計算機のハイパバイザに、前記第3の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を無効化する指令を送信し、
前記移行先の計算機のハイパバイザは、
前記第3の論理区画に割り当てたプロセッサのアドレス変換機能を無効化し、前記ゲストOSを起動してから前記アプリケーションを稼働させることを特徴とする仮想計算機システム。 - 請求項8に記載の仮想計算機システムであって、
前記LPAR管理部は、
前記ホスト物理アドレスの0に割り当てる前記第2の論理区画を受け付けることを特徴とする仮想計算機システム。 - 請求項8に記載の仮想計算機システムであって、
前記LPAR管理部は、
前記第1の計算機と第2の計算機のうち、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当て可能な前記第2の計算機を、移行先の計算機として決定することを特徴とする仮想計算機システム。 - 請求項8に記載の仮想計算機システムであって、
前記LPAR管理部は、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる移行先の計算機として第1の計算機を決定し、
前記第1のハイパバイザは、前記第1の論理区画を前記第2の計算機にマイグレーションし、
前記LPAR管理部は、前記第1のハイパバイザが、前記第1の論理区画の前記マイグレーションが完了した後に、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成することを特徴とする仮想計算機システム。 - 請求項8に記載の仮想計算機システムであって、
前記LPAR管理部は、前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当てる移行先の計算機として第1の計算機を決定し、
前記第1のハイパバイザが、前記第1の論理区画と前記第2の論理区画を前記第2の計算機にマイグレーションし、
前記LPAR管理部は、前記第1のハイパバイザが、前記第1の論理区画と前記第2の論理区画の前記マイグレーションが完了した後に、前記ホスト物理アドレスが0を含むアドレスに第3の論理区画を生成し、
前記第2のハイパバイザが、前記第2の論理区画を前記第1の計算機へマイグレーションすることを特徴とする仮想計算機システム。 - 請求項8に記載の仮想計算機システムであって、
前記LPAR管理部は、
前記第1の計算機と第2の計算機のうち前記ホスト物理アドレスが0を含むアドレスに前記第2の論理区画を割り当て可能で、かつ、前記第2の論理区画の容量よりも空きメモリの容量が大きい方を、移行先の計算機として決定することを特徴とする仮想計算機システム。 - 請求項8に記載の仮想計算機システムであって、
前記LPAR管理部は、
前記第3の論理区画を前記ホスト物理アドレスが0を含まないアドレスに戻す要求を受け付け、前記第1の計算機と第2の計算機のうち、前記ホスト物理アドレスが0を含まないアドレスに前記第3の論理区画を割り当て可能な計算機を検索し、前記第1の計算機と第2の計算機のうち前記ホスト物理アドレスが0を含まないアドレスに前記第3の論理区画を割り当てる計算機を、移行先の計算機として決定し、前記移行先の計算機のハイパバイザに、前記ホスト物理アドレスが0を含まないアドレスに第4の論理区画を生成させて、前記移行先の計算機のプロセッサを割り当て、前記第4の論理区画に割り当てるゲスト物理アドレスを、前記ホスト物理アドレスに変換するアドレス変換機能を有効化させ、
前記マイグレーション管理部が、前記移行先のハイパバイザに前記第3の論理区画のデータを、前記第4の論理区画にコピーさせ、
前記移行先のハイパバイザが、前記第3の論理区画のデータのコピーの状態が所定の条件になると、前記第3の論理区画に割り当てたプロセッサを停止させ、前記第3の論理区画のデータのコピーが完了すると、前記管理計算機にコピーの完了を通知し、
前記LPAR管理部は、前記移行先のハイパバイザに、前記第4の論理区画で前記ゲストOSを起動させてから前記アプリケーションを稼働させることを特徴とする仮想計算機システム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/071805 WO2017022014A1 (ja) | 2015-07-31 | 2015-07-31 | 仮想計算機システムの制御方法及び仮想計算機システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/071805 WO2017022014A1 (ja) | 2015-07-31 | 2015-07-31 | 仮想計算機システムの制御方法及び仮想計算機システム |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2017022014A1 true WO2017022014A1 (ja) | 2017-02-09 |
Family
ID=57942536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2015/071805 WO2017022014A1 (ja) | 2015-07-31 | 2015-07-31 | 仮想計算機システムの制御方法及び仮想計算機システム |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2017022014A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006196005A (ja) * | 2005-01-14 | 2006-07-27 | Intel Corp | バーチャルマシーンシステムの物理的メモリのバーチャル化 |
JP2010198398A (ja) * | 2009-02-26 | 2010-09-09 | Hitachi Ltd | 計算機装置および制御方法 |
-
2015
- 2015-07-31 WO PCT/JP2015/071805 patent/WO2017022014A1/ja active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006196005A (ja) * | 2005-01-14 | 2006-07-27 | Intel Corp | バーチャルマシーンシステムの物理的メモリのバーチャル化 |
JP2010198398A (ja) * | 2009-02-26 | 2010-09-09 | Hitachi Ltd | 計算機装置および制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI661301B (zh) | 記憶體系統及控制非揮發性記憶體之控制方法 | |
WO2019237791A1 (zh) | 虚拟化缓存的实现方法及物理机 | |
JP6785204B2 (ja) | メモリシステムおよび制御方法 | |
KR101944876B1 (ko) | 파일 액세스 방법 및 장치 및 스토리지 디바이스 | |
US20160266923A1 (en) | Information processing system and method for controlling information processing system | |
JP2019079464A (ja) | メモリシステムおよび制御方法 | |
WO2014006656A1 (en) | Computer system, cache control method and computer program | |
JP6242502B2 (ja) | 仮想計算機システムの制御方法及び仮想計算機システム | |
JP2019523920A (ja) | ページ・フォールト解決法 | |
WO2021047425A1 (zh) | 一种持久性内存的虚拟化方法及系统 | |
CN102662857B (zh) | 用于对于存储进行虚拟化的设备和方法 | |
JP5492731B2 (ja) | 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム | |
JP2024527054A (ja) | 動的割当可能な物理的にアドレス指定されるメタデータストレージ | |
WO2015161804A1 (zh) | 一种Cache分区的方法及装置 | |
US11640311B2 (en) | Providing non-volatile storage for permanent data to virtual machines | |
CN107832097A (zh) | 数据加载方法及装置 | |
US12174749B2 (en) | Page table manager | |
US11687359B2 (en) | Hybrid memory management apparatus and method for many-to-one virtualization environment | |
KR20120063946A (ko) | 대용량 통합 메모리를 위한 메모리 장치 및 이의 메타데이터 관리 방법 | |
WO2022222977A1 (zh) | 用于运行云业务实例的物理服务器的内存管理方法和装置 | |
WO2017022014A1 (ja) | 仮想計算機システムの制御方法及び仮想計算機システム | |
US10228859B2 (en) | Efficiency in active memory sharing | |
JP6495871B2 (ja) | リソース管理システム、リソース管理サーバ及びリソース管理方法 | |
JP2007334572A (ja) | Os切り替えシステム、仮想計算機システム、os切り替え方法及びos切り替え用プログラム | |
US12013787B2 (en) | Dual personality memory for autonomous multi-tenant cloud environment |
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: 15900328 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15900328 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: JP |