System for live-migration and automated recovery of applications in a distributed system
First Claim
1. A system for dynamic migration of applications between servers, the system comprising:
- a plurality of servers for hosting applications, the plurality of servers comprising at least a master server and one or more slave servers, one or more applications executing on said master server, each server comprising at least a protocol handler configured to receive requests for said one or more applications and configured to pause incoming requests for said one or more applications during a migration of said applications between servers, and the master server comprising master logic configured to replicate changes in application data hosted on the master server to one or more slave servers; and
a load balancer for measuring load on one of the plurality of servers caused by one or more applications hosted on that servers, the load balancer being configured to initiate migration of one or more applications from the master server to a slave server when a predetermined load condition of the master server is met;
wherein said migration of the one or more applications is comprised of mounting said one or more applications on said slave server using said application data replicated by said master logic to said slave server; and
wherein said migration is triggered when the load of the current master is greater than an average value of loads and a damping factor (Q).
5 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for distribution of applications amongst a number of servers, ensuring that changes to application data on a master for that application are asynchronously replicated to a number of slaves for that application. Servers may be located in geographically diverse locations; the invention permits data replication over high-latency and lossy network connections and failure-tolerance under hardware and network failure conditions. Access to applications is mediated by a distributed protocol handler which allows any request for any application to be addressed to any server, and which, when working in tandem with the replication system, pauses connections momentarily to allow seamless, consistent live-migration of applications and their state between servers. Additionally, a system which controls the aforementioned live-migration based on dynamic measurement of load generated by each application and the topological preferences of each application, in order to automatically keep servers at an optimum utilization level.
-
Citations
18 Claims
-
1. A system for dynamic migration of applications between servers, the system comprising:
-
a plurality of servers for hosting applications, the plurality of servers comprising at least a master server and one or more slave servers, one or more applications executing on said master server, each server comprising at least a protocol handler configured to receive requests for said one or more applications and configured to pause incoming requests for said one or more applications during a migration of said applications between servers, and the master server comprising master logic configured to replicate changes in application data hosted on the master server to one or more slave servers; and a load balancer for measuring load on one of the plurality of servers caused by one or more applications hosted on that servers, the load balancer being configured to initiate migration of one or more applications from the master server to a slave server when a predetermined load condition of the master server is met; wherein said migration of the one or more applications is comprised of mounting said one or more applications on said slave server using said application data replicated by said master logic to said slave server; and wherein said migration is triggered when the load of the current master is greater than an average value of loads and a damping factor (Q). - View Dependent Claims (2, 3, 4)
-
-
5. Computer software which, when executed by appropriate processing means, causes the processing means to implement a method of managing a plurality of applications hosted by a cluster of servers which each have an interface connectable to at least one client by a network, each application delivering a service at the client, comprising:
-
electing a server of the cluster as a master server, the master server hosting at least one live application and electing a configurable number of servers in the cluster as slave servers; replicating changes in application data of the live application hosted on the master server to said elected slave servers whereby each elected slave server maintains at least one version of the application data of the live application; transferring hosting of the application from the master server to one of the elected slave servers in response to an event in the cluster, wherein the elected slave server mounts the application using its version of the application data and becomes a new master server; wherein said event in the cluster comprises detecting an alternative master server in the cluster based on the load of the current master being greater than an average value of loads of all of the servers in the cluster and a damping factor (Q). - View Dependent Claims (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. Computer software which, when executed by appropriate processing means, causes the processing means to implement a system for dynamic migration of applications between servers, the system comprising:
-
one or more servers comprising a master server and one or more slave servers, one or more applications on each of said master server and one or more slave servers, a protocol handler configured to receive requests for said one or more applications and configured to pause incoming requests for said one or more applications during a migration of applications between servers, and master logic configured to replicate changes in application data hosted on the master server to one or more of said slave servers; a load balancer configured to measure load on the one or more servers caused by the one or more applications, and configured to initiate a migration of one or more applications from the master server to a slave server when the load of the master server is greater than an average value of loads and a damping factor (Q); and wherein said migration is comprised of mounting said one or more applications on said slave server using said application data replicated by said master logic.
-
-
18. A system, comprising:
-
one or more servers comprising a master server and one or more slave servers, one or more applications on each of said master server and one or more slave servers, a protocol handler configured to receive requests for said one or more applications and configured to pause incoming requests for said one or more applications during a migration of applications between servers, and master logic configured to replicate changes in application data hosted on the master server to one or more of said slave servers; a load balancer configured to measure load on the one or more servers caused by the one or more applications, and configured to initiate a migration of one or more applications from the master server to a slave server when the load of the master server is greater than an average value of loads and a damping factor (Q); and wherein said migration is comprised of mounting said one or more applications on said slave server using said application data replicated by said master logic.
-
Specification