High-availability network appliances and methods
First Claim
1. A system for high availability execution of primary applications, comprisingA. a first set digital data processors, each of which executes one or more primary applications,B. a second set of digital data processors, each of which has a plurality of virtual machines which, in turn, each executes an imaged application that comprises an image of a corresponding primary application,C. one or more agents, any of executing on or coupled to the digital data processors of the first and second set, the agents maintaining for each imaged application state/configuration information that reflects a substantially current state of the corresponding primary application,D. wherein at least one of the imaged applications is (i) maintained in a suspended state within its respective virtual machine and (ii) unsuspended so that said imaged application can be executed by that respective virtual machine from said substantially current state of the corresponding primary application using state/configuration information from a corresponding agent,E. wherein at least one imaged application is unsuspended, so that it can be executed by its respective virtual machine, upon failure or other condition of unavailability of the corresponding primary application, andF. wherein the unsuspended imaged application is executed in lieu of the corresponding primary application and wherein that imaged application is executed so as to provide a desired degree of throughput, functionality and/or responsiveness.
4 Assignments
0 Petitions
Accused Products
Abstract
The invention provides apparatus and systems for high availability execution of applications executing on one or more digital data processor platforms. For example, a system according to one aspect of the invention includes a first set digital data processors, each of which executes one or more applications. These are referred to as “primaries” or “primary applications.” A second set of digital data processors execute virtual machines, each of which, in turn, executes an image of a corresponding primary application. These are referred to as “imaged” or “imaged applications.” Each of the first and second sets may have one or more digital data processors. Agent functionality residing on and/or coupled to the digital data processors in the first and second sets maintains state/configuration information for each imaged application. That information, which reflects current or substantially current state of the corresponding primary application, is of such a nature as to permit the imaged application to take over applications processing, e.g., in the event the primary application fails or otherwise becomes unavailable. The agent functionality, according to related aspects of the invention, can monitor the primary applications (and/or the first set of digital data processors) and effect such a take over by a specific imaged application.
14 Citations
17 Claims
-
1. A system for high availability execution of primary applications, comprising
A. a first set digital data processors, each of which executes one or more primary applications, B. a second set of digital data processors, each of which has a plurality of virtual machines which, in turn, each executes an imaged application that comprises an image of a corresponding primary application, C. one or more agents, any of executing on or coupled to the digital data processors of the first and second set, the agents maintaining for each imaged application state/configuration information that reflects a substantially current state of the corresponding primary application, D. wherein at least one of the imaged applications is (i) maintained in a suspended state within its respective virtual machine and (ii) unsuspended so that said imaged application can be executed by that respective virtual machine from said substantially current state of the corresponding primary application using state/configuration information from a corresponding agent, E. wherein at least one imaged application is unsuspended, so that it can be executed by its respective virtual machine, upon failure or other condition of unavailability of the corresponding primary application, and F. wherein the unsuspended imaged application is executed in lieu of the corresponding primary application and wherein that imaged application is executed so as to provide a desired degree of throughput, functionality and/or responsiveness.
-
6. The system of clam 1, wherein the first set comprises a plurality of digital data processors and the second set has a single digital data processor.
-
10. A method for high availability execution of primary applications, comprising
A. executing, on each digital data processor of a first set of digital data processors, one or more primary applications B. executing, in a respective one of a plurality of virtual machines that themselves execute within each digital data processor of a second set of digital data processors, an imaged application that comprises an image of a corresponding primary application, and C. maintaining, with one or more agents that execute on or are coupled to the digital data processors of the first and second sets, for each imaged application state/configuration information that reflects a substantially current state of the corresponding primary application, D. maintaining at least one imaged application in a suspended state within its respective virtual machine, E. unsuspending the at least one imaged application so that said imaged application can be executed by its respective virtual machine from said substantially current state of the corresponding primary application using state/configuration information from a corresponding agent, F. wherein said unsuspending of said at least one imaged application, so that it can be executed by its respective virtual machine, is performed upon failure or other condition of unavailability of the corresponding primary application, G. increasing resources of the digital data processor in which the virtual machine of the unsuspended imaged application is executed, and H. executing the unsuspended imaged application in lieu of the corresponding primary application so as to provide a desired degree of throughput, functionality and/or responsiveness.
Specification