WO2018120491A1 - 虚拟机快速恢复方法、装置和系统 - Google Patents

虚拟机快速恢复方法、装置和系统 Download PDF

Info

Publication number
WO2018120491A1
WO2018120491A1 PCT/CN2017/079912 CN2017079912W WO2018120491A1 WO 2018120491 A1 WO2018120491 A1 WO 2018120491A1 CN 2017079912 W CN2017079912 W CN 2017079912W WO 2018120491 A1 WO2018120491 A1 WO 2018120491A1
Authority
WO
WIPO (PCT)
Prior art keywords
host
backup
read
write request
virtual machine
Prior art date
Application number
PCT/CN2017/079912
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 JP2018519449A priority Critical patent/JP6735820B2/ja
Priority to SG11201803894WA priority patent/SG11201803894WA/en
Priority to AU2017341159A priority patent/AU2017341159B2/en
Priority to EP17857672.4A priority patent/EP3564815A4/en
Priority to KR1020187015545A priority patent/KR102067918B1/ko
Priority to US15/772,798 priority patent/US10740197B2/en
Publication of WO2018120491A1 publication Critical patent/WO2018120491A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/2041Error 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 more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Definitions

  • the present invention relates to the field of computer virtualization technologies, and in particular, to a virtual machine fast recovery method, apparatus, and system.
  • Virtualization technology has become one of the important functions of the IaaS layer (Infrastructure as a Service).
  • the virtualization technology virtualizes the CPU, memory, I/O, and other devices of the physical machine through the virtual machine monitor VMM (Virtual Machine Monitor) software, and virtualizes multiple virtual machines VM (Virtual Machine) in one physical machine.
  • Each VM runs a guest operating system (Guest OS, client;).
  • the VMM coordinates with a host operating system (DomO or Host OS, host) to ensure that virtual machines on the same physical machine are isolated from each other, and that VMs can be migrated online from one physical machine to another without downtime.
  • Physical machines including online migration based on shared storage and online migration based on local storage).
  • Virtualization technology is widely used in various large data in terms of VM function and performance isolation, VM online migration based load balancing and system fault tolerance, application portability, improved resource utilization, reduced operation and maintenance difficulty and cost.
  • the present invention provides a method, an apparatus, and a system for quickly recovering a virtual machine, so as to solve the problem that the virtual machine cannot be quickly recovered when the host machine where the existing virtual machine is located is down.
  • the present invention provides a method for quickly recovering a virtual machine, including:
  • the backup host starts the virtual machine of the first host; [0009] the virtual machine started on the backup host receives the read and write request sent by the caller, And determining whether the full data synchronization of the second host to the backup host is completed; if the full data synchronization of the second host to the backup host is not completed, the read and write request is sent to the second host;
  • the second host receives the read/write request, and stores the data to be written on the second host based on the write request, or acquires the specified data based on the read request and sends the specified data to Back up the host machine;
  • the backup host sends the specified data to the caller.
  • the present invention further provides a virtual machine fast recovery device, including:
  • a data backup unit configured to form the first host machine and the second host into a storage peer pair, so that the read/write request on the virtual machine of the first host is backed up by the second host;
  • a backup machine startup unit configured to: when the first host is down or shut down, the backup host starts the virtual machine of the first host;
  • the request judging unit is configured to enable the virtual machine started on the backup host to receive the read/write request sent by the caller, and determine whether to complete the full data synchronization of the second host to the backup host; Sending the read/write request to the second host when the host synchronizes the full amount of data to the backup host
  • the first processing unit is configured to enable the second host to receive the read/write request, and store the data to be written on the second host based on the write request, or obtain the specified data based on the read request. And sending the specified data to the backup host;
  • a data sending unit configured to enable the backup host to send the specified data to the caller.
  • the present invention further provides a virtual machine fast recovery system, including a first host, a second host, and a backup host; the first host, the second host, and the third
  • a virtual machine fast recovery system including a first host, a second host, and a backup host; the first host, the second host, and the third
  • Each host computer is provided with a processor, and the processor performs the following steps:
  • the backup host starts the virtual machine of the first host; [0021] the virtual machine started on the backup host receives the read and write request sent by the caller, And determining whether the full data synchronization of the second host to the backup host is completed; if the full data synchronization of the second host to the backup host is not completed, the read and write request is sent to the second host;
  • the second host receives the read/write request, and stores the data to be written on the second host based on the write request, or acquires specified data based on the read request and sends the specified data to Back up the host machine;
  • the backup host sends the specified data to the caller.
  • the present invention has the following advantages: In the virtual machine fast recovery method, device and system provided by the present invention, when the first host is down or shut down, that is, the backup host is started. a host virtual machine; and after completing the full data synchronization of the second host to the backup host, forwarding the read and write request received by the backup host virtual machine to the second host having the virtual machine backup data Execution can realize fast migration and failure recovery of virtual machines without storage, without sharing storage, and improve the robustness of virtual machines, avoiding the business interruption of virtual machines due to no available storage for virtual machine access. .
  • FIG. 1 is a flow chart of a method for quickly recovering a virtual machine in a first embodiment of the present invention.
  • step S1 is a specific flowchart of step S1 in the virtual machine fast recovery method shown in FIG. 1.
  • step S3 is a specific flowchart of step S3 in the virtual machine fast recovery method shown in FIG. 1.
  • step S4 is a specific flowchart of step S4 in the virtual machine fast recovery method shown in FIG. 1.
  • FIG. 5 is a schematic block diagram of a virtual machine fast recovery device in a second embodiment of the present invention.
  • FIG. 6 is a schematic block diagram of a virtual machine fast recovery device in a third embodiment of the present invention.
  • FIG. 7 is a schematic block diagram of a tablet computer in a third embodiment of the present invention.
  • invention embodiment
  • FIG. 1 shows a virtual machine fast recovery method in this embodiment.
  • the virtual machine fast recovery method includes the following steps:
  • S1 The first host machine and the second host are formed into a storage peer pair, so that the read/write request on the virtual machine of the first host is backed up by the second host. Accordingly, the read and write requests on the second host are also backed up on the first host.
  • the virtual machine that forms the first host of the peer pair and the virtual machine of the second host are independent of each other, but the read and write requests executed on the virtual machine are backed up to each other.
  • S2 When the first host is down or shut down, the backup host starts the virtual machine of the first host.
  • the first host In the case where the first host is down or shut down, the first host cannot continue to provide services, and the virtual machine of the first host needs to be started on another running machine to ensure the virtuality of the first host. The services provided by the machine can be restored as soon as possible.
  • the shutdown is the case where the host computer cuts off the power and shuts down the computer completely. Downtime refers to the situation where the host cannot recover from a serious system error, or the system hardware level has a problem, so that the system does not respond for a long time.
  • the backup host is a normal standby machine in the cluster, and the hardware configuration of the backup host needs to be able to start all the virtual machines on the first host, thereby ensuring the virtual machine provided by the first host. The service can be restored as soon as possible.
  • the virtual machine of the first host that will be started on the backup host is called the virtual machine of the backup host.
  • S3 The virtual machine started on the backup host receives the read/write request sent by the caller, and determines whether to complete the full data synchronization of the second host to the backup host. If the full data synchronization of the second host to the backup host is not completed, the read and write request is sent to the second host. If the second host completes the full data backup to the backup host, the read/write request is executed on the backup host, and the read/write request is not sent to the second host, because the virtuality of the first host is The machine migration is complete and the virtual machine is stable.
  • the second host completes the full data backup to the backup host, the second host forms a new storage peer pair with the backup host, so that the virtual machine of the second host and the virtual machine of the backup host Data backup can be implemented to avoid the second host and backup host down or other When a failure fails to run, the virtual machine on it cannot access the data.
  • S4 if the full data synchronization of the second host to the backup host is not completed, the read/write request is sent to the second host; the second host stores the data to be written in the second sink based on the write request. On the host, or based on the read request to obtain the specified data and send the specified data to the backup host; the backup host sends the specified data to the caller. That is, if the second host does not complete the full data synchronization to the backup host, the virtual machine of the first host is not completely migrated to the backup host, and the backup host cannot read the virtual machine received on the backup host.
  • the write request is processed, and the read/write request is forwarded to the second host that backs up the virtual machine data for processing, thereby realizing quick recovery of the virtual machine and avoiding service interruption on the virtual machine.
  • S5 if the full data synchronization of the second host to the backup host is completed, the read/write request is performed on the backup host, and the read/write request on the virtual machine of the backup host is on the second host.
  • Backup Specifically, the process of executing the read and write request on the backup host is the same as the process of executing the read and write request on the second host, that is, the data to be written is stored on the backup host based on the write request, or is obtained based on the read request. Specify data.
  • the backup host starts the virtual machine and receives the read and write request, and the read and write requests are directly dropped into the local disk of the backup host, and the read and write requests are no longer read or written.
  • the request jumps to the second host to execute, but the read and write requests on the virtual machine on the backup host are backed up to the second host, and the backup process is the same as step S1.
  • S6 The backup host sends the specified data to the caller. It can be understood that if the full data synchronization of the second host to the backup host is completed, the read/write request is executed on the backup host, and the specified data corresponding to the read request is obtained and sent to the caller. Alternatively, if the full data synchronization of the second host to the backup host is not completed, the read/write request is sent to the second host, and the read/write request is performed on the second host, and the specified data corresponding to the read request is acquired and sent. To the caller.
  • the virtual machine fast recovery method when the first host is down, shut down, or other services cannot be continued, the virtual machine of the first host may be started on the backup host; After the full data synchronization of the second host to the backup host is not completed, the read and write requests received by the virtual machine of the backup host are forwarded to the second host having the virtual machine backup data, and the virtual machine can be implemented. Fast migration and failure recovery without storage, no need to share storage, and improve virtual machine robustness
  • the virtual machine fast recovery method includes the following steps:
  • step S1 The first host A and the second host B form a storage peer pair, and the read/write request on the virtual machine of the first host A is backed up on the second host B.
  • the read and write requests on the virtual machine of the second host B are also backed up on the first host A; and the virtual machines on the first host A and the virtual machines on the second host B are independent of each other, but The virtual machine data is backed up to each other to prevent the first host A and the second host B from being down due to other failures, and the virtual machine cannot be quickly recovered, resulting in service interruption.
  • step S1 specifically includes the following steps:
  • S11 The guest operating system (GuestOS) of the first host A receives the read and write request, and puts the read and write request into the ring buffer (ring).
  • the guest operating system (GuestOS) is the operating system running on the virtual machine of the first host A.
  • a ring buffer is a data structure used in a communication program to store data transmitted and received in a communication, and provides a mutually exclusive access to the buffer to the communication program.
  • S12 The Qemu module of the first host A acquires a read/write request from a ring buffer.
  • the Qemu module is set on the host operating system (Host OS) of the first host, and the read and write requests are unprocessed read and write requests.
  • Host OS host operating system
  • Qemu is a stand-alone software that simulates machines with high flexibility and portability.
  • Qemu converts specific processor-written binary code to another through a special "recompiler", such as running MIPS code on PPCmac or ARM code on an X86 PC.
  • the 10 paths in the Qemu module are roughly divided into three layers: the virtio backend), the general block device layer (b), and the driver layer (c), which are inserted through the interface part of the virtio backend (a) and the generic block device layer (b).
  • the code is implemented to pass the read and write request to the second host B landing backup.
  • S13 The Qemu module of the first host A acquires the specified data from the local disk of the first host A based on the read request; or the Qemu module of the first host A stores the data to be written based on the write request. On the local disk of the first host A.
  • S14 The Qemu module of the first host A sends a write request to the Sync Orig module of the host operating system.
  • the Sync Orig module is set on the host operating system (Host OS) of the first host A, and is the read/write request forwarding module of the first host A.
  • S15 The Sync Orig module of the host operating system sends a write request to the Sync Term of the second host B. Module.
  • the Sync Orig module of the first host A and the Sync Term module of the second host B are connected through a network.
  • S16 The Sync Term module of the second host receives the write request, and stores the data to be written corresponding to the write request on the local disk of the second host to implement writing on the virtual machine of the first host A.
  • the request is backed up on the second host B.
  • the Sync Term module is set on the host operating system (Host OS) of the second host B, and is the read/write request receiving module of the second host B.
  • first host A and the second host B form a pseudo code for storing the peer pair as follows:
  • Host B config file [0054]
  • the peer Peer1D is reported to the cloud to the server, and the server registers the two hosts with the same PeerlD as a storage peer pair.
  • Peer peer new Peer(hostA, hostB);
  • the pseudo code for backing up the read/write request on the virtual machine of the first host A on the second host B includes: after the Qemu module of the first host A receives the write request, The data to be written corresponding to the request is stored on the local disk of the first host A, and the data to be written corresponding to the write request is stored in the shared memory of the host operating system (HostOS) of the first host A. Then, a sequence number is generated for the write request, and the sector start number and the number of sectors that need to be modified by the write request are filled into the reque st and handed over to the Sync Orig module of the host operating system (Host OS) for processing.
  • Host operating system (Host OS) Host operating system
  • the OS receives the request, and forms the TCP data packet in the request and the shared memory to be sent to the host operating system (HostOS) of the second host B.
  • the host operating system (HostOS) of the second host B writes the data to be written in the data packet into the sector specified by the request, thereby implementing the write request of the virtual machine of the host operating system (Host OS) in the host operating system (Host OS_B
  • S2 When the first host A is down, the backup host C starts the virtual machine of the first host A.
  • the virtual machine of the first host A needs to be started on another running machine to ensure the virtual machine of the first host A.
  • the services provided can be restored as soon as possible. Since the second host B has already carried a certain number of virtual machines, if the virtual machine of the first host A is migrated to the second host B for recovery, it can be immediately acquired on the local disk of the second host B.
  • the virtual machine data of the first host A is backed up, but the virtual machine access load of the second host B is too high, which affects the ability of the second host B to provide external services.
  • the backup host C is a normal standby machine in the cluster, and the hardware configuration of the backup host C needs to meet the requirements of being able to start all the virtual machines on the first host A, thereby ensuring the first host A.
  • the services provided by the virtual machine can be restored as soon as possible.
  • the virtual machine of the first host A that is started on the backup host C is hereinafter referred to as the virtual machine of the backup host C.
  • step S3 The virtual machine started on the backup host C receives the read/write request sent by the caller, and determines whether to complete the full data synchronization of the second host B to the backup host C. Specifically, the backup host C determines whether the synchronization completion notification sent by the second host is provided, and if the synchronization completion notification is received, it is determined that the full data synchronization of the second host B to the backup host C is completed; , the full data synchronization of the second host B to the backup host C is not completed. As shown in FIG. 3, step S3 specifically includes:
  • S31 The second host B determines whether the current running indicator reaches a preset condition. That is, after the virtual machine of the first host A is started on the backup host C, the second host B will detect the current running indicators such as the current network throughput and disk access, and the current running indicators are up to the preset. After the condition, step S32 is performed.
  • S32 If yes, synchronize the read and write requests on the virtual machine of the first host A backed up on the second host B to the backup host C, that is, synchronize the virtual machine data of the second host B to Back up the host C.
  • S33 Determine whether there is unsynchronized data on the second host B.
  • the second host B also determines in real time whether there is unsynchronized data to determine whether to complete the full data synchronization of the second host B to the backup host C.
  • S35 If not, the full amount of data synchronization of the second host B to the backup host C has been completed. The host c sends a synchronization completed notification.
  • step S3 the guest operating system (GuestOS) of the backup host C receives the read/write request, and puts the read/write request into a ring buffer.
  • the guest operating system (GuestOS) of the backup host C receives the read/write request, and puts the read/write request into a ring buffer.
  • step S4 if the full data synchronization of the second host B to the backup host C is not completed, the read/write request is sent to the second host B; the second host B stores the data to be written based on the write request. On the second host B, or obtain the specified data based on the read request and send the specified data to the backup host C; the backup host C sends the specified data to the caller.
  • step S4 specifically includes:
  • S41 The Qemu module of the backup host C acquires a read/write request from a ring buffer.
  • S42 The backup host C's Qemu module sends a read/write request to the Sync Orig module on the host operating system.
  • S43 The Sync Orig module sends the read/write request to the Sync Term module of the second host B.
  • S44 The Sync Term module of the second host B receives the read/write request, and stores the data to be written on the local disk of the second host B based on the write request.
  • S45 The Sync Term module of the second host B obtains the specified data from the local disk of the second host B based on the read request, and sends the specified data to the Sync Orig module of the backup host C.
  • S46 The Sync Orig module of the backup host receives the specified data, and sends the specified data to the Qemu module of the backup sink host C.
  • S47 The Qemu module of the backup host C sends the designated data to the client operating system (GuestOS) of the backup host C, and then sends the data to the caller.
  • GuestOS client operating system
  • the remotelO flag is set to Tr us in its configuration file.
  • the Sync Term module of the second host B After receiving the write request of the Sync Orig module of the backup host C, the Sync Term module of the second host B places the write data on the local disk of the backup host C. [0081] After receiving the read request of the Sync Orig module of the backup host C, the Sync Term module of the second host B sends the designated data to the designated sector, and then sends back the Sync Orig module of the backup host C through the TCP.
  • the Sync Orig module of the backup host C After receiving the specified data fed back by the B machine, the Sync Orig module of the backup host C writes the feedback designated data into the shared memory, and notifies the Qemu module of the backup host C through the TCP message.
  • the Qemu module of the backup host C receives the TCP message notification of the Sync Orig module of the backup host C.
  • the data synchronization of the second host B to the backup host C is started.
  • the pseudo code of the full data synchronization process of starting the second host B to the backup host C is as follows:
  • the Sync Term module of the second host B sends the written sector to the Sync of the backup host C one by one by analyzing the sector write of the qcow2 file of the local disk.
  • the backup Sync Orig module of the backup host C After the backup Sync Orig module of the backup host C receives the synchronous sector data from the second host B's Sync Term module, it writes the data content to the qcow2 file of the local disk.
  • the backup host C resumes the read and write requests of the virtual machine on the local disk of the backup host C, and is no longer forwarded to the second host.
  • the pseudo code executed on B is as follows:
  • FIG. 5 shows a virtual machine quick recovery device in this embodiment.
  • the virtual machine fast recovery device includes a data backup unit 10, a backup machine startup unit 20, a request determination unit 30, a first processing unit 40, and a second processing unit 50.
  • the data backup unit 10 is configured to form the first host machine and the second host into a storage peer pair, so that the read/write request on the virtual machine of the first sink host is backed up by the second host. Accordingly, the read and write requests on the second host are also backed up on the first host.
  • the virtual machine of the first host that stores the peer pair and the virtual machine of the second host are independent of each other, but the read and write requests executed on the virtual machine are backed up to each other.
  • the backup machine startup unit 20 is configured to: after the first host is down or down, the backup host starts the virtual machine of the first host.
  • the first host cannot continue to provide services, and the virtual machine of the first host needs to be started on another running machine to ensure the virtuality of the first host.
  • the services provided by the machine can be restored as soon as possible.
  • the shutdown is the case where the host computer is powered off and the computer is completely shut down. Downtime refers to a situation where the host cannot recover from a serious system error, or a problem occurs at the hardware level of the system, so that the system does not respond for a long time.
  • the backup host is a normal standby machine in the cluster, and the hardware configuration of the backup host needs to be able to start all the virtual machines on the first host, thereby ensuring the virtual machine provided by the first host. The service can be restored as soon as possible.
  • the virtual machine of the first host that will be started on the backup host is called the virtual machine of the backup host.
  • the request judging unit 30 is configured to enable the virtual machine started on the backup host to receive the read/write request sent by the caller, and determine whether to complete the full data synchronization of the second host to the backup host. If the full data synchronization of the second host to the backup host is not completed, the read and write request is sent to the second host. If the second host completes the full data backup to the backup host, the read and write request is executed on the backup host, and the read/write request is not sent to the second host, because the virtual operation of the first host is The machine migration is complete and the virtual machine is stable.
  • the second host completes the full data backup to the backup host, the second host forms a new storage peer pair with the backup host, so that the virtual machine of the second host and the virtual machine of the backup host Data backup can be implemented to prevent the second host and backup host from being down or other failures to run, and the virtual machines on it cannot access the data.
  • the first processing unit 40 is configured to send a read/write request to the second host after completing the full data synchronization of the second host to the backup host; the second host will be to be written based on the write request.
  • Data is stored in the first On the second host, or obtain the specified data based on the read request and send the specified data to the backup host; the backup host sends the specified data to the caller. That is, if the second host does not complete the full data synchronization to the backup host, the virtual machine of the first host is not completely migrated to the backup host, and the backup host cannot read the virtual machine received on the backup host.
  • the write request is processed, and the read/write request is forwarded to the second host that backs up the virtual machine data for processing, thereby realizing quick recovery of the virtual machine and avoiding service interruption on the virtual machine.
  • the second processing unit 50 is configured to perform a read/write request on the backup host and complete read and write on the backup host virtual machine when the full data synchronization of the second host to the backup host has been completed.
  • Request a backup on the second host.
  • the process of executing the read and write request on the backup host is the same as the process of executing the read and write request on the second host, that is, the data to be written is stored on the backup host based on the write request, or is obtained based on the read request. Specify data.
  • the backup host starts the virtual machine and receives the read/write request
  • the read and write requests are directly dropped into the local disk of the backup host, and the read and write requests are no longer read or written.
  • the request jumps to the second host to execute, but the read and write requests on the virtual machine on the backup host are backed up to the second host, and the backup process is the same as the data backup process of the data backup unit 10.
  • the data sending unit 60 is configured to enable the backup host to send the designated data to the caller. It can be understood that if the full data synchronization of the second host to the backup host has been completed, a read and write request is executed on the backup host, and the specified data corresponding to the read request is obtained and sent to the caller. Alternatively, if the full data synchronization of the second host to the backup host is not completed, the read/write request is sent to the second host, and the read/write request is performed on the second host, and the specified data corresponding to the read request is acquired and sent. To the caller.
  • the virtual machine fast recovery device when the first host is down, shut down, or other services that cannot continue to provide services, the virtual machine of the first host may be started on the backup host; After the full data synchronization of the second host to the backup host is not completed, the read and write requests received by the virtual machine of the backup host are forwarded to the second host having the virtual machine backup data, and the virtual machine can be implemented. Fast migration and failure recovery without storage, no need to share storage, and improve virtual machine robustness
  • the virtual machine fast recovery device includes:
  • the data backup unit 10 is configured to form the first host A and the second host B into a storage pair, and back up the read and write requests on the virtual machine of the first host A on the second host B. .
  • the read and write requests on the virtual machine of the second host B are also backed up on the first host A; and the virtual machines on the first host A and the virtual machines on the second host B are independent of each other, but The virtual machine data is backed up to each other to prevent the first host A and the second host B from being down due to other failures, and the virtual machine cannot be quickly recovered, resulting in service interruption.
  • the data backup unit 10 includes:
  • the guest operating system (GuestOS) of the first host A is configured to receive read and write requests, and put the read and write requests into a ring buffer.
  • the guest operating system (GuestOS) is the operating system running on the virtual machine of the first host A.
  • a ring buffer is a data structure used in a communication program to store data sent and received during communication. It provides a mutually exclusive access to the buffer to the communication program.
  • the Qemu module of the first host A is used to acquire a read and write request from a ring buffer.
  • the Qemu module is set on the host operating system (Host OS) of the first host, and the read and write requests are unprocessed read and write requests.
  • Het OS host operating system
  • Qemu is a stand-alone software that simulates machines with high flexibility and portability.
  • Qemu converts binary code for a particular processor to another through a special "recompiler", such as running MIPS code on PPCmac or ARM code on an X86 PC.
  • the 10 paths in the Qemu module are roughly divided into three layers: the virtio backend (a), the generic block device layer (b), and the driver layer (c), through the interface portion of the wrtio backend (a) and the generic block device layer (b). Insert part of the code to pass the read and write request to the second host B landing backup.
  • the Qemu module of the first host A is configured to acquire the specified data from the local disk of the first host A based on the read request; or the Qemu module of the first host A is to write the data based on the write request. Stored on the local disk of the first host A.
  • the Qemu module of the first host A is used to send a write request to the Sync Orig module of the host operating system.
  • the Sync Orig module is set on the host operating system (Host OS) of the first host A, and is the read/write request forwarding module of the first host A.
  • a Sync Orig module of the host operating system configured to send a write request to the Sync Term module of the second host B.
  • the first host A's Sync Orig module and the second host B's Sync Term module pass through the network. Connected to each other.
  • the Sync Term module of the second host is configured to receive a write request, and store the data to be written corresponding to the write request on a local disk of the second host to implement the virtual machine on the first host A.
  • the write request is backed up on the second host B.
  • the Sync Term module is set on the host operating system (Host OS) of the second host B, and is the read/write request receiving module of the second host B.
  • first host A and the second host B form a pseudo code for storing the peer pair as follows:
  • Host B config file [0118]
  • the Peer1D is reported to the cloud to the server, and the server registers the two hosts with the same PeerlD as a storage Peer pair.
  • Peer peer new Peer(hostA, hostB);
  • the pseudo code for backing up the read/write request on the virtual machine of the first host A on the second host B includes: After the Qemu module of the first host A receives the write request, The data to be written corresponding to the request is stored on the local disk of the first host A, and the data to be written corresponding to the write request is stored in the shared memory of the host operating system (HostOS) of the first host A. Then, a sequence number is generated for the write request, and the sector start number and the number of sectors to be modified by the write request are filled into the reque st, and the Sync is given to the host operating system (Host OS).
  • HostOS host operating system
  • the Orig module processes it.
  • the host operating system (Host OS) receives the request, and forms a TCP packet into the request and the data to be written in the shared memory, and sends it to the host operating system (HostOS) of the second host B.
  • the host operating system (HostOS) of the second host B writes the data to be written in the data packet into the sector specified by the request, thereby implementing the write request of the virtual machine of the host operating system (Host OS) in the host operating system ( Host OS_B) Backup.
  • the backup machine starting unit 20 is configured to: when the first host A is down, the backup host C starts the virtual machine of the first host A.
  • the virtual machine of the first host A is started on another normal running machine to ensure that the service provided by the virtual machine of the first host A can be restored as soon as possible. Since the second host B has already carried a certain number of virtual machines, if the virtual machine of the first host A is migrated to the second host B for recovery, it can be immediately acquired on the local disk of the second host B.
  • the virtual machine data of the first host A is backed up, but the virtual machine access load of the second host B is too high, which affects the ability of the second host B to provide external services.
  • the backup host C is a normal standby machine in the cluster, and the hardware configuration of the backup host C needs to meet the requirements of being able to start all the virtual machines on the first host A, thereby ensuring the first host A.
  • the services provided by the virtual machine can be restored as soon as possible.
  • the virtual machine of the first host A that is started on the backup host C is hereinafter referred to as the virtual machine of the backup host C.
  • the request judging unit 30 is configured to enable the virtual machine started on the backup host C to receive the read/write request sent by the caller, and determine whether to complete the full data synchronization of the second host B to the backup host C. Specifically, the backup host C determines whether the synchronization completion notification sent by the second host is provided, and if the synchronization completion notification is received, it is determined that the full data synchronization of the second host B to the backup host C is completed; , the full data synchronization of the second host B to the backup host C is not completed. As shown in FIG. 5, the request judging unit 30 includes a first judging subunit 31, a first synchronizing subunit 32, a second judging subunit 33, a first determining subunit 34, and a second determining subunit 35.
  • the first determining sub-unit 31 is configured to enable the second host B to determine whether the current running indicator reaches a preset condition. That is, after the virtual machine of the first host A is started on the backup host C, the second host B will detect the current running indicators such as the current network throughput and disk access, and the current running indicators are up to the preset. After the condition, step S32 is performed.
  • the first synchronization sub-unit 32 is configured to synchronize the read/write request on the virtual machine of the first host A backed up on the second host B to the backup host C after the preset condition is reached, that is, The virtual machine data of the second host B is synchronized to the backup host C.
  • the second determining subunit 33 is configured to determine whether there is unsynchronized data on the second host B.
  • the second host B also determines in real time whether there is unsynchronized data to determine whether to complete the full amount of data synchronization on the second host B to the backup host C.
  • the first determining sub-unit 34 is configured to: when there is unsynchronized data, determine that the full amount of data synchronization of the second host B to the backup host C is not completed, and send the unsynchronized data to the backup host C for backup.
  • the second determining sub-unit 35 is configured to determine that the full amount of data synchronization of the second host B to the backup host C has been completed in the absence of the unsynchronized data, and send a synchronization completed notification to the backup host C.
  • the guest operating system (GuestOS) of the backup host C receives the read/write request, and puts the read/write request into a ring buffer.
  • the first processing unit 40 is configured to send a read/write request to the second host B after completing the full data synchronization of the second host B to the backup host C; the second host B is based on the write request.
  • the data to be written is stored on the second host B, or the specified data is acquired based on the read request and the designated data is sent to the backup host C; the backup host C sends the specified data to the caller.
  • the first processing unit 40 specifically includes:
  • backup host C's Qemu module used to obtain read and write requests from the ring buffer
  • the Qemu module is used to send read and write requests to the Sync Orig module on the host operating system.
  • a Sync Orig module on the host operating system configured to send a read/write request to the Sync Term module of the second host B.
  • the Sync Term module of the second host B is configured to receive a read/write request, and store the data to be written on the local disk of the second host B based on the write request.
  • the Sync Term module of the second host B is configured to acquire the specified data from the local disk of the second host B based on the read request, and send the specified data to the Sync Ong module of the backup host C.
  • the backup host's Sync Orig module is configured to receive the specified data and send the specified data to the Qemu module of the backup sink host C.
  • the Qemu module of the backup host C is used to send the specified data to the guest operating system (GuestOS) of the backup host C, and then sent to the caller.
  • GuestOS guest operating system
  • the remotelO flag is set to Tr in its configuration file.
  • the Sync Term module of the second host B drops the write data on the local disk of the backup host C.
  • the Sync Orig module of the backup host C After receiving the specified data fed back by the B machine, the Sync Orig module of the backup host C writes the feedback designated data into the shared memory, and notifies the Qemu module of the backup host C through the TCP message.
  • the Qemu module of the backup host C receives the TCP message notification of the Sync Orig module of the backup host C.
  • the data synchronization of the second host B to the backup host C is started.
  • the pseudo code of the full data synchronization process of starting the second host B to the backup host C is as follows:
  • the Sync Term module of the second host B sends the written sectors to the Sync Orig module of the backup host C one by one by analyzing the sector write of the qcow2 file of the local disk.
  • the backup Sync Orig module of the backup host C receives the synchronous sector data from the second host B's Sync Term module, it writes the data content to the qcow2 file of the local disk.
  • the backup host C resumes the read and write requests of the virtual machine on the local disk of the backup host C, and is no longer forwarded to the second host.
  • the pseudo code executed on the second host B is as follows:
  • the virtual machine rapid recovery system includes a server 4, a first host 1, a second host 2, and a backup host 3 communicatively connected to the server 4.
  • the first host 1, the second host 2, and the backup host 3 may each be a mobile phone, a tablet, a personal digital assistant (PDA), a desktop computer, a server, and the like.
  • PDA personal digital assistant
  • each tablet computer 700 includes a radio frequency (RF) circuit 701, a memory 702, an input module 703, a display module 704, a processor 70 5, an audio circuit 706, and a WiFi. (WirelessFidelity) module 707 and power supply 708.
  • RF radio frequency
  • the input module 703 connected to the processor 705 serves as a user interaction device for the tablet 700 for implementing interaction between the user and the tablet 700.
  • the input module 703 of the first host machine 1 receives the first backup storage instruction input by the user, and sends the first backup storage instruction to the corresponding processor 705.
  • the first backup storage instruction includes a peer pair ID.
  • the input module of the second host 2 receives the second backup storage instruction input by the user, and sends the second backup storage instruction to the corresponding processor 705, where the second backup storage instruction includes the peer pair ID.
  • the first backup storage instruction and the second backup storage instruction include the same peer pair ID, so that the first host 1 and the second host 2 are formed into a storage peer pair based on the first backup storage instruction and the second backup storage instruction.
  • the input module 703 of the backup host machine 3 receives the virtual machine startup instruction input by the user, and sends the virtual machine startup instruction to the processor 705, where the virtual machine startup instruction includes the same peer pair ID as the second backup storage instruction.
  • the virtual machine of the first host machine 1 is started on the backup host machine 3.
  • the input module 703 can be configured to receive numeric or character information input by a user, and to generate signal inputs related to user settings and function control of the tablet 700.
  • the input module 703 can include a touch panel 7031.
  • the touch panel 7031 also referred to as a touch screen, can collect touch operations on or near the user (such as the operation of the user using a finger, a stylus, or the like on any suitable object or accessory on the touch panel 7031), and according to the preset The programmed program drives the corresponding connection device.
  • the touch panel 7031 may include two parts: a touch detection device and a touch controller.
  • the touch detection device detects the touch orientation of the user, and detects a signal brought by the touch operation, and transmits the signal to the touch controller; the touch controller receives the touch information from the touch detection device, converts the touch information into contact coordinates, and sends the touch information
  • the processor 705 is provided and can receive commands from the processor 705 and execute them.
  • resistive, capacitive, infrared, and surface can be used.
  • the touch panel 7031 is implemented in various types such as sound waves.
  • the input module 703 may further include other input devices 7032.
  • the other input devices 7032 may include, but are not limited to, a physical keyboard, function keys (such as a volume control button, a switch button, etc.), a trackball, a mouse, a joystick, and the like. One or more of them.
  • the display module 704 can be used to display information entered by the user or information provided to the user and various menu interfaces of the tablet 700.
  • the display module 704 can include a display panel 7041.
  • the display panel 7041 can be configured in the form of an LCD or an Organic Light-Emitting Diode OLED.
  • the touch panel 7031 can cover the display panel 7041 to form a touch display screen.
  • the touch display screen detects a touch operation on or near it, it is transmitted to the processor 705 to determine the type of the touch event.
  • the processor 705 then provides a corresponding visual output on the touch display based on the type of touch event.
  • the touch display screen includes an application interface display area and a common control display area.
  • the arrangement manner of the application interface display area and the display area of the common control is not limited, and the arrangement of the two display areas can be distinguished by being arranged up and down, left and right, and the like.
  • the application interface display area can be used to display the interface of the application.
  • Each interface can contain interface elements such as at least one application's icon and/or widget desktop control.
  • the application interface display area can also be an empty interface that does not contain any content.
  • This common control display area is used to display controls with high usage, such as setting buttons, interface numbers, scroll bars, phone book icons, and other application icons.
  • the WiFi module 707 serves as a network interface of the tablet 700, and can implement data interaction between the tablet 700 and other devices.
  • the network interface is connected to the remote storage device (ie, the caller) through network communication.
  • the WiFi module 707 in the backup host 3 can receive a read/write request from the remote storage device (ie, the caller), and after processing by the processor 705, obtain the specified data corresponding to the write request, and specify The data is sent to the caller via the WiFi module 707.
  • the network interface with the WiFi network can be a cloud server or other database.
  • the memory 702 includes a first memory 7021 and a second memory 7022.
  • first memory 7021 can be a non-transitory computer readable storage medium having stored thereon an operating system, a database, and computer executable instructions.
  • the computer executable instructions are executable by the processor 705 for implementing the virtual machine fast recovery method of the first embodiment as shown in FIG.
  • the database stored on the memory 702 is used to store various types of data, for example, various data involved in the above-described virtual machine fast recovery method, such as specified data corresponding to a read request, data to be written corresponding to a write request, and the like. Wait.
  • the second memory 7021 can be an internal memory of the tablet 700 that provides a cached operating environment for operating systems, databases, and computer executable instructions in a non-transitory computer readable storage medium.
  • the processor 705 is a control center of the tablet computer 700, and connects various parts of the entire mobile phone by using various interfaces and lines, and can execute and collect by executing or executing a computer stored in the first memory 7021. / or data in the database, perform various functions and processing data of the tablet 700, thereby performing overall monitoring of the tablet 700.
  • processor 705 can include one or more processing modules
  • the processor 705 by executing the storage of the computer executable instructions and/or the data in the database in the first memory 7021, the processor 705 is configured to perform the following steps: the first host and the second host Forming a storage peer pair, causing the read/write request on the virtual machine of the first host to be backed up on the second host; when the first host is down or down, the backup host starts the first a host virtual machine; the virtual machine started on the backup host receives the read and write request sent by the caller, and determines whether to complete the full data synchronization of the second host to the backup host; if the second host to backup is not completed The full amount of data synchronization of the host sends the read and write request to the second host; the second host receives the read and write request, and stores the data to be written based on the write request. On the second host, or acquiring the specified data based on the read request and transmitting the specified data to the backup host; the backup host sends the specified data to the caller.
  • the processor 705 further performs the following steps: if the full data synchronization of the second host to the backup host has been completed, the read and write request is executed on the backup host, and the backup host is The read and write requests on the virtual machine are backed up at the second host.
  • the processor 705 further performs the following steps: the backup operating system of the backup host machine Describe the read and write request, and put the read and write request into the ring buffer;
  • the Qemu module of the backup host obtains the read/write request from the ring buffer, and sends the read/write request to a Sync Orig module on the host operating system; the Sync Orig module The read and write request is sent to the second host;
  • the Sync Term module of the second host receives the read/write request; stores the data to be written on the local disk of the second host based on the write request; or from the second based on the read request Obtaining the specified data on the local disk of the host, and sending the specified data to the Sync of the backup host
  • the Sync Orig module of the backup host receives the specified data and sends the specified data to the Qemu module of the backup host;
  • the Qemu module of the backup host sends the specified data to the client operating system of the backup host.
  • the data of the virtual machine of the first host is backed up on the second host, and includes:
  • the guest operating system of the first host receives a read/write request, and places the read/write request into a ring buffer;
  • the Qemu module of the first host acquires the read/write request from the link buffer; the Qemu module acquires specified data from a local disk of the first host based on a read request; The Qem u module stores the data to be written on the local disk of the first host based on the write request; and sends the write request to the Sync Orig module of the host operating system;
  • the Sync Orig module of the host operating system sends the write request to the Sync Term module of the second host;
  • the Sync Term module of the second host receives the write request, and stores the to-be-written data corresponding to the write request on a local disk of the second host.
  • the processor 705 further performs the following steps: the second host determines whether the current running indicator reaches a preset condition;
  • the virtual machine fast recovery system when the first host is down or shut down, the virtual machine of the first host is started on the backup host; and the second host is not completed.
  • the full amount of data is synchronized to the backup host, the read and write requests received by the virtual machine of the backup host are forwarded to the second host having the virtual machine backup data, which enables rapid migration and failure of the virtual machine without storage.
  • Recovery does not require shared storage, and improves the robustness of the virtual machine, avoiding the interruption of business on the virtual machine due to the lack of available storage for virtual machine access.
  • modules and algorithm steps of the various examples described in connection with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the solution. A person skilled in the art can use different methods for implementing the described functions for each particular application, but such implementation should not be considered to be beyond the scope of the present invention.
  • the disclosed apparatus and method may be implemented in other manners.
  • the device embodiments described above are merely illustrative.
  • the division of the modules is only a logical function division, and the actual implementation may have another division manner, for example, multiple modules or components may be combined or Can be integrated into another system, or some features can be ignored, or not executed.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or module, and may be electrical, mechanical or otherwise.
  • the modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, may be located in one place, or may be distributed to multiple networks. On the module. Some or all of the modules can be selected according to actual needs. The purpose of the solution of the embodiment is achieved.
  • each functional module in each embodiment of the present invention may be integrated into one processing module, or each module may exist physically separately, or two or more modules may be integrated into one module.
  • the functions, if implemented in the form of software functional modules and sold or used as separate products, may be stored in a computer readable storage medium.
  • the technical solution of the present invention which is essential or contributes to the prior art, or a part of the technical solution, may be embodied in the form of a software product, which is stored in a storage medium, including
  • the instructions are used to cause a computer device (which may be a personal computer, server, or network device, etc.) to perform all or part of the steps of the methods described in various embodiments of the present invention.
  • the foregoing storage medium includes: a medium that can store program codes, such as a USB flash drive, a removable hard disk, a ROM, a RAM, a magnetic disk, or an optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种虚拟机快速恢复方法、装置和系统。该虚拟机快速恢复方法包括:将第一宿主机和第二宿主机结成存储peer对,使第一宿主机的虚拟机上的读写请求在第二宿主机备份(S1);当第一宿主机宕机或关机时,备份宿主机启动第一宿主机的虚拟机(S2);备份宿主机上启动的虚拟机接收调用方发送的读写请求,并判断是否完成第二宿主机到备份宿主机的全量数据同步(S3);若否,则将读写请求发送给第二宿主机;第二宿主机接收读写请求,基于写请求将待写入数据存储在第二宿主机上,或者基于读请求获取指定数据并将指定数据发送给备份宿主机(S4);备份宿主机将指定数据发送给调用方(S6)。

Description

发明名称:虚拟机快速恢复方法、 装置和系统
技术领域
[0001] 本发明涉及计算机虚拟化技术领域, 尤其涉及一种虚拟机快速恢复方法、 装置 和系统。
背景技术
[0002] 虚拟化技术已经成为 IaaS层 (Infrastructure as a Service , 即基础设施即服务) 的 重要职能之一。 虚拟化技术通过虚拟机监控器 VMM(Virtual Machine Monitor)软 件对物理机的 CPU、 内存、 I/O等设备进行虚拟化, 在一台物理机中虚拟出多个 虚拟机 VM(Virtual Machine;), 每个 VM都运行一个客户操作系统 (Guest OS, 客户 机;)。 VMM与一个主机操作系统 (DomO或者 Host OS, 宿主机)协调, 保证位于同 一物理机上的虚拟机之间相互隔离, 支持无需宕机的前提下将 VM从一台物理机 在线迁移到另一台物理机 (包括基于共享存储的在线迁移和基于本地存储的在 线迁移) 。 虚拟化技术在 VM功能和性能隔离、 基于 VM在线迁移的负载均衡和 系统容错、 应用移植性、 提高资源利用率、 降低运维难度和成本等方面的优势 使其被广泛应用于各种大型数据中心和云计算环境的 IaaS平台中。 其典型应用涵 盖高性能计算、 大数据处理、 Web事务处理等。
[0003] 当前基于 KVM (Kernel-based Virtual Machine , 系统虚拟化模块) 的云存储方 案中, 虚拟机的读写请求直接落入宿主机的本地存储中。 当虚拟机所在的宿主 机宕机或由于其他故障无法继续提供服务后, 由于无可用存储供虚拟机访问, 导致虚拟机无法快速恢复, 从而导致虚拟机上的业务中断。
技术问题
[0004] 本发明提供一种虚拟机快速恢复方法、 装置和系统, 以解决现有虚拟机所在的 宿主机宕机时, 虚拟机无法快速恢复所存在的问题。
问题的解决方案
技术解决方案
[0005] 本发明解决其技术问题所采用的技术方案是: [0006] 第一方面, 本发明提供一种虚拟机快速恢复方法, 包括:
[0007] 将第一宿主机和第二宿主机结成存储 peer对, 使所述第一宿主机的虚拟机上的 读写请求在所述第二宿主机备份;
[0008] 当所述第一宿主机宕机或关机时, 备份宿主机启动所述第一宿主机的虚拟机; [0009] 备份宿主机上启动的虚拟机接收调用方发送的读写请求, 并判断是否完成第二 宿主机到备份宿主机的全量数据同步; 若未完成第二宿主机到备份宿主机的全 量数据同步, 则将所述读写请求发送给所述第二宿主机;
[0010] 所述第二宿主机接收所述读写请求, 并基于写请求将待写入数据存储在所述第 二宿主机上, 或者基于读请求获取指定数据并将所述指定数据发送给备份宿主 机;
[0011] 所述备份宿主机将所述指定数据发送给所述调用方。
[0012] 第二方向, 本发明还提供一种虚拟机快速恢复装置, 包括:
[0013] 数据备份单元, 用于将第一宿主机和第二宿主机结成存储 peer对, 使所述第一 宿主机的虚拟机上的读写请求在所述第二宿主机备份;
[0014] 备份机启动单元, 用于在所述第一宿主机宕机或关机时, 备份宿主机启动所述 第一宿主机的虚拟机;
[0015] 请求判断单元, 用于使备份宿主机上启动的虚拟机接收调用方发送的读写请求 , 并判断是否完成第二宿主机到备份宿主机的全量数据同步; 在未完成第二宿 主机到备份宿主机的全量数据同步时, 将所述读写请求发送给所述第二宿主机
[0016] 第一处理单元, 用于使所述第二宿主机接收所述读写请求, 并基于写请求将待 写入数据存储在所述第二宿主机上, 或者基于读请求获取指定数据并将所述指 定数据发送给备份宿主机;
[0017] 数据发送单元, 用于使所述备份宿主机将所述指定数据发送给所述调用方。
[0018] 第三方向, 本发明还提供一种虚拟机快速恢复系统, 包括第一宿主机、 第二宿 主机和备份宿主机; 所述第一宿主机、 第二宿主机和所述第三宿主机各设有一 处理器, 所述处理器执行如下步骤:
[0019] 将第一宿主机和第二宿主机结成存储 peer对, 使所述第一宿主机的虚拟机上的 读写请求在所述第二宿主机备份;
[0020] 当所述第一宿主机宕机或关机时, 备份宿主机启动所述第一宿主机的虚拟机; [0021] 备份宿主机上启动的虚拟机接收调用方发送的读写请求, 并判断是否完成第二 宿主机到备份宿主机的全量数据同步; 若未完成第二宿主机到备份宿主机的全 量数据同步, 则将所述读写请求发送给所述第二宿主机;
[0022] 所述第二宿主机接收所述读写请求, 并基于写请求将待写入数据存储在所述第 二宿主机上, 或者基于读请求获取指定数据并将所述指定数据发送给备份宿主 机;
[0023] 所述备份宿主机将所述指定数据发送给所述调用方。
发明的有益效果
有益效果
[0024] 本发明与现有技术相比具有如下优点: 本发明所提供的虚拟机快速恢复方法、 装置和系统中, 当第一宿主机宕机或关机时, 即在备份宿主机上启动第一宿主 机的虚拟机; 并在未完成第二宿主机到备份宿主机的全量数据同步吋, 将备份 宿主机的虚拟机接收到的读写请求转发到具有虚拟机备份数据的第二宿主机上 执行, 可实现虚拟机不带存储的快速迁移及故障恢复, 不需要共享存储, 并提 高虚拟机的鲁棒性, 避免因无可用存储供虚拟机访问导致虚拟机上的业务中断 的现象发生。
对附图的简要说明
附图说明
[0025] 下面将结合附图及实施例对本发明作进一步说明, 附图中:
[0026] 图 1是本发明第一实施例中虚拟机快速恢复方法的一流程图。
[0027] 图 2是图 1所示虚拟机快速恢复方法中步骤 S1的一具体流程图。
[0028] 图 3是图 1所示虚拟机快速恢复方法中步骤 S3的一具体流程图。
[0029] 图 4是图 1所示虚拟机快速恢复方法中步骤 S4的一具体流程图。
[0030] 图 5是本发明第二实施例中虚拟机快速恢复装置的一原理框图。
[0031] 图 6是本发明第三实施例中虚拟机快速恢复装置的一原理框图。
[0032] 图 7是本发明第三实施例中平板电脑的一原理框图。 发明实施例
本发明的实施方式
[0033] 为了对本发明的技术特征、 目的和效果有更加淸楚的理解, 现对照附图详细说 明本发明的具体实施方式。
[0034] 第一实施例
[0035] 图 1示出本实施例中的虚拟机快速恢复方法。 如图 1所示, 该虚拟机快速恢复方 法包括如下步骤:
[0036] S1 : 将第一宿主机和第二宿主机结成存储 peer对, 使第一宿主机的虚拟机上的 读写请求在第二宿主机备份。 相应地, 第二宿主机上的读写请求也在第一宿主 机上备份。 结成存储 peer对的第一宿主机的虚拟机和第二宿主机的虚拟机相互独 立, 但在虚拟机上执行的读写请求相互备份。
[0037] S2: 当第一宿主机宕机或关机时, 备份宿主机启动第一宿主机的虚拟机。 在第 一宿主机宕机或关机是第一宿主机无法继续提供服务的两种情况, 需在另外一 台运行正常的机器上启动第一宿主机的虚拟机, 以保证第一宿主机的虚拟机所 提供的服务能够尽快恢复。 其中, 关机是宿主机关断电源, 使计算机彻底关闭 的情况。 宕机是指宿主机无法从严重系统错误中恢复过来, 或者系统硬件层面 出问题, 以使系统长时间无响应的情况。 因此, 备份宿主机是集群中一台运行 正常的备用机器, 备份宿主机的硬件配置需满足能够启动第一宿主机上所有的 虚拟机的需求, 从而保证第一宿主机的虚拟机所提供的服务能够尽快恢复。 以 下将在备份宿主机上启动的第一宿主机的虚拟机称为备份宿主机的虚拟机。
[0038] S3: 备份宿主机上启动的虚拟机接收调用方发送的读写请求, 并判断是否完成 第二宿主机到备份宿主机的全量数据同步。 若未完成第二宿主机到备份宿主机 的全量数据同步, 则将读写请求发送给第二宿主机。 若第二宿主机完成到备份 宿主机的全量数据备份, 则在备份宿主机上执行读写请求, 无需将读写请求发 送给第二宿主机, 其原因在于, 此时第一宿主机的虚拟机迁移完成, 虚拟机恢 复稳定。 可以理解地, 若第二宿主机完成到备份宿主机的全量数据备份, 则第 二宿主机与备份宿主机形成新的存储 peer对, 使第二宿主机的虚拟机和备份宿主 机的虚拟机可实现数据备份, 以避免第二宿主机和备份宿主机宕机或发生其他 故障而无法运行时, 其上的虚拟机无法访问数据。
[0039] S4: 若未完成第二宿主机到备份宿主机的全量数据同步, 则将读写请求发送给 第二宿主机; 第二宿主机基于写请求将待写入数据存储在第二宿主机上, 或者 基于读请求获取指定数据并将指定数据发送给备份宿主机; 备份宿主机将指定 数据发送给调用方。 即若第二宿主机未完成到备份宿主机的全量数据同步, 则 第一宿主机的虚拟机未完全迁移到备份宿主机中, 备份宿主机无法对其上启动 的虚拟机所接收到的读写请求进行处理, 将读写请求转发给备份有虚拟机数据 的第二宿主机进行处理, 可实现快速恢复虚拟机, 避免虚拟机上的业务中断。
[0040] S5: 若已完成第二宿主机到备份宿主机的全量数据同步, 则在备份宿主机上执 行读写请求, 并使备份宿主机的虚拟机上的读写请求在第二宿主机备份。 具体 地, 在备份宿主机上执行读写请求的过程与在第二宿主机上执行读写请求的过 程相同, 即基于写请求将待写入数据存储在备份宿主机上, 或者基于读请求获 取指定数据。 即若已完成第二宿主机到备份宿主机的全量数据同步, 则备份宿 主机启动虚拟机并接收读写请求吋, 将读写请求直接落入备份宿主机的本地磁 盘, 不再将读写请求跳转到第二宿主机上执行, 但备份宿主机上的虚拟机上的 读写请求备份到第二宿主机上, 其备份过程与步骤 S1相同。
[0041] S6: 备份宿主机将指定数据发送给调用方。 可以理解地, 若已完成第二宿主机 到备份宿主机的全量数据同步, 则在备份宿主机上执行读写请求, 获取读请求 对应的指定数据并发送给调用方。 或者, 若未完成第二宿主机到备份宿主机的 全量数据同步, 则将读写请求发送给第二宿主机, 在第二宿主机上执行读写请 求, 获取读请求对应的指定数据并发送给调用方。
[0042] 本实施例所提供的虚拟机快速恢复方法中, 当第一宿主机宕机、 关机或其他无 法继续提供服务的情况吋, 可在备份宿主机上启动第一宿主机的虚拟机; 并在 未完成第二宿主机到备份宿主机的全量数据同步吋, 将备份宿主机的虚拟机接 收到的读写请求转发到具有虚拟机备份数据的第二宿主机上执行, 可实现虚拟 机不带存储的快速迁移及故障恢复, 不需要共享存储, 并提高虚拟机的鲁棒性
(Robust) , 避免因无可用存储供虚拟机访问导致虚拟机上的业务中断的现象发 生。 [0043] 以下结合具体实施方式对该虚拟机快速恢复方法进行说明, 在一具体实施方式 中, 该虚拟机快速恢复方法包括如下步骤:
[0044] S1 : 第一宿主机 A与第二宿主机 B结成存储 peer对, 将第一宿主机 A的虚拟机上 的读写请求在第二宿主机 B上备份。 相应地, 第二宿主机 B的虚拟机上的读写请 求也在第一宿主机 A上备份; 而第一宿主机 A上的虚拟机和第二宿主机 B上的虚 拟机相互独立, 但虚拟机数据相互备份, 以避免第一宿主机 A和第二宿主机 B宕 机或因其他故障导致无法正常运行, 虚拟机无法快速恢复而导致其所提供的业 务中断。 如图 2所示, 步骤 S1具体包括如下步骤:
[0045] S11 : 第一宿主机 A的客户操作系统 (GuestOS) 接收读写请求, 并将读写请求 放入环形缓冲区 (ring
buffer) 。 其中, 客户操作系统 (GuestOS) 是第一宿主机 A的虚拟机上运行的操 作系统。 环形缓冲区 (ring buffer) 是在通信程序中, 用来存放通信中发送和接 收的数据的数据结构, 可向通信程序提供对缓冲区的互斥访问。
[0046] S12: 第一宿主机 A的 Qemu模块从环形缓冲区 (ring buffer) 获取读写请求。 其 中, Qemu模块设置在第一宿主机的主机操作系统 (Host OS) , 读写请求是未处 理的读写请求。 其中, Qemu是一可单独运行的软件, 用来模拟机器, 具有较高 的灵活性和可移植性。 Qemu主要通过一个特殊的 "重编译器"将为特定处理器编 写二进制代码转换为另一种, 如在 PPCmac上面运行 MIPS代码, 或者在 X86 PC 上运行 ARM代码。 Qemu模块中 10路径大体分三层: virtio后端 )、 通用块设备 层 (b)和驱动层 (c), 通过在 virtio后端 (a)和通用块设备层 (b)的接口部分插入部分代 码以实现把读写请求传递到第二宿主机 B落地备份。
[0047] S13: 第一宿主机 A的 Qemu模块基于读请求, 从第一宿主机 A的本地磁盘上获 取指定数据; 或者第一宿主机 A的 Qemu模块基于写请求, 将待写入数据存储在 第一宿主机 A的本地磁盘上。
[0048] S14: 第一宿主机 A的 Qemu模块将写请求发送给主机操作系统的 Sync Orig模块 。 其中, Sync Orig模块设置在第一宿主机 A的主机操作系统 (Host OS) 上, 是第 一宿主机 A的读写请求转发模块。
[0049] S15: 主机操作系统的 Sync Orig模块将写请求发送给第二宿主机 B的 Sync Term 模块。 第一宿主机 A的 Sync Orig模块与第二宿主机 B的 Sync Term模块之间通过网 络相连。
[0050] S16: 第二宿主机的 Sync Term模块接收写请求, 将写请求对应的待写入数据存 储在第二宿主机的本地磁盘上, 以实现第一宿主机 A的虚拟机上的写请求在第二 宿主机 B备份。 Sync Term模块设置在第二宿主机 B的主机操作系统 (Host OS) 上 , 是第二宿主机 B的读写请求接收模块。
[0051] 进一步地, 第一宿主机 A与第二宿主机 B结成存储 peer对的伪代码如下:
[0052] Host A config file:
[0053] PeerlD = 1
[0054] Host B config file:
[0055] PeerlD = 1
[0056] 第一宿主机 A和第二宿主机 B启动后, 会向云分别上报自己的 PeerlD至服务器, 服务器将 PeerlD相同的两台宿主机注册为一存储 Peer对。
[0057] If(hostA.peerId == hostB .peerld)
[0058] { Peer peer = new Peer(hostA, hostB);
[0059] peer.add(peer); }
[0060] 进一步地, 将第一宿主机 A的虚拟机上的读写请求在第二宿主机 B上备份的伪 代码包括: 第一宿主机 A的 Qemu模块接收到写请求后, 除将写请求对应的待写 入数据存储在第一宿主机 A的本地磁盘上, 还将写请求对应的待写入数据存入第 一宿主机 A的主机操作系统 (HostOS) 的共享内存中。 然后, 为该写请求生成一 个 sequence编号, 并将写请求需要修改的 sector起始编号及 sector个数填写到 reque st中, 交给主机操作系统 (Host OS) 的 Sync Orig模块进行处理。 主机操作系统 (Host
OS) 接收到 request, 将 request和共享内存中的待写入数据 data组成一个 TCP数据 包, 发送至第二宿主机 B的主机操作系统 (HostOS) 。 第二宿主机 B的主机操作 系统 (HostOS) 将数据包中的待写入数据 data写入 request指定的 sector中 从而 实现主机操作系统 (Host OS) 的虚拟机的写请求在主机操作系统 (Host OS_B
) 备份。 [0061] S2: 当第一宿主机 A宕机吋, 备份宿主机 C启动第一宿主机 A的虚拟机。 本实施 例中, 在第一宿主机 A宕机或无法继续提供服务吋, 需在另外一台运行正常的机 器上启动第一宿主机 A的虚拟机, 以保证第一宿主机 A的虚拟机所提供的服务能 够尽快恢复。 由于第二宿主机 B上已承载有一定数量的虚拟机, 若将第一宿主机 A的虚拟机迁移至第二宿主机 B进行恢复, 虽然可以立即获取在第二宿主机 B的 本地磁盘上备份的第一宿主机 A的虚拟机数据, 但将造成第二宿主机 B的虚拟机 访问负载过高, 影响第二宿主机 B对外提供服务的能力。 其中, 备份宿主机 C是 集群中一台运行正常的备用机器, 需使备份宿主机 C的硬件配置需满足能够启动 第一宿主机 A上所有的虚拟机的需求, 从而保证第一宿主机 A的虚拟机所提供的 服务能够尽快恢复。 以下将在备份宿主机 C上启动的第一宿主机 A的虚拟机称为 备份宿主机 C的虚拟机。
[0062] S3: 备份宿主机 C上启动的虚拟机接收调用方发送的读写请求, 并判断是否完 成第二宿主机 B到备份宿主机 C的全量数据同步。 具体地, 备份宿主机 C判断是 否提供到第二宿主机发送的同步已完成通知, 若接收到同步已完成通知, 则认 定已完成第二宿主机 B到备份宿主机 C的全量数据同步; 反之, 则未完成第二宿 主机 B到备份宿主机 C的全量数据同步。 如图 3所示, 步骤 S3具体包括:
[0063] S31 : 第二宿主机 B判断当前运行指标是否达到预设条件。 即在备份宿主机 C上 启动第一宿主机 A的虚拟机后, 第二宿主机 B将实吋检测当前网络吞吐量、 磁盘 访问等当前运行指标, 并在各项当前运行指标均达到预设条件后, 执行步骤 S32
[0064] S32: 若是, 则将第二宿主机 B上备份的第一宿主机 A的虚拟机上的读写请求同 步到备份宿主机 C上, 即将第二宿主机 B的虚拟机数据同步到备份宿主机 C上。
[0065] S33: 判断第二宿主机 B上是否存在未同步数据。 第二宿主机 B还实时判断是否 存在未同步数据, 以确定是否完成第二宿主机 B到备份宿主机 C上的全量数据同 步。
[0066] S34: 若存在, 则未完成第二宿主机 B到备份宿主机 C的全量数据同步, 将未同 步数据发送给备份宿主机 C进行备份。
[0067] S35: 若不存在, 则已完成第二宿主机 B到备份宿主机 C的全量数据同步, 向备 份宿主机 c发送同步已完成通知。
[0068] 进一步地, 步骤 S3中, 备份宿主机 C的客户操作系统 (GuestOS) 接收读写请 求, 并将读写请求放入环形缓冲区 (ring buffer) 。
[0069] S4: 若未完成第二宿主机 B到备份宿主机 C的全量数据同步, 则将读写请求发 送给第二宿主机 B ; 第二宿主机 B基于写请求将待写入数据存储在第二宿主机 B 上, 或者基于读请求获取指定数据并将指定数据发送给备份宿主机 C; 备份宿主 机 C将指定数据发送给调用方。 如图 4所示, 步骤 S4具体包括:
[0070] S41 : 备份宿主机 C的 Qemu模块从环形缓冲区 (ring buffer) 中获取读写请求。
[0071] S42: 备份宿主机 C的 Qemu模块将读写请求发送给主机操作系统上的 Sync Orig 模块。
[0072] S43: Sync Orig模块将读写请求发送给第二宿主机 B的 Sync Term模块。
[0073] S44: 第二宿主机 B的 Sync Term模块接收读写请求, 基于写请求将待写入数据 存储在第二宿主机 B的本地磁盘上。
[0074] S45: 第二宿主机 B的 Sync Term模块基于读请求, 从第二宿主机 B的本地磁盘 上获取指定数据, 并将指定数据发送给备份宿主机 C的 Sync Orig模块。
[0075] S46: 备份宿主机的 Sync Orig模块接收指定数据, 并将指定数据发送给备份宿 主机 C的 Qemu模块。
[0076] S47: 备份宿主机 C的 Qemu模块将指定数据发送给备份宿主机 C的客户操作系 统 (GuestOS) , 进而发送给调用方。
[0077] 进一步地, 备份宿主机 C的虚拟机的读写请求转到第二宿主机 B进行进行处理 的伪代码如下:
[0078] 在备份宿主机 C的 Qemu模块启动前, 在其配置文件中, 将 remotelO标志置为 Tr us。
[0079] 备份宿主机 C的 Qemu模块启动吋, 读到 remoteIO= True , 将此后收到的每个 10 请求 (即读写请求) , 都不做本地磁盘访问, 而是通过共享内存告知 Sync Orig 模块, 由 Sync Orig模块转发至第二宿主机^
[0080] 第二宿主机 B的 Sync Term模块收到备份宿主机 C的 Sync Orig模块的写请求后, 将写数据在备份宿主机 C的本地磁盘落地。 [0081] 第二宿主机 B的 Sync Term模块收到备份宿主机 C的 Sync Orig模块的读请求后, 从指定 sector读到指定数据后, 通过 TCP发回备份宿主机 C的 Sync Orig模块。
[0082] 备份宿主机 C的 Sync Orig模块收到 B机反馈的指定数据后, 将此反馈指定数据 写入共享内存中, 并通过 TCP消息通知备份宿主机 C的 Qemu模块。
[0083] 备份宿主机 C的 Qemu模块收到备份宿主机 C的 Sync Orig模块的 TCP消息通知后
, 从指定共享内存中获取指定数据, 并向调用方反馈。
[0084] 在虚拟机在备份宿主机上稳定后, 启动第二宿主机 B到备份宿主机 C的数据同 步。 虚拟机不在存储迁移到备份宿主机 C完成后, 启动第二宿主机 B到备份宿主 机 C的全量数据同步过程的伪代码如下:
[0085] 第二宿主机 B的 Sync Term模块通过分析出本地磁盘的 qcow2文件的 sector写入情 况, 将被写过的 sector逐一发送至备份宿主机 C的 Sync
Orig模块。 备份宿主机 C的 Sync Orig模块收到第二宿主机 B的 Sync Term模块发来 的同步 sector数据后, 将数据内容写入本地磁盘的 qcow2文件中。
[0086] 在第二宿主机 B上执行的伪代码如下:
[0087] For(every writen sector)
[0088] { Send_to_hostC(sectorIdx, sector—data); }
[0089] 在备份宿主机 C上执行的伪代码如下:
[0090] For(sector_data receive from hostB)
[0091] { Write(qcow2file, sectorldx, sector— data); }
[0092] 备份宿主机 C在全量数据同步完成后, 将虚拟机的读写请求恢复在备份宿主机 C的本地磁盘上执行, 不再转发至第二宿主机^ 此吋, 在第二宿主机 B上执行 的伪代码如下:
[0093] If(every_writen_sector_send == true)
[0094] { Send—to— hostC(all— data—synchronized = true); }
[0095] 在备份宿主机 C上执行的伪代码如下:
[0096] If(Received_msg(hostB, all— data— synchronized = true))
[0097] { Qemu.remotelO = False; }
[0098] 第二实施例 [0099] 图 5示出本实施例中的虚拟机快速恢复装置。 如图 5所示, 该虚拟机快速恢复装 置包括数据备份单元 10、 备份机启动单元 20、 请求判断单元 30、 第一处理单元 4 0和第二处理单元 50。
[0100] 数据备份单元 10, 用于将第一宿主机和第二宿主机结成存储 peer对, 使第一宿 主机的虚拟机上的读写请求在第二宿主机备份。 相应地, 第二宿主机上的读写 请求也在第一宿主机上备份。 结成存储 peer对的第一宿主机的虚拟机和第二宿主 机的虚拟机相互独立, 但在虚拟机上执行的读写请求相互备份。
[0101] 备份机启动单元 20 , 用于在第一宿主机宕机或关机吋, 备份宿主机启动第一宿 主机的虚拟机。 在第一宿主机宕机或关机是第一宿主机无法继续提供服务的两 种情况, 需在另外一台运行正常的机器上启动第一宿主机的虚拟机, 以保证第 一宿主机的虚拟机所提供的服务能够尽快恢复。 其中, 关机是宿主机关断电源 , 使计算机彻底关闭的情况。 宕机是指宿主机无法从严重系统错误中恢复过来 , 或者系统硬件层面出问题, 以使系统长时间无响应的情况。 因此, 备份宿主 机是集群中一台运行正常的备用机器, 备份宿主机的硬件配置需满足能够启动 第一宿主机上所有的虚拟机的需求, 从而保证第一宿主机的虚拟机所提供的服 务能够尽快恢复。 以下将在备份宿主机上启动的第一宿主机的虚拟机称为备份 宿主机的虚拟机。
[0102] 请求判断单元 30, 用于使备份宿主机上启动的虚拟机接收调用方发送的读写请 求, 并判断是否完成第二宿主机到备份宿主机的全量数据同步。 若未完成第二 宿主机到备份宿主机的全量数据同步, 则将读写请求发送给第二宿主机。 若第 二宿主机完成到备份宿主机的全量数据备份, 则在备份宿主机上执行读写请求 , 无需将读写请求发送给第二宿主机, 其原因在于, 此吋第一宿主机的虚拟机 迁移完成, 虚拟机恢复稳定。 可以理解地, 若第二宿主机完成到备份宿主机的 全量数据备份, 则第二宿主机与备份宿主机形成新的存储 peer对, 使第二宿主机 的虚拟机和备份宿主机的虚拟机可实现数据备份, 以避免第二宿主机和备份宿 主机宕机或发生其他故障而无法运行吋, 其上的虚拟机无法访问数据。
[0103] 第一处理单元 40, 用于在未完成第二宿主机到备份宿主机的全量数据同步吋, 将读写请求发送给第二宿主机; 第二宿主机基于写请求将待写入数据存储在第 二宿主机上, 或者基于读请求获取指定数据并将指定数据发送给备份宿主机; 备份宿主机将指定数据发送给调用方。 即若第二宿主机未完成到备份宿主机的 全量数据同步, 则第一宿主机的虚拟机未完全迁移到备份宿主机中, 备份宿主 机无法对其上启动的虚拟机所接收到的读写请求进行处理, 将读写请求转发给 备份有虚拟机数据的第二宿主机进行处理, 可实现快速恢复虚拟机, 避免虚拟 机上的业务中断。
[0104] 第二处理单元 50, 用于在已完成第二宿主机到备份宿主机的全量数据同步时, 在备份宿主机上执行读写请求, 并使备份宿主机的虚拟机上的读写请求在第二 宿主机备份。 具体地, 在备份宿主机上执行读写请求的过程与在第二宿主机上 执行读写请求的过程相同, 即基于写请求将待写入数据存储在备份宿主机上, 或者基于读请求获取指定数据。 即若已完成第二宿主机到备份宿主机的全量数 据同步, 则备份宿主机启动虚拟机并接收读写请求时, 将读写请求直接落入备 份宿主机的本地磁盘, 不再将读写请求跳转到第二宿主机上执行, 但备份宿主 机上的虚拟机上的读写请求备份到第二宿主机上, 其备份过程与数据备份单元 1 0的数据备份过程相同。
[0105] 数据发送单元 60, 用于使备份宿主机将指定数据发送给调用方。 可以理解地, 若已完成第二宿主机到备份宿主机的全量数据同步, 则在备份宿主机上执行读 写请求, 获取读请求对应的指定数据并发送给调用方。 或者, 若未完成第二宿 主机到备份宿主机的全量数据同步, 则将读写请求发送给第二宿主机, 在第二 宿主机上执行读写请求, 获取读请求对应的指定数据并发送给调用方。
[0106] 本实施例所提供的虚拟机快速恢复装置中, 当第一宿主机宕机、 关机或其他无 法继续提供服务的情况时, 可在备份宿主机上启动第一宿主机的虚拟机; 并在 未完成第二宿主机到备份宿主机的全量数据同步吋, 将备份宿主机的虚拟机接 收到的读写请求转发到具有虚拟机备份数据的第二宿主机上执行, 可实现虚拟 机不带存储的快速迁移及故障恢复, 不需要共享存储, 并提高虚拟机的鲁棒性
(Robust) , 避免因无可用存储供虚拟机访问导致虚拟机上的业务中断的现象发 生。
[0107] 以下结合具体实施方式对该虚拟机快速恢复装置进行说明, 在一具体实施方式 中, 该虚拟机快速恢复装置包括:
[0108] 数据备份单元 10, 用于将第一宿主机 A与第二宿主机 B结成存储 peer对, 将第一 宿主机 A的虚拟机上的读写请求在第二宿主机 B上备份。 相应地, 第二宿主机 B 的虚拟机上的读写请求也在第一宿主机 A上备份; 而第一宿主机 A上的虚拟机和 第二宿主机 B上的虚拟机相互独立, 但虚拟机数据相互备份, 以避免第一宿主机 A和第二宿主机 B宕机或因其他故障导致无法正常运行, 虚拟机无法快速恢复而 导致其所提供的业务中断。 具体地, 数据备份单元 10包括:
[0109] 第一宿主机 A的客户操作系统 (GuestOS) , 用于接收读写请求, 并将读写请 求放入环形缓冲区 (ring buffer) 。 其中, 客户操作系统 (GuestOS) 是第一宿主 机 A的虚拟机上运行的操作系统。 环形缓冲区 (ring buffer) 是在通信程序中, 用来存放通信中发送和接收的数据的数据结构, 可向通信程序提供对缓冲区的 互斥访问。
[0110] 第一宿主机 A的 Qemu模块从环形缓冲区 (ring buffer) , 用于获取读写请求。
其中, Qemu模块设置在第一宿主机的主机操作系统 (Host OS) , 读写请求是未 处理的读写请求。 其中, Qemu是一可单独运行的软件, 用来模拟机器, 具有较 高的灵活性和可移植性。 Qemu主要通过一个特殊的"重编译器"将为特定处理器 编写二进制代码转换为另一种, 如在 PPCmac上面运行 MIPS代码, 或者在 X86 PC上运行 ARM代码。 Qemu模块中 10路径大体分三层: virtio后端 (a)、 通用块设 备层 (b)和驱动层 (c), 通过在 wrtio后端 (a)和通用块设备层 (b)的接口部分插入部分 代码以实现把读写请求传递到第二宿主机 B落地备份。
[0111] 第一宿主机 A的 Qemu模块, 用于基于读请求, 从第一宿主机 A的本地磁盘上获 取指定数据; 或者第一宿主机 A的 Qemu模块基于写请求, 将待写入数据存储在 第一宿主机 A的本地磁盘上。
[0112] 第一宿主机 A的 Qemu模块, 用于将写请求发送给主机操作系统的 Sync Orig模块 。 其中, Sync Orig模块设置在第一宿主机 A的主机操作系统 (Host OS) 上, 是第 一宿主机 A的读写请求转发模块。
[0113] 主机操作系统的 Sync Orig模块, 用于将写请求发送给第二宿主机 B的 Sync Term 模块。 第一宿主机 A的 Sync Orig模块与第二宿主机 B的 Sync Term模块之间通过网 络相连。
[0114] 第二宿主机的 Sync Term模块, 用于接收写请求, 将写请求对应的待写入数据 存储在第二宿主机的本地磁盘上, 以实现第一宿主机 A的虚拟机上的写请求在第 二宿主机 B备份。 Sync Term模块设置在第二宿主机 B的主机操作系统 (Host OS) 上, 是第二宿主机 B的读写请求接收模块。
[0115] 进一步地, 第一宿主机 A与第二宿主机 B结成存储 peer对的伪代码如下:
[0116] Host A config file:
[0117] PeerID = l
[0118] Host B config file:
[0119] PeerlD = 1
[0120] 第一宿主机 A和第二宿主机 B启动后, 会向云分别上报自己的 PeerlD至服务器, 服务器将 PeerlD相同的两台宿主机注册为一存储 Peer对。
[0121] If(hostA.peerId == hostB.peerld)
[0122] { Peer peer = new Peer(hostA, hostB);
[0123] peer.add(peer); }
[0124] 进一步地, 将第一宿主机 A的虚拟机上的读写请求在第二宿主机 B上备份的伪 代码包括: 第一宿主机 A的 Qemu模块接收到写请求后, 除将写请求对应的待写 入数据存储在第一宿主机 A的本地磁盘上, 还将写请求对应的待写入数据存入第 一宿主机 A的主机操作系统 (HostOS) 的共享内存中。 然后, 为该写请求生成一 个 sequence编号, 并将写请求需要修改的 sector起始编号及 sector个数填写到 reque st中, 交给主机操作系统 (Host OS) 的 Sync
Orig模块进行处理。 主机操作系统 (Host OS)接收到 request, 将 request和共享内存 中的待写入数据 data组成一个 TCP数据包, 发送至第二宿主机 B的主机操作系统 (HostOS) 。 第二宿主机 B的主机操作系统 (HostOS) 将数据包中的待写入数 据 data写入 request指定的 sector中, 从而实现主机操作系统 (Host OS) 的虚拟机 的写请求在主机操作系统 (Host OS_B) 备份。
[0125] 备份机启动单元 20 , 用于在第一宿主机 A宕机时, 备份宿主机 C启动第一宿主 机 A的虚拟机。 本实施例中, 在第一宿主机 A宕机或无法继续提供服务时, 需在 另外一台运行正常的机器上启动第一宿主机 A的虚拟机, 以保证第一宿主机 A的 虚拟机所提供的服务能够尽快恢复。 由于第二宿主机 B上已承载有一定数量的虚 拟机, 若将第一宿主机 A的虚拟机迁移至第二宿主机 B进行恢复, 虽然可以立即 获取在第二宿主机 B的本地磁盘上备份的第一宿主机 A的虚拟机数据, 但将造成 第二宿主机 B的虚拟机访问负载过高, 影响第二宿主机 B对外提供服务的能力。 其中, 备份宿主机 C是集群中一台运行正常的备用机器, 需使备份宿主机 C的硬 件配置需满足能够启动第一宿主机 A上所有的虚拟机的需求, 从而保证第一宿主 机 A的虚拟机所提供的服务能够尽快恢复。 以下将在备份宿主机 C上启动的第一 宿主机 A的虚拟机称为备份宿主机 C的虚拟机。
[0126] 请求判断单元 30, 用于使备份宿主机 C上启动的虚拟机接收调用方发送的读写 请求, 并判断是否完成第二宿主机 B到备份宿主机 C的全量数据同步。 具体地, 备份宿主机 C判断是否提供到第二宿主机发送的同步已完成通知, 若接收到同步 已完成通知, 则认定已完成第二宿主机 B到备份宿主机 C的全量数据同步; 反之 , 则未完成第二宿主机 B到备份宿主机 C的全量数据同步。 如图 5所示, 请求判断 单元 30包括第一判断子单元 31、 第一同步子单元 32、 第二判断子单元 33、 第一 确定子单元 34和第二确定子单元 35。
[0127] 第一判断子单元 31, 用于使第二宿主机 B判断当前运行指标是否达到预设条件 。 即在备份宿主机 C上启动第一宿主机 A的虚拟机后, 第二宿主机 B将实吋检测 当前网络吞吐量、 磁盘访问等当前运行指标, 并在各项当前运行指标均达到预 设条件后, 执行步骤 S32。
[0128] 第一同步子单元 32, 用于在达到预设条件吋, 将第二宿主机 B上备份的第一宿 主机 A的虚拟机上的读写请求同步到备份宿主机 C上, 即将第二宿主机 B的虚拟 机数据同步到备份宿主机 C上。
[0129] 第二判断子单元 33 , 用于判断第二宿主机 B上是否存在未同步数据。 第二宿主 机 B还实时判断是否存在未同步数据, 以确定是否完成第二宿主机 B到备份宿主 机 C上的全量数据同步。
[0130] 第一确定子单元 34, 用于在存在未同步数据吋, 确定未完成第二宿主机 B到备 份宿主机 C的全量数据同步, 将未同步数据发送给备份宿主机 C进行备份。 [0131] 第二确定子单元 35 , 用于在不存在未同步数据吋, 确定已完成第二宿主机 B到 备份宿主机 C的全量数据同步, 向备份宿主机 C发送同步已完成通知。
[0132] 进一步地, 请求判断单元 30中, 备份宿主机 C的客户操作系统 (GuestOS) 接 收读写请求, 并将读写请求放入环形缓冲区 (ring buffer) 。
[0133] 第一处理单元 40, 用于在未完成第二宿主机 B到备份宿主机 C的全量数据同步 吋, 将读写请求发送给第二宿主机 B ; 第二宿主机 B基于写请求将待写入数据存 储在第二宿主机 B上, 或者基于读请求获取指定数据并将指定数据发送给备份宿 主机 C; 备份宿主机 C将指定数据发送给调用方。 具体地, 第一处理单元 40具体 包括:
[0134] 备份宿主机 C的 Qemu模块, 用于从环形缓冲区 (ring buffer) 中获取读写请求
[0135] 备份宿主机 C的 Qemu模块, 用于将读写请求发送给主机操作系统上的 Sync Orig 模块。
[0136] 主机操作系统上的 Sync Orig模块, 用于将读写请求发送给第二宿主机 B的 Sync Term模块。
[0137] 第二宿主机 B的 Sync Term模块, 用于接收读写请求, 基于写请求将待写入数据 存储在第二宿主机 B的本地磁盘上。
[0138] 第二宿主机 B的 Sync Term模块, 用于基于读请求, 从第二宿主机 B的本地磁盘 上获取指定数据, 并将指定数据发送给备份宿主机 C的 Sync Ong模块。
[0139] 备份宿主机的 Sync Orig模块, 用于接收指定数据, 并将指定数据发送给备份宿 主机 C的 Qemu模块。
[0140] 备份宿主机 C的 Qemu模块, 用于将指定数据发送给备份宿主机 C的客户操作系 统 (GuestOS) , 进而发送给调用方。
[0141] 进一步地, 备份宿主机 C的虚拟机的读写请求转到第二宿主机 B进行进行处理 的伪代码如下:
[0142] 在备份宿主机 C的 Qemu模块启动前, 在其配置文件中, 将 remotelO标志置为 Tr
U6。
[0143] 备份宿主机 C的 Qemu模块启动吋, 读到 remoteIO= True , 将此后收到的每个 10 请求 (即读写请求) , 都不做本地磁盘访问, 而是通过共享内存告知 Sync Orig 模块, 由 Sync Orig模块转发至第二宿主机^
[0144] 第二宿主机 B的 Sync Term模块收到备份宿主机 C的 Sync Orig模块的写请求后, 将写数据在备份宿主机 C的本地磁盘落地。
[0145] 第二宿主机 B的 Sync Term模块收到备份宿主机 C的 Sync Orig模块的读请求后
, 从指定 sector读到指定数据后, 通过 TCP发回备份宿主机 C的 Sync Orig模块。
[0146] 备份宿主机 C的 Sync Orig模块收到 B机反馈的指定数据后, 将此反馈指定数据 写入共享内存中, 并通过 TCP消息通知备份宿主机 C的 Qemu模块。
[0147] 备份宿主机 C的 Qemu模块收到备份宿主机 C的 Sync Orig模块的 TCP消息通知后
, 从指定共享内存中获取指定数据, 并向调用方反馈。
[0148] 在虚拟机在备份宿主机上稳定后, 启动第二宿主机 B到备份宿主机 C的数据同 步。 虚拟机不在存储迁移到备份宿主机 C完成后, 启动第二宿主机 B到备份宿主 机 C的全量数据同步过程的伪代码如下:
[0149] 第二宿主机 B的 Sync Term模块通过分析出本地磁盘的 qcow2文件的 sector写入 情况, 将被写过的 sector逐一发送至备份宿主机 C的 Sync Orig模块。 备份宿主机 C 的 Sync Orig模块收到第二宿主机 B的 Sync Term模块发来的同步 sector数据后, 将 数据内容写入本地磁盘的 qcow2文件中。
[0150] 在第二宿主机 B上执行的伪代码如下:
[0151] For(every writen sector)
[0152] { Send_to_hostC(sectorIdx, sector—data); }
[0153] 在备份宿主机 C上执行的伪代码如下:
[0154] For(sector_data receive from hostB)
[0155] { Write(qcow2file, sectorldx, sector— data); }
[0156] 备份宿主机 C在全量数据同步完成后, 将虚拟机的读写请求恢复在备份宿主机 C的本地磁盘上执行, 不再转发至第二宿主机1¾。 此吋, 在第二宿主机 B上执行 的伪代码如下:
[0157] If(every_writen_sector_send == true)
[0158] { Send— to— hostC(all_data— synchronized = true); } [0159] 在备份宿主机 C上执行的伪代码如下:
[0160] If(Received_msg(hostB, all— data— synchronized = true))
[0161] { Qemu.remotelO - False; }
[0162] 第三实施例
[0163] 图 6是本发明第 3实施例中的虚拟机快速恢复系统的原理框图。 如图 6所示, 该 虚拟机快速恢复系统包括服务器 4、 与服务器 4通信相连的第一宿主机 1、 第二宿 主机 2和备份宿主机 3。 其中, 第一宿主机 1、 第二宿主机 2和备份宿主机 3均可以 是手机、 平板电脑、 个人数字助理 (PersonalDigital Assistant, PDA). 台式电脑、 服务器等终端。 以平板电脑为例, 如图 7所示, 每一平板电脑 700均包括射频 (Rad ioFrequency , RF)电路 701、 存储器 702、 输入模块 703、 显示模块 704、 处理器 70 5、 音频电路 706、 WiFi (WirelessFidelity)模块 707和电源 708。
[0164] 与处理器 705相连的输入模块 703作为平板电脑 700的用户交互装置, 用于实现 用户与平板电脑 700之间的交互。 其中, 第一宿主机 1的输入模块 703接收用户输 入的第一备份存储指令, 并将第一备份存储指令发送给对应的处理器 705 , 第一 备份存储指令包括 peer对 ID。 第二宿主机 2的输入模块接收用户输入的第二备份 存储指令, 并将第二备份存储指令发送给对应的处理器 705 , 第二备份存储指令 包括 peer对 ID。 第一备份存储指令和第二备份存储指令包括同一 peer对 ID , 以实 现基于第一备份存储指令和第二备份存储指令, 将第一宿主机 1和第二宿主机 2 结成存储 peer对, 以使第一宿主机 1的虚拟机上的读写请求在第二宿主机 2上备份 。 相应地, 备份宿主机 3的输入模块 703接收用户输入的虚拟机启动指令, 并将 虚拟机启动指令发送给处理器 705, 该虚拟机启动指令包括与第二备份存储指令 相同的 peer对 ID , 以使第一宿主机 1宕机或关机吋, 实现在备份宿主机 3上启动第 一宿主机 1的虚拟机。
[0165] 在一些实施例中, 输入模块 703可用于接收用户输入的数字或字符信息, 以及 产生与平板电脑 700的用户设置以及功能控制有关的信号输入。 在一些实施例中 , 该输入模块 703可以包括触控面板 7031。 触控面板 7031, 也称为触摸屏, 可收 集用户在其上或附近的触摸操作 (比如用户使用手指、 触笔等任何适合的物体或 附件在触控面板 7031上的操作), 并根据预先设定的程式驱动相应的连接装置。 可选地, 触控面板 7031可包括触摸检测装置和触摸控制器两个部分。 其中, 触 摸检测装置检测用户的触摸方位, 并检测触摸操作带来的信号, 将信号传送给 触摸控制器; 触摸控制器从触摸检测装置上接收触摸信息, 并将它转换成触点 坐标, 再送给该处理器 705 , 并能接收处理器 705发来的命令并加以执行。 此外 , 可以采用电阻式、 电容式、 红外线以及表面
声波等多种类型实现触控面板 7031。 除了触控面板 7031, 输入模块 703还可以包 括其他输入设备 7032, 其他输入设备 7032可以包括但不限于物理键盘、 功能键( 比如音量控制按键、 开关按键等)、 轨迹球、 鼠标、 操作杆等中的一种或多种。
[0166] 在一些实施例中, 显示模块 704可用于显示由用户输入的信息或提供给用户的 信息以及平板电脑 700的各种菜单界面。 显示模块 704可包括显示面板 7041, 可 选地, 可以釆用 LCD或有机发光二极管 (Organic Light-Emitting Diode OLED)等 形式来配置显示面板 7041。
[0167] 可以理解地, 触控面板 7031可以覆盖显示面板 7041 , 形成触摸显示屏, 当该触 摸显示屏检测到在其上或附近的触摸操作后, 传送给处理器 705以确定触摸事件 的类型, 随后处理器 705根据触摸事件的类型在触摸显示屏上提供相应的视觉输 出。
[0168] 触摸显示屏包括应用程序界面显示区及常用控件显示区。 该应用程序界面显示 区及该常用控件显示区的排列方式并不限定, 可以为上下排列、 左右排列等可 以区分两个显示区的排列方式。 该应用程序界面显示区可以用于显示应用程序 的界面。 每一个界面可以包含至少一个应用程序的图标和 /或 widget桌面控件等 界面元素。 该应用程序界面显示区也可以为不包含任何内容的空界面。 该常用 控件显示区用于显示使用率较高的控件, 例如, 设置按钮、 界面编号、 滚动条 、 电话本图标等应用程序图标等。
[0169] WiFi模块 707作为平板电脑 700的网络接口, 可以实现平板电脑 700与其他设备 的数据交互。 网络接口与远端存储设备 (即调用方) 通过网络通信相连。 本实 施例中, 备份宿主机 3中的 WiFi模块 707可接收来自远端存储设备 (即调用方) 的读写请求, 通过处理器 705进行处理后, 获取写请求对应的指定数据, 并将指 定数据通过 WiFi模块 707发送给调用方。 实施例中, 与该网络接口通过 WiFi网络 相连的远端存储设备 (即调用方) 可以是云服务器或其他数据库。
[0170] 存储器 702包括第一存储器 7021及第二存储器 7022。 在一些实施例中, 第一存 储器 7021可为非易失性计算机可读存储介质, 其上存储有操作系统、 数据库及 计算机可执行指令。 计算机可执行指令可被处理器 705所执行, 用于实现如图 1 所示的第一实施例的虚拟机快速恢复方法。 存储器 702上存储的数据库用于存储 各类数据, 例如, 上述虚拟机快速恢复方法中所涉及的各种数据, 如与读请求 相对应的指定数据、 与写请求相对应的待写入数据等等。 第二存储器 7021可为 平板电脑 700的内存储器, 为非易失性计算机可读存储介质中的操作系统、 数据 库和计算机可执行指令提供高速缓存的运行环境。
[0171] 在本实施例中, 处理器 705是平板电脑 700的控制中心, 利用各种接口和线路连 接整个手机的各个部分, 通过运行或执行存储在第一存储器 7021内的计算机可 执行搜集和 /或数据库内的数据, 执行平板电脑 700的各种功能和处理数据, 从而 对平板电脑 700进行整体监控。 可选地, 处理器 705可包括一个或多个处理模块
[0172] 在本实施例中, 通过执行存储该第一存储器 7021内的计算机可执行指令和 /或 数据库内的数据, 处理器 705用于执行如下步骤: 将第一宿主机和第二宿主机结 成存储 peer对, 使所述第一宿主机的虚拟机上的读写请求在所述第二宿主机备份 ; 当所述第一宿主机宕机或关机吋, 备份宿主机启动所述第一宿主机的虚拟机 ; 备份宿主机上启动的虚拟机接收调用方发送的读写请求, 并判断是否完成第 二宿主机到备份宿主机的全量数据同步; 若未完成第二宿主机到备份宿主机的 全量数据同步, 则将所述读写请求发送给所述第二宿主机; 所述第二宿主机接 收所述读写请求, 并基于写请求将待写入数据存储在所述第二宿主机上, 或者 基于读请求获取指定数据并将所述指定数据发送给备份宿主机; 所述备份宿主 机将所述指定数据发送给所述调用方。
[0173] 所述处理器 705还执行如下步骤: 若已完成第二宿主机到备份宿主机的全量数 据同步, 则在所述备份宿主机上执行所述读写请求, 并使备份宿主机的虚拟机 上的读写请求在所述第二宿主机备份。
[0174] 优选地, 处理器 705还执行如下步骤: 所述备份宿主机的客户操作系统接收所 述读写请求, 并将所述读写请求放入环形缓冲区;
[0175] 所述备份宿主机的 Qemu模块从所述环形缓冲区中获取所述读写请求, 并将所 述读写请求发送给主机操作系统上的 Sync Orig模块; 所述 Sync Orig模块将所述 读写请求发送给所述第二宿主机;
[0176] 所述第二宿主机的 Sync Term模块接收所述读写请求; 基于写请求将待写入数 据存储在所述第二宿主机的本地磁盘上; 或者基于读请求从所述第二宿主机的 本地磁盘上获取指定数据, 并将所述指定数据发送给所述备份宿主机的 Sync
Orig模块;
[0177] 所述备份宿主机的 Sync Orig模块接收所述指定数据并将所述指定数据发送给所 述备份宿主机的 Qemu模块;
[0178] 所述备份宿主机的 Qemu模块将所述指定数据发送给所述备份宿主机的客户操 作系统。
[0179] 优选地, 所述将所述第一宿主机的虚拟机的数据在所述第二宿主机上备份, 包 括:
[0180] 所述第一宿主机的客户操作系统接收读写请求, 并将所述读写请求放入环形缓 冲区;
[0181] 所述第一宿主机的 Qemu模块从所述环节缓冲区获取所述读写请求; 所述 Qemu 模块基于读请求, 从所述第一宿主机的本地磁盘上获取指定数据; 或者所述 Qem u模块基于写请求, 将待写入数据存储在所述第一宿主机的本地磁盘上; 并将所 述写请求发送给主机操作系统的 Sync Orig模块;
[0182] 所述主机操作系统的 Sync Orig模块将所述写请求发送给所述第二宿主机的 Sync Term模块;
[0183] 所述第二宿主机的 Sync Term模块接收所述写请求, 并将所述写请求对应的待 写入数据存储在所述第二宿主机的本地磁盘上。
[0184] 优选地, 处理器 705还执行如下步骤: 所述第二宿主机判断当前运行指标是否 达到预设条件;
[0185] 若是, 则将所述第二宿主机上备份的第一宿主机的虚拟机上的读写请求同步到 备份宿主机上; [0186] 判断所述第二宿主机上是否存在未同步数据;
[0187] 若存在, 则未完成第二宿主机到备份宿主机的全量数据同步;
[0188] 若不存在, 则已完成第二宿主机到备份宿主机的全量数据同步, 向所述备份宿 主机发送同步已完成通知。
[0189] 本实施例所提供的虚拟机快速恢复系统中, 当第一宿主机宕机或关机吋, 即在 备份宿主机上启动第一宿主机的虚拟机; 并在未完成第二宿主机到备份宿主机 的全量数据同步时, 将备份宿主机的虚拟机接收到的读写请求转发到具有虚拟 机备份数据的第二宿主机上执行, 可实现虚拟机不带存储的快速迁移及故障恢 复, 不需要共享存储, 并提高虚拟机的鲁棒性, 避免因无可用存储供虚拟机访 问导致虚拟机上的业务中断的现象发生。
[0190] 本领域普通技术人员可以意识到, 结合本文中所公幵的实施例描述的各示例的 模块及算法步骤, 能够以电子硬件、 或者计算机软件和电子硬件的结合来实现 。 这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特定应用和设 计约束条件。 专业技术人员可以对每个特定的应用来使用不同方法来实现所描 述的功能, 但是这种实现不应认为超出本发明的范围。
[0191] 所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描述的系 统、 装置和模块的具体工作过程, 可以参考前述方法实施例中的对应过程, 在 此不再赘述。
[0192] 在本申请所提供的实施例中, 应该理解到, 所揭露的装置和方法, 可以通过其 它的方式实现。 例如, 以上所描述的装置实施例仅仅是示意性的, 例如, 所述 模块的划分, 仅仅为一种逻辑功能划分, 实际实现吋可以有另外的划分方式, 例如多个模块或组件可以结合或者可以集成到另一个系统, 或一些特征可以忽 略, 或不执行。 另一点, 所显示或讨论的相互之间的耦合或直接耦合或通信连 接可以是通过一些接口, 装置或模块的间接耦合或通信连接, 可以是电性, 机 械或其它的形式。
[0193] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的, 作为模块 显示的部件可以是或者也可以不是物理模块, 即可以位于一个地方, 或者也可 以分布到多个网络模块上。 可以根据实际的需要选择其中的部分或者全部模块 来实现本实施例方案的目的。
[0194] 另外, 在本发明各个实施例中的各功能模块可以集成在一个处理模块中, 也可 以是各个模块单独物理存在, 也可以两个或两个以上模块集成在一个模块中。
[0195] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用吋, 可 以存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技术方案 本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产 品的形式体现出来, 该计算机软件产品存储在一个存储介质中, 包括若干指令 用以使得一台计算机设备 (可以是个人计算机, 服务器, 或者网络设备等)执行本 发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括: U盘、 移 动硬盘、 ROM、 RAM、 磁碟或者光盘等各种可以存储程序代码的介质。
[0196] 以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到变化 或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护范围应以权 利要求的保护范围为准。

Claims

[权利要求 1] 一种虚拟机快速恢复方法, 其特征在于, 包括: 将第一宿主机和第二宿主机结成存储 peer对, 使所述第一宿主机的虚 拟机上的读写请求在所述第二宿主机备份;
当所述第一宿主机宕机或关机时, 备份宿主机启动所述第一宿主机的 虚拟机;
备份宿主机上启动的虚拟机接收调用方发送的读写请求, 并判断是否 完成第二宿主机到备份宿主机的全量数据同步; 若未完成第二宿主机 到备份宿主机的全量数据同步, 则将所述读写请求发送给所述第二宿 主机;
所述第二宿主机接收所述读写请求, 并基于写请求将待写入数据存储 在所述第二宿主机上, 或者基于读请求获取指定数据并将所述指定数 据发送给备份宿主机;
所述备份宿主机将所述指定数据发送给所述调用方。
[权利要求 2] 根据权利要求 1所述的虚拟机快速恢复方法, 其特征在于, 还包括: 若已完成第二宿主机到备份宿主机的全量数据同步, 则在所述备份宿 主机上执行所述读写请求, 并使备份宿主机的虚拟机上的读写请求在 所述第二宿主机备份。
[权利要求 3] 根据权利要求 1所述的虚拟机快速恢复方法, 其特征在于, 还包括: 所述备份宿主机的客户操作系统接收所述读写请求, 并将所述读写请 求放入环形缓冲区;
所述备份宿主机的 Qenrn模块从所述环形缓冲区中获取所述读写请求
, 并将所述读写请求发送给主机操作系统上的 Sync
Orig模块; 所述 Sync Orig模块将所述读写请求发送给所述第二宿主机 所述第二宿主机的 Sync Term模块接收所述读写请求; 基于写请求将 待写入数据存储在所述第二宿主机的本地磁盘上; 或者基于读请求从 所述第二宿主机的本地磁盘上获取指定数据, 并将所述指定数据发送 给所述备份宿主机的 Sync Orig模块;
所述备份宿主机的 Sync Orig模块接收所述指定数据并将所述指定数据 发送给所述备份宿主机的 Qemu模块;
所述备份宿主机的 Qemii模块将所述指定数据发送给所述备份宿主机 的客户操作系统。
[权利要求 4] 根据权利要求 1所述的虚拟机快速恢复方法, 其特征在于, 所述将所 述第一宿主机的虚拟机的数据在所述第二宿主机上备份, 包括: 所述第一宿主机的客户操作系统接收读写请求, 并将所述读写请求放 入环形缓冲区;
所述第一宿主机的 Qemu模块从所述环节缓冲区获取所述读写请求; 所述 Qemu模块基于读请求 , 从所述第一宿主机的本地磁盘上获取指 定数据; 或者所述 Qemu模块基于写请求, 将待写入数据存储在所述 第一宿主机的本地磁盘上; 并将所述写请求发送给主机操作系统的 Sy nc Orig模块;
所述主机操作系统的 Sync Orig模块将所述写请求发送给所述第二宿主 机的 Sync Term模块;
所述第二宿主机的 Sync Term模块接收所述写请求, 并将所述写请求 对应的待写入数据存储在所述第二宿主机的本地磁盘上。
[权利要求 5] 根据权利要求 1-4任一项所述的虚拟机快速恢复方法, 其特征在于, 还包括:
所述第二宿主机判断当前运行指标是否达到预设条件;
若是, 则将所述第二宿主机上备份的第一宿主机的虚拟机上的读写请 求同步到备份宿主机上;
判断所述第二宿主机上是否存在未同步数据;
若存在, 则未完成第二宿主机到备份宿主机的全量数据同步; 若不存在, 则已完成第二宿主机到备份宿主机的全量数据同步, 向所 述备份宿主机发送同步已完成通知。
[权利要求 6] —种虚拟机快速恢复装置, 其特征在于, 包括: 数据备份单元, 用于将第一宿主机和第二宿主机结成存储 peer对, 使 所述第一宿主机的虚拟机上的读写请求在所述第二宿主机备份; 备份机启动单元, 用于在所述第一宿主机宕机或关机吋, 备份宿主机 启动所述第一宿主机的虚拟机;
请求判断单元, 用于使备份宿主机上启动的虚拟机接收调用方发送的 读写请求, 并判断是否完成第二宿主机到备份宿主机的全量数据同步 ; 在未完成第二宿主机到备份宿主机的全量数据同步吋, 将所述读写 请求发送给所述第二宿主机;
第一处理单元, 用于使所述第二宿主机接收所述读写请求, 并基于写 请求将待写入数据存储在所述第二宿主机上, 或者基于读请求获取指 定数据并将所述指定数据发送给备份宿主机;
数据发送单元, 用于使所述备份宿主机将所述指定数据发送给所述调 用方。
[权利要求 7] 根据权利要求 6所述的虚拟机快速恢复装置, 其特征在于, 还包括第 二处理单元, 用于在已完成第二宿主机到备份宿主机的全量数据同步 时, 在所述备份宿主机上执行所述读写请求, 并使备份宿主机的虚拟 机上的读写请求在所述第二宿主机备份。
[权利要求 8] 根据权利要求 6所述的虚拟机快速恢复装置, 其特征在于, 还包括: 所述备份宿主机的客户操作系统, 用于接收所述读写请求, 并将所述 读写请求放入环形缓冲区;
所述备份宿主机的 Qenm模块, 用于从所述环形缓冲区中获取所述读 写请求, 并将所述读写请求发送给主机操作系统上的 Sync Ong模块; 所述 Sync Ong模块将所述读写请求发送给所述第二宿主机; 所述第二宿主机的 Sync Term模块, 用于接收所述读写请求; 基于写 请求将待写入数据存储在所述第二宿主机的本地磁盘上; 或者基于读 请求从所述第二宿主机的本地磁盘上获取指定数据, 并将所述指定数 据发送给所述备份宿主机的 Sync Orig模块;
所述备份宿主机的 Sync Orig模块, 用于接收所述指定数据并将所述指 定数据发送给所述备份宿主机的 Qemu模块;
所述备份宿主机的 Qemu模块, 用于将所述指定数据发送给所述备份 宿主机的客户操作系统。
[权利要求 9] 根据权利要求 6所述的虚拟机快速恢复装置, 其特征在于, 所述数据 备份单元包括:
所述第一宿主机的客户操作系统, 用于接收读写请求, 并将所述读写 请求放入环形缓冲区;
所述第一宿主机的 Qemu模块, 用于从所述环节缓冲区获取所述读写 请求; 所述 Qemu模块基于读请求, 从所述第一宿主机的本地磁盘上 获取指定数据; 或者所述 Qemu模块基于写请求, 将待写入数据存储 在所述第一宿主机的本地磁盘上; 并将所述写请求发送给主机操作系 统的 Sync Orig模块;
所述主机操作系统的 Sync Orig模块, 用于将所述写请求发送给所述第 二宿主机的 Sync Term模块;
所述第二宿主机的 Sync Term模块, 用于接收所述写请求, 并将所述 写请求对应的待写入数据存储在所述第二宿主机的本地磁盘上。
[权利要求 10] 根据权利要求 6-9任一项所述的虚拟机快速恢复装置, 其特征在于 , 所述请求判断单元, 包括:
第一判断子单元, 用于使第二宿主机判断当前运行指标是否达到预设 条件;
第一同步子单元, 用于在达到预设条件吋, 将所述第二宿主机上备份 的第一宿主机的虚拟机上的读写请求同步到备份宿主机上; 第二判断子单元, 用于判断所述第二宿主机上是否存在未同步数据; 第一确定子单元, 用于在存在未同步数据时, 确定未完成第二宿主机 到备份宿主机的全量数据同步;
第二确定子单元, 用于在不存在未同步数据时, 确定已完成第二宿 主机到备份宿主机的全量数据同步, 向所述备份宿主机发送同步已完 成通知。
[权利要求 11] 一种虚拟机快速恢复系统, 其特征在于, 包括第一宿主机、 第二宿主 机和备份宿主机; 所述第一宿主机、 第二宿主机和所述第三宿主机各 设有一处理器, 所述处理器执行如下步骤:
将第一宿主机和第二宿主机结成存储 peer对, 使所述第一宿主机的虚 拟机上的读写请求在所述第二宿主机备份;
当所述第一宿主机宕机或关机吋, 备份宿主机启动所述第一宿主机的 虚拟机;
备份宿主机上启动的虚拟机接收调用方发送的读写请求, 并判断是否 完成第二宿主机到备份宿主机的全量数据同步; 若未完成第二宿主机 到备份宿主机的全量数据同步, 则将所述读写请求发送给所述第二宿 主机;
所述第二宿主机接收所述读写请求, 并基于写请求将待写入数据存储 在所述第二宿主机上, 或者基于读请求获取指定数据并将所述指定数 据发送给备份宿主机;
所述备份宿主机将所述指定数据发送给所述调用方。
[权利要求 12] 根据权利要求 11所述的虚拟机快速恢复系统, 其特征在于, 还包括: 若已完成第二宿主机到备份宿主机的全量数据同步, 则在所述备份宿 主机上执行所述读写请求, 并使备份宿主机的虚拟机上的读写请求在 所述第二宿主机备份。
[权利要求 13] 根据权利要求 11所述的虚拟机快速恢复系统, 其特征在于, 还包括: 所述备份宿主机的客户操作系统接收所述读写请求, 并将所述读写请 求放入环形缓冲区;
所述备份宿主机的 Qemu模块从所述环形缓冲区中获取所述读写请求
, 并将所述读写请求发送给主机操作系统上的 Sync
Orig模块; 所述 Sync Orig模块将所述读写请求发送给所述第二宿主机 所述第二宿主机的 Sync Term模块接收所述读写请求; 基于写请求将 待写入数据存储在所述第二宿主机的本地磁盘上; 或者基于读请求从 所述第二宿主机的本地磁盘上获取指定数据, 并将所述指定数据发送 给所述备份宿主机的 Sync Orig模块;
所述备份宿主机的 Sync Orig模块接收所述指定数据并将所述指定数据 发送给所述备份宿主机的 Qemu模块;
所述备份宿主机的 Qemu模块将所述指定数据发送给所述备份宿主机 的客户操作系统。
[权利要求 14] 根据权利要求 11所述的虚拟机快速恢复系统, 其特征在于, 所述将所 述第一宿主机的虚拟机的数据在所述第二宿主机上备份, 包括: 所述第一宿主机的客户操作系统接收读写请求, 并将所述读写请求放 入环形缓冲区;
所述第一宿主机的 Qemu模块从所述环节缓冲区获取所述读写请求; 所述 Qemu模块基于读请求, 从所述第一宿主机的本地磁盘上获取指 定数据; 或者所述 Qemu模块基于写请求, 将待写入数据存储在所述 第一宿主机的本地磁盘上; 并将所述写请求发送给主机操作系统的 Sy nc Orig模块;
所述主机操作系统的 Sync Orig模块将所述写请求发送给所述第二宿主 机的 Sync Term模块;
所述第二宿主机的 Sync Term模块接收所述写请求, 并将所述写请求 对应的待写入数据存储在所述第二宿主机的本地磁盘上。
[权利要求 15] 根据权利要求 11- 14任一项所述的虚拟机快速恢复系统, 其特征在于 , 还包括:
所述第二宿主机判断当前运行指标是否达到预设条件;
若是, 则将所述第二宿主机上备份的第一宿主机的虚拟机上的读写请 求同步到备份宿主机上;
判断所述第二宿主机上是否存在未同步数据;
若存在, 则未完成第二宿主机到备份宿主机的全量数据同步; 若不存在, 则已完成第二宿主机到备份宿主机的全量数据同步, 向所 述备份宿主机发送同步已完成通知。 根据权利要求 11所述的虚拟机快速恢复系统, 其特征在于, 所述第一 宿主机、 第二宿主机和备份宿主机均还包括与所述处理器相连的用户 交互装置;
所述第一宿主机和所述第二宿主机上的用户交互装置, 用于分别接收 用户输入的第一备份存储指令和第二备份存储指令, 基于所述第一备 份存储指令和所述第二备份存储指令将所述第一宿主机和第二宿主机 结成存储 peer对; 所述第一备份存储指令和第二备份存储指令包括同 一 peer对 ID;
所述备份宿主机上的用户交互装置, 用于接收用户输入的虚拟机启动 指令, 以使所述第一宿主机宕机或关机吋, 在所述备份宿主机上启动 所述第一宿主机的虚拟机; 所述虚拟机启动指令包括所述 peer对 ID。 根据权利要求 11所述的虚拟机快速恢复系统, 其特征在于, 所述备份 宿主机还包括与所述处理器相连的网络接口, 所述网络接口用于接收 所述调用方发送的读写请求, 并将所述指定数据发送给所述调用方。 根据权利要求 11所述的虚拟机快速恢复系统, 其特征在于, 所述第一 宿主机上的存储器设有数据库, 所述数据库用于存储第一宿主机的虚 拟机上的读写请求对应的数据;
所述第二宿主机上的存储器设有数据库, 所述数据库用于存储第一宿 主机的虚拟机上的读写请求对应的数据, 并存储在备份宿主机上启动 所述第一宿主机的虚拟机上的读写请求对应的数据;
所述备份宿主机上的存储器设有数据库, 所述数据库用于存储第一 宿主机的虚拟机上的读写请求对应的数据, 并存储在备份宿主机上启 动所述第一宿主机的虚拟机上的读写请求对应的数据。
PCT/CN2017/079912 2016-12-28 2017-04-10 虚拟机快速恢复方法、装置和系统 WO2018120491A1 (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2018519449A JP6735820B2 (ja) 2016-12-28 2017-04-10 仮想マシンの高速復旧方法
SG11201803894WA SG11201803894WA (en) 2016-12-28 2017-04-10 Quick recovery method, device and system of a virtual machine
AU2017341159A AU2017341159B2 (en) 2016-12-28 2017-04-10 Quick recovery method, device and system of a virtual machine
EP17857672.4A EP3564815A4 (en) 2016-12-28 2017-04-10 FAST RECOVERY METHOD, DEVICE AND SYSTEM FOR VIRTUAL MACHINE
KR1020187015545A KR102067918B1 (ko) 2016-12-28 2017-04-10 가상 머신의 신속한 복원 방법, 장치 및 시스템
US15/772,798 US10740197B2 (en) 2016-12-28 2017-04-10 Quick recovery method, device and system of a virtual machine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201611240016.5 2016-12-28
CN201611240016.5A CN106708603B (zh) 2016-12-28 2016-12-28 虚拟机快速恢复方法及装置

Publications (1)

Publication Number Publication Date
WO2018120491A1 true WO2018120491A1 (zh) 2018-07-05

Family

ID=58903718

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/079912 WO2018120491A1 (zh) 2016-12-28 2017-04-10 虚拟机快速恢复方法、装置和系统

Country Status (8)

Country Link
US (1) US10740197B2 (zh)
EP (1) EP3564815A4 (zh)
JP (1) JP6735820B2 (zh)
KR (1) KR102067918B1 (zh)
CN (1) CN106708603B (zh)
AU (1) AU2017341159B2 (zh)
SG (1) SG11201803894WA (zh)
WO (1) WO2018120491A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107168774B (zh) * 2017-06-14 2020-11-10 北京云联万维技术有限公司 一种基于本地存储的虚拟机迁移方法及系统
JP7006461B2 (ja) * 2018-04-02 2022-01-24 株式会社デンソー 電子制御装置および電子制御システム
CN109298977A (zh) * 2018-10-19 2019-02-01 深信服科技股份有限公司 一种虚拟机业务快速恢复方法、系统、装置及存储介质
CN111240889A (zh) * 2018-11-29 2020-06-05 阿里巴巴集团控股有限公司 数据备份系统和方法以及电子设备
CN111090491B (zh) * 2019-07-03 2023-10-10 杭州海康威视系统技术有限公司 虚拟机任务状态的恢复方法、装置及电子设备
CN111221561B (zh) * 2020-01-14 2024-05-31 平安科技(深圳)有限公司 流表更新方法、装置、系统、计算机设备及存储介质
US11509487B2 (en) * 2020-03-16 2022-11-22 Kaseya Limited System for rollout of certificates to client and server independent of public key infrastructure
CN113900716B (zh) * 2021-09-29 2023-05-30 武汉噢易云计算股份有限公司 桌面启动的管理方法及装置
CN113918284B (zh) * 2021-10-13 2022-08-02 江苏安超云软件有限公司 云主机批量迁移的方法及装置、电子设备和存储介质
CN114760242B (zh) * 2022-03-30 2024-04-09 深信服科技股份有限公司 虚拟路由器的迁移方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559108A (zh) * 2013-11-11 2014-02-05 中国科学院信息工程研究所 一种基于虚拟化实现主备故障自动恢复的方法及系统
CN103838593A (zh) * 2012-11-22 2014-06-04 华为技术有限公司 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机
CN104331318A (zh) * 2014-10-27 2015-02-04 上海斐讯数据通信技术有限公司 一种嵌入式双系统及其工作方法
CN105159798A (zh) * 2015-08-28 2015-12-16 浪潮集团有限公司 一种虚拟机的双机热备方法、双机热备管理服务器和系统
US20160110127A1 (en) * 2014-10-17 2016-04-21 Emc Corporation Enabling non-volatile random access to data

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
KR101007279B1 (ko) * 2007-12-17 2011-01-13 한국전자통신연구원 가상 머신 디스크 풀을 이용한 가상 머신 프로비저닝 방법 및 시스템
US8893147B2 (en) * 2012-01-13 2014-11-18 Ca, Inc. Providing a virtualized replication and high availability environment including a replication and high availability engine
KR20140140719A (ko) * 2013-05-30 2014-12-10 삼성에스디에스 주식회사 가상 머신 동기화 장치 및 시스템과 이를 이용한 장애 처리 방법
US9529617B2 (en) * 2014-03-21 2016-12-27 Ca, Inc. Instant virtual machines
KR102174692B1 (ko) * 2014-03-26 2020-11-05 에스케이텔레콤 주식회사 가상화 환경에서의 장애 처리 방법
KR20160012863A (ko) * 2014-07-24 2016-02-03 삼성전자주식회사 가상 머신을 실행하는 전자 장치 및 가상 머신을 실행하는 방법
CN104965757B (zh) * 2015-01-21 2018-03-30 深圳市腾讯计算机系统有限公司 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
US9632881B1 (en) * 2015-03-24 2017-04-25 EMC IP Holding Company LLC Replication of a virtual distributed volume

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103838593A (zh) * 2012-11-22 2014-06-04 华为技术有限公司 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机
CN103559108A (zh) * 2013-11-11 2014-02-05 中国科学院信息工程研究所 一种基于虚拟化实现主备故障自动恢复的方法及系统
US20160110127A1 (en) * 2014-10-17 2016-04-21 Emc Corporation Enabling non-volatile random access to data
CN104331318A (zh) * 2014-10-27 2015-02-04 上海斐讯数据通信技术有限公司 一种嵌入式双系统及其工作方法
CN105159798A (zh) * 2015-08-28 2015-12-16 浪潮集团有限公司 一种虚拟机的双机热备方法、双机热备管理服务器和系统

Also Published As

Publication number Publication date
JP6735820B2 (ja) 2020-08-05
SG11201803894WA (en) 2018-08-30
AU2017341159B2 (en) 2019-07-25
KR102067918B1 (ko) 2020-01-17
US10740197B2 (en) 2020-08-11
AU2017341159A1 (en) 2018-07-12
CN106708603B (zh) 2019-04-26
JP2019504374A (ja) 2019-02-14
KR20180087278A (ko) 2018-08-01
EP3564815A1 (en) 2019-11-06
CN106708603A (zh) 2017-05-24
US20190272219A1 (en) 2019-09-05
EP3564815A4 (en) 2020-09-02

Similar Documents

Publication Publication Date Title
WO2018120491A1 (zh) 虚拟机快速恢复方法、装置和系统
US10108508B2 (en) Protecting virtual machines against storage connectivity failures
US9727429B1 (en) Method and system for immediate recovery of replicated virtual machines
US10511674B2 (en) Gesture based switching of virtual desktop clients
US9552405B1 (en) Methods and apparatus for recovery of complex assets in distributed information processing systems
US9262212B2 (en) Systems and methods for migrating virtual machines
EP1998255B1 (en) Virtual computer system and control method thereof
EP2686804B1 (en) Techniques for securing a checked-out virtual machine in a virtual desktop infrastructure
US20160065690A1 (en) System and method for selecting virtual desktop environment
US20140059380A1 (en) Protecting paired virtual machines
US20140215172A1 (en) Providing virtual machine migration reliability using an intermediary storage device
US9940283B2 (en) Application sharing in multi host computing systems
JP2009181419A (ja) 通信装置、方法及びプログラム
WO2014079194A1 (zh) 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机
US9779106B2 (en) Application management method and device
WO2019100589A1 (zh) 虚拟机快速扩容方法、装置、设备以及存储介质
WO2015180124A1 (zh) 终端设备显示方法和终端设备
US20150370657A1 (en) Protecting virtual machines from network failures
US9286088B2 (en) User interface for interaction with virtual machine
US10409577B2 (en) Hybrid application delivery that combines download and remote access
US10180853B2 (en) Session reliability for a redirected mass storage device
TWI778295B (zh) 資訊處理系統、其之電源作業控制器以及於叢集作業期間處理電源請求的方法
US11487559B2 (en) Dynamically switching between pointer modes
JP5422705B2 (ja) 仮想計算機システム
JP5422706B2 (ja) 管理システム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018519449

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 11201803894W

Country of ref document: SG

ENP Entry into the national phase

Ref document number: 20187015545

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2017341159

Country of ref document: AU

Date of ref document: 20170410

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17857672

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2017857672

Country of ref document: EP

Effective date: 20190729