Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
First Claim
1. A method for minimizing interruptions to a software service, said method comprising:
- communicating with a first virtual machine executing said software service;
causing the execution of said first virtual machine to be halted;
receiving and storing a set of state information corresponding to said first virtual machine for utilization by a second virtual machine when said first virtual machine becomes unavailable;
causing portions of a memory state of said first virtual machine to be marked;
causing the execution of said first virtual machine to be resumed;
receiving and storing, during execution of said first virtual machine, portions of the memory state of said first virtual machine, wherein marked portions of the memory state are queued for delivery when said first virtual machine indicates that the marked portion will be modified; and
causing the execution of said software service on said second virtual machine using the set of state information and received portions of the memory state when said first virtual machine becomes unavailable.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention is directed to systems and methods for providing disaster recovery services using virtual machines. The invention provides an inexpensive and minimally intrusive way to provide disaster recovery services including recovery of the state of computer processors and devices. The system includes a production host and a backup host that communicate via a communications link. The state of the processor and devices on the production host are periodically stored onto backup host and can be restored in the event of an emergency. Additionally, the invention includes two business methods for utilizing the system and methods for providing disaster recovery services.
-
Citations
14 Claims
-
1. A method for minimizing interruptions to a software service, said method comprising:
-
communicating with a first virtual machine executing said software service; causing the execution of said first virtual machine to be halted; receiving and storing a set of state information corresponding to said first virtual machine for utilization by a second virtual machine when said first virtual machine becomes unavailable; causing portions of a memory state of said first virtual machine to be marked; causing the execution of said first virtual machine to be resumed; receiving and storing, during execution of said first virtual machine, portions of the memory state of said first virtual machine, wherein marked portions of the memory state are queued for delivery when said first virtual machine indicates that the marked portion will be modified; and causing the execution of said software service on said second virtual machine using the set of state information and received portions of the memory state when said first virtual machine becomes unavailable. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for minimizing interruptions to a software service, said system comprising:
-
at least one processor; at least one memory communicatively coupled to said at least one processor, the memory having stored therein computer-executable instructions that, when executed by said at least one processor, cause the system to; execute said software service on a first virtual machine; store a set of state information corresponding to said first virtual machine less a memory portion of the state information, the set of state information for utilization by a second virtual machine when said first virtual machine becomes unavailable; mark sections of said memory portion; queue a portion of the marked sections when said first virtual machine indicates that said portion of the marked sections will be modified; store the queued portion of the marked sections during execution of said first virtual machine; and execute said software service on said second virtual machine using the set of state information and stored portions of the marked sections when said first virtual machine becomes unavailable. - View Dependent Claims (7, 8)
-
-
9. A computer-readable storage medium comprising computer-readable instructions for minimizing interruptions to a software service, said computer-readable instructions comprising instructions for:
-
causing the execution of a first virtual machine to be halted; transmitting a set of state information corresponding to said first virtual machine for storage and utilization by a second virtual machine when said first virtual machine becomes unavailable, wherein the set of state information does not include a memory state of said first virtual machine; marking sections of said memory state; causing the execution of said first virtual machine to be resumed; queuing one of the marked sections of said memory state for delivery when said first virtual machine indicates that said one of the marked portions will be modified; and transmitting said one of the marked sections of said memory state during execution of said first virtual machine for execution of said software service on said second virtual machine using the set of state information and stored portions of the marked sections when said first virtual machine becomes unavailable. - View Dependent Claims (10, 11)
-
-
12. A hardware control device for minimizing interruptions to a software service, said device comprising:
-
means for communicating with a first virtual machine executing said software service; means for receiving and storing a set of state information less a memory portion of said state information, the state information corresponding to said first virtual machine for utilization by a second virtual machine when said first virtual machine becomes unavailable; means for marking said memory portion of said state information; means for queuing one of the marked sections when said first virtual machine indicates that said one of the marked sections will be modified; means for receiving and storing said one of the marked sections of said memory portion during execution of said first virtual machine; and means for causing the execution of said software service on said second virtual machine using the set of state information and stored portions of the marked sections when said first virtual machine becomes unavailable. - View Dependent Claims (13, 14)
-
Specification