Method and system for transparently failing over application configuration information in a server cluster
First Claim
1. In a server cluster including at least two server systems, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, locally maintaining application configuration information for the non-cluster-aware application on the first and second systems, the application configuration information separately maintained and used by an instance of the application executing on each system to determine at least part of an execution environment, running an instance of the non-cluster-aware application on the first system, the non-cluster-aware application instance making a change to the application configuration information, detecting the change to the application configuration information on the first system, and, in response to the change, making data representative of the change available to the second system, and running another instance of the non-cluster-aware application on the second system using the data made available thereto.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and system for transparently failing over a legacy application from a first system to a second system of a server cluster by tracking and checkpointing changes to application configuration information stored in a system'"'"'s local registry. When an application running on the first system makes a change to the application configuration information in a subtree of the registry, the change is detected and a snapshot of the subtree'"'"'s data is taken. The snapshot is written to a storage device shared by systems of the cluster, such as a quorum disk. When the application is failed over to a second system, the snapshot for that application is retrieved from the quorum disk and written to the registry of the second system in a corresponding subtree. The application is then run on the second system using the most-recent application configuration information as modified by the other system in the cluster.
249 Citations
32 Claims
- 1. In a server cluster including at least two server systems, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, locally maintaining application configuration information for the non-cluster-aware application on the first and second systems, the application configuration information separately maintained and used by an instance of the application executing on each system to determine at least part of an execution environment, running an instance of the non-cluster-aware application on the first system, the non-cluster-aware application instance making a change to the application configuration information, detecting the change to the application configuration information on the first system, and, in response to the change, making data representative of the change available to the second system, and running another instance of the non-cluster-aware application on the second system using the data made available thereto.
- 13. In a server cluster including at least two server systems, a system for failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, a local registry on each of the first and second systems that are not replicas of one another, each local registry configured to store application configuration information of the non-cluster-aware application, the application configuration information used to determine at least part of an execution environment for instances of the application executing on each system, a storage device shared by the first and second systems, a notification mechanism in the first system configured to detect a change made by an instance of the application executing on the first system to a subtree in the registry associated with the non-cluster-aware application and to provide a notification in response thereto, a snapshot mechanism in the first system responsive to the notification and configured to read the registry and save subtree data to the storage device, and a restore mechanism in the second system configured to retrieve the subtree data from the storage device and to update the registry of the second system therewith such that the execution environment for an instance of the application executing on the second system corresponds to the execution environment of the first system.
-
18. In a server cluster, a method of using application configuration information with an application, comprising:
-
locally maintaining application configuration information for the application on a system of the cluster, the application configuration information accessed by the application to determine at least part of an execution environment for the application when executed on the system;
determining if a cluster checkpoint of data corresponding to the application configuration information for the application is present on a storage device shared by systems in the cluster; and
if the cluster checkpoint exists, updating the application configuration information of the local system with the data in the storage device, running the application with the updated application configuration information, and updating the cluster checkpoint on the storage device to correspond to local changes made by the application to the application configuration information; and
if the checkpoint does not exist, creating a cluster checkpoint on the storage device, running the application with the locally maintained application configuration information, and updating the cluster checkpoint on the storage device to correspond to local changes made by the application to the application configuration information. - View Dependent Claims (19, 20, 22)
-
- 21. In a server cluster including at least two server systems that each have a local registry that is not a replica of the other, a method of failing over a non-cluster-aware application from a first system to a second system of the cluster, comprising, maintaining application configuration information for the non-cluster-aware application in the local registry of the first system, the application configuration information being used to determine at least part of an execution environment for an instance of the non-cluster-aware application when executed on the first system, running an instance of the non-cluster-aware application on the first system, detecting a change made by the application instance to the application configuration information in a subtree of the local registry, and, in response to the change, writing data of that subtree as subtree data to a storage device shared by systems of the cluster, terminating the instance of the non-cluster-aware application on the first system, reading the subtree data from the storage device, modifying the local registry of the second system with the subtree data read from the storage device, and running another instance of the non-cluster-aware application on the second system using the application configuration information stored in the local registry of the second system, including accessing the application configuration at the other instance such that an execution environment for the instance of the application executing on the second system corresponds to the execution environment of the first system.
- 25. In a server cluster having servers including a first system and a second system, a method, comprising, maintaining application configuration information for a non-cluster-aware application on the first system, the application configuration information being used by an instance of the non-cluster-aware application to determine at least part of an execution environment for that instance when executed on the first system, running the non-cluster-aware application on the first system making data representative of the application configuration information available to the second system, and running another instance of the non-cluster-aware application on the second system based on the data made available thereto, the other instance of the application accessing the data such that an execution environment for the instance of the application running on the second system corresponds to the execution environment of the first system.
Specification