System for live-migration and automated recovery of applications in a distributed system
First Claim
1. A server configured to deliver a service to at least one client connected to the server, the server operable in either of a master role or a slave role for each of a plurality of applications comprising:
- a network interface for connecting the server to at least one other similar server in a cluster of similar servers;
service delivery logic operable when the server is in a master role for an application for hosting that application to deliver the service to the client;
master logic operable when the server is in a master role for an application configured to perform one or more of replicating changes in data of that application to a configurable number of servers of the cluster, and taking snapshots of a file system serving that application and replicating said snapshots to the configurable number of servers in the cluster;
slave logic operable when the server is in a slave role for an application hosted on another server in the cluster configured to receive replicated changes in data from a current master server of the cluster for that application and to maintain a version of said data for that application, and a file system mount handler configured to receive filesystem snapshots from the current master server for that application;
control logic configured to detect an event in the cluster and responsive to the event to autonomously switch the role of the server for one or more of the applications between slave and master, wherein a change of role from slave to master uses the maintained version to host the application and mounts a filesystem for that application using the maintained version of said data for that application or a received filesystem snapshot.
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 utilisation level.
0 Citations
18 Claims
-
1. A server configured to deliver a service to at least one client connected to the server, the server operable in either of a master role or a slave role for each of a plurality of applications comprising:
-
a network interface for connecting the server to at least one other similar server in a cluster of similar servers; service delivery logic operable when the server is in a master role for an application for hosting that application to deliver the service to the client; master logic operable when the server is in a master role for an application configured to perform one or more of replicating changes in data of that application to a configurable number of servers of the cluster, and taking snapshots of a file system serving that application and replicating said snapshots to the configurable number of servers in the cluster; slave logic operable when the server is in a slave role for an application hosted on another server in the cluster configured to receive replicated changes in data from a current master server of the cluster for that application and to maintain a version of said data for that application, and a file system mount handler configured to receive filesystem snapshots from the current master server for that application; control logic configured to detect an event in the cluster and responsive to the event to autonomously switch the role of the server for one or more of the applications between slave and master, wherein a change of role from slave to master uses the maintained version to host the application and mounts a filesystem for that application using the maintained version of said data for that application or a received filesystem snapshot. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system comprising a plurality of servers configured to deliver a service to at least one client connected to the plurality of servers, each server operable in either a master role or a slave role for each of a plurality of applications, each server comprising:
-
a respective network interface for connecting the respective server to at least one other server of the plurality of servers; respective service delivery logic operable when the respective server is in a master role for an application for hosting that application to deliver the service to the client; respective master logic operable when the respective server is in a master role for an application configured to perform one or more of replicating changes in data of that application to a configurable number of other servers of the plurality of servers, and taking snapshots of a file system serving that application and replicating said snapshots to the configurable number of servers in the cluster; respective slave logic operable when the respective server is in a slave role for an application hosted on another server of the plurality of servers configured to receive replicated changes in data from a current master server of the plurality of servers for that application and to maintain a respective version of said data for that application, and a file system mount handler configured to receive filesystem snapshots from the current master server for that application; respective control logic configured to detect an event in the plurality of servers and responsive to the event to autonomously switch the role of the respective server for one or more of the applications between slave and master, wherein a change of role from slave to master uses the respective maintained version to host the application and mounts a filesystem for that application using the maintained version of said data for that application or a received filesystem snapshot.
-
-
18. Computer software which, when executed at a server operable in either of a master role or a slave role for each of a plurality of applications and comprising a network interface for connecting the server to at least one other similar server in a cluster of similar servers, causes the server to implement:
-
service delivery logic operable when the server is in a master role for an application for hosting that application to deliver the service to the client; master logic operable when the server is in a master role for an application configured to perform one or more of replicating changes in data of that application to a configurable number of servers of the cluster, and taking snapshots of a file system serving that application and replicating said snapshots to the configurable number of servers in the cluster; slave logic operable when the server is in a slave role for an application hosted on another server in the cluster configured to receive replicated changes in data from a current master server of the cluster for that application and to maintain a version of said data for that application, and a file system mount handler configured to receive filesystem snapshots from the current master server for that application; control logic configured to detect an event in the cluster and responsive to the event to autonomously switch the role of the server for one or more of the applications between slave and master, wherein a change of role from slave to master uses the maintained version to host the application and mounts a filesystem for that application using the maintained version of said data for that application or a received filesystem snapshot.
-
Specification