WO2011086824A1 - Migration management device, migration management system, migration management method, and migration management program - Google Patents
Migration management device, migration management system, migration management method, and migration management program Download PDFInfo
- Publication number
- WO2011086824A1 WO2011086824A1 PCT/JP2010/073071 JP2010073071W WO2011086824A1 WO 2011086824 A1 WO2011086824 A1 WO 2011086824A1 JP 2010073071 W JP2010073071 W JP 2010073071W WO 2011086824 A1 WO2011086824 A1 WO 2011086824A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- migration
- program
- memory
- ecpd
- mpd
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
- G06F11/3461—Trace driven simulation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
Definitions
- the present invention relates to a migration management apparatus, a migration management system, a migration management method, and a migration management program.
- Patent Document 1 discloses a file block allocation control program. The program preferentially allocates blocks with high I / O access frequency to high-speed storage devices.
- Patent Document 2 discloses an application migration method between different types of devices. In this method, each component of the application is classified into a hardware dependent part and an independent part. In this method, the migration destination device includes an alternative component of the hardware dependent unit, and reconfigures the application together with the migrated hardware independent unit.
- Patent Document 3 discloses a cluster system for migrating virtual machines. The system allocates resources to each virtual machine according to the required performance level. When an application achieves performance beyond expectations, the system reduces the resources of the virtual machine that executes the application, and increases the resources of the virtual machine that executes the application whose performance is degraded.
- Patent Document 4 discloses a processing server constituting a distributed batch system. In response to a batch migration request from the management server, the server executes a job scheduling daemon and outputs the predicted completion time of the batch job and whether the completion before deadline is possible. JP-A-11-184739 JP2002236659 JP 2006-244441 A JP 2002-342098 A
- the technique of the above-mentioned patent document has a problem that when a program is migrated between platforms having a difference in instruction execution performance, the performance degradation before and after the migration cannot be reduced.
- the program of Patent Document 1 does not solve the performance problem regarding migration between platforms.
- the program does not consider the performance difference before and after the allocation. Therefore, if the performance of the memory that can be allocated is not sufficient, there is a possibility that a significant performance degradation will occur after the allocation.
- the techniques of Patent Documents 2, 3, and 4 do not consider the performance degradation after migration based on the instruction execution performance between platforms, and do not solve the above-described problems.
- An object of the present invention is to provide a migration management apparatus, a migration management system, a migration management method, and a migration management program that solve the above-described problems.
- the migration management apparatus includes a memory capacity allocated to a migration program that operates on a migration source machine connected to the own apparatus via a network, and an effective instruction speed (ECPs) on the migration source machine.
- ECPs effective instruction speed
- the performance calculation means for calculating and the migration program to be migrated to its own device allocate the memory of the own device satisfying the MPd and having the capacity, and output an error report when the allocation is not possible Resource allocation means is provided.
- a migration management program stored on a computer-readable medium is a memory capacity allocated to a migration program that operates on a migration source machine connected to the computer through a network. And an effective instruction speed (ECPs) on the migration source machine, and an effective instruction speed (ECPd) of the migration program description instruction on the ECPs and its own device and a memory speed (MPe) as a basis of the ECPd.
- ECPs effective instruction speed
- ECPd effective instruction speed
- MPe memory speed
- a computer has a memory capacity allocated to a migration program that operates on a migration source machine connected to its own device through a network, and an effective instruction on the migration source machine.
- ECPs speed
- ECPd effective instruction speed
- MPe memory speed
- the migration management apparatus can reduce performance degradation before and after migration when a program is migrated between platforms having a difference in instruction execution performance.
- FIG. 1 shows the overall configuration of the migration management system 400.
- FIG. 2 shows the configuration of the user program 130.
- FIG. 3 shows the configuration of the kernel table 114.
- FIG. 4 shows the configuration of the program configuration table 121.
- FIG. 5 is an operation flowchart of the migration management apparatus 300.
- FIG. 6 shows the configuration of the migration management apparatus 300.
- FIG. 1 is a configuration diagram of a migration management system 400 according to this embodiment.
- the migration management system 400 includes one or more migration management apparatuses 300 and one or more migration source machines 200 connected via the network 140.
- the migration management apparatus 300 inputs and executes (migrates or migrates) a user program (migration program 132 in the user program 130) executed on the migration source machine 200.
- the present invention prevents the deterioration of the instruction speed due to emulation or the like that occurs with migration by using a high-speed memory.
- the migration management apparatus 300 includes a physical machine 100 and a kernel program 110.
- the migration source machine 200 includes a physical machine 100, a kernel program 110, a program management unit 120, and a user program 130.
- the physical machine 100 is a computer that operates under program control, and includes a central processing unit (CPU), a main memory or a secondary memory (memory), a communication unit, an input / output device, peripheral devices, and the like.
- the kernel program 110 is a program that operates on the physical machine 100 and has a function of allocating hardware resources of the physical machine 100 to each program executed on the physical machine 100.
- the kernel program 110 indicates an operating system (OS) kernel or the like.
- OS operating system
- the kernel program 110 indicates a virtual machine monitor or the like in a virtual computing environment.
- the kernel program 110 of the migration management apparatus 300 includes a resource allocation unit 111, a performance calculation unit 112, and an emulator 113.
- the kernel program 110 of the migration management apparatus 300 holds a kernel table 114 describing the characteristics of the physical machine 100 in the memory.
- the kernel program 110 also has general OS functions other than those described above.
- the resource allocation unit 111 allocates a migration memory to each user program 130 to be migrated.
- the performance calculation unit 112 calculates a required memory speed (MPd) of the memory. This part is based on, for example, the effective instruction speed (ECPs) on the migration source machine 200, the effective instruction speed (ECPd) of the instruction describing the user program 130 in the own apparatus, and the memory speed (MPe) that is the basis of ECPd. Then, MPd is calculated.
- the memory speed (MPe) on which ECPd is based is the memory speed used for the calculation or measurement of ECPd.
- the memory speed indicates, for example, a memory bus width, a memory cycle time, a memory access time, or a data transfer speed (transfer rate) combining these.
- the memory transfer rate is assumed to be the data transfer rate.
- the effective instruction speed ECP indicates, for example, an instruction execution time.
- the execution command speed ECPd of the migration management apparatus 300 can be measured by executing the evaluation program 131 on the apparatus. If the instruction set or the mounted device (instruction or the like) is not compatible between the migration source machine 200 and the migration destination migration management apparatus 300 and the migrated program is executed on the emulator 113, the ECPd is a performance by emulation. The value reflects the decline.
- the emulator 113 dynamically emulates this instruction and the like when the user program 130 described by the instruction of the migration source machine 200 and using the device of the machine cannot be directly executed by the migration management apparatus 300.
- the emulator 113 has, for example, a CPU state conversion function, a code conversion function, and a device emulation function.
- the CPU state conversion function converts the CPU state of the migration source machine 200 to the state of the migration management apparatus 300.
- the code conversion function converts the instruction of the migration source machine 200 into the instruction of the migration management apparatus 300.
- the device emulation function imitates a device operation that the migration source machine 200 has and the migration management apparatus 300 does not have.
- the resource allocation unit 111 and the performance calculation unit 112 may be realized as a hardware device controlled by the kernel program 110, or realized by the CPU of the physical machine 100 executing the migration management program 101 on the memory. May be.
- the kernel program 110 of the migration source machine 200 includes a sending unit 118. In response to an instruction from the user or the like, the sending unit 118 requests the specific migration management apparatus 300 to migrate the migration program 132 executed on the migration source machine 200.
- the kernel program 110 of the migration source machine 200 also has a general OS function other than the above.
- the program management unit 120 operates according to instructions from the kernel program 110.
- the same unit includes a CPU information management module for managing CPU information assigned to each user program 130 and a memory information management module for managing memory information assigned to each user program 130.
- this unit includes a driver management module that manages information of the physical machine 100 on which each user program 130 operates.
- the program management unit 120 holds a program configuration table 121 for managing the above-described information on a memory.
- the CPU information management module has a function of storing CPU architecture information of all user programs 130 running on the kernel program 110 in the program configuration table 121.
- the CPU architecture information includes CPU instruction set information, endian information, or extended instruction information.
- the memory information management module has a function of storing the size and memory speed information of all storage device modules (hereinafter referred to as memory elements) used by the user program 130 running on the kernel program 110 in the program configuration table 121. .
- the device driver management module has a function of storing platform information held by all user programs 130 running on the kernel program 110 in the program configuration table 121.
- the platform information includes hardware information of a virtual or real device operated by the user program 130.
- FIG. 2 shows the configuration of the user program 130.
- the user program 130 is a program that operates on the physical machine 100 using the functions provided by the kernel program 110.
- the user program 130 includes a migration program 132 and an evaluation program 131.
- the migration program 132 is an application program that does not have the authority to operate the kernel area, or a single-function application component in a distributed execution environment.
- the migration program 132 is a virtual machine in a virtual computing environment, for example.
- the migration program 132 is originally executed on the migration source machine 200, but is migrated to the migration management apparatus 300.
- the evaluation program 131 is created by a user or the like reflecting, for example, a usage pattern such as an instruction used by the migration program 132 or an access pattern of a memory element.
- the evaluation program 131 is described by an instruction of a specific physical machine 100 such as the migration source machine 200.
- the evaluation program 131 includes, for example, an evaluation code section in which the number of execution instructions is known, an execution time measurement section for the evaluation code, an execution time per instruction from the measured execution time and the number of execution instructions, that is, an effective instruction speed ECPd. It is comprised from the part which calculates.
- the number of execution instructions may be configured such that the emulator 113 or the like measures when the evaluation program 131 is executed.
- the evaluation program 131 may have a function of recording an instruction history or a system call history, and a function of measuring a memory access amount and a memory access time for each memory element used by the user program 130.
- the ECPd can be accurately measured when the evaluation program 131 is prepared for each migration program 132.
- the plurality of user programs 130 may share one evaluation program 131.
- the program code and data format of the user program 130 are not necessarily compiled to operate on the physical machine 100 of the migration source machine 200. This is because the migration source machine 200 may function as a relay device for another migration source machine 200 in the migration of the user program 130.
- the sending unit 118 of the migration source machine 200 transmits the migration program 132 and the evaluation program 131 to the migration management apparatus 300 via the communication unit.
- a single computer may have the configurations of both the migration management apparatus 300 and the migration source machine 200. That is, a computer that functions as the migration management apparatus 300 (or migration source machine 200) in a certain migration may be configured to function as the migration source machine 200 (or migration management apparatus 300) in another migration. Further, the configuration and type of the physical machine 100 of the migration management apparatus 300 are not necessarily the same as the physical machine 100 of the migration source machine 200.
- the kernel program 110 of the migration management apparatus 300 holds configuration information of hardware managed by the kernel program 110 among the hardware included in the physical machine 100 as a kernel table (FIG. 3) in a memory.
- FIG. 3 kernel table
- the kernel table 114 includes CPU and device information and memory resource information managed by the kernel program 110 of the migration management apparatus 300.
- the CPU information is, for example, an ISA (M) 501 that specifies a native instruction set of the physical machine 100 and an Endian (M) 502 that specifies whether the data is big endian or little endian. If both ISA (M) 501 and Endian (M) 502 of the two physical machines 100 match, CPU emulation is not necessary for program transfer between the machines, but CPU emulation is necessary if they are different.
- the device information is a Device (M) 500 that specifies a device configuration included in the physical machine 100.
- Device (M) 500 is a platform name assigned to each device configuration, for example.
- the Device (M) 500 may directly store individual device information. If the Device (M) 500 of the two physical machines 100 match, device emulation is not required for program transfer between the machines, but device emulation is required if they are different. Device emulation is to emulate information output of a device when an input / output command is issued to a device that the physical machine 100 does not have. For example, the CPU emulates device operation by accessing emulation information stored in the memory.
- the memory resource information is, for example, TransRate (M) 503 (memory speed) that is the data transfer speed of the mounted memory, and Free 504 that indicates the free capacity of the memory.
- the kernel table 114 includes an emulation capability 505 that is information for specifying a CPU and a device that can be emulated by the emulator 113.
- the emulation capability 505 is, for example, a list of instruction set identification information (ISA), data format identification information (Endian), and device configuration identification information (Device).
- ISA instruction set identification information
- Endian data format identification information
- Device device configuration identification information
- the EmulationCapability 505 stores a plurality of lists.
- the information stored in the kernel table 114 may be acquired and set by the kernel program 110 from its own management data or the physical machine 100, or set by the system administrator of the migration management apparatus 300 as a system parameter. Also good. In the example of FIG.
- the kernel program 110 of the migration management apparatus 300 manages four types of memory elements.
- the memory element in the first row has a transfer speed of 12800 [MB / s] and is currently 2560 [MB].
- the kernel program 110 operates on a physical machine 100 having an instruction set “ARCH_A”, a little-endian CPU, and a device configuration specified by the name “Platform1”. Represents that.
- FIG. 4 shows the program configuration table 121 in the embodiment of the present invention.
- the program configuration table 121 includes information on memory resources being used by the user program 130 and information on CPUs and devices of the operable physical machine 100.
- the resource allocation unit 111 compares the program corresponding row of the program configuration table 121 with the CPU and device information of the kernel table 114, and the compatibility of the program between the migration source and the migration destination is confirmed. Judge whether there is. If there is no compatibility, the resource allocation unit 111 executes the migrated program on the emulator 113.
- the program configuration table 121 stores, for each identifier (program ID 601) of the user program 130, device configuration information (Device (P) 607) of the physical machine 100 in which the program can operate.
- the program configuration table 121 further includes, for each program ID 601, identification information (ISA (P) 602) and data format identification information (Endian (P) 603) of an instruction set in which the program is described.
- the program configuration table 121 further stores a memory speed (TransRate (P) 604) and an allocated amount (Assign 605) of a memory allocated for storing instructions and data of the program. These pieces of information are usually information about the migration source machine 200, and the program management unit 120 inputs these pieces of information from the kernel program 110 of the own apparatus and stores them in the program configuration table 121. The program management unit 120 may input such information from the system administrator of the migration source machine 200. Further, these pieces of information may be described in the user program 130 and read by the program management unit 120 from the user program 130.
- the program configuration table 121 may store an instruction speed (P) 606.
- the instruction speed (P) 606 is an effective instruction speed under the physical machine 100 having a configuration specified by Device (P) 607, ISA (P) 602, Endian (P) 603, and TransRate (P) 604.
- the program management unit 120 inputs the output value of the evaluation program 131 executed on the migration source machine 200 and stores it in the instruction speed (P) 606.
- the program management unit 120 may input the specification information of the physical machine 100 and the output value of the evaluation program 131 from the system administrator of the migration source machine 200 and store them in the command speed (P) 606.
- FIG. 4 shows that the user program “UID1” operates on the big endian CPU with the instruction set “ARCH_B” and the physical machine 100 having the device configuration “Platform1”, and uses 96 MB of a storage device of 120 MB / s. Illustrated.
- the program management unit 120 and the sending unit 118 may be realized by hardware by a circuit, or may be realized by software by executing a program on the computer or the kernel program 110.
- FIG. 5 is a flowchart of the migration operation of the migration management apparatus 300 of this embodiment. In the following description example, the migration management apparatus 300 migrates the migration program 132 of the user program 130 executed on the migration source machine 200 to the own apparatus.
- the resource allocation unit 111 of the migration management apparatus 300 receives a migration request specifying a specific migration program 132 being executed on the same machine from the sending unit 118 of the migration source machine 200 and starts the migration process.
- the apparatus may receive a migration request specifying the migration source machine 200 and a specific migration program 132 from a user terminal connected to the apparatus.
- the resource allocation unit 111 acquires the characteristic information of the migration target user program 130 stored in the program configuration table 121 from the program management unit 120 of the migration source machine 200 (S101).
- the characteristic information acquired here is Device (P) 607, ISA (P) 602, Endian (P) 603, Assign 605, and command speed (P) 606.
- the acquired command speed (P) 606 is referred to as ECPs hereinafter.
- the resource allocation unit 111 acquires the acquired Device (P) 607, ISA (P) 602, Endian (P) 603, and Device (M) 500, ISA (M) 501, Endian (M) of the kernel table 114 of the own device. Compare 502. When even a part does not match, the same part determines that the migration management apparatus 300 cannot execute the program code of the user program 130 as it is (the instruction is not compatible between the migration source and the migration destination) (No in S102). If they are not compatible, the resource allocation unit 111 has a list (Device, ISA, Endian) that matches the acquired pair of Device (P) 607, ISA (P) 602, and Endian (P) 603 (EndianCapability 505 in the kernel table 114).
- the same part determines whether or not the own apparatus can perform the migration source emulation (S103). When the emulation cannot be performed (cannot be found) (No in S103), the same part determines that migration is impossible, outputs an error report to that effect, and ends the migration process (S108).
- the output destination of the error report is a migration request transmission source (user terminal or migration source machine 200) or the like. If emulation is possible (Yes in S103), the same unit obtains the evaluation program 131 of the corresponding user program 130 via the sending unit 118 of the migration source machine 200, and executes it using the emulator 113 (S104). .
- the resource allocation unit 111 sets, for example, the acquired Device (P) 607, ISA (P) 602, and Endian (P) 603 as operation parameters of the emulator 113.
- the emulator 113 performs emulation of Device (P) 607, ISA (P) 602, and Endian (P) 603.
- the resource allocating unit 111 may select one that emulates the acquired Device (P) 607, ISA (P) 602, and Endian (P) 603 from among a plurality of emulators 113.
- the same unit loads the evaluation program 131 and the emulator 113 into a memory having a known memory access speed value MPe, allocates a memory having the speed as a data area, and executes the evaluation program 131 while emulating the emulator 113. .
- the resource allocation unit 111 executes the execution of the evaluation program 131 so as not to be interrupted by preemption or the like.
- the executed evaluation program 131 calculates and outputs the effective instruction speed ECPd by dividing the time required for executing the evaluation code by the number of executed instructions.
- the output ECPd is an effective instruction speed when the memory access speed is MPe.
- the performance calculation unit 112 calculates the required memory speed MPd using the following equation 1 based on the effective instruction speed ECPd and the memory speed MPe output from the evaluation program 131, and the resource It outputs to the allocation part 111 (S105).
- This equation is based on the premise that the performance degradation of ECPd occurs due to an increase in the number of memory accesses caused by emulation and the like, and the performance degradation due to other factors can be ignored compared to ECPs. Under this assumption, the performance calculation unit 112 calculates the required memory speed MPd required to compensate for the performance degradation using the equation (1).
- the resource allocation unit 111 may calculate the estimated value of ECPd without executing the evaluation program 131.
- the resource allocation unit 111 refers to the TransRate (M) 503 and the Free 504 in the kernel table 114, and whether the storage device satisfying the requested memory speed MPd exists in the own device with sufficient free space (the acquired Assign 605 or higher). Determine (S106). If there is no memory (request memory) that satisfies the condition (No in S106), the same part determines that migration is impossible, outputs an error report to that effect, and ends the migration process (S109). .
- the source (user terminal or migration source machine 200) of the migration request that received the error report selects another migration management device 300 in the migration management system 400, for example, and resends the migration request. If the requested memory exists (Yes in S106), the resource allocation unit 111 acquires the migration program 132 from the sending unit 118 of the migration source machine 200, allocates the requested memory, and starts executing the migration program 132 on the emulator 113. To do. That is, the same part performs live migration of the user program 130 (S107).
- the acquired Device (P) 607, ISA (P) 602, and Endian (P) 603 match the Device (M) 500, ISA (M) 501, and Endian (M) 502 in the kernel table 114 of the own device.
- the migration management apparatus 300 of this embodiment can achieve the following effects.
- the first effect is that the performance degradation of the migration program 132 migrated from the latter to the former can be suppressed regardless of whether the instructions of the physical machine 100 included in the migration management apparatus 300 and the migration source machine 200 are compatible. It is. The reason is that even when the effective instruction speed is reduced due to emulation or the like, performance is maintained by allocating a high-speed memory to the migration program 132.
- the performance calculation unit 112 of the present embodiment uses a calculation formula that reflects the CPU load (L) in the calculation of the required memory speed MPd (S105 in FIG. 5).
- the effective instruction speed ECPd decreases as a result of memory access contention among a plurality of CPUs and input / output data transfer devices.
- the evaluation program 131 is executed to calculate the effective instruction speed ECPd, a speed that is too low is measured.
- the performance calculation unit 112 of the present embodiment uses the following calculation formula that reflects the CPU load in calculating the required memory speed MPd.
- the CPU usage rate L is a measured value of the kernel program 110, and is a real number between 0 (meaning 0%) and 1 (meaning 100%).
- a is an estimated value of the maximum delay magnification of ECPd due to an increase in the CPU usage rate, and is given to the performance calculation unit 112 as a parameter by the system administrator or the like.
- the performance calculation unit 112 can be configured to use various functions as func (L). Under the assumption that the memory access time increases exponentially as the CPU load increases, the performance calculation unit 112 may be configured to use, for example, the following equation (3) as func (L).
- the performance calculation unit 112 can be configured to use, for example, the following equation (4) as func (L).
- the performance calculation unit 112 may be configured to use an approximate expression obtained as a result of actual measurement of the memory contention effect accompanying an increase in CPU load, for example, a higher-order function of the CPU load L. If the CPU usage rate is greater than or equal to a predetermined value, the resource allocation unit 111 may wait for the CPU usage rate to decrease before executing the evaluation program 131 (S105).
- the migration management apparatus 300 of the present embodiment can calculate the required memory speed MPd sufficient to prevent performance degradation under normal load conditions even when the effective instruction speed ECPd is measured in a situation where the CPU usage rate is high.
- the performance calculation unit 112 calculates MPd by increasing the MPd according to the CPU load at the time of measurement.
- the present invention has been described above with reference to preferred embodiments. However, the present invention is not necessarily limited to the above-described embodiments, and can be carried out by changing the form within the scope of the technical idea. it can.
- the emulator 113 may execute only one of CPU emulation and device emulation.
- the kernel table 114 and the program configuration table 121 may not include the Device (M) 500, the Device (P) 607, the ISA (M) 501, or the like, the ISA (P) 602, or the like.
- the present invention can be applied to migration between physical machines 100 having code compatibility.
- the present invention can reduce performance degradation due to an effective instruction speed difference caused by a microcode mounting difference or the like.
- the migration source machine 200 includes the program management unit 120.
- the computer described as the physical machine 100 in the present embodiment may be a virtual computer.
- FIG. 6 shows the configuration of the migration management apparatus 300 of the third embodiment.
- the apparatus includes a performance calculation unit 112 and a resource allocation unit 111.
- the performance calculation unit 112 inputs the memory capacity allocated to the migration program 132 operating on the migration source machine 200 connected to the own apparatus through the network 140 and the effective instruction speed (ECPs) on the migration source machine 200. The same part calculates the required memory speed (MPd) based on the ECPs and the effective instruction speed (ECPd) of the migration program 132 description instruction on its own device and the memory speed (MPe) that is the basis of the ECPd.
- the resource allocation unit 111 allocates the memory included in the own device that satisfies MPd and has the capacity for the migration program 132 to be migrated to the own device, and outputs an error report when the allocation cannot be performed.
- the migration management apparatus 300 can reduce performance degradation before and after migration when migrating a program between platforms having instruction execution performance differences. The reason is that even when the effective instruction speed is reduced due to emulation or the like, performance is maintained by allocating a high-speed memory to the migration program 132.
- the present invention has been described with reference to the embodiments (and examples), the present invention is not limited to the above embodiments (and examples). Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2010-003829 for which it applied on January 12, 2010, and takes in those the indications of all here.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本発明はマイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラムに関する。 The present invention relates to a migration management apparatus, a migration management system, a migration management method, and a migration management program.
特許文献1は、ファイルブロック割り当て用制御プログラムを開示する。同プログラムは、I/Oアクセスの頻度が高いブロックを高速な記憶装置に優先的に割り当てる。
特許文献2は、異種デバイス間におけるアプリケーションのマイグレーション方法を開示する。同方法は、アプリケーションの各コンポーネントをハードウェア依存部・非依存部に分類する。同方法において、マイグレーション先デバイスは、ハードウェア依存部の代替コンポーネントを備え、マイグレーションされたハードウェア非依存部とともにアプリケーションを再構成する。
特許文献3は、仮想マシンをマイグレーションするクラスタシステムを開示する。
同システムは、要求される性能レベルに応じて、各仮想マシンに対して資源割り当てを行う。或るアプリケーションが予想以上の性能を達成している場合、同システムは、このアプリケーションを実行する仮想マシンの資源を減らして、性能低下しているアプリケーションを実行する仮想マシンの資源を増加させる。
特許文献4は、分散バッチシステムを構成する処理サーバを開示する。同サーバは、管理サーバからバッチ移行要求を受けて、ジョブスケジューリングデーモンを実行してバッチジョブの予測完了時間及びデッドライン前の完了可/不可を出力する。
Patent Document 3 discloses a cluster system for migrating virtual machines.
The system allocates resources to each virtual machine according to the required performance level. When an application achieves performance beyond expectations, the system reduces the resources of the virtual machine that executes the application, and increases the resources of the virtual machine that executes the application whose performance is degraded.
Patent Document 4 discloses a processing server constituting a distributed batch system. In response to a batch migration request from the management server, the server executes a job scheduling daemon and outputs the predicted completion time of the batch job and whether the completion before deadline is possible.
上記特許文献の技術は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減できないという課題がある。
特許文献1のプログラムは、プラットフォーム間のマイグレーションについての性能問題を解決しない。また、当該プログラムは、割り当てに際して割り当て前後の性能差を考慮しない。したがって、割当可能なメモリの性能が十分でない場合、割当後に大幅な性能低下を発生させる可能性がある。
特許文献2、3及び4の技術は、プラットフォーム間の命令実行性能に基づくマイグレーション後の性能低下を考慮しておらず、上述の課題を解決しない。本発明の目的は上述の課題を解決する、マイグレーション管理装置、マイグレーション管理システム、マイグレーション管理方法、及びマイグレーション管理プログラムを提供することである。
The technique of the above-mentioned patent document has a problem that when a program is migrated between platforms having a difference in instruction execution performance, the performance degradation before and after the migration cannot be reduced.
The program of
The techniques of
本発明の一実施の形態に係るマイグレーション管理装置は、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出手段と、自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て手段を備える。
本発明の一実施の形態に係るコンピュータ読み取り可能な媒体に格納されたマイグレーション管理プログラムは、コンピュータに、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する性能算出処理と、自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て処理を実行させる。
本発明の一実施の形態に係るマイグレーション管理方法は、コンピュータが、自装置とネットワークで接続された移行元マシン上で動作する移行プログラムに割り当てられたメモリの容量及び前記移行元マシン上における実効命令速度(ECPs)を入力して、前記ECPs及び自装置上に於ける前記移行プログラム記述命令の実効命令速度(ECPd)及び前記ECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出し、自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する。
The migration management apparatus according to an embodiment of the present invention includes a memory capacity allocated to a migration program that operates on a migration source machine connected to the own apparatus via a network, and an effective instruction speed (ECPs) on the migration source machine. ) To determine the required memory speed (MPd) based on the ECPs, the effective instruction speed (ECPd) of the migration program description instruction on the device, and the memory speed (MPe) on which the ECPd is based. The performance calculation means for calculating and the migration program to be migrated to its own device allocate the memory of the own device satisfying the MPd and having the capacity, and output an error report when the allocation is not possible Resource allocation means is provided.
A migration management program stored on a computer-readable medium according to an embodiment of the present invention is a memory capacity allocated to a migration program that operates on a migration source machine connected to the computer through a network. And an effective instruction speed (ECPs) on the migration source machine, and an effective instruction speed (ECPd) of the migration program description instruction on the ECPs and its own device and a memory speed (MPe) as a basis of the ECPd. ) Based on the performance calculation processing for calculating the required memory speed (MPd), and the allocation of the memory included in the own device having the capacity and satisfying the MPd for the migration program to be migrated to the own device, If the allocation is not possible, the resource allocation process that outputs an error report is executed. That.
In the migration management method according to an embodiment of the present invention, a computer has a memory capacity allocated to a migration program that operates on a migration source machine connected to its own device through a network, and an effective instruction on the migration source machine. Enter the speed (ECPs), and based on the ECPs and the effective instruction speed (ECPd) of the migration program description instruction on the device and the memory speed (MPe) on which the ECPd is based, the required memory speed ( MPd) is calculated, and the memory allocation of the self-device that satisfies the MPd and has the capacity is performed for the migration program to be migrated to its own device, and an error report is output when the allocation is not possible.
本発明にかかるマイグレーション管理装置は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減することができる。 The migration management apparatus according to the present invention can reduce performance degradation before and after migration when a program is migrated between platforms having a difference in instruction execution performance.
100 物理マシン
101 マイグレーション管理プログラム
110 カーネルプログラム
111 資源割り当て部
112 性能算出部
113 エミュレータ
114 カーネル表
118 送出部
120 プログラム管理部
121 プログラム構成表
130 ユーザプログラム
131 評価プログラム
132 移行プログラム
140 ネットワーク
200 移行元マシン
300 マイグレーション管理装置
400 マイグレーション管理システム
500 Device(M)
501 ISA(M)
502 Endian(M)
503 TransRate(M)
504 Free
505 EmulationCapability
601 プログラムID
602 ISA(P)
603 Endian(P)
604 TransRate(P)
605 Assign
606 命令速度(P)
607 Device(P)
DESCRIPTION OF
501 ISA (M)
502 Endian (M)
503 TransRate (M)
504 Free
505 EmulationCapability
601 Program ID
602 ISA (P)
603 Endian (P)
604 TransRate (P)
605 Assign
606 Command speed (P)
607 Device (P)
〈第一の実施形態〉
図1は、本実施の形態のマイグレーション管理システム400の構成図である。マイグレーション管理システム400は、ネットワーク140を経由して接続された、一台以上のマイグレーション管理装置300と一台以上の移行元マシン200を包含する。マイグレーション管理装置300は、移行元マシン200で実行されている利用者のプログラム(ユーザプログラム130内の移行プログラム132)を入力して実行する(マイグレート、または移行する)。
本発明は、マイグレーションに伴って発生するエミュレーション等による命令速度の劣化を、高速なメモリを使用することで防止する。
図1において、マイグレーション管理装置300は、物理マシン100、カーネルプログラム110を備える。移行元マシン200は、物理マシン100、カーネルプログラム110、プログラム管理部120、ユーザプログラム130を備える。
物理マシン100は、プログラム制御により動作するコンピュータであり、Central Processing Unit(CPU)、メインメモリまたは二次メモリ(メモリ)、通信部、入出力装置、周辺機器等を備える。
カーネルプログラム110は物理マシン100上で動作するプログラムであり、物理マシン100の有するハードウェア資源を当該物理マシン100上で実行される各プログラムに割り当てる機能を有する。前記カーネルプログラム110は、Operating System(OS)のカーネル等を指すが、例えば仮想計算環境下においては仮想マシンモニタ等を指す。
マイグレーション管理装置300のカーネルプログラム110は、資源割り当て部111、性能算出部112と、エミュレータ113を備える。マイグレーション管理装置300のカーネルプログラム110は、物理マシン100の特性を記述したカーネル表114をメモリ上に保持する。カーネルプログラム110は、上記以外の一般的なOS機能も有する。
資源割り当て部111は、移行される各ユーザプログラム130に移行用のメモリを割り当てる。
性能算出部112は当該メモリの要求メモリ速度(MPd)を算出する。同部は、例えば、移行元マシン200上における実効命令速度(ECPs)、及び自装置におけるユーザプログラム130を記述した命令の実効命令速度(ECPd)及びECPdの基礎となるメモリ速度(MPe)に基づいて、MPdを算出する。ECPdの基礎となるメモリ速度(MPe)は、ECPdの算定または測定等に用いたメモリ速度である。
ここで、メモリ速度は、例えば、メモリバス幅、メモリサイクルタイム、メモリアクセスタイム、あるいはこれらを組み合わせたデータ転送速度(転送レート)等を指す。以降メモリ転送速度は、データ転送速度であるとする。
実効命令速度ECPは、例えば命令の実行時間を指す。マイグレーション管理装置300の実行命令速度ECPdは、当該装置上で評価プログラム131を実行することで測定可能である。移行元マシン200と移行先のマイグレーション管理装置300との間に命令セットまたは実装デバイス(命令等)の互換性がなく、移行されたプログラムがエミュレータ113上で実行される場合、ECPdはエミュレーションによる性能低下を反映した値となる。
エミュレータ113は、移行元マシン200の命令で記述され、かつ当該マシンのデバイスを使用するユーザプログラム130が、マイグレーション管理装置300で直接実行不可能な場合に、この命令等を動的にエミュレーションして実行する。エミュレータ113は、例えば、CPU状態変換機能、コード変換機能、デバイスエミュレーション機能を有する。
CPU状態変換機能は、移行元マシン200のCPU状態をマイグレーション管理装置300の状態へ変換する。コード変換機能は、移行元マシン200の命令をマイグレーション管理装置300の命令に変換する。デバイスエミュレーション機能は、移行元マシン200が備え、マイグレーション管理装置300が備えないデバイス動作を模倣する。
資源割り当て部111、及び性能算出部112は、カーネルプログラム110から制御されるハードウェア装置として実現されても良いし、物理マシン100のCPUがメモリ上のマイグレーション管理プログラム101を実行することで実現されても良い。
移行元マシン200のカーネルプログラム110は送出部118を備える。送出部118は、利用者等の指示を受けて、特定のマイグレーション管理装置300に対して、移行元マシン200で実行されている移行プログラム132の移行を依頼する。移行元マシン200のカーネルプログラム110は、上記以外の一般的なOS機能も有する。
プログラム管理部120は、カーネルプログラム110の指示で動作する。同部は、各ユーザプログラム130に割り当てられたCPU情報を管理するCPU情報管理モジュールと、各ユーザプログラム130に割り当てられたメモリ情報を管理するメモリ情報管理モジュールを備える。さらに同部は、各ユーザプログラム130が動作する物理マシン100の情報を管理するドライバ管理モジュールを備える。プログラム管理部120は、上述した情報を管理する為のプログラム構成表121をメモリ上に保持する。
CPU情報管理モジュールは、カーネルプログラム110上で稼動している全てのユーザプログラム130のCPUアーキテクチャ情報をプログラム構成表121に格納する機能を有する。CPUアーキテクチャ情報は、CPU命令セット情報、エンディアン情報、あるいは拡張命令情報を包含する。
メモリ情報管理モジュールは、カーネルプログラム110上で稼動しているユーザプログラム130が使用している全ての記憶装置モジュール(以降メモリ要素)のサイズ及びメモリ速度情報をプログラム構成表121に格納する機能を有する。
デバイスドライバ管理モジュールは、カーネルプログラム110上で稼動している全てのユーザプログラム130が持つプラットフォーム情報をプログラム構成表121に格納する機能を有する。プラットフォーム情報は、ユーザプログラム130が操作する仮想あるいは実デバイスのハードウェア情報を包含する。
図2は、ユーザプログラム130の構成を示す。ユーザプログラム130は、カーネルプログラム110の提供する機能を使用して物理マシン100上で動作するプログラムである。ユーザプログラム130は、移行プログラム132と評価プログラム131を包含する。
移行プログラム132は、カーネル領域を操作する権限をもたないアプリケーションプログラム、あるいは分散実行環境下における単機能なアプリケーションコンポーネントである。移行プログラム132は、例えば仮想計算環境下では仮想マシンである。移行プログラム132は、元々移行元マシン200で実行されているが、マイグレーション管理装置300に移行される。
評価プログラム131は、例えば、移行プログラム132が使用している命令等の使用パターンやメモリ要素のアクセスパターンを反映して利用者等によって作成されるものである。評価プログラム131は、移行元マシン200等の特定の物理マシン100の命令で記述される。評価プログラム131は、例えば、実行命令数が既知である評価用コード部、評価用コードの実行時間計測部、計測された実行時間と実行命令数から一命令当たりの実行時間、即ち実効命令速度ECPdを算出する部分とから構成される。なお、実行命令数は、評価プログラム131実行時にエミュレータ113等が計測するような構成としても良い。
さらに、評価プログラム131は、命令履歴あるいはシステムコール履歴を記録する機能と、ユーザプログラム130が使用する各メモリ要素へのメモリアクセス量及びメモリアクセス時間を測定する機能とを備えても良い。
一般的に、評価プログラム131は移行プログラム132毎に用意された方が、ECPdを正確に測定出来る。しかし、複数のユーザプログラム130の命令実行特性が類似している場合、当該複数のユーザプログラム130が1つの評価プログラム131を共用しても良い。
ユーザプログラム130のプログラムコード及びデータフォーマットは必ずしも移行元マシン200の物理マシン100上で動作するようにコンパイルされているとは限らない。移行元マシン200は、ユーザプログラム130の移行に於いて、別の移行元マシン200の中継装置として機能することもあるからである。
移行元マシン200の送出部118は、移行プログラム132及び評価プログラム131を、通信部を介してマイグレーション管理装置300に送信する。
なお、一台のコンピュータが、マイグレーション管理装置300と移行元マシン200の両者の構成を備えていても良い。即ち、或るマイグレーションにおいてマイグレーション管理装置300(または移行元マシン200)として機能したコンピュータが、別のマイグレーションにおいて移行元マシン200(またはマイグレーション管理装置300)として機能出来る構成にしても良い。
また、マイグレーション管理装置300の物理マシン100の構成や種類は、必ずしも移行元マシン200の物理マシン100と同一であるとは限らない。
マイグレーション管理装置300のカーネルプログラム110は、物理マシン100の備えるハードウェアのうち、カーネルプログラム110の管理下にあるハードウェアの構成情報を、カーネルテーブル(図3)としてメモリに保有している。
図3は、カーネル表114を示している。カーネル表114は、マイグレーション管理装置300のカーネルプログラム110が管理するCPU及びデバイス情報とメモリ資源情報を包含する。CPU情報は、例えば物理マシン100のネイティブな命令セットを特定するISA(M)501、データがビックエンディアンかリトルエンディアンかを特定するEndian(M)502である。二つの物理マシン100のISA(M)501及びEndian(M)502の両者が一致すれば、当該マシン間のプログラム移行に際してCPUエミュレーションは不要であるが、一方でも異なればCPUエミュレーションが必要である。
デバイス情報は、物理マシン100が備えるデバイス構成を特定するDevice(M)500である。Device(M)500は、例えば、デバイス構成毎に付与されたプラットフォーム名である。プラットフォーム名に対応する具体的なデバイス構成は、別途、カーネルプログラム110等で定義されている。Device(M)500が、直接、個々のデバイス情報を格納しても良い。二つの物理マシン100のDevice(M)500が一致すれば、当該マシン間のプログラム移行に際してデバイスエミュレーションは不要であるが、異なればデバイスエミュレーションが必要である。
デバイスエミュレーションは、物理マシン100が備えていないデバイスに対して入出力命令が発行等されたときに、当該デバイスの情報出力等をエミュレートすることである。例えば、CPUが、メモリに格納されたエミュレート情報をアクセスしてデバイス動作をエミュレートする。
メモリ資源情報は、例えば、実装されているメモリのデータ転送速度であるTransRate(M)503(メモリ速度)、メモリの空き容量を示すFree504である。
更にカーネル表114は、エミュレータ113がエミュレーションできるCPU及びデバイスを特定する情報であるEmulationCapability505を包含する。EmulationCapability505は、例えば命令セット特定情報(ISA)、データ形式特定情報(Endian)及びデバイス構成特定情報(Device)のリストである。エミュレータ113が、複数の命令セット、データ形式またはデバイス構成のエミュレーションを可能なとき、EmulationCapability505は複数個のリストを格納する。
カーネル表114に格納されている情報は、カーネルプログラム110が自身の管理データや物理マシン100等から取得して設定しても良いし、マイグレーション管理装置300のシステム管理者がシステムパラメータとして設定しても良い。
図3の例は、マイグレーション管理装置300のカーネルプログラム110は4種類のメモリ要素を管理し、例えば1行目のメモリ要素は12800[MB/s]の転送速度を持ち、現在2560[MB]の空き容量が存在していることを表している。
また、図3のカーネル表114は、例えばこのカーネルプログラム110は、命令セットが“ARCH_A”、リトルエンディアンのCPUと、名称”Platform1”で特定されるデバイス構成を有する物理マシン100で動作していることを表している。
図4は、本発明の形態におけるプログラム構成表121を示している。プログラム構成表121は、ユーザプログラム130が使用中のメモリ資源情報及び動作可能な物理マシン100のCPU及びデバイスの情報を包含する。
ユーザプログラム130のマイグレーションを行う場合、資源割り当て部111は、プログラム構成表121の当該プログラム対応行とカーネル表114のCPU及びデバイス情報を比較して、移行元と移行先間でプログラムの互換性があるか否かを判断する。互換性を持たない場合、資源割り当て部111は、マイグレーションした当該プログラムをエミュレータ113上で実行する。
プログラム構成表121は、ユーザプログラム130の識別子(プログラムID601)毎に、当該プログラムが動作可能な物理マシン100のデバイス構成情報(Device(P)607)を格納する。プログラム構成表121は、更に、プログラムID601毎に、当該プログラムが記述されている命令セットの特定情報(ISA(P)602)、データ形式特定情報(Endian(P)603)も包含する。
プログラム構成表121は、更に、当該プログラムの命令及びデータ格納用に割り当てられているメモリのメモリ速度(TransRate(P)604)と割当量(Assign605)を格納する。これらの情報は、通常、移行元マシン200に関する情報であり、プログラム管理部120は、これらの情報を自装置のカーネルプログラム110から入力してプログラム構成表121に格納する。プログラム管理部120は、これらの情報を移行元マシン200のシステム管理者から入力しても良い。更に、これらの情報が、ユーザプログラム130に記載されていて、プログラム管理部120がユーザプログラム130から読み取っても良い。
プログラム構成表121は命令速度(P)606を格納していても良い。命令速度(P)606は、Device(P)607、ISA(P)602、Endian(P)603、TransRate(P)604で特定される構成の物理マシン100下における実効命令速度である。
移行元マシン200が当該構成を持つ物理マシン100である場合、プログラム管理部120は移行元マシン200で実行された評価プログラム131の出力値を入力して、命令速度(P)606に格納する。プログラム管理部120は、当該物理マシン100のスペック情報や評価プログラム131の出力値を、移行元マシン200のシステム管理者から入力して命令速度(P)606に格納しても良い。
図4は、ユーザプログラム“UID1”が命令セット“ARCH_B”でビッグエンディアンのCPUと、デバイス構成”Platform1”を持つ物理マシン100で動作し、120MB/sの記憶装置を96MB使用していることを例示している。
プログラム管理部120及び送出部118は、回路によってハードウェア的に実現されても良いし、プログラムが計算機上あるいはカーネルプログラム110上で実行されることにより、ソフトウェア的に実現されても良い。
図5は、本実施の形態のマイグレーション管理装置300のマイグレーション動作のフローチャートである。以下の説明例に於いて、マイグレーション管理装置300は、移行元マシン200上で実行されているユーザプログラム130の移行プログラム132を、自装置へマイグレートする。
マイグレーション管理装置300の資源割り当て部111は、移行元マシン200の送出部118から同マシン上で実行中の特定の移行プログラム132を指定したマイグレーション要求を受信してマイグレーション処理を開始する。同装置は、同装置に接続された利用者端末から、移行元マシン200及び特定の移行プログラム132を指定したマイグレーション要求を受信しても良い。
資源割り当て部111は、移行元マシン200のプログラム管理部120から、プログラム構成表121に格納されている移行対象のユーザプログラム130の特性情報を取得する(S101)。ここで取得される特性情報は、Device(P)607、ISA(P)602、Endian(P)603、Assign605、命令速度(P)606である。取得した命令速度(P)606は、以降ECPsとして参照される。
資源割り当て部111は、取得したDevice(P)607、ISA(P)602、Endian(P)603と、自装置のカーネル表114のDevice(M)500、ISA(M)501、Endian(M)502を比較する。一部でも一致しない場合、同部はマイグレーション管理装置300がそのままユーザプログラム130のプログラムコードを実行できない(移行元と移行先とで命令等の互換性がない)と判定する(S102でNo)。
互換性がない場合、資源割り当て部111は、取得したDevice(P)607、ISA(P)602、Endian(P)603の対と一致する(Device,ISA,Endian)リストがカーネル表114のEndianCapability505の中に発見できるか判定する。即ち、同部は、自装置が移行元のエミュレーションを行えるかを判定する(S103)。エミュレーションが行えない(発見できない)場合(S103でNo)、同部は、マイグレーションは不可能であると判断し、その旨のエラー報告を出力して、マイグレーション処理を終了する(S108)。エラー報告の出力先は、マイグレーション要求の送信元(利用者端末または移行元マシン200)等である。
エミュレーションが可能である場合(S103でYes)、同部は移行元マシン200の送出部118を経由して、該当するユーザプログラム130の評価プログラム131取得し、エミュレータ113を用いて実行する(S104)。
実行に先立ち、資源割り当て部111は、例えば、エミュレータ113の動作パラメータに、取得したDevice(P)607、ISA(P)602、Endian(P)603を設定する。これにより、エミュレータ113は、Device(P)607、ISA(P)602、Endian(P)603のエミュレーションを行うようになる。資源割り当て部111は、複数のエミュレータ113の中から、取得されたDevice(P)607、ISA(P)602、Endian(P)603のエミュレーションを行うものを選択しても良い。
同部は、評価プログラム131及びエミュレータ113をメモリアクセス速度が既知の値MPeのメモリにロードすると共に、データ領域としても当該速度のメモリを割り当てて、エミュレータ113でエミュレーションしながら評価プログラム131を実行する。資源割り当て部111は、プリエンプション等で評価プログラム131の実行が中断されないように実行する。
実行された評価プログラム131は、評価用コードの実行に要した時間を、実行命令数で除して、実効命令速度ECPdを算出し出力する。出力されたECPdはメモリアクセス速度がMPeである場合の実効命令速度である。
資源割り当て部111の要求を受けて、性能算出部112は評価プログラム131が出力した実効命令速度ECPd及びメモリ速度MPeに基づいて、下記の式1等を用いて要求メモリ速度MPdを算出し、資源割り当て部111に出力する(S105)。
エミュレータ113の設計情報や過去の実績等により、エミュレーションによるメモリアクセス増割合が既知である場合、資源割り当て部111は評価プログラム131を実行せずECPdの推定値を計算等しても良い。
資源割り当て部111は、カーネル表114のTransRate(M)503及びFree504を参照し、自装置内に要求メモリ速度MPdを満たす記憶装置は十分な空き容量(取得したAssign605以上)を持って存在するか判定する(S106)。当該条件を満たすメモリ(要求メモリ)が存在しない場合(S106でNo)、同部は、マイグレーションは不可能であると判断し、その旨のエラー報告を出力してマイグレーション処理を終了する(S109)。
エラー報告を受信したマイグレーション要求の送信元(利用者端末または移行元マシン200)は、例えば、マイグレーション管理システム400内の別のマイグレーション管理装置300を選択して、マイグレーション要求を送信し直す。
要求メモリが存在する場合(S106でYes)、資源割り当て部111は、移行元マシン200の送出部118から移行プログラム132を取得し、要求メモリを割り当ててエミュレータ113上で移行プログラム132の実効を開始する。即ち、同部はユーザプログラム130のライブマイグレーションを実行する(S107)。
なお、取得したDevice(P)607、ISA(P)602、Endian(P)603と、自装置のカーネル表114のDevice(M)500、ISA(M)501、Endian(M)502が一致する場合(図5のs102でYes)、資源割り当て部111は評価プログラム131を、エミュレータ113を使用せずに直接実行する。性能算出部112は、この結果から要求メモリ速度MPdを算出する。
本実施の形態のマイグレーション管理装置300は、以下の効果を達成できる。第一の効果は、マイグレーション管理装置300及び移行元マシン200が備える物理マシン100の命令等の互換性の有無に依らず、後者から前者へマイグレーションされた移行プログラム132の性能低下を抑えることができることである。
その理由は、エミュレーション等に起因して実効命令速度が低下するような場合でも、移行プログラム132に高速なメモリを割り当てることで、性能維持を図るからである。移行後、移行プログラム132実行中の命令及びデータアクセスが速くなり、このアクセス高速化が、結果的にエミュレーションによる性能低下を相殺する。
第二の効果は、移行プログラム132の動作特性を反映したメモリ割り当てができることである。
その理由は、移行対象の移行プログラム132が持つ、特徴的な処理を含んだ評価プログラム131を、移行先であるマイグレーション管理装置300で事前に実行することで、移行後の当該プログラム実行時の性能低下を的確に予測するからである。
<第二の実施形態>
次に、本発明の第二の実施形態について説明する。本実施の形態の性能算出部112は、要求メモリ速度MPdの算出(図5のS105)に於いて、CPU負荷(L)を反映する計算式を用いる。
マルチプロセッサシステム等に於いてシステム内の平均CPU使用率が高い場合、複数のCPUや入出力データ転送装置間等のメモリアクセス競合により、結果的に実効命令速度ECPdが低下する。このような場合に評価プログラム131を実行して実効命令速度ECPdを算出すると、低すぎる速度が測定されてしまう。
このような測定誤算を補正するために、本実施の性能算出部112は、要求メモリ速度MPdの算出に於いて、CPU負荷を反映する下記計算式を用いる。
性能算出部112は、func(L)として様々な関数を使用するように構成できる。CPU負荷の上昇に伴いメモリアクセス時間が指数関数的に増加するとの前提の下、性能算出部112は、例えば以下の式(3)をfunc(L)として使用するように構成され得る。
なお、CPU使用率が所定値以上の場合は、資源割り当て部111がCPU使用率の低下を待ち合わせてから、評価プログラム131を実行(S105)するようにしても良い。
本実施形態のマイグレーション管理装置300は、CPU使用率が高い状況で実効命令速度ECPdを測定した場合でも、通常の負荷状況で性能低下を防止するのに十分な要求メモリ速度MPdを算出できる。その理由は、性能算出部112が、測定時のCPU負荷に応じてMPdを増加補正して算出するからである。
以上、好ましい実施の形態を挙げて本発明を説明したが、本発明は必ずしも上記実施の形態に制限されるものではなく、その技術的思想の範囲内においてその形態を変化させて実施することができる。
例えば、エミュレータ113は、CPUエミュレーションまたはデバイスエミュレーションの一方だけを実行するものであっても良い。この場合、カーネル表114及びプログラム構成表121は、Device(M)500、Device(P)607またはISA(M)501等、ISA(P)602等を包含しなくても良い。
更に、例えば、本発明はコード互換性がある物理マシン100間のマイグレーションにも適用できる。このようなケースにおいて、本発明はマイクロコードの実装差等に起因して発生する実効命令速度差による性能低下を低減できる。
また、本実施形態では移行元マシン200がプログラム管理部120を備えているが、別途プログラム管理部120専用の物理マシン100を用意し、これによって複数の移行元マシン200の集中管理を行っても良い。
さらに、本実施の形態における物理マシン100と記載しているコンピュータが仮想計算機であっても良い。
<第三の実施形態>
図6は、第3の実施形態のマイグレーション管理装置300の構成を示す。同装置は、性能算出部112と資源割り当て部111を備える。性能算出部112は、自装置とネットワーク140で接続された移行元マシン200上で動作する移行プログラム132に割り当てられたメモリの容量及び移行元マシン200上における実効命令速度(ECPs)を入力する。同部は、ECPs及び自装置上に於ける移行プログラム132記述命令の実効命令速度(ECPd)及びECPdの基礎となるメモリ速度(MPe)に基づいて、要求メモリ速度(MPd)を算出する。資源割り当て部111は、自装置へ移行される移行プログラム132に対しMPdを満たし、かつ容量を持った自装置の備えるメモリ割り当てを行い、割り当てが出来ないときはエラー報告を出力する。
マイグレーション管理装置300は、命令実行性能差があるプラットフォーム間でプログラムのマイグレーションを行う際、マイグレーション前後の性能低下を低減することができる。その理由は、エミュレーション等に起因して実効命令速度が低下するような場合でも、移行プログラム132に高速なメモリを割り当てることで、性能維持を図るからである。
以上、実施形態(及び実施例)を参照して本願発明を説明したが、本願発明は上記実施形態(及び実施例)に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、2010年1月12日に出願された日本出願特願2010−003829を基礎とする優先権を主張し、その開示の全てをここに取り込む。
<First embodiment>
FIG. 1 is a configuration diagram of a migration management system 400 according to this embodiment. The migration management system 400 includes one or more migration management apparatuses 300 and one or more migration source machines 200 connected via the network 140. The migration management apparatus 300 inputs and executes (migrates or migrates) a user program (
The present invention prevents the deterioration of the instruction speed due to emulation or the like that occurs with migration by using a high-speed memory.
In FIG. 1, the migration management apparatus 300 includes a
The
The
The
The
The
Here, the memory speed indicates, for example, a memory bus width, a memory cycle time, a memory access time, or a data transfer speed (transfer rate) combining these. Hereinafter, the memory transfer rate is assumed to be the data transfer rate.
The effective instruction speed ECP indicates, for example, an instruction execution time. The execution command speed ECPd of the migration management apparatus 300 can be measured by executing the evaluation program 131 on the apparatus. If the instruction set or the mounted device (instruction or the like) is not compatible between the migration source machine 200 and the migration destination migration management apparatus 300 and the migrated program is executed on the
The
The CPU state conversion function converts the CPU state of the migration source machine 200 to the state of the migration management apparatus 300. The code conversion function converts the instruction of the migration source machine 200 into the instruction of the migration management apparatus 300. The device emulation function imitates a device operation that the migration source machine 200 has and the migration management apparatus 300 does not have.
The
The
The
The CPU information management module has a function of storing CPU architecture information of all
The memory information management module has a function of storing the size and memory speed information of all storage device modules (hereinafter referred to as memory elements) used by the
The device driver management module has a function of storing platform information held by all
FIG. 2 shows the configuration of the
The
The evaluation program 131 is created by a user or the like reflecting, for example, a usage pattern such as an instruction used by the
Further, the evaluation program 131 may have a function of recording an instruction history or a system call history, and a function of measuring a memory access amount and a memory access time for each memory element used by the
Generally, the ECPd can be accurately measured when the evaluation program 131 is prepared for each
The program code and data format of the
The sending
A single computer may have the configurations of both the migration management apparatus 300 and the migration source machine 200. That is, a computer that functions as the migration management apparatus 300 (or migration source machine 200) in a certain migration may be configured to function as the migration source machine 200 (or migration management apparatus 300) in another migration.
Further, the configuration and type of the
The
FIG. 3 shows the kernel table 114. The kernel table 114 includes CPU and device information and memory resource information managed by the
The device information is a Device (M) 500 that specifies a device configuration included in the
Device emulation is to emulate information output of a device when an input / output command is issued to a device that the
The memory resource information is, for example, TransRate (M) 503 (memory speed) that is the data transfer speed of the mounted memory, and
Further, the kernel table 114 includes an
The information stored in the kernel table 114 may be acquired and set by the
In the example of FIG. 3, the
3, for example, the
FIG. 4 shows the program configuration table 121 in the embodiment of the present invention. The program configuration table 121 includes information on memory resources being used by the
When migrating the
The program configuration table 121 stores, for each identifier (program ID 601) of the
The program configuration table 121 further stores a memory speed (TransRate (P) 604) and an allocated amount (Assign 605) of a memory allocated for storing instructions and data of the program. These pieces of information are usually information about the migration source machine 200, and the
The program configuration table 121 may store an instruction speed (P) 606. The instruction speed (P) 606 is an effective instruction speed under the
When the migration source machine 200 is the
FIG. 4 shows that the user program “UID1” operates on the big endian CPU with the instruction set “ARCH_B” and the
The
FIG. 5 is a flowchart of the migration operation of the migration management apparatus 300 of this embodiment. In the following description example, the migration management apparatus 300 migrates the
The
The
The
If they are not compatible, the
If emulation is possible (Yes in S103), the same unit obtains the evaluation program 131 of the
Prior to execution, the
The same unit loads the evaluation program 131 and the
The executed evaluation program 131 calculates and outputs the effective instruction speed ECPd by dividing the time required for executing the evaluation code by the number of executed instructions. The output ECPd is an effective instruction speed when the memory access speed is MPe.
In response to the request from the
If the memory access increase rate by emulation is known from the design information of the
The
The source (user terminal or migration source machine 200) of the migration request that received the error report selects another migration management device 300 in the migration management system 400, for example, and resends the migration request.
If the requested memory exists (Yes in S106), the
The acquired Device (P) 607, ISA (P) 602, and Endian (P) 603 match the Device (M) 500, ISA (M) 501, and Endian (M) 502 in the kernel table 114 of the own device. In the case (Yes in s102 of FIG. 5), the
The migration management apparatus 300 of this embodiment can achieve the following effects. The first effect is that the performance degradation of the
The reason is that even when the effective instruction speed is reduced due to emulation or the like, performance is maintained by allocating a high-speed memory to the
The second effect is that memory allocation reflecting the operation characteristics of the
This is because the
<Second Embodiment>
Next, a second embodiment of the present invention will be described. The
In a multiprocessor system or the like, when the average CPU usage rate in the system is high, the effective instruction speed ECPd decreases as a result of memory access contention among a plurality of CPUs and input / output data transfer devices. In such a case, if the evaluation program 131 is executed to calculate the effective instruction speed ECPd, a speed that is too low is measured.
In order to correct such a measurement miscalculation, the
The
If the CPU usage rate is greater than or equal to a predetermined value, the
The migration management apparatus 300 of the present embodiment can calculate the required memory speed MPd sufficient to prevent performance degradation under normal load conditions even when the effective instruction speed ECPd is measured in a situation where the CPU usage rate is high. The reason is that the
The present invention has been described above with reference to preferred embodiments. However, the present invention is not necessarily limited to the above-described embodiments, and can be carried out by changing the form within the scope of the technical idea. it can.
For example, the
Further, for example, the present invention can be applied to migration between
In the present embodiment, the migration source machine 200 includes the
Furthermore, the computer described as the
<Third embodiment>
FIG. 6 shows the configuration of the migration management apparatus 300 of the third embodiment. The apparatus includes a
The migration management apparatus 300 can reduce performance degradation before and after migration when migrating a program between platforms having instruction execution performance differences. The reason is that even when the effective instruction speed is reduced due to emulation or the like, performance is maintained by allocating a high-speed memory to the
Although the present invention has been described with reference to the embodiments (and examples), the present invention is not limited to the above embodiments (and examples). Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention.
This application claims the priority on the basis of Japanese application Japanese Patent Application No. 2010-003829 for which it applied on January 12, 2010, and takes in those the indications of all here.
Claims (13)
自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て手段を備えるマイグレーション管理装置。 Input the capacity of the memory allocated to the migration program running on the migration source machine connected to the local device and the network, and the effective instruction speed (ECPs) on the migration source machine, and enter the ECPs and the local device. Performance calculating means for calculating a required memory speed (MPd) based on an effective instruction speed (ECPd) of the migration program description instruction and a memory speed (MPe) as a basis of the ECPd;
Migration management comprising resource allocation means for allocating memory included in the own device having the MPd and having the capacity for the migration program to be migrated to the own device and outputting an error report when the allocation is not possible apparatus.
前記エミュレータ上で前記評価プログラムを実行して、実行結果から前記ECPdを算出する前記性能算出手段を備える、請求項2のマイグレーション管理装置。 On the own device, an emulator capable of executing the migration program described in the migration source machine instruction different from the instruction of the own device and the evaluation program;
The migration management apparatus according to claim 2, further comprising the performance calculation unit that executes the evaluation program on the emulator and calculates the ECPd from an execution result.
自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力する資源割り当て処理を実行させるマイグレーション管理プログラムを格納するコンピュータ読み取り可能な記録媒体。 The computer inputs the memory capacity allocated to the migration program operating on the migration source machine connected to the own device via the network and the effective command speed (ECPs) on the migration source machine, and the ECPs and the own device. A performance calculation process for calculating a required memory speed (MPd) based on an effective instruction speed (ECPd) of the transition program description instruction and a memory speed (MPe) as a basis of the ECPd;
Migration for executing a resource allocation process that performs memory allocation for the migration program that is migrated to the own device and that satisfies the MPd and has the capacity and that outputs an error report when the allocation is not possible A computer-readable recording medium for storing a management program.
前記エミュレータ上で前記評価プログラムを実行して、実行結果から前記ECPdを算出する前記性能算出処理を実行させる、前記マイグレーション管理プログラムを格納する請求項7のコンピュータ読み取り可能な記録媒体。 On the own device, the computer having an emulator capable of executing the migration program and the evaluation program described by the instructions of the migration source machine different from the instructions of the own device;
8. The computer-readable recording medium according to claim 7, wherein the migration management program for executing the performance calculation processing for executing the performance calculation processing for calculating the ECPd from an execution result by executing the evaluation program on the emulator.
自装置へ移行される前記移行プログラムに対し前記MPdを満たし、かつ前記容量を持った自装置の備えるメモリ割り当てを行い、前記割り当てが出来ないときはエラー報告を出力するマイグレーション管理方法。 A computer inputs a capacity of a memory allocated to a migration program operating on a migration source machine connected to the device itself via a network and an effective instruction speed (ECPs) on the migration source machine, and the ECPs and the device itself Calculate the required memory speed (MPd) based on the effective instruction speed (ECPd) of the transition program description instruction above and the memory speed (MPe) that is the basis of the ECPd,
A migration management method for allocating a memory included in a self-device satisfying the MPd and having the capacity for the migration program to be migrated to the self-device, and outputting an error report when the assignment is not possible.
前記エミュレータ上で前記評価プログラムを実行して、実行結果から前記ECPdを算出する、請求項7のマイグレーション管理方法。 The computer having an emulator capable of executing the migration program and the evaluation program described in the instructions of the migration source machine different from the instructions of the own device on the own device,
The migration management method according to claim 7, wherein the evaluation program is executed on the emulator, and the ECPd is calculated from an execution result.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2011549894A JPWO2011086824A1 (en) | 2010-01-12 | 2010-12-15 | Migration management apparatus, migration management system, migration management method, and migration management program |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2010003829 | 2010-01-12 | ||
| JP2010-003829 | 2010-01-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2011086824A1 true WO2011086824A1 (en) | 2011-07-21 |
Family
ID=44304112
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2010/073071 Ceased WO2011086824A1 (en) | 2010-01-12 | 2010-12-15 | Migration management device, migration management system, migration management method, and migration management program |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2011086824A1 (en) |
| WO (1) | WO2011086824A1 (en) |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005234917A (en) * | 2004-02-20 | 2005-09-02 | Hitachi Ltd | Server determination method in case of failure |
| JP2007257097A (en) * | 2006-03-22 | 2007-10-04 | Nec Corp | Virtual computer system and method and program for reconfiguring physical resource thereof |
| JP2007323245A (en) * | 2006-05-31 | 2007-12-13 | Nec Corp | Computer system, performance measurement method, and management server device |
| JP2009537894A (en) * | 2006-05-18 | 2009-10-29 | マイクロソフト コーポレーション | Deploy virtual machines to hosts based on workload characteristics |
-
2010
- 2010-12-15 WO PCT/JP2010/073071 patent/WO2011086824A1/en not_active Ceased
- 2010-12-15 JP JP2011549894A patent/JPWO2011086824A1/en not_active Withdrawn
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2005234917A (en) * | 2004-02-20 | 2005-09-02 | Hitachi Ltd | Server determination method in case of failure |
| JP2007257097A (en) * | 2006-03-22 | 2007-10-04 | Nec Corp | Virtual computer system and method and program for reconfiguring physical resource thereof |
| JP2009537894A (en) * | 2006-05-18 | 2009-10-29 | マイクロソフト コーポレーション | Deploy virtual machines to hosts based on workload characteristics |
| JP2007323245A (en) * | 2006-05-31 | 2007-12-13 | Nec Corp | Computer system, performance measurement method, and management server device |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2011086824A1 (en) | 2013-05-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10768960B2 (en) | Method for affinity binding of interrupt of virtual network interface card, and computer device | |
| US9378032B2 (en) | Information processing method, information processing apparatus, recording medium, and system | |
| US10897428B2 (en) | Method, server system and computer program product for managing resources | |
| US9081612B2 (en) | Virtual machine control method and virtual machine | |
| US8725912B2 (en) | Dynamic balancing of IO resources on NUMA platforms | |
| JP4557178B2 (en) | Virtual machine management system, method and program thereof | |
| US9229751B2 (en) | Apparatus and method for managing virtual memory | |
| US9934062B2 (en) | Technologies for dynamically allocating hardware acceleration units to process data packets | |
| KR102640232B1 (en) | Method and apparatus for allocating resources in virtual environment | |
| US10169102B2 (en) | Load calculation method, load calculation program, and load calculation apparatus | |
| WO2015196931A1 (en) | Disk io-based virtual resource allocation method and device | |
| CN118034917A (en) | PCIe resource allocation method and device, electronic equipment and storage medium | |
| US12141613B2 (en) | Resource management for preferred applications | |
| US9507624B2 (en) | Notification conversion program and notification conversion method | |
| WO2014118969A1 (en) | Virtual computer system and data transfer control method for virtual computer system | |
| CN110750336A (en) | OpenStack virtual machine memory hot-expanding method | |
| CN110162396A (en) | Method for recovering internal storage, device, system and storage medium | |
| WO2023173961A1 (en) | Memory allocation method and related product | |
| CN114546587A (en) | A method for expanding and shrinking capacity of online image recognition service and related device | |
| KR101924467B1 (en) | System and method of resource allocation scheme for cpu and block i/o performance guarantee of virtual machine | |
| WO2017166997A1 (en) | Inic-side exception handling method and device | |
| CN106330595B (en) | Heartbeat detection method and device for distributed platform | |
| CN109062702B (en) | Computing resource allocation method, related device and readable storage medium | |
| JP2010026828A (en) | Method for controlling virtual computer | |
| WO2011086824A1 (en) | Migration management device, migration management system, migration management method, and migration management program |
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: 10843177 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2011549894 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 10843177 Country of ref document: EP Kind code of ref document: A1 |