WO2012093490A1 - Information processing device, time control method, and time control program - Google Patents

Information processing device, time control method, and time control program Download PDF

Info

Publication number
WO2012093490A1
WO2012093490A1 PCT/JP2011/050190 JP2011050190W WO2012093490A1 WO 2012093490 A1 WO2012093490 A1 WO 2012093490A1 JP 2011050190 W JP2011050190 W JP 2011050190W WO 2012093490 A1 WO2012093490 A1 WO 2012093490A1
Authority
WO
WIPO (PCT)
Prior art keywords
time
virtual machine
virtual
difference
information processing
Prior art date
Application number
PCT/JP2011/050190
Other languages
French (fr)
Japanese (ja)
Inventor
実久 土肥
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to PCT/JP2011/050190 priority Critical patent/WO2012093490A1/en
Publication of WO2012093490A1 publication Critical patent/WO2012093490A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Definitions

  • the present invention relates to an information processing apparatus, a time control method, and a time control program.
  • virtualization technology is used to execute one or more virtual computers (sometimes called virtual machines) on a physical computer (sometimes called a physical machine).
  • a physical machine that employs a virtualization technology
  • software (sometimes called a hypervisor) that controls the virtual machine is executed.
  • the hypervisor allocates resources such as a processing capacity of a CPU (Central Processing Unit) and a storage area of a RAM (Random Access Memory) to a virtual machine.
  • resources such as a processing capacity of a CPU (Central Processing Unit) and a storage area of a RAM (Random Access Memory) to a virtual machine.
  • CPU Central Processing Unit
  • RAM Random Access Memory
  • an operating system (OS: Operating System) is executed.
  • the OS of the virtual machine manages resources allocated from the hypervisor and controls execution of application programs.
  • the OS of the virtual machine tries to access a device such as an HDD (Hard Disk Disk Drive)
  • the access request is detected by the hypervisor.
  • a hypervisor or other software that receives a request from the hypervisor executes access to the device instead of the OS of the virtual machine, and notifies the OS of the virtual machine of the access result.
  • a virtual computer system that divides the elapsed time specified by the timer command by the acceleration factor and operates the real timer mechanism based on the corrected elapsed time is proposed. ing. Further, there has been proposed a method of generating a timer interrupt by correcting the requested elapsed time based on a timer acceleration coefficient when software on a virtual machine requests a timer interrupt.
  • a microcomputer that converts the real timer to a virtual timer based on the ratio of the clock frequency before and after the timer source change and proposes a microcomputer that controls application processing based on the virtual timer clock is proposed. Has been.
  • JP-A-11-306036 (paragraph [0011]) JP 2007-34672 A
  • some software includes time-dependent information processing that is executed only at a specific time.
  • a method for preparing a software execution environment in which the current time is changed can be considered in order to execute time-dependent information processing and check the result.
  • how to efficiently realize the software execution environment becomes a problem. For example, even if the virtualization technique is adopted, it is difficult to change the current time recognized by the OS to an arbitrary time with the methods of Patent Documents 1 and 2 described above.
  • an object of the present invention is to provide an information processing apparatus, a time control method, and a time control program that facilitate confirmation of time-dependent information processing on a virtual machine.
  • an information processing apparatus that executes a virtual machine.
  • This information processing apparatus includes a timing device, a storage unit, and a control unit.
  • the timing device provides a first time.
  • the storage unit stores difference information indicating a time difference with respect to the first time.
  • the control unit acquires the first time from the timing device, calculates the second time using the acquired first time and the difference indicated by the difference information stored in the storage unit, and calculates the calculated second time Provide the time to the virtual machine.
  • a time control method performed by a computer executing a virtual machine is provided.
  • the first time is acquired from the time measuring device provided in the computer.
  • a second time is calculated based on the acquired first time and difference information indicating a difference in time with respect to the first time stored in the storage unit. The calculated second time is provided to the virtual machine.
  • a time control program to be executed by a computer that executes the virtual machine is also provided.
  • FIG. 1 is a diagram illustrating the information processing apparatus according to the first embodiment.
  • virtual machines 11a and 11b are executed as an example.
  • the number of virtual machines executed by the information processing apparatus 10 may be one or three or more.
  • the information processing apparatus 10 includes a timing device 12, a storage unit 13, and a control unit 14.
  • the timing device 12 is a hardware device that provides the first time.
  • the first time may be the current time in the time zone where the information processing apparatus 10 is installed.
  • the first time may be Coordinated Universal Time (UTC: Universal Time Time Coordinated).
  • UTC Universal Time Time Coordinated
  • the first time held by the timing device 12 proceeds in accordance with, for example, an actual time speed.
  • the storage unit 13 stores difference information indicating a time difference (for example, a non-zero value) with respect to the first time.
  • the difference indicated by the difference information may be commonly applied to a plurality of virtual machines. Further, difference information for each virtual machine may be stored in the storage unit 13.
  • the difference information stored in the storage unit 13 may be received from outside the information processing apparatus 10 via a network.
  • an arbitrary storage device such as a volatile memory, a nonvolatile memory, or a magnetic disk can be used.
  • the control unit 14 acquires the first time from the time measuring device 12, and calculates the second time using the acquired first time and the difference indicated by the difference information stored in the storage unit 13. For example, the difference indicated by the difference information is added to the first time (shifted from the first time) to obtain the second time.
  • the control unit 14 provides the calculated second time to the virtual machines 11a and 11b.
  • the second time can also be said to be a virtual time viewed from the virtual machines 11a and 11b.
  • the control unit 14 may calculate the second time for each virtual machine.
  • the control unit 14 may calculate the second time of the issuing virtual machine when a command to access the timing device 12 is issued from the virtual machines 11a and 11b.
  • the control unit 14 can be realized as a hypervisor module.
  • the first time is acquired from the timing device 12 included in the information processing apparatus 10.
  • the second time is calculated based on the acquired first time and the difference indicated by the difference information stored in the storage unit 13.
  • the calculated second time is provided to some or all of the virtual machines 11a and 11b.
  • the time recognized by the virtual machines 11a and 11b can be easily changed, and time-dependent information processing can be efficiently executed on the virtual machines 11a and 11b.
  • the difference information in the information processing apparatus 10 it is possible to easily test software that assumes an arbitrary time.
  • a plurality of virtual machines having different time settings can coexist on the information processing apparatus 10, and multiple tests assuming different times are possible. Can be performed in parallel. Therefore, for example, tests of computer systems installed in a plurality of places having different time zones can be performed in parallel on the information processing apparatus 10, and the test is made more efficient.
  • the storage unit 13 may further store speed information indicating a ratio of the time speeds of the virtual machines 11a and 11b to the time speed of the timing device 12 (for example, the ratio may be referred to as an acceleration coefficient).
  • speed information indicating a ratio of the time speeds of the virtual machines 11a and 11b to the time speed of the timing device 12 (for example, the ratio may be referred to as an acceleration coefficient).
  • the control unit 14 uses the operating time of the virtual machines 11a and 11b measured based on the ratio indicated by the speed information and the time speed of the time measuring device 12. The second time may be calculated. By using the speed information, the time speed viewed from the virtual machines 11a and 11b can be easily adjusted.
  • FIG. 2 illustrates an information processing system according to the second embodiment.
  • the information processing system according to the second embodiment includes server devices 100, 100a, 100b, a management device 200, and a client device 300.
  • Server devices 100, 100 a, 100 b and management device 200 are connected to network 20.
  • the client device 300 is connected to the network 30.
  • the information processing system according to the second embodiment can be realized, for example, as a system (cloud system) in the form of so-called cloud computing.
  • the server apparatuses 100, 100a, 100b are server computers on which one or more virtual machines are arranged.
  • a hypervisor that controls the virtual machine is executed.
  • the hypervisor performs control of activation and termination of a virtual machine used by the user of the client apparatus 300, allocation of resources such as a CPU and RAM to the virtual machine, and the like.
  • the management device 200 is a server computer that manages the placement of virtual machines on the server devices 100, 100a, and 100b. For example, when the client device 300 requests the virtual machine to be activated, the management device 200 selects one or more server devices so that the load is not biased, and instructs the selected server device to activate the virtual machine. When time setting information indicating a change in time viewed from the virtual machine is acquired from the client device 300 at or before the request to start the virtual machine, the time change is also instructed to the selected server device. In addition, when the client apparatus 300 requests the end of the virtual machine, the management apparatus 200 instructs the server apparatus in which the virtual machine related to the request is disposed to end the virtual machine.
  • the client device 300 is a computer as a terminal device operated by a user. For example, the client device 300 requests the management device 200 to start a virtual machine via the network 30. Then, for example, an instruction to place an application program on the activated virtual machine is transmitted to execute the application program. In order to change the time seen from the virtual machine, the time setting information may be transmitted to the management apparatus 200 when the virtual machine is requested to be started or before. Further, the client apparatus 300 requests the management apparatus 200 to end the virtual machine. The client device 300 may execute a web browser as a user interface used for accessing the management device 200.
  • the information processing system of the second embodiment can be used as a software development environment.
  • a software engineer can operate the client apparatus 300 to start one or more virtual machines on the server apparatuses 100, 100a, and 100b, and test the created application program on the virtual machine.
  • a case is considered in which application software in which time-dependent information processing is implemented is tested using a plurality of virtual machines having different time settings.
  • FIG. 3 is a block diagram illustrating a hardware example of the server device.
  • the server apparatus 100 includes a CPU 101, a RAM 102, an HDD 103, a timing device 104, a timer device 105, an image signal processing unit 106, an input signal processing unit 107, a disk drive 108, and a communication unit 109.
  • the unit is connected to a bus.
  • the CPU 101 is an arithmetic device that controls information processing of the server device 100.
  • the CPU 101 reads out at least a part of a program and data stored in the HDD 103 (or a storage device of another information processing apparatus), expands it in the RAM 102, and executes the program.
  • the CPU 101 may access the timing device 104 to obtain the current time.
  • the timer device 105 is designated with time or time.
  • the computing power of the CPU 101 is allocated to the hypervisor and the virtual machine.
  • the RAM 102 is a volatile memory that temporarily stores programs and data read by the CPU 101.
  • a storage area of the RAM 102 is allocated to the hypervisor and the virtual machine.
  • the server device 100 may include a type of memory other than the RAM.
  • the HDD 103 is a non-volatile storage device that stores programs such as an OS program and application programs, and data used for the operation of the CPU 101.
  • the HDD 103 reads from and writes to the built-in magnetic disk.
  • the server device 100 may include a nonvolatile storage device of a type other than the HDD.
  • Time keeping device 104 is a hardware device that holds the current time. When accessed from the CPU 101, the timing device 104 provides the current time to the CPU 101.
  • the current time held by the time measuring device 104 may be the time (local time) of the time zone where the server apparatus 100 is installed, or UTC.
  • the timer device 105 is a hardware device that outputs an interrupt signal.
  • the timer device 105 monitors the elapsed time from the access point and outputs an interrupt signal to the CPU 101 when the specified time has elapsed.
  • the timer device 105 outputs an interrupt signal to the CPU 101 at the specified time.
  • the image signal processing unit 106 displays a screen on the display 111 connected to the server apparatus 100 in accordance with an instruction from the CPU 101.
  • the display 111 for example, a CRT (Cathode Ray Tube) display or a liquid crystal display can be used.
  • the input signal processing unit 107 acquires an input signal from the input device 112 connected to the server apparatus 100 and outputs it to the CPU 101.
  • the input device 112 for example, a pointing device such as a mouse or a touch panel, or a keyboard can be used.
  • the disk drive 108 is a drive device that reads programs and data recorded on the recording medium 113.
  • a magnetic disk such as a flexible disk (FD)
  • an optical disk such as a CD (Compact Disk) or a DVD (Digital Versatile Disk), or a magneto-optical disk (MO) is used. be able to.
  • the disk drive 108 writes the read program and data into the RAM 102 and notifies the CPU 101 of the completion of writing.
  • the communication unit 109 performs wired communication via the network 20.
  • the communication unit 109 communicates with the management device 200 and the client device 300 to transmit data stored in the RAM 102 and write received data to the RAM 102.
  • timing device 104 is an example of the timing device 12 according to the first embodiment.
  • the RAM 102 or the HDD 103 is an example of the storage unit 13 according to the first embodiment.
  • the CPU 101 and the RAM 102 are an example of the control unit 14 according to the first embodiment.
  • the server device 100 may include a plurality of CPUs and RAMs. In that case, different CPUs and RAMs can be allocated to different virtual machines.
  • the server apparatuses 100a and 100b, the management apparatus 200, and the client apparatus 300 can also be realized by the same hardware configuration as the server apparatus 100 described above. However, some or all of the server apparatuses 100, 100a, 100b and the management apparatus 200 may not include a user interface such as a display or an input device, and may not include a disk drive.
  • FIG. 4 is a block diagram illustrating an arrangement example of virtual machines.
  • two virtual machines are arranged on each of the server apparatuses 100 and 100 a by the selection of the management apparatus 200.
  • virtual machines 121 and 122 (virtual machines # 1 and # 2) are arranged.
  • Virtual machines 121a and 122a (virtual machines # 3 and # 4) are arranged on the server 100a.
  • the OS is executed on each of the virtual machines # 1 to # 4.
  • the OSs of the virtual machines # 1 to # 4 may all be the same type of OS, or different types of OSs may be mixed.
  • the server apparatus 100 executes the hypervisor 130.
  • the hypervisor 130 allocates the resources of the server device 100 such as the computing capacity of the CPU 101 and the storage area of the RAM 102 to the virtual machines # 1 and # 2.
  • the server apparatus 100a executes the hypervisor 130a.
  • the hypervisor 130a allocates the resources of the server device 100a to the virtual machines # 3 and # 4.
  • the OSs of the virtual machines # 1 to # 4 manage the allocated resources.
  • the hypervisor 130 uses the timer device 105 to periodically acquire control of the server device 100.
  • the hypervisor 130 designates a time for the timer device 105 and generates an interrupt signal at regular time intervals so that the hypervisor 130 can obtain control. Thereby, even if the OS processing of the virtual machines # 1 and # 2 is being executed, the processing of the hypervisor 130 is prioritized.
  • the hypervisor 130a uses a timer device 105a corresponding to the timer device 105 of the server apparatus 100 in order to periodically acquire control of the server apparatus 100a.
  • the hypervisor 130 uses the timing device 104 to provide time to the OSs of the virtual machines # 1 and # 2.
  • the time provided to the virtual machines # 1 and # 2 is a virtual time and may be different from the actual time provided by the timing device 104.
  • the hypervisor 130 acquires the time change information from the management apparatus 200 before the virtual machines # 1 and # 2 are activated, the hypervisor 130 determines whether the actual time and the virtual time are based on the acquired time change information. Perform conversion. The virtual time can be changed for each virtual machine.
  • the hypervisor 130a provides time to the OSs of the virtual machines # 3 and # 4 by using a timing device 104a corresponding to the timing device 104 of the server apparatus 100.
  • the hypervisor 130 may provide a virtual time to the issuing OS when the OS of any virtual machine issues an instruction to access the timing device 104.
  • the hypervisor 130 sets a virtual address indicating an instruction to access the timing device 104 for each virtual machine.
  • the address may be an I / O (Input / Output) space address (I / O address system) or a memory space address (memory mapped I / O system).
  • I / O Input / Output
  • memory space address memory mapped I / O system
  • FIG. 5 is a block diagram showing the virtual machine control function.
  • a virtual machine information storage unit 131 By executing the program, a virtual machine information storage unit 131, a virtual machine control unit 132, a virtual clock control unit 133, and a virtual timer control unit 134 are realized in the server device 100. These units are included in the hypervisor 130.
  • the server device 100a, 100b also realizes the same function as the server device 100.
  • a clock initialization unit 211 and a virtual machine arrangement unit 212 are realized in the management apparatus 200.
  • the above function is realized by software. However, it can be implemented as a hardware circuit.
  • the virtual machine information storage unit 131 stores virtual machine information including information regarding the times of the virtual machines # 1 and # 2.
  • the virtual machine information storage unit 131 can be realized as a storage area secured in the RAM 102 or the HDD 103, for example.
  • the virtual machine control unit 132 When the virtual machine control unit 132 acquires time change information from the management apparatus 200, the virtual machine control unit 132 records the acquired time change information in the virtual machine information storage unit 131. Further, the virtual machine control unit 132 activates the virtual machines # 1 and # 2 in accordance with an instruction from the management apparatus 200, and records the activation time in the virtual machine information storage unit 131. Further, the execution of the virtual machines # 1 and # 2 is terminated in response to an instruction from the management apparatus 200.
  • the virtual clock control unit 133 detects an instruction for accessing the timing device 104 issued by the OS of any virtual machine. For example, an instruction specifying a virtual I / O space address or a memory space address associated with the timing device 104 is detected.
  • the virtual clock control unit 133 acquires the time from the time measuring device 104, and converts the acquired time into a virtual time based on the information stored in the virtual machine information storage unit 131. Then, the virtual time is notified to the OS that issued the instruction.
  • the virtual clock control unit 133 updates the information related to the time stored in the virtual machine information storage unit 131 without changing the time held by the timing device 104.
  • the virtual timer control unit 134 detects an instruction to access the timer device 105 issued by the OS of any virtual machine. For example, an instruction specifying a virtual I / O space address or a memory space address associated with the timer device 105 is detected.
  • the virtual timer control unit 134 detects an instruction, the virtual timer control unit 134 generates an interrupt signal without using the timer device 105.
  • the virtual timer control unit 134 calculates the target virtual time by adding the time specified by the command to the current virtual time calculated as described above. Then, when the calculated virtual time becomes the target virtual time, an interrupt signal is generated so that the OS that issued the instruction can acquire control.
  • the clock initialization unit 211 acquires a file (time setting file) including time setting information created by the client device 300. As described later, the time setting information includes a time offset, an acceleration coefficient, and an assumed time zone for each virtual machine. The clock initialization unit 211 calculates a time difference considering the time difference for each virtual machine from the time offset and the time zone, and transmits time change information including the time difference and the acceleration coefficient to the server devices 100, 100a, and 100b. .
  • the virtual machine arrangement unit 212 selects a server apparatus that operates the requested virtual machine so that the load on the server apparatuses 100, 100a, and 100b is not biased. Then, it instructs the selected server device to start the virtual machine.
  • the client device 300 requests the end of the virtual machine, the client device 300 instructs the server device in which the virtual machine related to the request is arranged to end the virtual machine.
  • FIG. 6 is a diagram showing a description example of the time setting file.
  • the client device 300 creates a time setting file 221 according to the user's operation and transmits it to the management device 200.
  • time setting information is described in an XML (Extensible Markup Language) format.
  • the format shown in FIG. 6 is an example, and the description format of the time setting information is not limited to this.
  • a set of virtual machines used for application software testing is defined.
  • the name “test1” is defined in the top tag for the set of virtual machines # 1 to # 3.
  • a time offset and an acceleration coefficient are defined for the set of virtual machines # 1 to # 3 as described above.
  • the time offset is an initial value (difference when the virtual machines # 1 to # 3 are started) of the difference between the actual time and the virtual time when the time difference is not taken into consideration.
  • the acceleration coefficient is a ratio of the traveling speed of the virtual time to the traveling speed of the actual time, and takes a positive number. An acceleration factor greater than 1 means acceleration, and an acceleration factor less than 1 means deceleration.
  • a time zone is defined for each of the virtual machines # 1 to # 3 as described above.
  • the sum of the time difference and time offset indicated by the time zone is the initial value of the time difference taking into account the time difference set for each virtual machine (the time difference at the time of startup of the virtual machines # 1 to # 3).
  • the time offset and acceleration coefficient are set for the set of virtual machines # 1 to # 3.
  • the time offset and acceleration coefficient may be set for each virtual machine.
  • the time offset for each virtual machine described in the time setting file 221 may be one that takes into account the influence of the time difference.
  • FIG. 7 is a diagram illustrating a structure example of the virtual machine management table.
  • a virtual machine management table 141 is stored in the virtual machine information storage unit 131 of the server apparatus 100.
  • the server apparatuses 100a and 100b also store a virtual machine management table having a similar structure.
  • the structure shown in FIG. 7 is an example, and the data structure of the virtual machine information is not limited to this.
  • the virtual machine management table 141 includes items of ID (Identifier), time difference, acceleration coefficient, and start time.
  • ID is identification information for identifying a virtual machine operating on the server device 100.
  • the time difference is a time difference included in the time change information transmitted by the management apparatus 200.
  • the acceleration coefficient is an acceleration coefficient included in the time change information transmitted by the management apparatus 200.
  • the activation time is an actual time when each virtual machine is activated (time provided by the timing device 104), and is recorded by the virtual machine control unit 132.
  • Such information indicates that the virtual machine # 1 is started at 6:10 on October 12, 2010, and the virtual time when the virtual machine # 1 starts is 50 hours ahead of the actual time. It shows that time advances at a speed 1.5 times the actual time.
  • FIG. 8 is a flowchart showing virtual machine activation processing. The process illustrated in FIG. 8 will be described along with step numbers. (Step S ⁇ b> 11)
  • the clock initialization unit 211 acquires the time setting file 221 created by the client device 300.
  • Step S12 The clock initialization unit 211 identifies the time difference from the time zone described in the time setting file 221. Then, the time difference is calculated for each of the virtual machines # 1 to # 3 by adding a time difference to the time offset described in the time setting file 221. The time difference is specified based on the time of the time measuring device 104. When the time of the time measuring device 104 is the local time, the time difference means a difference from the local time. When the time of the time measuring device 104 is the UTC, the time difference means a difference from the UTC.
  • the virtual machine placement unit 212 refers to the loads of the server devices 100, 100a, and 100b, and selects the server device on which the virtual machines # 1 to # 3 are placed.
  • the virtual machines # 1 and # 2 are arranged in the server apparatus 100
  • the virtual machine # 3 is arranged in the server apparatus 100a.
  • information indicating the load on the server devices 100, 100a, and 100b can be collected from, for example, the hypervisor of each server device.
  • Step S14 The clock initialization unit 211 transmits time change information for the virtual machines # 1 and # 2 to the server apparatus 100, and transmits time change information for the virtual machine # 3 to the server apparatus 100a.
  • the time change information includes the time difference calculated in step S12 and the acceleration coefficient described in the time setting file 221.
  • the virtual machine control unit 132 registers the time difference and the acceleration coefficient of the virtual machines # 1 and # 2 in the virtual machine management table 141. Similarly, the time difference and acceleration coefficient of the virtual machine # 3 are registered in the server device 100a.
  • Step S15 The virtual machine placement unit 212 instructs the server apparatus 100 to start the virtual machines # 1 and # 2, and instructs the server apparatus 100a to start the virtual machine # 3.
  • the virtual machine control unit 132 acquires an image file including an OS program from the HDD 103 or another device connected to the network 20 and activates the OSs of the virtual machines # 1 and # 2. Also, the startup times of the virtual machines # 1 and # 2 are registered in the virtual machine management table 141. Similarly, the virtual machine # 3 is activated on the server device 100a.
  • FIG. 9 is a flowchart showing the time acquisition process.
  • the OS of the virtual machine # 1 acquires the time.
  • the process illustrated in FIG. 9 will be described along with step numbers.
  • the virtual clock control unit 133 detects an instruction indicating access (time acquisition) to the timing device 104 issued by the OS of the virtual machine # 1.
  • the command is issued, for example, a case where the user inputs a command for confirming the current time or a case where an application program that refers to the current time is executed may be considered.
  • Step S ⁇ b> 22 The virtual clock control unit 133 accesses the timing device 104 and acquires the actual time from the timing device 104.
  • Step S ⁇ b> 23 The virtual clock control unit 133 acquires the time difference, the acceleration coefficient, and the start time of the access source virtual machine # 1 from the virtual machine management table 141.
  • the virtual clock control unit 133 converts the actual time acquired from the time measuring device 104 into the virtual time by using the time difference, the acceleration coefficient, and the start time of the virtual machine # 1. For example, the virtual clock control unit 133 calculates the virtual time according to the following formula. Note that the difference between the actual time and the start time corresponds to the actual elapsed time from the start of the virtual machine # 1.
  • Virtual time actual time + time difference + (acceleration coefficient -1) x (actual time-start time) (Step S25)
  • the virtual clock control unit 133 notifies the calculated virtual time to the OS of the virtual machine # 1 as a response to the detected command.
  • FIG. 10 is a flowchart showing the time setting process.
  • the processing illustrated in FIG. 10 will be described along with step numbers.
  • the virtual clock control unit 133 detects an instruction indicating access (time setting) to the timing device 104 issued by the OS of the virtual machine # 1. For example, when the user issues a command for changing the current time, or when an application program for changing the current time is executed, the OS automatically switches between daylight saving time and normal time. Cases can be considered.
  • Step S ⁇ b> 32 The virtual clock control unit 133 accesses the timing device 104 and acquires the actual time from the timing device 104.
  • Step S ⁇ b> 33 The virtual clock control unit 133 acquires the acceleration coefficient and start time of the access source virtual machine # 1 from the virtual machine management table 141.
  • Step S34 The virtual clock control unit 133 updates the time difference using the acceleration coefficient and the activation time of the virtual machine # 1, the actual time acquired from the timing device 104, and the set time specified by the instruction. To do. The actual time held by the timing device 104 is not changed. For example, the virtual clock control unit 133 calculates the virtual time according to the following formula. The set time specified from the OS of the virtual machine # 1 is based on the virtual time.
  • Time difference set time-actual time-(acceleration coefficient-1) x (actual time-start time) (Step S35)
  • the virtual clock control unit 133 updates the virtual machine information by registering the calculated new time difference in the virtual machine management table 141.
  • Step S36 The virtual clock control unit 133 notifies the OS of the virtual machine # 1 of the completion of time setting as a response to the detected command.
  • FIG. 11 is a flowchart showing the timer management process. Here, consider a case where the OS of the virtual machine # 1 generates a timer interrupt. The processing illustrated in FIG. 11 will be described along with step numbers.
  • Step S41 The virtual timer control unit 134 detects a command indicating access to the timer device 105 issued by the OS of the virtual machine # 1.
  • Step S42 The virtual timer control unit 134 determines whether an elapsed time is specified in the detected command. If the elapsed time is designated, the process proceeds to step S43. If the interrupt generation time is specified instead of the elapsed time, the process proceeds to step S44.
  • the specified elapsed time is the time viewed from the virtual machine # 1 (time in which the acceleration coefficient is considered). The specified time is based on the virtual time of virtual machine # 1.
  • Step S43 The virtual timer control unit 134 requests the current virtual time of the virtual machine # 1 from the virtual clock control unit 133, and adds the elapsed time specified by the command to the virtual time acquired from the virtual clock control unit 133.
  • the time of occurrence of interrupt (virtual time) is calculated by addition.
  • Step S44 The virtual timer control unit 134 requests the virtual clock control unit 133 for the current virtual time of the virtual machine # 1, and acquires the virtual time.
  • Step S45 The virtual timer control unit 134 determines whether or not the current virtual time of the virtual machine # 1 is the time of occurrence of an interrupt. If it is time to generate an interrupt, the process proceeds to step S46. Otherwise, the process proceeds to step S44.
  • the virtual timer control unit 134 generates an interrupt so that the OS of the virtual machine # 1 that sets the timer can acquire control.
  • the virtual timer control unit 134 manages the timer based on the virtual time, but may manage the timer based on the actual time. For example, the virtual timer control unit 134 divides the specified elapsed time (virtual time) by the acceleration coefficient, calculates the elapsed time based on the actual time speed, adds the current time, and generates an interrupt. The actual time of is calculated. Alternatively, using the time difference and the acceleration coefficient, the designated interrupt occurrence time (virtual time) is converted into an actual interrupt occurrence time. Then, the virtual timer control unit 134 generates an interrupt when the current time becomes the actual time of occurrence of the interrupt.
  • the virtual time recognized by each virtual machine can be easily adjusted by using the information processing system of the second embodiment. Therefore, it is possible to improve the efficiency of testing application software in which time-dependent information processing is implemented. For example, by setting a time offset, the virtual time of each virtual machine can be shifted, and a test assuming an arbitrary time becomes easy. In addition, by setting the acceleration coefficient, the speed of the virtual time can be adjusted, and the test can be easily executed at high speed. For this reason, for example, even when testing whether information processing is normally executed when switching between daylight saving time and normal time, the test can be completed in a short time.
  • a time difference can be set for each virtual machine, multiple virtual machines with different virtual times can be placed on the same server device, making it possible to efficiently test a computer system in which devices are installed at multiple locations with different time zones. Can be executed. Further, since the change of the virtual time can be realized not as an operation on the timing device 104 but as an update of the time difference, it is possible to allow the OS of each virtual machine to request the time change independently. In addition, the client device 300 can easily start a plurality of virtual machines having different virtual times by transmitting the time setting file 221 to the management device 200.
  • the management apparatus 200 can communicate with virtual machines belonging to the same group by using a technology such as VLAN (Virtual Local Area Network), but does not allow communication between virtual machines belonging to different groups. It is conceivable to perform a setting for logical separation. In that case, a plurality of virtual machines belonging to the same group can form one closed “world” in which the virtual time advances with a constant acceleration factor. By building such a “test world”, it becomes easy to test application software related to a distributed processing system.
  • VLAN Virtual Local Area Network
  • the functions of the server apparatuses 100, 100a, 100b and the management apparatus 200 can be realized using a computer.
  • a program to be executed by the server apparatuses 100, 100a, 100b and the management apparatus 200 is provided.
  • the program can be recorded on a computer-readable recording medium (for example, the recording medium 113).
  • a computer-readable recording medium for example, the recording medium 113.
  • the recording medium for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used.
  • Magnetic disks include HDDs and FDs.
  • Optical disks include CD, CD-R (Recordable) / RW (ReWritable), DVD, and DVD-R / RW.
  • a portable recording medium on which the program is recorded is provided. It is also possible to store the program in a storage device of another computer and distribute the program via a network.
  • the server apparatuses 100, 100a, 100b and the management apparatus 200 store, for example, a program recorded on a portable recording medium or a program received from another computer in a storage device. Then, the program is read from the storage device and executed. However, the program may be directly read from the portable recording medium and executed. Alternatively, the received program may be executed sequentially each time a program is received from another computer.

Abstract

The present invention facilitates confirmation of time-dependent information processing on a virtual machine. The information processing device (10) has a clock device (12), a memory unit (13), and a controller (14). The clock device (12) provides a first time. The memory unit (13) stores difference information showing the difference in time with respect to the first time. The controller (14) acquires the first time from the clock device (12), calculates a second time using the acquired first time and the difference shown by the difference information stored to the memory unit (13), and provides the calculated second time to virtual machines (11a, 11b).

Description

情報処理装置、時刻制御方法および時刻制御プログラムInformation processing apparatus, time control method, and time control program
 本発明は情報処理装置、時刻制御方法および時刻制御プログラムに関する。 The present invention relates to an information processing apparatus, a time control method, and a time control program.
 現在、物理的なコンピュータ(物理マシンと呼ぶことがある)上で、1またはそれ以上の仮想的なコンピュータ(仮想マシンと呼ぶことがある)を実行させる仮想化技術が利用されている。仮想化技術を採用する物理マシンでは、例えば、仮想マシンを制御するソフトウェア(ハイパーバイザと呼ぶことがある)が実行される。ハイパーバイザは、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域などのリソースを仮想マシンに割り振る。 Currently, virtualization technology is used to execute one or more virtual computers (sometimes called virtual machines) on a physical computer (sometimes called a physical machine). In a physical machine that employs a virtualization technology, for example, software (sometimes called a hypervisor) that controls the virtual machine is executed. The hypervisor allocates resources such as a processing capacity of a CPU (Central Processing Unit) and a storage area of a RAM (Random Access Memory) to a virtual machine.
 各仮想マシンでは、オペレーティングシステム(OS:Operating System)が実行される。仮想マシンのOSは、ハイパーバイザから割り振られたリソースを管理し、アプリケーションプログラムの実行を制御する。仮想マシンのOSがHDD(Hard Disk Drive)などのデバイスにアクセスしようとする場合、ハイパーバイザによってアクセスの要求が検出される。そして、例えば、ハイパーバイザ(または、ハイパーバイザから要求を受けた他のソフトウェアなど)が、仮想マシンのOSに代わってデバイスへのアクセスを実行し、アクセス結果を仮想マシンのOSに通知する。 In each virtual machine, an operating system (OS: Operating System) is executed. The OS of the virtual machine manages resources allocated from the hypervisor and controls execution of application programs. When the OS of the virtual machine tries to access a device such as an HDD (Hard Disk Disk Drive), the access request is detected by the hypervisor. Then, for example, a hypervisor (or other software that receives a request from the hypervisor) executes access to the device instead of the OS of the virtual machine, and notifies the OS of the virtual machine of the access result.
 なお、仮想マシンのOSからタイマ命令が発行されると、タイマ命令で指定された経過時間を加速係数で除し、補正された経過時間に基づいて実タイマ機構を作動させる仮想計算機システムが提案されている。また、仮想マシン上のソフトウェアがタイマ割り込みを依頼するものであるとき、依頼された経過時間をタイマ加速係数に基づいて補正してタイマ割り込みを発生させる方法が提案されている。 When a timer command is issued from the OS of the virtual machine, a virtual computer system that divides the elapsed time specified by the timer command by the acceleration factor and operates the real timer mechanism based on the corrected elapsed time is proposed. ing. Further, there has been proposed a method of generating a timer interrupt by correcting the requested elapsed time based on a timer acceleration coefficient when software on a virtual machine requests a timer interrupt.
 また、タイマソースの変更による影響を吸収するため、タイマソース変更前後のクロック周波数の比に基づいて実タイマを仮想タイマに変換し、仮想タイマのクロックに基づいてアプリケーション処理を制御するマイクロコンピュータが提案されている。 In order to absorb the effects of changing the timer source, a microcomputer that converts the real timer to a virtual timer based on the ratio of the clock frequency before and after the timer source change and proposes a microcomputer that controls application processing based on the virtual timer clock is proposed. Has been.
特開平1-309136号公報(第2頁右下段)Japanese Laid-Open Patent Publication No. 1-309136 (bottom right of page 2) 特開平11-306036号公報(段落[0011])JP-A-11-306036 (paragraph [0011]) 特開2007-34672号公報JP 2007-34672 A
 ところで、ソフトウェアの中には、特定の時刻にのみ実行されるような時刻依存の情報処理が実装されたものが存在する。ソフトウェアのテストなどの場面では、時刻依存の情報処理を実行させて結果を確認するために、現在時刻を変更したソフトウェア実行環境を用意する方法が考えられる。しかし、当該ソフトウェア実行環境を、どのように効率的に実現するかが問題となる。例えば、仮想化技術を採用するとしても、上記特許文献1,2の方法では、OSが認識する現在時刻を任意の時刻に変更することは困難であった。 By the way, some software includes time-dependent information processing that is executed only at a specific time. In situations such as software testing, a method for preparing a software execution environment in which the current time is changed can be considered in order to execute time-dependent information processing and check the result. However, how to efficiently realize the software execution environment becomes a problem. For example, even if the virtualization technique is adopted, it is difficult to change the current time recognized by the OS to an arbitrary time with the methods of Patent Documents 1 and 2 described above.
 1つの側面では、本発明は、仮想マシン上において時刻依存の情報処理の確認を容易にする情報処理装置、時刻制御方法および時刻制御プログラムを提供することを目的とする。 In one aspect, an object of the present invention is to provide an information processing apparatus, a time control method, and a time control program that facilitate confirmation of time-dependent information processing on a virtual machine.
 一実施態様では、仮想マシンを実行する情報処理装置が提供される。この情報処理装置は、計時デバイスと記憶部と制御部を有する。計時デバイスは、第1の時刻を提供する。記憶部は、第1の時刻に対する時刻の差分を示す差分情報を記憶する。制御部は、計時デバイスから第1の時刻を取得し、取得した第1の時刻と記憶部に記憶された差分情報が示す差分とを用いて第2の時刻を算出し、算出した第2の時刻を仮想マシンに提供する。 In one embodiment, an information processing apparatus that executes a virtual machine is provided. This information processing apparatus includes a timing device, a storage unit, and a control unit. The timing device provides a first time. The storage unit stores difference information indicating a time difference with respect to the first time. The control unit acquires the first time from the timing device, calculates the second time using the acquired first time and the difference indicated by the difference information stored in the storage unit, and calculates the calculated second time Provide the time to the virtual machine.
 また、一実施態様では、仮想マシンを実行するコンピュータが行う時刻制御方法が提供される。この時刻制御方法では、コンピュータが備える計時デバイスから第1の時刻を取得する。取得した第1の時刻と、記憶部に記憶された第1の時刻に対する時刻の差分を示す差分情報と、に基づいて第2の時刻を算出する。算出した第2の時刻を仮想マシンに提供する。また、仮想マシンを実行するコンピュータに実行させる時刻制御プログラムが提供される。 Also, in one embodiment, a time control method performed by a computer executing a virtual machine is provided. In this time control method, the first time is acquired from the time measuring device provided in the computer. A second time is calculated based on the acquired first time and difference information indicating a difference in time with respect to the first time stored in the storage unit. The calculated second time is provided to the virtual machine. A time control program to be executed by a computer that executes the virtual machine is also provided.
 一実施態様によれば、仮想マシン上において時刻依存の情報処理の確認が容易となる。
 本発明の上記および他の目的、特徴および利点は、本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
According to one embodiment, confirmation of time-dependent information processing on a virtual machine is facilitated.
The above and other objects, features and advantages of the present invention will become apparent from the following description in conjunction with the accompanying drawings which illustrate preferred embodiments as examples of the present invention.
第1の実施の形態の情報処理装置を示す図である。It is a figure which shows the information processing apparatus of 1st Embodiment. 第2の実施の形態の情報処理システムを示す図である。It is a figure which shows the information processing system of 2nd Embodiment. サーバ装置のハードウェア例を示すブロック図である。It is a block diagram which shows the hardware example of a server apparatus. 仮想マシンの配置例を示すブロック図である。It is a block diagram which shows the example of arrangement | positioning of a virtual machine. 仮想マシン制御機能を示すブロック図である。It is a block diagram which shows a virtual machine control function. 時刻設定ファイルの記載例を示す図である。It is a figure which shows the example of a description of a time setting file. 仮想マシン管理テーブルの構造例を示す図である。It is a figure which shows the structural example of a virtual machine management table. 仮想マシン起動処理を示すフローチャートである。It is a flowchart which shows a virtual machine starting process. 時刻取得処理を示すフローチャートである。It is a flowchart which shows a time acquisition process. 時刻設定処理を示すフローチャートである。It is a flowchart which shows a time setting process. タイマ管理処理を示すフローチャートである。It is a flowchart which shows a timer management process.
 以下、本実施の形態を図面を参照して説明する。
 [第1の実施の形態]
 図1は、第1の実施の形態の情報処理装置を示す図である。情報処理装置10では、一例として、仮想マシン11a,11bが実行されている。ただし、情報処理装置10で実行される仮想マシンの数は1つでもよいし3つ以上でもよい。情報処理装置10は、計時デバイス12、記憶部13および制御部14を有する。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating the information processing apparatus according to the first embodiment. In the information processing apparatus 10, virtual machines 11a and 11b are executed as an example. However, the number of virtual machines executed by the information processing apparatus 10 may be one or three or more. The information processing apparatus 10 includes a timing device 12, a storage unit 13, and a control unit 14.
 計時デバイス12は、第1の時刻を提供するハードウェアデバイスである。第1の時刻は、情報処理装置10が設置されている場所のタイムゾーンの現在時刻でもよい。また、第1の時刻は、協定世界時(UTC:Universal Time Coordinated)でもよい。計時デバイス12が保持する第1の時刻は、例えば、現実の時間速度に合わせて進行する。 The timing device 12 is a hardware device that provides the first time. The first time may be the current time in the time zone where the information processing apparatus 10 is installed. The first time may be Coordinated Universal Time (UTC: Universal Time Time Coordinated). The first time held by the timing device 12 proceeds in accordance with, for example, an actual time speed.
 記憶部13は、第1の時刻に対する時刻の差分(例えば、ゼロでない値)を示す差分情報を記憶する。差分情報が示す差分は、複数の仮想マシンに共通に適用されるものであってもよい。また、仮想マシン毎の差分情報が、記憶部13に記憶されていてもよい。記憶部13に記憶される差分情報は、情報処理装置10の外部からネットワーク経由で受信されたものであってもよい。なお、記憶部13としては、例えば、揮発性メモリ、不揮発性メモリ、磁気ディスクなどの任意の記憶装置を使用することができる。 The storage unit 13 stores difference information indicating a time difference (for example, a non-zero value) with respect to the first time. The difference indicated by the difference information may be commonly applied to a plurality of virtual machines. Further, difference information for each virtual machine may be stored in the storage unit 13. The difference information stored in the storage unit 13 may be received from outside the information processing apparatus 10 via a network. As the storage unit 13, for example, an arbitrary storage device such as a volatile memory, a nonvolatile memory, or a magnetic disk can be used.
 制御部14は、計時デバイス12から第1の時刻を取得し、取得した第1の時刻と記憶部13に記憶された差分情報が示す差分とを用いて、第2の時刻を算出する。例えば、第1の時刻に差分情報が示す差分を加えて(第1の時刻をシフトして)第2の時刻とする。制御部14は、算出した第2の時刻を、仮想マシン11a,11bに提供する。第2の時刻は、仮想マシン11a,11bから見た仮想的な時刻と言うこともできる。制御部14は、仮想マシン毎の差分情報が用意されている場合、仮想マシン毎に第2の時刻を算出してもよい。制御部14は、仮想マシン11a,11bから計時デバイス12にアクセスする命令が発行されたことを契機として、発行元の仮想マシンの第2の時刻を算出してもよい。なお、制御部14は、ハイパーバイザのモジュールとして実現することができる。 The control unit 14 acquires the first time from the time measuring device 12, and calculates the second time using the acquired first time and the difference indicated by the difference information stored in the storage unit 13. For example, the difference indicated by the difference information is added to the first time (shifted from the first time) to obtain the second time. The control unit 14 provides the calculated second time to the virtual machines 11a and 11b. The second time can also be said to be a virtual time viewed from the virtual machines 11a and 11b. When difference information for each virtual machine is prepared, the control unit 14 may calculate the second time for each virtual machine. The control unit 14 may calculate the second time of the issuing virtual machine when a command to access the timing device 12 is issued from the virtual machines 11a and 11b. The control unit 14 can be realized as a hypervisor module.
 情報処理装置10によれば、情報処理装置10が備える計時デバイス12から、第1の時刻が取得される。取得された第1の時刻と記憶部13に記憶された差分情報が示す差分とに基づいて、第2の時刻が算出される。算出された第2の時刻が、仮想マシン11a,11bの一部または全部に提供される。 According to the information processing apparatus 10, the first time is acquired from the timing device 12 included in the information processing apparatus 10. The second time is calculated based on the acquired first time and the difference indicated by the difference information stored in the storage unit 13. The calculated second time is provided to some or all of the virtual machines 11a and 11b.
 情報処理装置10を用いることで、仮想マシン11a,11bで認識される時刻を容易に変更でき、時刻依存の情報処理を仮想マシン11a,11b上で効率的に実行させることができる。例えば、差分情報を情報処理装置10に登録することで、容易に、任意の時刻を想定したソフトウェアのテストを行える。また、仮想マシン毎に異なる差分情報を情報処理装置10に登録することで、時刻設定の異なる複数の仮想マシンを情報処理装置10上で共存させることもでき、異なる時刻を想定した複数通りのテストを並列に行うことができる。よって、例えば、タイムゾーンの異なる複数の場所に設置する計算機システムのテストを、情報処理装置10上で並列に行うことができ、テストが効率化される。 By using the information processing apparatus 10, the time recognized by the virtual machines 11a and 11b can be easily changed, and time-dependent information processing can be efficiently executed on the virtual machines 11a and 11b. For example, by registering the difference information in the information processing apparatus 10, it is possible to easily test software that assumes an arbitrary time. Also, by registering different difference information for each virtual machine in the information processing apparatus 10, a plurality of virtual machines having different time settings can coexist on the information processing apparatus 10, and multiple tests assuming different times are possible. Can be performed in parallel. Therefore, for example, tests of computer systems installed in a plurality of places having different time zones can be performed in parallel on the information processing apparatus 10, and the test is made more efficient.
 なお、記憶部13は、計時デバイス12の時間速度に対する仮想マシン11a,11bの時間速度の比(例えば、当該比を加速係数と呼んでもよい)を示す速度情報を更に記憶してもよい。例えば、制御部14は、第1の時刻および差分情報が示す差分に加えて、速度情報が示す比および計時デバイス12の時間速度を基準に測定される仮想マシン11a,11bの稼動時間を用いて、第2の時刻を算出してもよい。速度情報を用いることで、仮想マシン11a,11bから見た時間速度の調整が容易となる。 The storage unit 13 may further store speed information indicating a ratio of the time speeds of the virtual machines 11a and 11b to the time speed of the timing device 12 (for example, the ratio may be referred to as an acceleration coefficient). For example, in addition to the difference indicated by the first time and the difference information, the control unit 14 uses the operating time of the virtual machines 11a and 11b measured based on the ratio indicated by the speed information and the time speed of the time measuring device 12. The second time may be calculated. By using the speed information, the time speed viewed from the virtual machines 11a and 11b can be easily adjusted.
 [第2の実施の形態]
 図2は、第2の実施の形態の情報処理システムを示す図である。第2の実施の形態の情報処理システムは、サーバ装置100,100a,100b、管理装置200およびクライアント装置300を含む。サーバ装置100,100a,100bおよび管理装置200は、ネットワーク20に接続されている。クライアント装置300は、ネットワーク30に接続されている。第2の実施の形態の情報処理システムは、例えば、いわゆるクラウドコンピューティングの形態をとるシステム(クラウドシステム)として実現できる。
[Second Embodiment]
FIG. 2 illustrates an information processing system according to the second embodiment. The information processing system according to the second embodiment includes server devices 100, 100a, 100b, a management device 200, and a client device 300. Server devices 100, 100 a, 100 b and management device 200 are connected to network 20. The client device 300 is connected to the network 30. The information processing system according to the second embodiment can be realized, for example, as a system (cloud system) in the form of so-called cloud computing.
 サーバ装置100,100a,100bは、1またはそれ以上の仮想マシンが配置されるサーバコンピュータである。サーバ装置100,100a,100bでは、仮想マシンを制御するハイパーバイザが実行される。例えば、ハイパーバイザは、管理装置200からの指示に応じて、クライアント装置300のユーザが利用する仮想マシンの起動や終了の制御、当該仮想マシンへのCPUやRAMなどのリソースの割り当てなどを行う。 The server apparatuses 100, 100a, 100b are server computers on which one or more virtual machines are arranged. In the server apparatuses 100, 100a, and 100b, a hypervisor that controls the virtual machine is executed. For example, in response to an instruction from the management apparatus 200, the hypervisor performs control of activation and termination of a virtual machine used by the user of the client apparatus 300, allocation of resources such as a CPU and RAM to the virtual machine, and the like.
 管理装置200は、サーバ装置100,100a,100bへの仮想マシンの配置を管理するサーバコンピュータである。例えば、管理装置200は、クライアント装置300が仮想マシンの起動を要求すると、負荷が偏らないように1またはそれ以上のサーバ装置を選択し、選択したサーバ装置に仮想マシンの起動を指示する。仮想マシンの起動の要求時またはその前に、仮想マシンから見た時刻の変更を示す時刻設定情報をクライアント装置300から取得した場合は、選択したサーバ装置に時刻変更も指示する。また、管理装置200は、クライアント装置300が仮想マシンの終了を要求すると、要求に係る仮想マシンが配置されたサーバ装置に仮想マシンの終了を指示する。 The management device 200 is a server computer that manages the placement of virtual machines on the server devices 100, 100a, and 100b. For example, when the client device 300 requests the virtual machine to be activated, the management device 200 selects one or more server devices so that the load is not biased, and instructs the selected server device to activate the virtual machine. When time setting information indicating a change in time viewed from the virtual machine is acquired from the client device 300 at or before the request to start the virtual machine, the time change is also instructed to the selected server device. In addition, when the client apparatus 300 requests the end of the virtual machine, the management apparatus 200 instructs the server apparatus in which the virtual machine related to the request is disposed to end the virtual machine.
 クライアント装置300は、ユーザが操作する端末装置としてのコンピュータである。例えば、クライアント装置300は、ネットワーク30を介して、仮想マシンの起動を管理装置200に要求する。そして、例えば、起動された仮想マシン上にアプリケーションプログラムを配置する命令を送信して、当該アプリケーションプログラムを実行させる。仮想マシンから見た時刻を変更するため、仮想マシンの起動の要求時またはその前に、時刻設定情報を管理装置200に送信してもよい。また、クライアント装置300は、仮想マシンの終了を管理装置200に要求する。クライアント装置300は、管理装置200へのアクセスに用いるユーザインタフェースとして、ウェブブラウザを実行してもよい。 The client device 300 is a computer as a terminal device operated by a user. For example, the client device 300 requests the management device 200 to start a virtual machine via the network 30. Then, for example, an instruction to place an application program on the activated virtual machine is transmitted to execute the application program. In order to change the time seen from the virtual machine, the time setting information may be transmitted to the management apparatus 200 when the virtual machine is requested to be started or before. Further, the client apparatus 300 requests the management apparatus 200 to end the virtual machine. The client device 300 may execute a web browser as a user interface used for accessing the management device 200.
 なお、第2の実施の形態の情報処理システムは、ソフトウェア開発環境として使用することができる。例えば、ソフトウェア技術者がクライアント装置300を操作し、1またはそれ以上の仮想マシンをサーバ装置100,100a,100b上で起動させ、作成したアプリケーションプログラムを当該仮想マシン上でテストすることが可能である。以下の説明では、利用形態の一例として、時刻依存の情報処理が実装されたアプリケーションソフトウェアを、時刻設定の異なる複数の仮想マシンを用いてテストする場合を考える。 Note that the information processing system of the second embodiment can be used as a software development environment. For example, a software engineer can operate the client apparatus 300 to start one or more virtual machines on the server apparatuses 100, 100a, and 100b, and test the created application program on the virtual machine. . In the following description, as an example of usage, a case is considered in which application software in which time-dependent information processing is implemented is tested using a plurality of virtual machines having different time settings.
 図3は、サーバ装置のハードウェア例を示すブロック図である。サーバ装置100は、CPU101、RAM102、HDD103、計時デバイス104、タイマデバイス105、画像信号処理部106、入力信号処理部107、ディスクドライブ108および通信部109を有する。サーバ装置100内では、上記ユニットがバスに接続されている。 FIG. 3 is a block diagram illustrating a hardware example of the server device. The server apparatus 100 includes a CPU 101, a RAM 102, an HDD 103, a timing device 104, a timer device 105, an image signal processing unit 106, an input signal processing unit 107, a disk drive 108, and a communication unit 109. In the server apparatus 100, the unit is connected to a bus.
 CPU101は、サーバ装置100の情報処理を制御する演算装置である。例えば、CPU101は、HDD103(または、他の情報処理装置の記憶装置)に記憶されたプログラムやデータの少なくとも一部を読み出し、RAM102に展開してプログラムを実行する。CPU101は、計時デバイス104にアクセスして、現在時刻を取得することがある。タイマ割り込みを発生させる場合、タイマデバイス105に時間または時刻を指定する。CPU101の演算能力が、ハイパーバイザおよび仮想マシンに割り振られる。 The CPU 101 is an arithmetic device that controls information processing of the server device 100. For example, the CPU 101 reads out at least a part of a program and data stored in the HDD 103 (or a storage device of another information processing apparatus), expands it in the RAM 102, and executes the program. The CPU 101 may access the timing device 104 to obtain the current time. When generating a timer interrupt, the timer device 105 is designated with time or time. The computing power of the CPU 101 is allocated to the hypervisor and the virtual machine.
 RAM102は、CPU101が読み出したプログラムやデータを一時的に記憶する揮発性メモリである。RAM102の記憶領域が、ハイパーバイザおよび仮想マシンに割り振られる。なお、サーバ装置100は、RAM以外の種類のメモリを備えてもよい。 The RAM 102 is a volatile memory that temporarily stores programs and data read by the CPU 101. A storage area of the RAM 102 is allocated to the hypervisor and the virtual machine. Note that the server device 100 may include a type of memory other than the RAM.
 HDD103は、OSプログラムやアプリケーションプログラムなどのプログラム、および、CPU101の演算に用いられるデータを記憶する不揮発性の記憶装置である。HDD103は、内蔵の磁気ディスクに対し読み書きを行う。なお、サーバ装置100は、HDD以外の種類の不揮発性記憶装置を備えてもよい。 The HDD 103 is a non-volatile storage device that stores programs such as an OS program and application programs, and data used for the operation of the CPU 101. The HDD 103 reads from and writes to the built-in magnetic disk. Note that the server device 100 may include a nonvolatile storage device of a type other than the HDD.
 計時デバイス104は、現在時刻を保持するハードウェアデバイスである。計時デバイス104は、CPU101からアクセスがあると、現在時刻をCPU101に提供する。計時デバイス104が保持する現在時刻は、サーバ装置100が設置されている場所のタイムゾーンの時刻(ローカル時刻)でもよいし、UTCでもよい。 Time keeping device 104 is a hardware device that holds the current time. When accessed from the CPU 101, the timing device 104 provides the current time to the CPU 101. The current time held by the time measuring device 104 may be the time (local time) of the time zone where the server apparatus 100 is installed, or UTC.
 タイマデバイス105は、割り込み信号を出力するハードウェアデバイスである。タイマデバイス105は、CPU101から時間を指定したアクセスがあると、アクセス時点からの経過時間を監視し、指定された時間が経過した時点でCPU101に割り込み信号を出力する。また、タイマデバイス105は、CPU101から時刻を指定したアクセスがあると、指定された時刻にCPU101に割り込み信号を出力する。 The timer device 105 is a hardware device that outputs an interrupt signal. When there is an access specifying a time from the CPU 101, the timer device 105 monitors the elapsed time from the access point and outputs an interrupt signal to the CPU 101 when the specified time has elapsed. In addition, when there is an access specifying a time from the CPU 101, the timer device 105 outputs an interrupt signal to the CPU 101 at the specified time.
 画像信号処理部106は、CPU101の命令に従って、サーバ装置100に接続されたディスプレイ111に画面を表示させる。ディスプレイ111としては、例えば、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。 The image signal processing unit 106 displays a screen on the display 111 connected to the server apparatus 100 in accordance with an instruction from the CPU 101. As the display 111, for example, a CRT (Cathode Ray Tube) display or a liquid crystal display can be used.
 入力信号処理部107は、サーバ装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、例えば、マウスやタッチパネルなどのポインティングデバイスや、キーボードを用いることができる。 The input signal processing unit 107 acquires an input signal from the input device 112 connected to the server apparatus 100 and outputs it to the CPU 101. As the input device 112, for example, a pointing device such as a mouse or a touch panel, or a keyboard can be used.
 ディスクドライブ108は、記録媒体113に記録されたプログラムやデータを読み取る駆動装置である。記録媒体113としては、例えば、フレキシブルディスク(FD:Flexible Disk)などの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を用いることができる。ディスクドライブ108は、読み出したプログラムやデータを、RAM102に書き込み、書き込みの完了をCPU101に通知する。 The disk drive 108 is a drive device that reads programs and data recorded on the recording medium 113. As the recording medium 113, for example, a magnetic disk such as a flexible disk (FD), an optical disk such as a CD (Compact Disk) or a DVD (Digital Versatile Disk), or a magneto-optical disk (MO) is used. be able to. The disk drive 108 writes the read program and data into the RAM 102 and notifies the CPU 101 of the completion of writing.
 通信部109は、ネットワーク20を介して、有線通信を行う。例えば、通信部109は、管理装置200やクライアント装置300と通信し、RAM102に格納されたデータの送信や、受信したデータのRAM102への書き込みなどを行う。 The communication unit 109 performs wired communication via the network 20. For example, the communication unit 109 communicates with the management device 200 and the client device 300 to transmit data stored in the RAM 102 and write received data to the RAM 102.
 なお、計時デバイス104は、第1の実施の形態の計時デバイス12の一例である。RAM102またはHDD103は、第1の実施の形態の記憶部13の一例である。CPU101およびRAM102は、第1の実施の形態の制御部14の一例である。 Note that the timing device 104 is an example of the timing device 12 according to the first embodiment. The RAM 102 or the HDD 103 is an example of the storage unit 13 according to the first embodiment. The CPU 101 and the RAM 102 are an example of the control unit 14 according to the first embodiment.
 また、サーバ装置100は、複数のCPUおよびRAMを備えてもよい。その場合、異なるCPUやRAMを、異なる仮想マシンに割り振ることもできる。サーバ装置100a,100b、管理装置200およびクライアント装置300も、上記のサーバ装置100と同様のハードウェア構成によって実現できる。ただし、サーバ装置100,100a,100bおよび管理装置200の一部または全部は、ディスプレイや入力デバイスなどのユーザインタフェースを備えなくてもよく、ディスクドライブを備えなくてもよい。 Further, the server device 100 may include a plurality of CPUs and RAMs. In that case, different CPUs and RAMs can be allocated to different virtual machines. The server apparatuses 100a and 100b, the management apparatus 200, and the client apparatus 300 can also be realized by the same hardware configuration as the server apparatus 100 described above. However, some or all of the server apparatuses 100, 100a, 100b and the management apparatus 200 may not include a user interface such as a display or an input device, and may not include a disk drive.
 図4は、仮想マシンの配置例を示すブロック図である。図4の例では、管理装置200の選択により、サーバ装置100,100aに2つずつ仮想マシンが配置されている。
 サーバ装置100には、仮想マシン121,122(仮想マシン#1,#2)が配置される。サーバ100aには、仮想マシン121a,122a(仮想マシン#3,#4)が配置される。仮想マシン#1~#4上では、それぞれOSが実行される。仮想マシン#1~#4のOSは、全て同じ種類のOSでもよいし、異なる種類のOSが混在してもよい。
FIG. 4 is a block diagram illustrating an arrangement example of virtual machines. In the example of FIG. 4, two virtual machines are arranged on each of the server apparatuses 100 and 100 a by the selection of the management apparatus 200.
In the server apparatus 100, virtual machines 121 and 122 (virtual machines # 1 and # 2) are arranged. Virtual machines 121a and 122a (virtual machines # 3 and # 4) are arranged on the server 100a. The OS is executed on each of the virtual machines # 1 to # 4. The OSs of the virtual machines # 1 to # 4 may all be the same type of OS, or different types of OSs may be mixed.
 サーバ装置100は、ハイパーバイザ130を実行する。ハイパーバイザ130は、CPU101の演算能力やRAM102の記憶領域などのサーバ装置100のリソースを、仮想マシン#1,#2に割り振る。サーバ装置100aは、ハイパーバイザ130aを実行する。ハイパーバイザ130aは、サーバ装置100aのリソースを仮想マシン#3,#4に割り振る。仮想マシン#1~#4のOSは、割り振られたリソースを管理する。 The server apparatus 100 executes the hypervisor 130. The hypervisor 130 allocates the resources of the server device 100 such as the computing capacity of the CPU 101 and the storage area of the RAM 102 to the virtual machines # 1 and # 2. The server apparatus 100a executes the hypervisor 130a. The hypervisor 130a allocates the resources of the server device 100a to the virtual machines # 3 and # 4. The OSs of the virtual machines # 1 to # 4 manage the allocated resources.
 ハイパーバイザ130は、サーバ装置100の制御を定期的に取得するために、タイマデバイス105を利用する。ハイパーバイザ130は、例えば、タイマデバイス105に時間を指定して一定時間毎に割り込み信号を発生させ、ハイパーバイザ130が制御を取得できるようにする。これにより、仮想マシン#1,#2のOSの処理が実行中であっても、ハイパーバイザ130の処理が優先される。同様に、ハイパーバイザ130aは、サーバ装置100aの制御を定期的に取得するために、サーバ装置100のタイマデバイス105に相当するタイマデバイス105aを利用する。 The hypervisor 130 uses the timer device 105 to periodically acquire control of the server device 100. For example, the hypervisor 130 designates a time for the timer device 105 and generates an interrupt signal at regular time intervals so that the hypervisor 130 can obtain control. Thereby, even if the OS processing of the virtual machines # 1 and # 2 is being executed, the processing of the hypervisor 130 is prioritized. Similarly, the hypervisor 130a uses a timer device 105a corresponding to the timer device 105 of the server apparatus 100 in order to periodically acquire control of the server apparatus 100a.
 また、ハイパーバイザ130は、計時デバイス104を利用して、仮想マシン#1,#2のOSに時刻を提供する。ただし、仮想マシン#1,#2に提供される時刻は、仮想的な時刻であり、計時デバイス104が提供する実際の時刻とは異なる可能性がある。ハイパーバイザ130は、仮想マシン#1,#2の起動前に管理装置200から時刻変更の情報を取得すると、取得した時刻変更の情報に基づいて、実際の時刻と仮想的な時刻との間の変換を行う。仮想的な時刻は、仮想マシン毎に変えることができる。同様に、ハイパーバイザ130aは、サーバ装置100の計時デバイス104に相当する計時デバイス104aを利用して、仮想マシン#3,#4のOSに時刻を提供する。 In addition, the hypervisor 130 uses the timing device 104 to provide time to the OSs of the virtual machines # 1 and # 2. However, the time provided to the virtual machines # 1 and # 2 is a virtual time and may be different from the actual time provided by the timing device 104. When the hypervisor 130 acquires the time change information from the management apparatus 200 before the virtual machines # 1 and # 2 are activated, the hypervisor 130 determines whether the actual time and the virtual time are based on the acquired time change information. Perform conversion. The virtual time can be changed for each virtual machine. Similarly, the hypervisor 130a provides time to the OSs of the virtual machines # 3 and # 4 by using a timing device 104a corresponding to the timing device 104 of the server apparatus 100.
 なお、ハイパーバイザ130は、何れかの仮想マシンのOSが、計時デバイス104にアクセスする命令を発行したときに、発行元のOSに仮想的な時刻を提供してもよい。例えば、ハイパーバイザ130は、仮想マシン毎に、計時デバイス104にアクセスする命令を示す仮想的なアドレスを設定しておく。当該アドレスは、I/O(Input / Output)空間のアドレスでもよいし(I/Oアドレス方式)、メモリ空間のアドレスでもよい(メモリマップトI/O方式)。ハイパーバイザ130は、設定した当該アドレスの命令を検出すると、命令の発行元のOSに代わって計時デバイス104にアクセスする。 The hypervisor 130 may provide a virtual time to the issuing OS when the OS of any virtual machine issues an instruction to access the timing device 104. For example, the hypervisor 130 sets a virtual address indicating an instruction to access the timing device 104 for each virtual machine. The address may be an I / O (Input / Output) space address (I / O address system) or a memory space address (memory mapped I / O system). When the hypervisor 130 detects the instruction at the set address, the hypervisor 130 accesses the timing device 104 in place of the OS that issued the instruction.
 図5は、仮想マシン制御機能を示すブロック図である。プログラムの実行により、サーバ装置100に、仮想マシン情報記憶部131、仮想マシン制御部132、仮想時計制御部133および仮想タイマ制御部134が実現される。これらユニットは、ハイパーバイザ130に含まれる。サーバ装置100a,100bにも、サーバ装置100と同様の機能が実現される。また、管理装置200に、時計初期化部211および仮想マシン配置部212が実現される。なお、第2の実施の形態では、上記機能をソフトウェアにより実現することとしたが、ハードウェアの回路として実装することも可能である。 FIG. 5 is a block diagram showing the virtual machine control function. By executing the program, a virtual machine information storage unit 131, a virtual machine control unit 132, a virtual clock control unit 133, and a virtual timer control unit 134 are realized in the server device 100. These units are included in the hypervisor 130. The server device 100a, 100b also realizes the same function as the server device 100. In addition, a clock initialization unit 211 and a virtual machine arrangement unit 212 are realized in the management apparatus 200. In the second embodiment, the above function is realized by software. However, it can be implemented as a hardware circuit.
 仮想マシン情報記憶部131は、仮想マシン#1,#2の時刻に関する情報を含む仮想マシン情報を記憶する。仮想マシン情報記憶部131は、例えば、RAM102またはHDD103に確保される記憶領域として実現できる。 The virtual machine information storage unit 131 stores virtual machine information including information regarding the times of the virtual machines # 1 and # 2. The virtual machine information storage unit 131 can be realized as a storage area secured in the RAM 102 or the HDD 103, for example.
 仮想マシン制御部132は、管理装置200から時刻変更情報を取得すると、取得した時刻変更情報を仮想マシン情報記憶部131に記録する。また、仮想マシン制御部132は、管理装置200からの指示に応じて、仮想マシン#1,#2を起動し、起動時刻を仮想マシン情報記憶部131に記録する。また、管理装置200からの指示に応じて、仮想マシン#1,#2の実行を終了する。 When the virtual machine control unit 132 acquires time change information from the management apparatus 200, the virtual machine control unit 132 records the acquired time change information in the virtual machine information storage unit 131. Further, the virtual machine control unit 132 activates the virtual machines # 1 and # 2 in accordance with an instruction from the management apparatus 200, and records the activation time in the virtual machine information storage unit 131. Further, the execution of the virtual machines # 1 and # 2 is terminated in response to an instruction from the management apparatus 200.
 仮想時計制御部133は、何れかの仮想マシンのOSが発行した、計時デバイス104にアクセスする命令を検出する。例えば、計時デバイス104に対応付けられた、仮想的なI/O空間アドレスまたはメモリ空間アドレスを指定した命令を検出する。時刻取得の命令である場合、仮想時計制御部133は、計時デバイス104から時刻を取得し、仮想マシン情報記憶部131に記憶された情報に基づいて、取得した時刻を仮想時刻に変換する。そして、命令の発行元のOSに仮想時刻を通知する。一方、時刻設定の命令である場合、仮想時計制御部133は、計時デバイス104が保持する時刻は変更せずに、仮想マシン情報記憶部131に記憶された時刻に関する情報を更新する。 The virtual clock control unit 133 detects an instruction for accessing the timing device 104 issued by the OS of any virtual machine. For example, an instruction specifying a virtual I / O space address or a memory space address associated with the timing device 104 is detected. In the case of a time acquisition command, the virtual clock control unit 133 acquires the time from the time measuring device 104, and converts the acquired time into a virtual time based on the information stored in the virtual machine information storage unit 131. Then, the virtual time is notified to the OS that issued the instruction. On the other hand, in the case of a time setting command, the virtual clock control unit 133 updates the information related to the time stored in the virtual machine information storage unit 131 without changing the time held by the timing device 104.
 仮想タイマ制御部134は、何れかの仮想マシンのOSが発行した、タイマデバイス105にアクセスする命令を検出する。例えば、タイマデバイス105に対応付けられた、仮想的なI/O空間アドレスまたはメモリ空間アドレスを指定した命令を検出する。仮想タイマ制御部134は、命令を検出すると、タイマデバイス105を利用せずに、割り込み信号を発生させる。例えば、仮想タイマ制御部134は、上記のように算出される現在の仮想時刻に命令で指定された時間を加え、目標の仮想時刻を算出する。そして、算出される仮想時刻が目標の仮想時刻になった時点で、命令の発行元のOSが制御を取得できるように割り込み信号を発生させる。 The virtual timer control unit 134 detects an instruction to access the timer device 105 issued by the OS of any virtual machine. For example, an instruction specifying a virtual I / O space address or a memory space address associated with the timer device 105 is detected. When the virtual timer control unit 134 detects an instruction, the virtual timer control unit 134 generates an interrupt signal without using the timer device 105. For example, the virtual timer control unit 134 calculates the target virtual time by adding the time specified by the command to the current virtual time calculated as described above. Then, when the calculated virtual time becomes the target virtual time, an interrupt signal is generated so that the OS that issued the instruction can acquire control.
 時計初期化部211は、クライアント装置300で作成された時刻設定情報を含むファイル(時刻設定ファイル)を取得する。時刻設定情報には、後述するように、時刻オフセット、加速係数、および、仮想マシン毎の想定するタイムゾーンが含まれている。時計初期化部211は、時刻オフセットとタイムゾーンから、時差を考慮した時刻差分を仮想マシン毎に算出し、時刻差分と加速係数を含む時刻変更情報を、サーバ装置100,100a,100bに送信する。 The clock initialization unit 211 acquires a file (time setting file) including time setting information created by the client device 300. As described later, the time setting information includes a time offset, an acceleration coefficient, and an assumed time zone for each virtual machine. The clock initialization unit 211 calculates a time difference considering the time difference for each virtual machine from the time offset and the time zone, and transmits time change information including the time difference and the acceleration coefficient to the server devices 100, 100a, and 100b. .
 仮想マシン配置部212は、クライアント装置300から仮想マシンの起動が要求されると、サーバ装置100,100a,100bの負荷が偏らないよう、要求された仮想マシンを動作させるサーバ装置を選択する。そして、選択したサーバ装置に、仮想マシンの起動を指示する。また、クライアント装置300から仮想マシンの終了が要求されると、要求に係る仮想マシンが配置されたサーバ装置に、仮想マシンの終了を指示する。 When the virtual machine placement unit 212 requests the virtual machine to be activated from the client apparatus 300, the virtual machine arrangement unit 212 selects a server apparatus that operates the requested virtual machine so that the load on the server apparatuses 100, 100a, and 100b is not biased. Then, it instructs the selected server device to start the virtual machine. When the client device 300 requests the end of the virtual machine, the client device 300 instructs the server device in which the virtual machine related to the request is arranged to end the virtual machine.
 図6は、時刻設定ファイルの記載例を示す図である。クライアント装置300は、ユーザの操作に従って時刻設定ファイル221を作成して、管理装置200に送信する。図6では、時刻設定情報がXML(Extensible Markup Language)形式で記載されている。なお、図6に示す形式は一例であり、時刻設定情報の記載形式はこれに限定されない。 FIG. 6 is a diagram showing a description example of the time setting file. The client device 300 creates a time setting file 221 according to the user's operation and transmits it to the management device 200. In FIG. 6, time setting information is described in an XML (Extensible Markup Language) format. The format shown in FIG. 6 is an example, and the description format of the time setting information is not limited to this.
 例えば、時刻設定ファイル221では、アプリケーションソフトウェアのテストに使用する仮想マシンの集合が定義される。図6の例では、仮想マシン#1~#3の集合に対して、最上位タグにおいて“test1”という名称が定義されている。なお、以下の説明では、クライアント装置300のユーザが仮想マシン#1~#3を利用して、アプリケーションソフトウェアのテストを行う場合を考える。 For example, in the time setting file 221, a set of virtual machines used for application software testing is defined. In the example of FIG. 6, the name “test1” is defined in the top tag for the set of virtual machines # 1 to # 3. In the following description, it is assumed that the user of the client apparatus 300 tests application software using the virtual machines # 1 to # 3.
 また、時刻設定ファイル221では、前述の通り、仮想マシン#1~#3の集合に対して、時刻オフセットと加速係数が定義される。時刻オフセットは、時差を考慮しない場合の実際の時刻と仮想時刻との間の差の初期値(仮想マシン#1~#3の起動時点での差)である。加速係数は、実際の時刻の進行速度に対する仮想時刻の進行速度の比であり、正数をとる。1を超える加速係数は加速を意味し、1未満の加速係数は減速を意味する。 In the time setting file 221, a time offset and an acceleration coefficient are defined for the set of virtual machines # 1 to # 3 as described above. The time offset is an initial value (difference when the virtual machines # 1 to # 3 are started) of the difference between the actual time and the virtual time when the time difference is not taken into consideration. The acceleration coefficient is a ratio of the traveling speed of the virtual time to the traveling speed of the actual time, and takes a positive number. An acceleration factor greater than 1 means acceleration, and an acceleration factor less than 1 means deceleration.
 また、時刻設定ファイル221では、前述の通り、仮想マシン#1~#3それぞれに対して、タイムゾーンが定義される。タイムゾーンが示す時差と時刻オフセットの合計が、各仮想マシンについて設定される、時差を考慮した時刻差分の初期値(仮想マシン#1~#3の起動時点での時刻差分)となる。 In the time setting file 221, a time zone is defined for each of the virtual machines # 1 to # 3 as described above. The sum of the time difference and time offset indicated by the time zone is the initial value of the time difference taking into account the time difference set for each virtual machine (the time difference at the time of startup of the virtual machines # 1 to # 3).
 なお、以上の説明では、仮想マシン#1~#3の集合に対して、時刻オフセットおよび加速係数を設定することとしたが、仮想マシン毎に時刻オフセットおよび加速係数を設定してもよい。その場合、時刻設定ファイル221に記載される仮想マシン毎の時刻オフセットは、時差の影響を考慮したものであってもよい。 In the above description, the time offset and acceleration coefficient are set for the set of virtual machines # 1 to # 3. However, the time offset and acceleration coefficient may be set for each virtual machine. In that case, the time offset for each virtual machine described in the time setting file 221 may be one that takes into account the influence of the time difference.
 図7は、仮想マシン管理テーブルの構造例を示す図である。サーバ装置100の仮想マシン情報記憶部131に、仮想マシン管理テーブル141が記憶される。サーバ装置100a,100bにも、同様の構造の仮想マシン管理テーブルが記憶される。なお、図7に示す構造は一例であり、仮想マシン情報のデータ構造はこれに限定されない。 FIG. 7 is a diagram illustrating a structure example of the virtual machine management table. A virtual machine management table 141 is stored in the virtual machine information storage unit 131 of the server apparatus 100. The server apparatuses 100a and 100b also store a virtual machine management table having a similar structure. The structure shown in FIG. 7 is an example, and the data structure of the virtual machine information is not limited to this.
 仮想マシン管理テーブル141は、ID(Identifier)、時刻差分、加速係数および起動時刻の項目が設けられる。IDは、サーバ装置100で動作している仮想マシンを識別するための識別情報である。時刻差分は、管理装置200が送信する時刻変更情報に含まれる時刻差分である。加速係数は、管理装置200が送信する時刻変更情報に含まれる加速係数である。起動時刻は、各仮想マシンが起動された実際の時刻(計時デバイス104が提供する時刻)であり、仮想マシン制御部132によって記録される。 The virtual machine management table 141 includes items of ID (Identifier), time difference, acceleration coefficient, and start time. The ID is identification information for identifying a virtual machine operating on the server device 100. The time difference is a time difference included in the time change information transmitted by the management apparatus 200. The acceleration coefficient is an acceleration coefficient included in the time change information transmitted by the management apparatus 200. The activation time is an actual time when each virtual machine is activated (time provided by the timing device 104), and is recorded by the virtual machine control unit 132.
 例えば、ID=#1,時刻差分=+50,加速係数=1.5,起動時刻=20101012_06:10という情報が、仮想マシン管理テーブル141に登録される。かかる情報は、仮想マシン#1が2010年10月12日6時10分に起動され、仮想マシン#1の起動時の仮想時刻は実際の時刻より50時間進んでおり、仮想マシン#1の仮想時間が実際の時刻の1.5倍の速度で進むことを示している。 For example, information of ID = # 1, time difference = + 50, acceleration coefficient = 1.5, start time = 20101012_06: 10 is registered in the virtual machine management table 141. Such information indicates that the virtual machine # 1 is started at 6:10 on October 12, 2010, and the virtual time when the virtual machine # 1 starts is 50 hours ahead of the actual time. It shows that time advances at a speed 1.5 times the actual time.
 図8は、仮想マシン起動処理を示すフローチャートである。図8に示す処理をステップ番号に沿って説明する。
 (ステップS11)時計初期化部211は、クライアント装置300で作成された時刻設定ファイル221を取得する。
FIG. 8 is a flowchart showing virtual machine activation processing. The process illustrated in FIG. 8 will be described along with step numbers.
(Step S <b> 11) The clock initialization unit 211 acquires the time setting file 221 created by the client device 300.
 (ステップS12)時計初期化部211は、時刻設定ファイル221に記載されたタイムゾーンから時差を特定する。そして、時刻設定ファイル221に記載された時刻オフセットに時差を加えて、仮想マシン#1~#3それぞれの時刻差分を算出する。なお、時差は、計時デバイス104の時刻を基準として特定される。計時デバイス104の時刻がローカル時刻である場合、時差はローカル時刻との差を意味し、計時デバイス104の時刻がUTCである場合、時差はUTCとの差を意味する。 (Step S12) The clock initialization unit 211 identifies the time difference from the time zone described in the time setting file 221. Then, the time difference is calculated for each of the virtual machines # 1 to # 3 by adding a time difference to the time offset described in the time setting file 221. The time difference is specified based on the time of the time measuring device 104. When the time of the time measuring device 104 is the local time, the time difference means a difference from the local time. When the time of the time measuring device 104 is the UTC, the time difference means a difference from the UTC.
 (ステップS13)仮想マシン配置部212は、サーバ装置100,100a,100bの負荷を参照し、仮想マシン#1~#3を配置するサーバ装置を選択する。ここでは、前述の通り、仮想マシン#1,#2をサーバ装置100に配置し、仮想マシン#3をサーバ装置100aに配置するとする。なお、サーバ装置100,100a,100bの負荷を示す情報は、例えば、各サーバ装置のハイパーバイザから収集することができる。 (Step S13) The virtual machine placement unit 212 refers to the loads of the server devices 100, 100a, and 100b, and selects the server device on which the virtual machines # 1 to # 3 are placed. Here, as described above, the virtual machines # 1 and # 2 are arranged in the server apparatus 100, and the virtual machine # 3 is arranged in the server apparatus 100a. Note that information indicating the load on the server devices 100, 100a, and 100b can be collected from, for example, the hypervisor of each server device.
 (ステップS14)時計初期化部211は、仮想マシン#1,#2についての時刻変更情報をサーバ装置100に送信し、仮想マシン#3についての時刻変更情報をサーバ装置100aに送信する。時刻変更情報には、ステップS12で算出された時刻差分と、時刻設定ファイル221に記載された加速係数とが含まれる。仮想マシン制御部132は、仮想マシン#1,#2の時刻差分と加速係数を、仮想マシン管理テーブル141に登録する。同様に、サーバ装置100aで、仮想マシン#3の時刻差分と加速係数が登録される。 (Step S14) The clock initialization unit 211 transmits time change information for the virtual machines # 1 and # 2 to the server apparatus 100, and transmits time change information for the virtual machine # 3 to the server apparatus 100a. The time change information includes the time difference calculated in step S12 and the acceleration coefficient described in the time setting file 221. The virtual machine control unit 132 registers the time difference and the acceleration coefficient of the virtual machines # 1 and # 2 in the virtual machine management table 141. Similarly, the time difference and acceleration coefficient of the virtual machine # 3 are registered in the server device 100a.
 (ステップS15)仮想マシン配置部212は、仮想マシン#1,#2の起動をサーバ装置100に指示し、仮想マシン#3の起動をサーバ装置100aに指示する。仮想マシン制御部132は、HDD103またはネットワーク20に接続された他の装置から、OSプログラムを含むイメージファイルを取得し、仮想マシン#1,#2のOSを起動させる。また、仮想マシン#1,#2の起動時刻を、仮想マシン管理テーブル141に登録する。同様に、サーバ装置100aで、仮想マシン#3が起動される。 (Step S15) The virtual machine placement unit 212 instructs the server apparatus 100 to start the virtual machines # 1 and # 2, and instructs the server apparatus 100a to start the virtual machine # 3. The virtual machine control unit 132 acquires an image file including an OS program from the HDD 103 or another device connected to the network 20 and activates the OSs of the virtual machines # 1 and # 2. Also, the startup times of the virtual machines # 1 and # 2 are registered in the virtual machine management table 141. Similarly, the virtual machine # 3 is activated on the server device 100a.
 図9は、時刻取得処理を示すフローチャートである。ここでは、仮想マシン#1のOSが時刻を取得する場合を考える。図9に示す処理をステップ番号に沿って説明する。
 (ステップS21)仮想時計制御部133は、仮想マシン#1のOSが発行した計時デバイス104へのアクセス(時刻取得)を示す命令を検出する。当該命令が発行される場合としては、例えば、ユーザが現在時刻を確認するコマンドを入力した場合や、現在時刻を参照するアプリケーションプログラムが実行された場合などが考えられる。
FIG. 9 is a flowchart showing the time acquisition process. Here, consider a case where the OS of the virtual machine # 1 acquires the time. The process illustrated in FIG. 9 will be described along with step numbers.
(Step S21) The virtual clock control unit 133 detects an instruction indicating access (time acquisition) to the timing device 104 issued by the OS of the virtual machine # 1. As a case where the command is issued, for example, a case where the user inputs a command for confirming the current time or a case where an application program that refers to the current time is executed may be considered.
 (ステップS22)仮想時計制御部133は、計時デバイス104にアクセスし、実際の時刻を計時デバイス104から取得する。
 (ステップS23)仮想時計制御部133は、アクセス元の仮想マシン#1の時刻差分と加速係数と起動時刻を、仮想マシン管理テーブル141から取得する。
(Step S <b> 22) The virtual clock control unit 133 accesses the timing device 104 and acquires the actual time from the timing device 104.
(Step S <b> 23) The virtual clock control unit 133 acquires the time difference, the acceleration coefficient, and the start time of the access source virtual machine # 1 from the virtual machine management table 141.
 (ステップS24)仮想時計制御部133は、仮想マシン#1の時刻差分と加速係数と起動時刻を用いて、計時デバイス104から取得した実際の時刻を仮想時刻に変換する。例えば、仮想時計制御部133は、以下の式に従って、仮想時刻を算出する。なお、実際の時刻と起動時刻との差は、仮想マシン#1が起動してからの実際の経過時間に相当する。 (Step S24) The virtual clock control unit 133 converts the actual time acquired from the time measuring device 104 into the virtual time by using the time difference, the acceleration coefficient, and the start time of the virtual machine # 1. For example, the virtual clock control unit 133 calculates the virtual time according to the following formula. Note that the difference between the actual time and the start time corresponds to the actual elapsed time from the start of the virtual machine # 1.
  仮想時刻=実際の時刻+時刻差分+(加速係数-1)×(実際の時刻-起動時刻)
 (ステップS25)仮想時計制御部133は、算出した仮想時刻を、検出した命令への応答として仮想マシン#1のOSに通知する。
Virtual time = actual time + time difference + (acceleration coefficient -1) x (actual time-start time)
(Step S25) The virtual clock control unit 133 notifies the calculated virtual time to the OS of the virtual machine # 1 as a response to the detected command.
 図10は、時刻設定処理を示すフローチャートである。ここでは、仮想マシン#1のOSが時刻を変更する場合を考える。図10に示す処理をステップ番号に沿って説明する。
 (ステップS31)仮想時計制御部133は、仮想マシン#1のOSが発行した計時デバイス104へのアクセス(時刻設定)を示す命令を検出する。当該命令が発行される場合としては、例えば、ユーザが現在時刻を変更するコマンドを入力した場合、現在時刻を変更するアプリケーションプログラムが実行された場合、OSが夏時間と通常時間とを自動的に切り替える場合などが考えられる。
FIG. 10 is a flowchart showing the time setting process. Here, consider a case where the OS of the virtual machine # 1 changes the time. The processing illustrated in FIG. 10 will be described along with step numbers.
(Step S31) The virtual clock control unit 133 detects an instruction indicating access (time setting) to the timing device 104 issued by the OS of the virtual machine # 1. For example, when the user issues a command for changing the current time, or when an application program for changing the current time is executed, the OS automatically switches between daylight saving time and normal time. Cases can be considered.
 (ステップS32)仮想時計制御部133は、計時デバイス104にアクセスし、実際の時刻を計時デバイス104から取得する。
 (ステップS33)仮想時計制御部133は、アクセス元の仮想マシン#1の加速係数と起動時刻を、仮想マシン管理テーブル141から取得する。
(Step S <b> 32) The virtual clock control unit 133 accesses the timing device 104 and acquires the actual time from the timing device 104.
(Step S <b> 33) The virtual clock control unit 133 acquires the acceleration coefficient and start time of the access source virtual machine # 1 from the virtual machine management table 141.
 (ステップS34)仮想時計制御部133は、仮想マシン#1の加速係数と起動時刻、計時デバイス104から取得した実際の時刻、および、命令で指定された設定時刻とを用いて、時刻差分を更新する。計時デバイス104が保持する実際の時刻は、変更されない。例えば、仮想時計制御部133は、以下の式に従って、仮想時刻を算出する。なお、仮想マシン#1のOSから指定される設定時刻は、仮想時刻を基準としたものである。 (Step S34) The virtual clock control unit 133 updates the time difference using the acceleration coefficient and the activation time of the virtual machine # 1, the actual time acquired from the timing device 104, and the set time specified by the instruction. To do. The actual time held by the timing device 104 is not changed. For example, the virtual clock control unit 133 calculates the virtual time according to the following formula. The set time specified from the OS of the virtual machine # 1 is based on the virtual time.
  時刻差分=設定時刻-実際の時刻-(加速係数-1)×(実際の時刻-起動時刻)
 (ステップS35)仮想時計制御部133は、算出した新たな時刻差分を仮想マシン管理テーブル141に登録することで、仮想マシン情報を更新する。
Time difference = set time-actual time-(acceleration coefficient-1) x (actual time-start time)
(Step S35) The virtual clock control unit 133 updates the virtual machine information by registering the calculated new time difference in the virtual machine management table 141.
 (ステップS36)仮想時計制御部133は、時刻設定の完了を、検出した命令への応答として仮想マシン#1のOSに通知する。
 図11は、タイマ管理処理を示すフローチャートである。ここでは、仮想マシン#1のOSがタイマ割り込みを発生させる場合を考える。図11に示す処理をステップ番号に沿って説明する。
(Step S36) The virtual clock control unit 133 notifies the OS of the virtual machine # 1 of the completion of time setting as a response to the detected command.
FIG. 11 is a flowchart showing the timer management process. Here, consider a case where the OS of the virtual machine # 1 generates a timer interrupt. The processing illustrated in FIG. 11 will be described along with step numbers.
 (ステップS41)仮想タイマ制御部134は、仮想マシン#1のOSが発行したタイマデバイス105へのアクセスを示す命令を検出する。
 (ステップS42)仮想タイマ制御部134は、検出した命令において経過時間が指定されたか判断する。経過時間が指定された場合、処理をステップS43に進める。経過時間ではなく、割り込み発生の時刻が指定された場合、処理をステップS44に進める。なお、指定される経過時間は、仮想マシン#1から見た時間(加速係数が考慮された時間)である。指定される時刻は、仮想マシン#1の仮想時刻を基準としたものである。
(Step S41) The virtual timer control unit 134 detects a command indicating access to the timer device 105 issued by the OS of the virtual machine # 1.
(Step S42) The virtual timer control unit 134 determines whether an elapsed time is specified in the detected command. If the elapsed time is designated, the process proceeds to step S43. If the interrupt generation time is specified instead of the elapsed time, the process proceeds to step S44. The specified elapsed time is the time viewed from the virtual machine # 1 (time in which the acceleration coefficient is considered). The specified time is based on the virtual time of virtual machine # 1.
 (ステップS43)仮想タイマ制御部134は、仮想マシン#1の現在の仮想時刻を仮想時計制御部133に要求し、仮想時計制御部133から取得した仮想時刻に、命令で指定された経過時間を加算して、割り込み発生の時刻(仮想時刻)を算出する。 (Step S43) The virtual timer control unit 134 requests the current virtual time of the virtual machine # 1 from the virtual clock control unit 133, and adds the elapsed time specified by the command to the virtual time acquired from the virtual clock control unit 133. The time of occurrence of interrupt (virtual time) is calculated by addition.
 (ステップS44)仮想タイマ制御部134は、仮想マシン#1の現在の仮想時刻を仮想時計制御部133に要求し、仮想時刻を取得する。
 (ステップS45)仮想タイマ制御部134は、仮想マシン#1の現在の仮想時刻が、割り込み発生の時刻であるか判断する。割り込み発生の時刻である場合、処理をステップS46に進める。それ以外の場合、処理をステップS44に進める。
(Step S44) The virtual timer control unit 134 requests the virtual clock control unit 133 for the current virtual time of the virtual machine # 1, and acquires the virtual time.
(Step S45) The virtual timer control unit 134 determines whether or not the current virtual time of the virtual machine # 1 is the time of occurrence of an interrupt. If it is time to generate an interrupt, the process proceeds to step S46. Otherwise, the process proceeds to step S44.
 (ステップS46)仮想タイマ制御部134は、割り込みを発生させ、タイマを設定した仮想マシン#1のOSが制御を取得できるようにする。
 なお、以上説明では、仮想タイマ制御部134は、仮想時刻に基づいてタイマを管理することとしたが、実際の時刻に基づいてタイマを管理してもよい。例えば、仮想タイマ制御部134は、指定された経過時間(仮想時間)を加速係数で除して、実際の時刻の速度を基準とした経過時間を算出し、現在時刻を加算して、割り込み発生の実際の時刻を算出する。または、時刻差分と加速係数を用いて、指定された割り込み発生の時刻(仮想時間)を割り込み発生の実際の時刻に変換する。そして、仮想タイマ制御部134は、現在時刻が割り込み発生の実際の時刻になった時点で、割り込みを発生させる。
(Step S46) The virtual timer control unit 134 generates an interrupt so that the OS of the virtual machine # 1 that sets the timer can acquire control.
In the above description, the virtual timer control unit 134 manages the timer based on the virtual time, but may manage the timer based on the actual time. For example, the virtual timer control unit 134 divides the specified elapsed time (virtual time) by the acceleration coefficient, calculates the elapsed time based on the actual time speed, adds the current time, and generates an interrupt. The actual time of is calculated. Alternatively, using the time difference and the acceleration coefficient, the designated interrupt occurrence time (virtual time) is converted into an actual interrupt occurrence time. Then, the virtual timer control unit 134 generates an interrupt when the current time becomes the actual time of occurrence of the interrupt.
 第2の実施の形態の情報処理システムを用いることで、各仮想マシンで認識される仮想時刻を容易に調整できる。よって、時刻依存の情報処理が実装されたアプリケーションソフトウェアのテストを効率化できる。例えば、時刻オフセットを設定することで、各仮想マシンの仮想時刻をシフトでき、任意の時刻を想定したテストが容易となる。また、加速係数を設定することで、仮想時刻の速度を調整でき、テストを高速に実行することが容易となる。このため、例えば、夏時間と通常時間との間の切り替え時に情報処理が正常に実行されるかをテストする場合でも、短時間でテストを完了させることができる。 The virtual time recognized by each virtual machine can be easily adjusted by using the information processing system of the second embodiment. Therefore, it is possible to improve the efficiency of testing application software in which time-dependent information processing is implemented. For example, by setting a time offset, the virtual time of each virtual machine can be shifted, and a test assuming an arbitrary time becomes easy. In addition, by setting the acceleration coefficient, the speed of the virtual time can be adjusted, and the test can be easily executed at high speed. For this reason, for example, even when testing whether information processing is normally executed when switching between daylight saving time and normal time, the test can be completed in a short time.
 また、仮想マシン毎に時刻差分を設定できるため、仮想時刻が異なる複数の仮想マシンを同じサーバ装置に配置することができ、タイムゾーンの異なる複数の場所に装置を設置する計算機システムのテストを効率的に実行できる。また、仮想時刻の変更は、計時デバイス104に対する操作でなく時刻差分の更新として実現できるため、各仮想マシンのOSが独立に時刻変更を要求することを許容できる。また、クライアント装置300は、管理装置200に時刻設定ファイル221を送信することで、仮想時刻の異なる複数の仮想マシンを容易に起動させることができる。 In addition, since a time difference can be set for each virtual machine, multiple virtual machines with different virtual times can be placed on the same server device, making it possible to efficiently test a computer system in which devices are installed at multiple locations with different time zones. Can be executed. Further, since the change of the virtual time can be realized not as an operation on the timing device 104 but as an update of the time difference, it is possible to allow the OS of each virtual machine to request the time change independently. In addition, the client device 300 can easily start a plurality of virtual machines having different virtual times by transmitting the time setting file 221 to the management device 200.
 また、第2の実施の形態の情報処理装置では、仮想マシンをグループ化し、論理的に区切られた複数の「テストワールド」を形成することも可能である。例えば、管理装置200は、VLAN(Virtual Local Area Network)などの技術を用いて、同じグループに属する仮想マシン同士では通信できるが、異なるグループに属する仮想マシン同士は通信できないように、複数のグループを論理的に切り離す設定を行うことが考えられる。その場合、同じグループに属する複数の仮想マシンが、一定の加速係数で仮想時刻が進行する1つの閉じた「世界」を形成することもできる。このような「テストワールド」を構築することで、分散処理システムに関するアプリケーションソフトウェアのテストが容易となる。 In the information processing apparatus according to the second embodiment, it is also possible to group virtual machines to form a plurality of “test worlds” logically separated. For example, the management apparatus 200 can communicate with virtual machines belonging to the same group by using a technology such as VLAN (Virtual Local Area Network), but does not allow communication between virtual machines belonging to different groups. It is conceivable to perform a setting for logical separation. In that case, a plurality of virtual machines belonging to the same group can form one closed “world” in which the virtual time advances with a constant acceleration factor. By building such a “test world”, it becomes easy to test application software related to a distributed processing system.
 なお、前述の通り、サーバ装置100,100a,100bおよび管理装置200の機能は、コンピュータを用いて実現できる。その場合、サーバ装置100,100a,100bおよび管理装置200に実行させるプログラムが提供される。プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体113)に記録できる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、HDDおよびFDが含まれる。光ディスクには、CD、CD-R(Recordable)/RW(ReWritable)、DVDおよびDVD-R/RWが含まれる。 As described above, the functions of the server apparatuses 100, 100a, 100b and the management apparatus 200 can be realized using a computer. In that case, a program to be executed by the server apparatuses 100, 100a, 100b and the management apparatus 200 is provided. The program can be recorded on a computer-readable recording medium (for example, the recording medium 113). As the recording medium, for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used. Magnetic disks include HDDs and FDs. Optical disks include CD, CD-R (Recordable) / RW (ReWritable), DVD, and DVD-R / RW.
 プログラムを流通させる場合、例えば、当該プログラムを記録した可搬記録媒体が提供される。また、当該プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク経由で当該プログラムを配布することもできる。サーバ装置100,100a,100bおよび管理装置200は、例えば、可搬記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、記憶装置に格納する。そして、記憶装置からプログラムを読み込んで実行する。ただし、可搬型記録媒体からプログラムを直接読み込んで実行してもよい。また、他のコンピュータからプログラムを受信する毎に逐次、受信したプログラムを実行してもよい。 When distributing the program, for example, a portable recording medium on which the program is recorded is provided. It is also possible to store the program in a storage device of another computer and distribute the program via a network. The server apparatuses 100, 100a, 100b and the management apparatus 200 store, for example, a program recorded on a portable recording medium or a program received from another computer in a storage device. Then, the program is read from the storage device and executed. However, the program may be directly read from the portable recording medium and executed. Alternatively, the received program may be executed sequentially each time a program is received from another computer.
 上記については単に本発明の原理を示すものである。更に、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。 The above merely shows the principle of the present invention. In addition, many modifications and changes can be made by those skilled in the art, and the present invention is not limited to the exact configuration and application shown and described above, and all corresponding modifications and equivalents may be And the equivalents thereof are considered to be within the scope of the invention.
 10 情報処理装置
 11a,11b 仮想マシン
 12 計時デバイス
 13 記憶部
 14 制御部
DESCRIPTION OF SYMBOLS 10 Information processing apparatus 11a, 11b Virtual machine 12 Timekeeping device 13 Storage part 14 Control part

Claims (6)

  1.  仮想マシンを実行する情報処理装置であって、
     第1の時刻を提供する計時デバイスと、
     前記第1の時刻に対する時刻の差分を示す差分情報を記憶する記憶部と、
     前記計時デバイスから前記第1の時刻を取得し、取得した前記第1の時刻と前記記憶部に記憶された前記差分情報が示す差分とを用いて第2の時刻を算出し、算出した前記第2の時刻を前記仮想マシンに提供する制御部と、
     を有することを特徴とする情報処理装置。
    An information processing apparatus that executes a virtual machine,
    A timing device that provides a first time;
    A storage unit for storing difference information indicating a difference in time with respect to the first time;
    The first time is acquired from the timing device, the second time is calculated using the acquired first time and the difference indicated by the difference information stored in the storage unit, and the calculated first time is calculated. A control unit that provides the virtual machine with a time of 2;
    An information processing apparatus comprising:
  2.  前記制御部は、前記仮想マシンが発行した前記計時デバイスに対する時刻設定の命令を検出すると、前記時刻設定の命令で指定された第3の時刻と前記計時デバイスから取得した前記第1の時刻とを用いて、前記差分情報を更新することを特徴とする請求の範囲第1項記載の情報処理装置。 When the control unit detects a time setting command issued by the virtual machine to the timing device, the control unit obtains a third time specified by the time setting command and the first time acquired from the timing device. The information processing apparatus according to claim 1, wherein the difference information is updated.
  3.  前記情報処理装置は、複数の仮想マシンを実行可能であり、
     前記記憶部は、仮想マシン毎に前記差分情報を記憶し、
     前記制御部は、前記第2の時刻の提供先の仮想マシンに応じた差分情報を用いて、前記第2の時刻を算出する、
     ことを特徴とする請求の範囲第1項記載の情報処理装置。
    The information processing apparatus can execute a plurality of virtual machines,
    The storage unit stores the difference information for each virtual machine,
    The control unit calculates the second time by using difference information corresponding to a virtual machine that is a provision destination of the second time.
    The information processing apparatus according to claim 1, wherein:
  4.  前記記憶部は、前記計時デバイスの時間速度に対する前記仮想マシンの時間速度の比を示す速度情報を更に記憶し、
     前記制御部は、前記第1の時刻と前記差分情報が示す差分とに加えて、前記速度情報が示す比と前記計時デバイスの時間速度を基準に測定される前記仮想マシンの稼働時間とを用いて、前記第2の時刻を算出することを特徴とする請求の範囲第1項記載の情報処理装置。
    The storage unit further stores speed information indicating a ratio of a time speed of the virtual machine to a time speed of the timing device,
    In addition to the first time and the difference indicated by the difference information, the control unit uses the ratio indicated by the speed information and the operating time of the virtual machine measured based on the time speed of the timing device. The information processing apparatus according to claim 1, wherein the second time is calculated.
  5.  仮想マシンを実行するコンピュータが行う時刻制御方法であって、
     前記コンピュータが備える計時デバイスから第1の時刻を取得し、
     取得した前記第1の時刻と、記憶部に記憶された前記第1の時刻に対する時刻の差分を示す差分情報と、に基づいて第2の時刻を算出し、
     算出した前記第2の時刻を前記仮想マシンに提供する、
     ことを特徴とする時刻制御方法。
    A time control method performed by a computer executing a virtual machine,
    Obtaining a first time from a timing device included in the computer;
    Calculating a second time based on the acquired first time and difference information indicating a difference in time with respect to the first time stored in the storage unit;
    Providing the calculated second time to the virtual machine;
    A time control method characterized by that.
  6.  仮想マシンを実行するコンピュータに、
     前記コンピュータが備える計時デバイスから第1の時刻を取得し、
     取得した前記第1の時刻と、記憶部に記憶された前記第1の時刻に対する時刻の差分を示す差分情報と、に基づいて第2の時刻を算出し、
     算出した前記第2の時刻を前記仮想マシンに提供する、
     処理を実行させることを特徴とする時刻制御プログラム。
    On the computer running the virtual machine,
    Obtaining a first time from a timing device included in the computer;
    Calculating a second time based on the acquired first time and difference information indicating a difference in time with respect to the first time stored in the storage unit;
    Providing the calculated second time to the virtual machine;
    A time control program for executing a process.
PCT/JP2011/050190 2011-01-07 2011-01-07 Information processing device, time control method, and time control program WO2012093490A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050190 WO2012093490A1 (en) 2011-01-07 2011-01-07 Information processing device, time control method, and time control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/050190 WO2012093490A1 (en) 2011-01-07 2011-01-07 Information processing device, time control method, and time control program

Publications (1)

Publication Number Publication Date
WO2012093490A1 true WO2012093490A1 (en) 2012-07-12

Family

ID=46457355

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/050190 WO2012093490A1 (en) 2011-01-07 2011-01-07 Information processing device, time control method, and time control program

Country Status (1)

Country Link
WO (1) WO2012093490A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014134989A (en) * 2013-01-11 2014-07-24 Hitachi Ltd Computer system and computer management method
WO2014118961A1 (en) * 2013-01-31 2014-08-07 富士通株式会社 Virtual computer management program, virtual computer management method, and virtual computer system
JP2014174863A (en) * 2013-03-12 2014-09-22 Mitsubishi Electric Corp Virtual computer system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62107341A (en) * 1985-11-06 1987-05-18 Fujitsu Ltd Clock control system
JPH01309136A (en) * 1988-06-08 1989-12-13 Hitachi Ltd Acceleration control system for virtual timer
JPH1097343A (en) * 1996-09-20 1998-04-14 Hitachi Ltd Time setting method for virtual information processor
JP2000020158A (en) * 1998-07-07 2000-01-21 Hitachi Ltd Time adjusting method for logical computer
JP2003036123A (en) * 2001-07-25 2003-02-07 Meidensha Corp Time management system for computer
WO2007099624A1 (en) * 2006-03-01 2007-09-07 Fujitsu Limited Method for managing and controlling time of computer system and computer system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62107341A (en) * 1985-11-06 1987-05-18 Fujitsu Ltd Clock control system
JPH01309136A (en) * 1988-06-08 1989-12-13 Hitachi Ltd Acceleration control system for virtual timer
JPH1097343A (en) * 1996-09-20 1998-04-14 Hitachi Ltd Time setting method for virtual information processor
JP2000020158A (en) * 1998-07-07 2000-01-21 Hitachi Ltd Time adjusting method for logical computer
JP2003036123A (en) * 2001-07-25 2003-02-07 Meidensha Corp Time management system for computer
WO2007099624A1 (en) * 2006-03-01 2007-09-07 Fujitsu Limited Method for managing and controlling time of computer system and computer system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014134989A (en) * 2013-01-11 2014-07-24 Hitachi Ltd Computer system and computer management method
WO2014118961A1 (en) * 2013-01-31 2014-08-07 富士通株式会社 Virtual computer management program, virtual computer management method, and virtual computer system
JPWO2014118961A1 (en) * 2013-01-31 2017-01-26 富士通株式会社 Virtual computer management program, virtual computer management method, and virtual computer system
JP2014174863A (en) * 2013-03-12 2014-09-22 Mitsubishi Electric Corp Virtual computer system

Similar Documents

Publication Publication Date Title
US10255005B2 (en) Systems and methods of disk storage allocation for virtual machines
CN101727331B (en) Method and equipment for upgrading client operating system of active virtual machine
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
JP4240062B2 (en) Computer system, performance measurement method, and management server device
US10459769B2 (en) Elastic container management system
JP5400482B2 (en) Management computer, resource management method, resource management program, recording medium, and information processing system
CN102541619B (en) Virtual machine management device and method
US20160266923A1 (en) Information processing system and method for controlling information processing system
WO2012066640A1 (en) Computer system, migration method, and management server
US20160156568A1 (en) Computer system and computer resource allocation management method
JP5803496B2 (en) Storage system
JP5134149B1 (en) Network system and control method thereof
TW201337765A (en) Hypervisor management system and method
JP2014115905A (en) Information processing apparatus, information processing method, and program
US20150007174A1 (en) Single click host maintenance
US20110060884A1 (en) Systems and methods for collapsing a derivative version of a primary storage volume
CN105556473A (en) I/O task processing method, device and system
JP6241178B2 (en) Storage control device, storage control method, and storage control program
WO2012093490A1 (en) Information processing device, time control method, and time control program
JPWO2012001787A1 (en) Information processing apparatus, information processing method, and information processing program
US9354911B2 (en) Method and system for logging into a virtual environment executing on a host
JP6191162B2 (en) Server device, service free use management method and service free use management program
JP2011070464A (en) Computer system, and method of managing performance of the same
JPWO2012144012A1 (en) Thread processing method and thread processing system
US11748141B2 (en) Providing virtual devices direct access to clock times in memory locations managed by a hypervisor

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

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP