+

WO2014076838A1 - 仮想マシン同期システム - Google Patents

仮想マシン同期システム Download PDF

Info

Publication number
WO2014076838A1
WO2014076838A1 PCT/JP2012/079943 JP2012079943W WO2014076838A1 WO 2014076838 A1 WO2014076838 A1 WO 2014076838A1 JP 2012079943 W JP2012079943 W JP 2012079943W WO 2014076838 A1 WO2014076838 A1 WO 2014076838A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
difference
synchronization
hypervisor
standby
Prior art date
Application number
PCT/JP2012/079943
Other languages
English (en)
French (fr)
Inventor
直樹 多田
峰幸 田村
Original Assignee
株式会社日立システムズ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立システムズ filed Critical 株式会社日立システムズ
Priority to JP2014546825A priority Critical patent/JPWO2014076838A1/ja
Priority to PCT/JP2012/079943 priority patent/WO2014076838A1/ja
Priority to US14/443,500 priority patent/US20150317175A1/en
Publication of WO2014076838A1 publication Critical patent/WO2014076838A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Definitions

  • the present invention relates to a virtual machine management technique, and more particularly to a technique that is effective when applied to a virtual machine synchronization system in which main and standby virtual machines are provided and contents of the main system are synchronized with the standby system.
  • a virtual machine that is one of computer virtualization technologies is installed.
  • a device such as a server is constructed as a virtual machine using a hypervisor for realization.
  • the target virtual machine is instantly transferred to another hypervisor by so-called live migration, and the service is continued and maintenance work is performed. Can do.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2007-148839
  • Patent Document 1 includes a plurality of physical servers on which a plurality of virtual servers operate and a single standby server, It has means for detecting the virtual server and means for switching the correspondence between the startup disk of the virtualization mechanism that controls the virtual server and the physical server, and reconnects the startup disk of the virtualization mechanism to the replacement server when a physical server fails
  • Patent Document 1 includes a plurality of physical servers on which a plurality of virtual servers operate and a single standby server, It has means for detecting the virtual server and means for switching the correspondence between the startup disk of the virtualization mechanism that controls the virtual server and the physical server, and reconnects the startup disk of the virtualization mechanism to the replacement server when a physical server fails
  • a technology is described in which a virtual server that is started when a failure occurs is automatically started, so that even in a virtualized server environment, high reliability can be achieved at low cost.
  • Patent Document 2 Japanese Patent Application Laid-Open No. 2010-102414 includes a configuration information storage unit that stores configuration information about an operating system of a virtual system, and a virtual machine image for the operating system of the virtual system.
  • a first virtual machine / image storage unit for storing; a configuration change information storage unit for storing configuration change information that is differential configuration information between the operating system and the test system of the virtual system; and an operating system for the virtual machine,
  • a second virtual machine image storage unit that stores a virtual machine image for the difference configuration from the test system and a control unit, the operation system and the test system can be switched easily and smoothly. The technology to make it appear is described.
  • the standby virtual machine In an environment where live migration is not possible, when the primary / standby system configuration is used, the standby virtual machine has the same content and status (for example, patch and virus software versions) as the primary virtual machine. In order to synchronize the system, the system may be activated although it is not necessary to activate from the viewpoint of the operation of the entire system. For this reason, useless resources (CPU, memory, storage, etc.) are allocated to the standby virtual machine, and there is a problem that the resources of the hypervisor cannot be effectively used.
  • the system may be activated although it is not necessary to activate from the viewpoint of the operation of the entire system. For this reason, useless resources (CPU, memory, storage, etc.) are allocated to the standby virtual machine, and there is a problem that the resources of the hypervisor cannot be effectively used.
  • the object of the present invention is to start the standby virtual machine by synchronizing the difference with the image file of the standby virtual machine as needed. It is an object of the present invention to provide a virtual machine synchronization system that synchronizes the contents and state of a standby virtual machine with a main virtual machine.
  • a virtual machine synchronization system includes the contents of an image file of a first virtual machine running on a first hypervisor, and the first virtual machine on a second hypervisor.
  • This is a virtual machine synchronization system that synchronizes with an image file of a second virtual machine that can operate as a standby system, and has the following characteristics.
  • the virtual machine synchronization system includes a management server that can be connected to the first hypervisor and the second hypervisor via a network, and the first virtual machine that operates on the first hypervisor.
  • a first monitoring unit that obtains a difference from the previous image file when the image file is updated and transmits it to the management server; and operates on the second hypervisor;
  • a second monitoring unit that acquires the difference to be synchronized with the image file of the second virtual machine and synchronizes with the second virtual machine image file, and the management server includes the first monitoring
  • the difference is received from the storage unit, the difference is registered in the first recording unit, and is synchronized with the image file of the second virtual machine from the second monitoring unit.
  • said first obtains the difference recorded in the recording unit is transmitted to the second monitoring unit.
  • the difference from the pre-update is synchronized with the image file of the standby virtual machine as needed. Therefore, it is possible to synchronize the contents and state of the main virtual machine with the standby virtual machine without having to activate the standby virtual machine. As a result, it is possible to improve the reliability of the virtual machine while effectively utilizing the resources of the hypervisor.
  • the virtual machine synchronization system monitors the image file of the main virtual machine and updates the contents in a cloud computing environment or the like operated in a data center, for example.
  • the difference information from before the update is extracted, and this is synchronized with the image file of the standby virtual machine via the management server.
  • This makes it possible to synchronize the contents of the primary virtual machine with the standby virtual machine without having to start the standby virtual machine, and to effectively use the resources of the hypervisor.
  • the integration rate of virtual machines can be increased, and the cost can be greatly reduced.
  • the standby virtual machine can always be kept in the same content and state as the primary virtual machine.
  • the synchronization failure is detected by tracking whether or not the difference information is correctly synchronized in the standby system, and reliable synchronization is performed by retrying. Thus, availability and reliability can be improved.
  • FIG. 1 is a diagram showing an outline of a configuration example of a virtual machine synchronization system according to an embodiment of the present invention.
  • the virtual machine synchronization system 1 includes a plurality of hypervisors (in the example of FIG. 1, two hypervisors A (100) and B (200)), and a management server 300 including a network such as a LAN (Local Area Network). 400 are connected so that they can communicate with each other.
  • Each hypervisor of the main system / standby system can appropriately use an existing hypervisor product available from a vendor or the like.
  • one or more (types of) primary virtual machines 101 are operating under the management of the hypervisor A (100), and further, software programs or integrations are performed on the hypervisor A (100).
  • a main agent (monitoring unit) 120 implemented by hardware designed by a circuit or the like is operating.
  • the main agent 120 further includes various units such as a difference confirmation unit 121 and a difference extraction unit 122, for example.
  • the difference confirmation unit 121 compares the difference (update) between the main image 110 that is the current image file of the active main virtual machine 101 and the base image 130 that holds the contents of the most recent image file of the main virtual machine 101. ). For example, an existing method such as comparing the file size between the main image 110 and the base image 130 can be used as appropriate. This processing is performed based on, for example, a periodic instruction from the main agent 120.
  • the difference extraction unit 122 has a function of extracting difference data as the difference 111 when the difference confirmation unit 121 determines that there is a difference. For example, an existing method such as comparing the main image 110 and the base image 130 in units of bits and extracting a difference can be appropriately used.
  • the extracted difference 111 is transferred to the management server 300 via the network 400 after adding information such as version information and acquisition date and time.
  • version information the format or the like is not particularly limited as long as the difference 111 can be uniquely identified.
  • the standby virtual machine 201 Under the management of the hypervisor B (200), one or more (types) of the standby virtual machines 201 are operable (the standby virtual machine 201 does not have to be activated at the normal time). Each of these standby virtual machines 201 is a virtual machine as a standby system corresponding to the main virtual machine 101 operating on the hypervisor A (100). On the hypervisor B (200), a standby agent (monitoring unit) 220 implemented by hardware designed by a software program or an integrated circuit is also operating.
  • a standby agent (monitoring unit) 220 implemented by hardware designed by a software program or an integrated circuit is also operating.
  • the standby agent 220 further includes various units such as a difference synchronization unit 221 and a synchronization confirmation unit 222, for example.
  • the difference synchronization unit 221 inquires of the management server 300 whether there is a difference 111 to be synchronized with the standby image 210 that is a virtual machine image file to be used to start the standby virtual machine 201, and performs synchronization. When there is a difference 111 to be obtained, the difference 111 is acquired and applied to the standby image 210 to synchronize. As for the application of the difference 111 to the standby image 210, an existing method can be used as appropriate.
  • the synchronization confirmation unit 222 has a function of checking a result when the difference 111 is applied by the difference synchronization unit 221 and confirming whether or not the difference 111 is correctly applied and synchronized.
  • the fact is reported to the management server 300.
  • the difference synchronization unit 221 is retried to synchronize the difference 111 with an appropriate time interval. Try to synchronize again. If synchronization cannot be performed correctly even after a certain number of retries, error processing is performed by reporting the fact to the management server 300 or the like.
  • various existing methods such as a check of a result code at the time of applying the difference 111 in the difference synchronization unit 221 and verification of data consistency of the standby system image 210 are used. These methods can be used as appropriate.
  • each hypervisor is both the primary agent 120 and the standby agent 220 so that both the hypervisor A (100) and the hypervisor B (200) can operate in either the primary system or the standby system. It is good also as a structure which has. Alternatively, a configuration having an agent having the functions of both the main agent 120 and the standby agent 220 may be adopted.
  • the management server 300 is a server device that holds and manages the contents of the difference 111 in the primary image 110 of the primary virtual machine 101 and manages the synchronization status of the standby virtual machine 201 with respect to the standby image 210. is there.
  • the management server 300 itself may be configured as a virtual machine.
  • the management server 300 includes, for example, a synchronization management unit 310 that is implemented by an OS (not shown), a DBMS (DataBase Management System), a software program that operates on middleware such as a Web server program, and the like.
  • Each table includes a target virtual machine table (TB) 320 implemented by a database, a file table, and the like, a standby state TB 330, and a main state TB 340.
  • TB target virtual machine table
  • the synchronization management unit 310 holds the contents of the difference 111 transmitted from the main agent 120 of the hypervisor A (100) in the main state TB 340, and in response to an inquiry from the standby agent 220 of the hypervisor B (200). On the other hand, it has a function of confirming the presence or absence of the difference 111 to be synchronized and, if there is, acquiring this from the main system state TB 340 and transmitting it to the standby system agent 220.
  • FIG. 2 is a diagram showing an outline of an example of the data configuration of the target virtual machine TB320.
  • the target virtual machine TB320 is a table that holds information on a virtual machine that is a target of performing synchronization of a virtual machine image file between a primary system and a standby system among a plurality of virtual machines operating on each hypervisor.
  • each item includes a hypervisor ID, a synchronization target virtual machine ID, and a main / standby classification.
  • the item of hypervisor ID holds ID information that uniquely identifies the hypervisor in which the target virtual machine is operating. As long as the information is uniquely identifiable, a sequence number, a host name, an IP address, or the like may be used.
  • the item of the synchronization target virtual machine ID holds ID information for uniquely identifying the synchronization target virtual machine. The information may be uniquely identifiable throughout the system, or may be information uniquely identifiable within the hypervisor.
  • the main / standby classification item holds information such as a code value for identifying whether the target virtual machine is a primary system or a standby system. When processing is switched from the primary system to the standby system, the value of the corresponding item is updated, and the target hypervisor or agent references this to determine whether the system is operating as the primary system or the standby system. You may make it judge.
  • FIG. 3 is a diagram showing an outline of an example of the data configuration of the standby system state TB330.
  • the standby system state TB330 is a table that holds information including the synchronization status of the difference 111 for each standby system virtual machine 201.
  • the standby system virtual machine ID, standby system hypervisor ID, corresponding main system virtual machine ID Each item includes a main hypervisor ID, a synchronization status, a synchronized differential version, and a last synchronization date and time.
  • Each item of the standby virtual machine ID and the standby hypervisor ID holds ID information for uniquely identifying the target standby virtual machine 201 and the hypervisor B (200) on which the target standby virtual machine 201 operates.
  • Each item of the corresponding main virtual machine ID and the main hypervisor ID is an ID that uniquely identifies the main virtual machine 101 corresponding to the target standby virtual machine 201 and the hypervisor A (100) in which the main virtual machine 101 operates. Keep information.
  • the item of synchronization status holds a code value or the like indicating the synchronization status of the difference 111 to the standby image 210 in the target standby virtual machine 201.
  • “normal synchronization”, “synchronizing”, “synchronization failure”, and the like can be used.
  • the synchronization management unit 310 of the management server 300 extracts and transmits the difference 111 based on the request from the standby agent 220, it is set to “synchronizing” and the synchronization completion notification is received from the standby agent 220. "Normal synchronization”. Further, when a synchronization failure notification is received from the standby agent 220, “synchronization failure” is set.
  • the item “synchronized differential version” holds version information for uniquely identifying the currently synchronized difference 111 with respect to the target standby virtual machine 201. This value is updated with the value of the version information of the synchronized difference 111 when the synchronization manager 310 receives the synchronization completion notification from the standby agent 220.
  • the item of last synchronization date and time holds information on a time stamp when the synchronization of the difference 111 is normally completed last in the standby agent 220. This value is also updated when the synchronization manager 310 receives a synchronization completion notification from the standby agent 220.
  • FIG. 4 is a diagram showing an outline of an example of the data configuration of the main system state TB340.
  • the main system state TB 340 is a table that holds information including the synchronization status of the difference 111 extracted from the main system image 110 for each main virtual machine 101.
  • the main system state TB 340 includes a main system virtual machine ID, a hypervisor ID, and a difference version. , Difference acquisition date and time, and synchronization status.
  • Each item of the main virtual machine ID and the hypervisor ID holds ID information for uniquely identifying the target main virtual machine 101 and the hypervisor A (100) on which the target main virtual machine 101 operates.
  • Each item of the difference version and the difference acquisition date / time includes version information for uniquely identifying the difference 111 obtained from the main image 110 of the target main virtual machine 101, and information on the time stamp at which the difference 111 was acquired. Hold.
  • the item of synchronization status holds a code value or the like indicating the synchronization status of the corresponding standby virtual machine 201 to the standby image 210 for the target difference 111.
  • a code value or the like indicating the synchronization status of the corresponding standby virtual machine 201 to the standby image 210 for the target difference 111.
  • the type of situation for example, “not synchronized”, “synchronized”, and the like can be used.
  • the virtual machine By performing generation management so that a virtual machine image file can be restored to a state of an arbitrary version by keeping a record as a history of the differences 111 of multiple versions obtained from the primary virtual machine 101, the virtual machine It is also possible to use the synchronization system 1 as a backup system for the main virtual machine 101.
  • each table shown in FIGS. 2 to 4 is merely an example, and other table configurations and data configurations can be used as long as similar data can be held and managed. It may be.
  • FIG. 5 is a flowchart showing an outline of an example of a flow of processing for registering the difference 111 acquired from the main image 110 in the management server 300.
  • the main agent 120 of the hypervisor A (100) periodically acquires the base image 130 by the difference confirmation unit 121 for each main virtual machine 101 operating on the hypervisor A (100) (S01). This is compared with the current main system image 110 (S02).
  • step S03 The presence / absence of a difference is determined based on the comparison result of step S02 (S03). If there is no difference, there is no difference 111 to be synchronized with the standby virtual machine 201, so the process returns to step S01 periodically. Repeat the process of checking for differences. If there is a difference, the difference extraction unit 122 extracts the difference 111 from the main system image 110 and transfers the difference information including the difference 111 to the synchronization management unit 310 of the management server 300 (S04). In addition to the difference 111, the difference information includes, for example, information such as the version, acquisition date, ID of the target primary virtual machine 101, and ID of the hypervisor A (100). Thereafter, the base image 130 is overwritten and updated with the contents of the current main image 110 (S05), and the process returns to step S01 to repeat the periodic processing.
  • the synchronization management unit 310 of the management server 300 registers the content including the difference 111 in the main state TB 340 (S12). At this time, a value indicating that the difference 111 is not yet synchronized with the standby image 210 of the standby virtual machine 201 is set in the synchronization status item of the primary system TB 340, for example, “not synchronized”. .
  • the main agent 120 is a target for checking whether the virtual machine image file has a difference 111 (primary virtual machine 101).
  • the management server 300 can be inquired of the registration contents of the target virtual machine TB 320 and can acquire a list of virtual machine IDs to be checked for the existence of the difference 111.
  • each hypervisor may have a table that holds the same content as the portion related to itself among the content registered in the target virtual machine TB 320 and may refer to this.
  • FIG. 6 is a flowchart showing an outline of an example of a flow of processing for synchronizing the contents of the difference 111 registered in the management server 300 with the corresponding standby image 210.
  • the standby agent 220 of the hypervisor B (200) is periodically provided to the management server 300 for each standby virtual machine 201 that can operate on the hypervisor B (200) by the difference synchronization unit 221 or the like.
  • an inquiry is made to confirm whether or not there is an unsynchronized difference 111 to be synchronized with the standby image 210 (S21), and as a result, difference information is received from the synchronization management unit 310 of the management server 300 (S22).
  • This difference information includes, for example, the contents of one or more versions of the unsynchronized difference 111. If there is no unsynchronized difference 111, information to that effect is included.
  • the process returns to step S21 and periodically returns to the management server 300.
  • the process of confirming the presence or absence of the unsynchronized difference 111 is repeated.
  • the management server 300 is notified of synchronization information indicating that synchronization has started.
  • the synchronization confirmation unit 222 determines whether or not the difference 111 is correctly applied to the standby image 210 and the synchronization is successful (S25). The synchronization process of the difference 111 is retried. If the attempt is not successful even after a predetermined number of retries, the management server 300 may be notified of synchronization information (not shown) indicating that the synchronization has failed. If the synchronization is successful, the management server 300 is notified of this and information related to the synchronization (S26), and the process returns to step S21 to repeat the periodic processing.
  • the synchronization management unit 310 of the management server 300 receives a confirmation request for the presence / absence of the unsynchronized difference 111 from the standby agent 220, the synchronization management unit 310 based on the ID information of the target standby virtual machine 201 included in the confirmation request. Then, the standby system state TB 330 is referred to, and information on the ID of the corresponding primary virtual machine 101 and the ID of the hypervisor A (100) in which it operates (S31) is acquired.
  • the registration status of the difference 111 in the target primary virtual machine 101 is confirmed with reference to the primary status TB 340 (S32), and the presence / absence of the differential 111 with the synchronization status “unsynchronized” is determined ( S33).
  • step S33 when there is no unsynchronized difference 111, a response to that effect is sent to the standby agent 220. If there is an unsynchronized difference 111, the difference information relating to this is extracted from the main system state TB 340 and responded to the standby system agent 220 (S34).
  • the synchronization status of the entry of the target standby virtual machine 201 in the standby state TB 330 is updated to “being synchronized” based on the contents of the synchronization information ( S35). Further, upon receiving synchronization information indicating that the synchronization is completed from the standby system agent 220, the synchronization status of the target differential information entry of the main system status TB 340 is updated to “synchronized” based on the content, and the standby system status The synchronization status of the entry of the target standby virtual machine 201 of the TB 330 is updated to “normal synchronization” (S36).
  • the standby agent 220 When synchronization information (not shown) indicating that the synchronization has failed is received from the standby agent 220, the synchronization status of the entry of the target standby virtual machine 201 in the standby state TB 330 is updated to “synchronization failure”. .
  • the standby agent 220 is the target of synchronizing the contents of the difference 111.
  • the management server 300 is inquired about the registered content of the target virtual machine TB320, and the ID of the virtual machine that is the target of synchronization of the content of the difference 111 itself. It can be configured to obtain a list.
  • each hypervisor may have a table that holds the same content as the portion related to itself among the content registered in the target virtual machine TB 320 and may refer to this.
  • the main image 110 of the main virtual machine 101 is stored in a cloud computing environment or the like operated in a data center or the like.
  • the difference 111 from before the update is extracted and synchronized with the standby image 210 of the standby virtual machine 201 via the management server 300.
  • This makes it possible to synchronize the contents of the primary virtual machine 101 with the standby virtual machine 201 without having to activate the standby virtual machine 201, and to effectively use the resources of the hypervisor B (200).
  • the integration rate of virtual machines can be increased and the cost can be greatly reduced.
  • the standby virtual machine 201 can always be maintained in the same content and state as the main virtual machine 101.
  • the synchronization failure is detected by tracking whether or not the difference 111 is correctly synchronized in the standby image 210, and reliable synchronization is performed by retrying. Thus, availability and reliability can be improved.
  • the present invention made by the present inventor has been specifically described based on the embodiments.
  • the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention. Needless to say.
  • the above-described embodiment has been described in detail for easy understanding of the present invention, and is not necessarily limited to the one having all the configurations described. It is possible to add, delete, and replace other configurations for a part of the configuration of the above embodiment.
  • the main agent 120 on the hypervisor A (100) confirms and extracts the difference 111 between the base image 130 and the main image 110.
  • the main agent 120 transmits the main image 110 to the management server 300, and the management server 300 confirms and extracts the presence or absence of the difference 111, and the hypervisor B (200).
  • a configuration in which the difference 111 is transmitted to the upper standby agent 220 may be employed. As a result, the use of resources of the hypervisor A (100) can be suppressed.
  • the function of the management server 300 is connected to these data centers via the Internet. It can also be configured to provide as a service. As a result, the reliability of the virtual machine can be easily improved without individually constructing the management server 300 in each data center. Further, for example, a disaster recovery system can be easily constructed by configuring a data center where the hypervisor A (100) exists and a data center where the hypervisor B (200) exists at remote locations. .
  • the present invention can be used in a virtual machine synchronization system in which main and standby virtual machines are provided and contents of the main system are synchronized with the standby system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 主系の仮想マシンにおけるイメージファイルに更新があった場合、更新前との差分を待機系の仮想マシンのイメージファイルに随時同期させる仮想マシン同期システムである。本発明の代表的な実施の形態は、管理サーバと、主系仮想マシンのイメージファイルについて更新がされている場合に差分を取得して管理サーバに送信する主系エージェントと、管理サーバから待機系仮想マシンのイメージファイルに同期させるべき差分を取得して、待機系仮想マシンのイメージファイルに同期させる待機系エージェントとを有し、管理サーバは、主系エージェントから差分を受信した場合、これを主系状態テーブルに登録し、待機系エージェントから待機系仮想マシンのイメージファイルに同期させるべき差分に対する要求を受信した場合、主系状態テーブルに記録されている差分を取得して待機系エージェントに送信する。

Description

仮想マシン同期システム
 本発明は、仮想マシンの管理技術に関し、特に、主系と待機系の仮想マシンを設け、主系の内容を待機系に同期させる仮想マシン同期システムに適用して有効な技術に関するものである。
 例えば、データセンターなどにおいてクラウドコンピューティング環境を構築・運用するような場合、多数のサーバ機器類を構築して稼働させる必要があるが、その際、コンピュータ仮想化技術の一つである仮想マシンを実現するためのハイパーバイザを用いて仮想マシンとしてサーバ等の機器を構築することが行われる。このような環境では、仮想マシンのメンテナンスや障害発生時などにおいて、いわゆるライブマイグレーションにより対象の仮想マシンを他のハイパーバイザに瞬時に移行してサービスを継続した上で、メンテナンス等の作業を行うことができる。
 しかしながら、全ての仮想マシンがライブマイグレーションの機能を有しているわけではなく、ライブマイグレーションによる移行ができない環境もある。このような環境では、仮想マシンからなるシステムの信頼性を高めるため、対象の仮想マシン(主系)に対して待機系の仮想マシンを作成して切替可能としておく。
 これに関連する技術として、例えば、特開2007-148839号公報(特許文献1)には、複数の仮想サーバが稼働する複数の物理サーバと、単一の待機系サーバを具備し、起動中の仮想サーバを検出する手段と、仮想サーバを制御する仮想化機構の起動ディスクと物理サーバの対応付けを切り替える手段を有し、物理サーバ障害時に仮想化機構の起動ディスクを交代サーバに接続し直すとともに、障害発生時に起動していた仮想サーバを自動的に起動することで、仮想化されたサーバ環境であっても低コストで高信頼化する技術が記載されている。
 また、特開2010-102414号公報(特許文献2)には、仮想システムの運用系システムについての構成情報を格納する構成情報格納部と、仮想システムの運用系システムのための仮想マシン・イメージを格納する第1仮想マシン・イメージ格納部と、仮想システムの運用系システムとテスト系システムとの差分の構成情報である構成変更情報を格納する構成変更情報格納部と、仮想マシンの運用系システムとテスト系システムとの差分の構成についての仮想マシン・イメージを格納する第2仮想マシン・イメージ格納部と、制御部とを有することで、運用系システムとテスト系システムの切替が容易かつスムーズに行われるようにする技術が記載されている。
特開2007-148839号公報 特開2010-102414号公報
 ライブマイグレーションが行えない環境において、主系・待機系のシステム構成をとる場合、待機系の仮想マシンは、主系の仮想マシンと内容や状態(例えば、パッチやウィルスソフトのバージョンなど)が同一となるよう同期させるため、システム全体の動作の観点からは起動の必要がないにも関わらず、起動されている場合がある。このため、待機系の仮想マシンに対して無駄なリソース(CPU、メモリ、ストレージなど)が割り当てられ、ハイパーバイザのリソースを有効に活用できないという課題があった。
 また、例えば、特許文献1などに記載されたような技術では、リソースを効率的に利用することができるものの、ハイパーバイザ上に構築される複数の仮想マシンのそれぞれの単位で同期を制御することは困難な場合がある。また、例えば、特許文献2などに記載されたような技術では、運用系システムとテスト系システムにおけるサーバ単位での構成の差分情報に基づいてテスト系システムから運用系システムへ切替を行うものであり、例えば、運用系システムが実運用をしており仮想マシンのイメージファイルが随時変化していく場合に、その変更分(差分)をテスト系システムに随時反映・同期させることについては考慮されていない。すなわち、稼働中の主系の仮想マシンのイメージファイルをリアルタイムで待機系の仮想マシンに同期させることは考慮されていない。
 そこで本発明の目的は、主系の仮想マシンにおけるイメージファイルに更新があった場合、更新前との差分を待機系の仮想マシンのイメージファイルに随時同期させることで、待機系の仮想マシンを起動しておくことなく待機系の仮想マシンの内容や状態を主系の仮想マシンに同期させる仮想マシン同期システムを提供することにある。本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
 本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
 本発明の代表的な実施の形態による仮想マシン同期システムは、第1のハイパーバイザ上で稼働する第1の仮想マシンのイメージファイルの内容を、第2のハイパーバイザ上で前記第1の仮想マシンの待機系として稼働することができる第2の仮想マシンのイメージファイルに同期させる仮想マシン同期システムであって、以下の特徴を有するものである。
 すなわち、仮想マシン同期システムは、前記第1のハイパーバイザおよび前記第2のハイパーバイザとネットワークを介して接続可能な管理サーバと、前記第1のハイパーバイザ上で稼働し、前記第1の仮想マシンのイメージファイルについて更新がされている場合に更新前との差分を取得して前記管理サーバに送信する第1の監視部と、前記第2のハイパーバイザ上で稼働し、前記管理サーバから前記第2の仮想マシンのイメージファイルに同期させるべき前記差分を取得して、前記第2の仮想マシンのイメージファイルに同期させる第2の監視部とを有し、前記管理サーバは、前記第1の監視部から前記差分を受信した場合、これを第1の記録部に登録し、前記第2の監視部から前記第2の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信した場合、前記第1の記録部に記録されている前記差分を取得して前記第2の監視部に送信することを特徴とするものである。
 本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
 すなわち、本発明の代表的な実施の形態によれば、主系の仮想マシンにおけるイメージファイルに更新があった場合、更新前との差分を待機系の仮想マシンのイメージファイルに随時同期させることで、待機系の仮想マシンを起動しておく必要なく主系の仮想マシンの内容や状態を待機系の仮想マシンに同期させることが可能となる。これにより、ハイパーバイザのリソースを有効活用しつつ仮想マシンの信頼性を向上させることが可能となる。
本発明の一実施の形態である仮想マシン同期システムの構成例について概要を示した図である。 本発明の一実施の形態における対象仮想マシンTBのデータ構成の例について概要を示した図である。 本発明の一実施の形態における待機系状態TBのデータ構成の例について概要を示した図である。 本発明の一実施の形態における主系状態TBのデータ構成の例について概要を示した図である。 本発明の一実施の形態における主系イメージファイルから取得した差分を管理サーバに登録する処理の流れの例について概要を示したフロー図である。 本発明の一実施の形態における管理サーバに登録された差分の内容を対応する待機系イメージファイルに同期させる処理の流れの例について概要を示したフロー図である。
 以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
 本発明の一実施の形態である仮想マシン同期システムは、例えば、データセンター等において運用されるクラウドコンピューティング環境等において、主系の仮想マシンのイメージファイルを監視して、内容が更新されている場合、更新前との差分情報を抽出して、これを管理サーバを介して待機系の仮想マシンのイメージファイルに同期させる。これにより、待機系の仮想マシンを起動しておく必要なく主系の仮想マシンの内容を待機系の仮想マシンに同期させることが可能となり、ハイパーバイザのリソースを有効活用することが可能となるため、仮想マシンの集積率を上げることができ、コストを大きく削減することができる。
 仮想マシンイメージファイルの差分情報の同期は、リアルタイムで実行することができるため、待機系の仮想マシンを常に主系の仮想マシンと同じ内容や状態に維持することができる。また、待機系において差分情報の同期が正しく行われたか否かをトラッキングすることで同期の失敗を検知し、リトライすることで確実な同期を行う。これらにより、可用性や信頼性を向上させることができる。
 <システム構成>
 図1は、本発明の一実施の形態である仮想マシン同期システムの構成例について概要を示した図である。仮想マシン同期システム1は、複数のハイパーバイザ(図1の例では、ハイパーバイザA(100)およびハイパーバイザB(200)の2つ)、および管理サーバ300がLAN(Local Area Network)等のネットワーク400で相互に通信可能なように接続された構成を有する。主系/待機系の各ハイパーバイザは、ベンダー等から入手可能な既存のハイパーバイザ製品等を適宜利用することができる。
 図1の例では、ハイパーバイザA(100)の管理下では1つ以上の(種類の)主系仮想マシン101が稼働しており、さらに、ハイパーバイザA(100)上では、ソフトウェアプログラムもしくは集積回路等により設計されたハードウェアにより実装された主系エージェント(監視部)120が稼働している。
 主系エージェント120は、例えば、さらに、差分確認部121および差分抽出部122などの各部を有する。差分確認部121は、稼働中の主系仮想マシン101の現在のイメージファイルである主系イメージ110と、主系仮想マシン101の直近のイメージファイルの内容を保持するベースイメージ130との差分(更新)の有無を確認する機能を有する。例えば、主系イメージ110とベースイメージ130との間でファイルサイズを比較する等の既存の手法を適宜利用することができる。この処理は、例えば、主系エージェント120からの定期的な指示に基づいて行う。
 差分抽出部122は、差分確認部121において差分があると判定された場合に、差分のデータを差分111として抽出する機能を有する。例えば、主系イメージ110とベースイメージ130とをビット単位で比較して差分を抽出する等の既存の手法を適宜利用することができる。抽出した差分111は、バージョン情報や取得日時等の情報を付した上でネットワーク400を介して管理サーバ300に転送する。バージョン情報については、差分111を一意に識別することができるものであれば特にフォーマット等は限定されない。
 ハイパーバイザB(200)の管理下では1つ以上の(種類の)待機系仮想マシン201が稼働可能な状態となっている(通常時に待機系仮想マシン201は起動していなくてもよい)。なお、これらの各待機系仮想マシン201は、ハイパーバイザA(100)上で稼働している主系仮想マシン101に対応する待機系としての仮想マシンである。ハイパーバイザB(200)上では、さらに、ソフトウェアプログラムもしくは集積回路等により設計されたハードウェアにより実装された待機系エージェント(監視部)220が稼働している。
 待機系エージェント220は、例えば、さらに、差分同期部221および同期確認部222などの各部を有する。差分同期部221は、待機系仮想マシン201を起動するために使用することになる仮想マシンイメージファイルである待機系イメージ210に同期させるべき差分111の有無を管理サーバ300に対して問い合わせるとともに、同期させるべき差分111がある場合に、これを取得して待機系イメージ210に適用して同期させる機能を有する。待機系イメージ210に対する差分111の適用についても、既存の手法を適宜利用することができる。
 同期確認部222は、差分同期部221によって差分111の適用が行われた際の結果をチェックし、正しく適用が行われて同期されたか否かを確認する機能を有する。正しく同期された場合にはその旨を管理サーバ300に対して報告する一方、正しく同期されなかった場合には適当な時間間隔を空けて差分同期部221に対して差分111の同期をリトライさせる等により同期を再度試みる。一定回数のリトライによっても正しく同期ができなかった場合には管理サーバ300に対してその旨を報告する等によりエラー処理を行う。同期が正しく行われたか否かの判定手法としては、例えば、差分同期部221における差分111の適用処理の際の結果コードのチェックや、待機系イメージ210のデータの整合性検証など、各種の既存の手法を適宜利用することができる。
 なお、図1の例では、主系と待機系を区別して記載しているが、主系仮想マシン101から待機系仮想マシン201に処理が切り替わった場合、以後は待機系仮想マシン201が主系となって稼働することになる。従って、ハイパーバイザA(100)およびハイパーバイザB(200)の双方が主系もしくは待機系のいずれでも稼働することが可能となるよう、各ハイパーバイザが主系エージェント120および待機系エージェント220の双方を有する構成としてもよい。もしくは、主系エージェント120と待機系エージェント220の双方の機能を有するエージェントを有する構成としてもよい。
 管理サーバ300は、主系仮想マシン101の主系イメージ110における差分111の内容を保持・管理するとともに、これらについての待機系仮想マシン201の待機系イメージ210に対する同期のステータスを管理するサーバ機器である。管理サーバ300自体が仮想マシンとして構成されていてもよい。管理サーバ300は、例えば、図示しないOSやDBMS(DataBase Management System:データベース管理システム)、Webサーバプログラムなどのミドルウェア上で稼働するソフトウェアプログラム等により実装される同期管理部310などを有する。また、データベースやファイルテーブルなどにより実装される対象仮想マシンテーブル(TB)320、待機系状態TB330、および主系状態TB340などの各テーブルを有する。
 同期管理部310は、ハイパーバイザA(100)の主系エージェント120から送信された差分111の内容を主系状態TB340に保持するとともに、ハイパーバイザB(200)の待機系エージェント220からの問合せに対して、同期すべき差分111の有無を確認し、ある場合にはこれを主系状態TB340から取得して待機系エージェント220に送信する機能を有する。
 <データ構成>
 以下では、管理サーバ300が有する各テーブルのデータ構成について説明する。図2は、対象仮想マシンTB320のデータ構成の例について概要を示した図である。対象仮想マシンTB320は、各ハイパーバイザ上で稼働する複数の仮想マシンのうち、主系と待機系との間で仮想マシンイメージファイルの同期を行う対象となる仮想マシンの情報を保持するテーブルであり、例えば、ハイパーバイザID、同期対象仮想マシンID、および主/待機区分などの各項目を有する。
 ハイパーバイザIDの項目は、対象の仮想マシンが稼働するハイパーバイザを一意に識別するID情報を保持する。一意に識別可能な情報であればシーケンス番号やホスト名、IPアドレスなどでもよい。同期対象仮想マシンIDの項目は、同期対象の仮想マシンを一意に識別するID情報を保持する。システム全体で一意に識別可能な情報でもよいし、ハイパーバイザ内で一意に識別可能な情報であってもよい。主/待機区分の項目は、対象の仮想マシンが主系か待機系かを識別するコード値などの情報を保持する。主系から待機系に処理が切り替わった場合に、当該項目の値を更新し、これを対象のハイパーバイザやエージェントが参照することで、自身が主系として稼働するのか待機系として稼働するのかを判断するようにしてもよい。
 図3は、待機系状態TB330のデータ構成の例について概要を示した図である。待機系状態TB330は、各待機系仮想マシン201についての差分111の同期状況を含む情報を保持するテーブルであり、例えば、待機系仮想マシンID、待機系ハイパーバイザID、対応主系仮想マシンID、主系ハイパーバイザID、同期ステータス、同期済み差分バージョン、および最終同期日時などの各項目を有する。
 待機系仮想マシンIDおよび待機系ハイパーバイザIDの各項目は、それぞれ、対象の待機系仮想マシン201およびこれが稼働するハイパーバイザB(200)を一意に識別するID情報を保持する。対応主系仮想マシンIDおよび主系ハイパーバイザIDの各項目は、それぞれ、対象の待機系仮想マシン201に対応する主系仮想マシン101およびこれが稼働するハイパーバイザA(100)を一意に識別するID情報を保持する。
 同期ステータスの項目は、対象の待機系仮想マシン201における差分111の待機系イメージ210への同期の状況を示すコード値等を保持する。状況の種別としては、例えば、「正常同期」、「同期中」、「同期失敗」などとすることができる。このとき、待機系エージェント220からの要求に基づいて管理サーバ300の同期管理部310が差分111を抽出して送信した際に「同期中」とし、待機系エージェント220から同期完了の通知を受領した際に「正常同期」とする。また、待機系エージェント220から同期失敗の通知を受領した際に「同期失敗」とする。
 同期済み差分バージョンの項目は、対象の待機系仮想マシン201に対して現在同期済みの差分111を一意に識別するバージョン情報を保持する。この値は、待機系エージェント220からの同期完了の通知を同期管理部310が受領した際に、同期した差分111のバージョン情報の値によって更新される。最終同期日時の項目は、待機系エージェント220において最後に差分111の同期が正常に完了した際のタイムスタンプの情報を保持する。この値についても、待機系エージェント220からの同期完了の通知を同期管理部310が受領した際に更新される。
 図4は、主系状態TB340のデータ構成の例について概要を示した図である。主系状態TB340は、各主系仮想マシン101について主系イメージ110から抽出された差分111の同期状況を含む情報を保持するテーブルであり、例えば、主系仮想マシンID、ハイパーバイザID、差分バージョン、差分取得日時、および同期ステータスなどの各項目を有する。
 主系仮想マシンIDおよびハイパーバイザIDの各項目は、それぞれ、対象の主系仮想マシン101およびこれが稼働するハイパーバイザA(100)を一意に識別するID情報を保持する。差分バージョンおよび差分取得日時の各項目は、それぞれ、対象の主系仮想マシン101の主系イメージ110から得られた差分111を一意に識別するバージョン情報、および当該差分111を取得したタイムスタンプの情報を保持する。
 同期ステータスの項目は、対象の差分111について、対応する待機系仮想マシン201の待機系イメージ210への同期の状況を示すコード値等を保持する。状況の種別としては、例えば、「未同期」、「同期済み」などとすることができる。このとき、主系エージェント120から管理サーバ300の同期管理部310が差分111を受信した際に「未同期」としてエントリを登録し、待機系エージェント220から同期完了の通知を受領した際に「同期済み」とする。
 主系仮想マシン101から得られた複数バージョンの差分111について履歴としてレコードを残しておき、任意のバージョンの状態に仮想マシンイメージファイルを復元可能とするような世代管理を行なうことで、当該仮想マシン同期システム1を主系仮想マシン101に対するバックアップシステムとして利用することも可能である。
 なお、上述の図2~図4で示した各テーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
 <処理の流れ>
 図5、図6により、主系仮想マシン101の主系イメージ110の内容を待機系仮想マシン201の待機系イメージ210に随時同期させる処理の流れについて説明する。図5は、主系イメージ110から取得した差分111を管理サーバ300に登録する処理の流れの例について概要を示したフロー図である。ハイパーバイザA(100)の主系エージェント120は、定期的に、ハイパーバイザA(100)上で稼働中の各主系仮想マシン101について、差分確認部121によりベースイメージ130を取得し(S01)、これと現在の主系イメージ110とを比較する(S02)。
 ステップS02の比較の結果に基づいて差分の有無を判定し(S03)、差分がない場合は、待機系仮想マシン201に同期させる差分111がないことになるため、ステップS01に戻って定期的に差分の有無を確認する処理を繰り返す。差分がある場合は、差分抽出部122により差分111を主系イメージ110から抽出し、これを含む差分情報を管理サーバ300の同期管理部310に転送する(S04)。差分情報には、差分111の他に、例えば、そのバージョンや取得日時、対象の主系仮想マシン101のIDやハイパーバイザA(100)のIDなどの情報が含まれる。その後、現在の主系イメージ110の内容によりベースイメージ130を上書き更新し(S05)、ステップS01に戻って定期的な処理を繰り返す。
 一方、管理サーバ300の同期管理部310は、主系エージェント120から差分111を含む差分情報を受領すると(S11)、差分111を含むその内容を主系状態TB340に登録する(S12)。このとき、主系状態TB340の同期ステータスの項目には、例えば、「未同期」など、当該差分111が未だ待機系仮想マシン201の待機系イメージ210に同期されていないことを示す値を設定する。
 なお、図5の例において、ハイパーバイザA(100)上で稼働する仮想マシンのうち、主系エージェント120が仮想マシンイメージファイルの差分111の有無を確認する対象とするもの(主系仮想マシン101)をどのように特定するかについては、各種の手法をとることが可能である。例えば、管理サーバ300に対して対象仮想マシンTB320の登録内容を問合せて、自身が差分111の有無を確認する対象とすべき仮想マシンのIDのリストを取得するように構成することができる。また、各ハイパーバイザが、対象仮想マシンTB320に登録されている内容のうち自身に係る部分と同様の内容を保持するテーブルを有して、これを参照する構成としてもよい。
 図6は、管理サーバ300に登録された差分111の内容を対応する待機系イメージ210に同期させる処理の流れの例について概要を示したフロー図である。ハイパーバイザB(200)の待機系エージェント220は、差分同期部221等により、定期的に管理サーバ300に対して、ハイパーバイザB(200)上で稼働することができる待機系仮想マシン201毎に、待機系イメージ210に同期させるべき未同期の差分111の有無を確認する問い合わせを行い(S21)、結果として管理サーバ300の同期管理部310から差分情報を受領する(S22)。この差分情報には、例えば、1つ以上のバージョンの未同期の差分111の内容が含まれる。また、未同期の差分111が存在しない場合にはその旨の情報が含まれる。
 その後、同期管理部310から受領した差分情報に未同期の差分111が含まれているか否かを判定し(S23)、差分111がない場合はステップS21に戻って定期的に管理サーバ300に対して未同期の差分111の有無を確認する処理を繰り返す。一方、未同期の差分111がある場合は、対象の待機系イメージ210に適用して同期させる(S24)。このとき、同期を開始した旨の同期情報を管理サーバ300に対して通知する。
 その後、同期確認部222により待機系イメージ210に差分111が正しく適用されて同期が成功したか否かを判定し(S25)、同期が成功していない場合はステップS24に戻って一定時間経過後に差分111の同期処理をリトライする。所定の回数以上リトライしても成功しなかった場合は、同期に失敗した旨の同期情報(図示しない)を管理サーバ300に対して通知するようにしてもよい。同期が成功している場合はその旨と同期に係る情報を管理サーバ300に通知して(S26)、ステップS21に戻って定期的な処理を繰り返す。
 一方、管理サーバ300の同期管理部310は、待機系エージェント220から未同期の差分111の有無の確認要求を受信した場合、確認要求に含まれる対象の待機系仮想マシン201のIDの情報に基づいて、待機系状態TB330を参照し、対応する主系仮想マシン101のIDおよびこれが稼働するハイパーバイザA(100)のIDの情報を取得する(S31)。さらにこの情報に基づいて主系状態TB340を参照して対象の主系仮想マシン101における差分111の登録状況を確認し(S32)、同期ステータスが「未同期」の差分111の有無を判定する(S33)。
 ステップS33において、未同期の差分111が存在しない場合は、その旨の差分情報を待機系エージェント220に応答する。未同期の差分111が存在する場合は、これに係る差分情報を主系状態TB340から抽出して待機系エージェント220に応答する(S34)。
 その後、待機系エージェント220から同期を開始した旨の同期情報を受領すると、その内容に基づいて待機系状態TB330の対象の待機系仮想マシン201のエントリの同期ステータスを「同期中」に更新する(S35)。さらに、待機系エージェント220から同期完了の旨の同期情報を受領すると、その内容に基づいて主系状態TB340の対象の差分情報のエントリの同期ステータスを「同期済み」に更新するとともに、待機系状態TB330の対象の待機系仮想マシン201のエントリの同期ステータスを「正常同期」に更新する(S36)。なお、待機系エージェント220から同期に失敗した旨の同期情報(図示しない)を受領した場合は、待機系状態TB330の対象の待機系仮想マシン201のエントリの同期ステータスを「同期失敗」に更新する。
 なお、図6の例においても、図5の例と同様に、ハイパーバイザB(200)上で稼働することができる仮想マシンのうち、待機系エージェント220が差分111の内容を同期させる対象とするもの(待機系仮想マシン201)を特定するため、例えば、管理サーバ300に対して対象仮想マシンTB320の登録内容を問合せて、自身が差分111の内容を同期させる対象とすべき仮想マシンのIDのリストを取得するように構成することができる。また、各ハイパーバイザが、対象仮想マシンTB320に登録されている内容のうち自身に係る部分と同様の内容を保持するテーブルを有して、これを参照する構成としてもよい。
 以上に説明したように、本発明の一実施の形態である仮想マシン同期システム1によれば、データセンター等において運用されるクラウドコンピューティング環境等において、主系仮想マシン101の主系イメージ110を監視して、内容が更新されている場合、更新前との差分111を抽出して、管理サーバ300を介して待機系仮想マシン201の待機系イメージ210に同期させる。これにより、待機系仮想マシン201を起動しておく必要なく主系仮想マシン101の内容を待機系仮想マシン201に同期させることが可能となり、ハイパーバイザB(200)のリソースを有効活用することが可能となるため、仮想マシンの集積率を上げることができ、コストを大きく削減することができる。
 また、差分111の同期は、リアルタイムで実行することができるため、待機系仮想マシン201を常に主系仮想マシン101と同じ内容や状態に維持することができる。また、待機系イメージ210において差分111の同期が正しく行われたか否かをトラッキングすることで同期の失敗を検知し、リトライすることで確実な同期を行う。これらにより、可用性や信頼性を向上させることができる。
 以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
 例えば、上記の実施の形態では、ハイパーバイザA(100)上の主系エージェント120においてベースイメージ130と主系イメージ110との差分111を確認して抽出するものとしているが、ベースイメージ130の内容を管理サーバ300上で保持しておき、主系エージェント120が主系イメージ110を管理サーバ300に送信して、管理サーバ300において差分111の有無の確認および抽出を行い、ハイパーバイザB(200)上の待機系エージェント220に差分111を送信する構成とすることも可能である。これにより、ハイパーバイザA(100)のリソースの使用を抑えることが可能となる。
 また、例えば、ハイパーバイザA(100)およびハイパーバイザB(200)を含むシステム環境がデータセンターに構築されている状況で、これらのデータセンターに対して、管理サーバ300の機能はインターネットを介してサービスとして提供する構成とすることも可能である。これにより、各データセンターでは管理サーバ300を独自に構築することなく仮想マシンの信頼性を容易に向上させることが可能となる。また、例えば、ハイパーバイザA(100)が存在するデータセンターとハイパーバイザB(200)が存在するデータセンターとを遠隔地に構成することでディザスタリカバリのシステムを容易に構築することも可能である。
 本発明は、主系と待機系の仮想マシンを設け、主系の内容を待機系に同期させる仮想マシン同期システムに利用可能である。
 1…仮想マシン同期システム、
 100…ハイパーバイザA、101…主系仮想マシン、110…主系イメージ、111…差分、120…主系エージェント、121…差分確認部、122…差分抽出部、130…ベースイメージ、
 200…ハイパーバイザB、201…待機系仮想マシン、210…待機系イメージ、220…待機系エージェント、221…差分同期部、222…同期確認部、
 300…管理サーバ、310…同期管理部、320…対象仮想マシンテーブル(TB)、330…待機系状態テーブル(TB)、340…主系状態テーブル(TB)、
 400…ネットワーク。
 
 
 
 

Claims (7)

  1.  第1のハイパーバイザ上で稼働する第1の仮想マシンのイメージファイルの内容を、第2のハイパーバイザ上で前記第1の仮想マシンの待機系として稼働することができる第2の仮想マシンのイメージファイルに同期させる仮想マシン同期システムであって、
     前記第1のハイパーバイザおよび前記第2のハイパーバイザとネットワークを介して接続可能な管理サーバと、
     前記第1のハイパーバイザ上で稼働し、前記第1の仮想マシンのイメージファイルについて更新がされている場合に更新前との差分を取得して前記管理サーバに送信する第1の監視部と、
     前記第2のハイパーバイザ上で稼働し、前記管理サーバから前記第2の仮想マシンのイメージファイルに同期させるべき前記差分を取得して、前記第2の仮想マシンのイメージファイルに同期させる第2の監視部を有し、
     前記管理サーバは、前記第1の監視部から前記差分を受信した場合、これを第1の記録部に登録し、前記第2の監視部から前記第2の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信した場合、前記第1の記録部に記録されている前記差分を取得して前記第2の監視部に送信することを特徴とする仮想マシン同期システム。
  2.  請求項1に記載の仮想マシン同期システムにおいて、
     前記第2の監視部は、前記管理サーバから取得した前記差分を前記第2の仮想マシンのイメージファイルに同期させる際、同期が成功したか否かを判定し、成功していない場合は同期をリトライすることを特徴とする仮想マシン同期システム。
  3.  請求項1に記載の仮想マシン同期システムにおいて、
     前記管理サーバは、前記第1の監視部から前記差分を受信してこれを前記第1の記録部に登録する際、前記差分の同期についてのステータスとして未同期であることを示す値を登録し、前記第2の監視部から前記差分の前記第2の仮想マシンのイメージファイルへの同期が成功した旨の通知を受けた際、前記第1の記録部に登録された前記差分の同期についてのステータスを同期済みであることを示す値に更新することを特徴とする仮想マシン同期システム。
  4.  請求項1に記載の仮想マシン同期システムにおいて、
     前記管理サーバは、前記第2の監視部から前記第2の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信して、前記第1の記録部に記録されている前記差分を取得して前記第2の監視部に送信する際、前記第2の仮想マシンの同期についてのステータスとして同期中であることを示す値を第2の記録部に登録し、前記第2の監視部から前記差分の前記第2の仮想マシンのイメージファイルへの同期が成功した旨の通知を受けた際、前記第2の記録部に登録された前記第2の仮想マシンの同期についてのステータスを同期が正常に完了したことを示す値に更新することを特徴とする仮想マシン同期システム。
  5.  請求項1に記載の仮想マシン同期システムにおいて、
     前記管理サーバは、前記第1の監視部から前記差分を受信してこれを第1の記録部に登録する際、異なるバージョン毎に前記差分を登録することを特徴とする仮想マシン同期システム。
  6.  請求項1に記載の仮想マシン同期システムにおいて、
     前記第1のハイパーバイザ、前記第2のハイパーバイザ、および前記管理サーバのうち、いずれか1つ以上が異なる拠点において稼働することを特徴とする仮想マシン同期システム。
  7.  第1のハイパーバイザ上で稼働する第1の仮想マシンのイメージファイルの内容を、第2のハイパーバイザ上で前記第1の仮想マシンの待機系として稼働することができる第2の仮想マシンのイメージファイルに同期させる仮想マシン同期システムであって、
     前記第1のハイパーバイザおよび前記第2のハイパーバイザとネットワークを介して接続可能な管理サーバと、
     前記第1のハイパーバイザ上で稼働し、前記第1の仮想マシンのイメージファイルを前記管理サーバに送信する第1の監視部と、
     前記第2のハイパーバイザ上で稼働し、前記管理サーバから前記第2の仮想マシンのイメージファイルに同期させるべき前記差分を取得して、前記第2の仮想マシンのイメージファイルに同期させる第2の監視部を有し、
     前記管理サーバは、前記第1の監視部から前記第1の仮想マシンのイメージファイルを受信した場合、これについて更新がされている場合に更新前との差分を取得して第1の記録部に登録し、前記第2の監視部から前記第2の仮想マシンのイメージファイルに同期させるべき前記差分に対する要求を受信した場合、前記第1の記録部に記録されている前記差分を取得して前記第2の監視部に送信することを特徴とする仮想マシン同期システム。
PCT/JP2012/079943 2012-11-19 2012-11-19 仮想マシン同期システム WO2014076838A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014546825A JPWO2014076838A1 (ja) 2012-11-19 2012-11-19 仮想マシン同期システム
PCT/JP2012/079943 WO2014076838A1 (ja) 2012-11-19 2012-11-19 仮想マシン同期システム
US14/443,500 US20150317175A1 (en) 2012-11-19 2012-11-19 Virtual machine synchronization system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/079943 WO2014076838A1 (ja) 2012-11-19 2012-11-19 仮想マシン同期システム

Publications (1)

Publication Number Publication Date
WO2014076838A1 true WO2014076838A1 (ja) 2014-05-22

Family

ID=50730778

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/079943 WO2014076838A1 (ja) 2012-11-19 2012-11-19 仮想マシン同期システム

Country Status (3)

Country Link
US (1) US20150317175A1 (ja)
JP (1) JPWO2014076838A1 (ja)
WO (1) WO2014076838A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016099946A (ja) * 2014-11-26 2016-05-30 日本電気株式会社 同期処理装置、同期処理システム、同期処理方法、および、同期処理プログラム
WO2017047065A1 (ja) * 2015-09-17 2017-03-23 日本電気株式会社 クラスタシステム、情報処理装置、クラスタシステムの同期方法、及びプログラムを格納する記憶媒体
WO2018235224A1 (ja) * 2017-06-22 2018-12-27 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
JP2022169888A (ja) * 2021-04-28 2022-11-10 日本電気株式会社 管理装置、管理システム、管理方法、および管理プログラム
JP7753666B2 (ja) 2021-04-28 2025-10-15 日本電気株式会社 管理装置、管理システム、管理方法、および管理プログラム

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792134B1 (en) * 2012-12-21 2017-10-17 Open Invention Network, Llc Synchronizing settings associated with virtual computing environments
US11269926B1 (en) * 2013-10-22 2022-03-08 Amazon Technologies, Inc. Flexible storage volumes
JP2015195437A (ja) * 2014-03-31 2015-11-05 富士通株式会社 管理装置,情報処理システム及び管理プログラム
US11210120B2 (en) * 2014-06-30 2021-12-28 Vmware, Inc. Location management in a volume action service
US9760459B2 (en) * 2015-06-10 2017-09-12 International Business Machines Corporation Synchronization policies among nodes
US10846115B1 (en) * 2015-08-10 2020-11-24 Amazon Technologies, Inc. Techniques for managing virtual instance data in multitenant environments
USD848486S1 (en) * 2017-01-30 2019-05-14 Zama Japan Kabushiki Kaisha Needle valve for carburetors
US10942757B2 (en) * 2017-02-27 2021-03-09 Red Hat, Inc. Virtual machine security through guest-side emulation
CN110365768B (zh) 2019-07-15 2021-07-06 腾讯科技(深圳)有限公司 分布式系统的数据同步方法、装置、介质、电子设备
CN114785807B (zh) * 2022-03-16 2024-07-09 深信服科技股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129148A (ja) * 2007-11-22 2009-06-11 Hitachi Ltd サーバ切り替え方法、およびサーバシステム
JP2009217434A (ja) * 2008-03-10 2009-09-24 Fujitsu Ltd 資源割り当て方法及び装置並びにプログラム
JP2010231257A (ja) * 2009-03-25 2010-10-14 Nec Corp 高可用性システム、高可用性システムの対障害対策方法
WO2011099141A1 (ja) * 2010-02-12 2011-08-18 三菱電機株式会社 管理システム及びシステム管理方法及びプログラム
JP2012108816A (ja) * 2010-11-19 2012-06-07 Hitachi Ltd 仮想計算機システムおよび仮想計算機の移行方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006011581A (ja) * 2004-06-23 2006-01-12 Hitachi Ltd ストレージシステム及びストレージシステムの制御方法
JP2007094604A (ja) * 2005-09-28 2007-04-12 Fujitsu Ltd 災害対策用コンピュータバックアップ方式
JP2007249652A (ja) * 2006-03-16 2007-09-27 Nec Corp データミラー型クラスタシステム及びその運用方法
JP2008242711A (ja) * 2007-03-27 2008-10-09 Nomura Research Institute Ltd データ復旧方法、データ復旧システムおよびデータ復旧プログラム
JP4550869B2 (ja) * 2007-07-12 2010-09-22 株式会社東芝 データ同期システム及びデータ同期プログラム
JP5298763B2 (ja) * 2008-10-22 2013-09-25 富士通株式会社 仮想システム制御プログラム、方法及び装置
MX2011004940A (es) * 2008-11-24 2011-05-25 Ericsson Telefon Ab L M Segmentacion de enlace ascendente mejorado.
JP5218121B2 (ja) * 2009-02-06 2013-06-26 日本電気株式会社 情報システム及びディザスタリカバリ方法
US8234469B2 (en) * 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines
US8464257B2 (en) * 2010-12-22 2013-06-11 Lsi Corporation Method and system for reducing power loss to backup IO start time of a storage device in a storage virtualization environment
US9311328B2 (en) * 2011-04-22 2016-04-12 Veritas Us Ip Holdings Llc Reference volume for initial synchronization of a replicated volume group
US8756455B2 (en) * 2011-11-17 2014-06-17 Microsoft Corporation Synchronized failover for active-passive applications
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US9262212B2 (en) * 2012-11-02 2016-02-16 The Boeing Company Systems and methods for migrating virtual machines

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009129148A (ja) * 2007-11-22 2009-06-11 Hitachi Ltd サーバ切り替え方法、およびサーバシステム
JP2009217434A (ja) * 2008-03-10 2009-09-24 Fujitsu Ltd 資源割り当て方法及び装置並びにプログラム
JP2010231257A (ja) * 2009-03-25 2010-10-14 Nec Corp 高可用性システム、高可用性システムの対障害対策方法
WO2011099141A1 (ja) * 2010-02-12 2011-08-18 三菱電機株式会社 管理システム及びシステム管理方法及びプログラム
JP2012108816A (ja) * 2010-11-19 2012-06-07 Hitachi Ltd 仮想計算機システムおよび仮想計算機の移行方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016099946A (ja) * 2014-11-26 2016-05-30 日本電気株式会社 同期処理装置、同期処理システム、同期処理方法、および、同期処理プログラム
WO2017047065A1 (ja) * 2015-09-17 2017-03-23 日本電気株式会社 クラスタシステム、情報処理装置、クラスタシステムの同期方法、及びプログラムを格納する記憶媒体
JPWO2017047065A1 (ja) * 2015-09-17 2018-06-28 日本電気株式会社 クラスタシステム、情報処理装置、クラスタシステムの同期方法、及びプログラム
WO2018235224A1 (ja) * 2017-06-22 2018-12-27 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
JPWO2018235224A1 (ja) * 2017-06-22 2019-06-27 株式会社東芝 ウェブアプリケーションシステム、サーバ装置、端末装置、およびプログラム
JP2022169888A (ja) * 2021-04-28 2022-11-10 日本電気株式会社 管理装置、管理システム、管理方法、および管理プログラム
JP7753666B2 (ja) 2021-04-28 2025-10-15 日本電気株式会社 管理装置、管理システム、管理方法、および管理プログラム

Also Published As

Publication number Publication date
US20150317175A1 (en) 2015-11-05
JPWO2014076838A1 (ja) 2017-01-05

Similar Documents

Publication Publication Date Title
WO2014076838A1 (ja) 仮想マシン同期システム
US11449330B2 (en) System and method for supporting patching in a multitenant application server environment
US10853056B2 (en) System and method for supporting patching in a multitenant application server environment
US8984330B2 (en) Fault-tolerant replication architecture
US9311199B2 (en) Replaying jobs at a secondary location of a service
US8938638B2 (en) Recovery service location for a service
US11709743B2 (en) Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system
CN104487960B (zh) 自动灾难恢复和数据迁移
US8856592B2 (en) Mechanism to provide assured recovery for distributed application
US8990608B1 (en) Failover of applications between isolated user space instances on a single instance of an operating system
US11762741B2 (en) Storage system, storage node virtual machine restore method, and recording medium
JP6773345B1 (ja) フォールトトレラントシステム、サーバ、及びそれらの運用方法
CN120429066A (zh) 管理系统的部署方法、装置、计算设备及存储介质

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014546825

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12888377

Country of ref document: EP

Kind code of ref document: A1

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载