# US 10,372,565 B2 · Method and apparatus for failover processing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,372,565 B2
- Document ID: US10372565B2
- Status: Granted
- Kind: B2
- Application number: 15/627,598
- Filed: 2017-06-20
- Published: 2017-12-21
- Granted: 2019-08-06
- Earliest claimed: 2016-06-21
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Peter Hailin Peng; Yong Zou; Peng Wu
- Web page: https://patentgrep.com/patent/US10372565B2

## CPC

- G06F 11/203: {using migration}
- G06F 11/2025: {using centralised failover control functionality}
- G06F 11/2043: {where the redundant components share a common memory address space}
- G06F 2201/805: Real-time
- G06F 2201/815: Virtual
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Embodiments of the present disclosure provide a method and apparatus for failover. In an embodiment is provided a method implemented at a first node in a cluster comprising a plurality of heterogeneous nodes. The method comprises: determining whether an application at a second node in the cluster is failed; and in response to determining that the application is failed, causing migration of data and services associated with the application from the second node to a third node in the cluster, the migration involving at least one node heterogeneous to the second node in the cluster. The present disclosure further provides a method implemented at the third node in the cluster and corresponding devices and computer program products.

## Claims

### Claim 1

A method implemented in a cluster, the cluster comprising a plurality of heterogeneous nodes, the method comprising the steps, performed at a first node of the cluster, of:
determining whether an application at a second node in the cluster is failed; and
in response to determining that the application is failed, causing migration of data and services associated with the application from the second node to a third node in the cluster, the migration involving at least one node heterogeneous to the second node in the cluster;
wherein the first node is a slave node of the cluster, and the first and second nodes are the same node, and wherein causing the migration includes:
in response to determining that the application is failed, sending a failover request for the migration to a master node of the cluster, at least one of the master node and the third node being heterogeneous to the first node; and
initiating the migration in response to receiving from the third node a message indicating an initiation of a failover process.

### Claim 2 (depends on 1)

The method according to claim 1, wherein causing the migration comprises:
causing at least one of a process, a library and configuration information associated with the application to be migrated from the second node to the third node.

### Claim 3 (depends on 1)

The method according to claim 1, wherein the initiating comprises:
ceasing a service failover unit associated with the application, the service failover unit being a container packaged with an instance of the application and at least one of a process, a library and configuration information associated with the application.

### Claim 4 (depends on 3)

The method according to claim 3, wherein the initiating comprises:
detaching a storage device associated with the application.

### Claim 5 (depends on 3)

The method according to claim 3, further comprising:
storing, in a storage device, at least one of a process, a library and configuration information associated with the application in the service failover unit.

### Claim 6 (depends on 1)

The method according to claim 1, wherein the first node is a master node of the cluster, and the first and second nodes are the same node, and causing the migration comprises:
in response to determining that the application is failed, broadcasting, in the cluster, a message for re-selecting a new master node of the cluster;
in response to receiving a message indicating that a fourth node in the cluster has already been selected as the new master node, sending the fourth node a failover request for the migration, at least one of the third and fourth nodes being heterogeneous to the first node; and
initiating the migration in response to receiving, from the third node, a message indicating an initiation of a failover process.

### Claim 7 (depends on 1)

The method according to claim 1, wherein the first node is a slave node of the cluster, and the first and second nodes are the same node, and the method further comprises:
broadcasting, in the cluster, a first election request to select the first node as the master node of the cluster in response to at least one of:
failing to receive information from the current master node of the cluster within a predetermined time period, and
receiving, from the current master node, a message indicating re-election of a master node of the cluster.

### Claim 8 (depends on 7)

The method according to claim 7, further comprising:
receiving, from a fifth node in the cluster, a second election request to select the fifth node as the master node; and
determining whether to select the first node or the fifth node as the master node based on at least one of:
a comparison between first time at which the first node sends the first election request and second time at which the fifth node sends the second election request,
a comparison between first starting time of the first node and second starting time of the fifth node, and
a comparison between a first Internet Protocol (IP) address of the first node and a second IP address of the fifth node.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
in response to determining that the first node is selected as the master node, incrementing a count of elections associated with the first node; and
in response to the count of elections exceeding a threshold count, broadcasting, in the cluster, a message indicating that the first node has already been selected as the master node.

### Claim 10 (depends on 1)

The method according to claim 1, wherein the first node is the master node of the cluster and the second node is the slave node of the cluster, and the determining comprises:
determining whether a failover request for the migration has, already been received from the second node, at least one of the first and third nodes being heterogeneous to the second node.

### Claim 11 (depends on 10)

The method according to claim 10, wherein causing the migration comprises:
in response to determining that the application at the second node is failed by determining that the rollover request is received from the second node, determining whether the third node is available to be a destination node for the migration; and
in response to the third node being available to be the destination node, sending the third node a message indicating that the third node is to serve as the destination node.

### Claim 12 (depends on 11)

The method according to claim 11, wherein the sending comprises:
sending, to the third node, at least an identification of the service failover unit associated with the application, the service failover unit being a container packaged with an instance of the application and at least one of a process, a library and configuration information associated with the application.

### Claim 13 (depends on 12)

The method according to claim 12, wherein the sending further comprises:
sending, to the third node, at least one of an identification of the second node, an identification of the application, and an identification of a storage device associated with the application.

### Claim 14 (depends on 1)

The method according to claim 1, wherein the first node is a master node of the cluster, and the method further comprises:
in response to determining that a sixth node serving as a virtual machine in the cluster is failed, selecting a node homogeneous with the sixth node in the cluster as a failover node of the sixth node; and
sending, to the selected node, a message indicating whether the selected node is to serve as an active failover node or a backup failover node.

### Claim 15 (depends on 1)

The method according to claim 1, further including the steps, performed at the third node, of:
determining whether the data and services associated with an application at a second node in the cluster are to be migrated to the third node; and
in response to determining the migration, obtaining the data and services associated with the application.

### Claim 16 (depends on 15)

The method according to claim 15, further comprising the step, performed at the third node, of:
in response to determining the migration, sending, to the second node, a message indicating an initiation of a failover process.

### Claim 17 (depends on 15)

The method according to claim 15, wherein the obtaining comprises:
obtaining, from a storage device, at least one of a process, a library and configuration information associated with the application.

### Claim 18 (depends on 17)

The method according to claim 17, further comprising the step, performed at the third node, of:
using at least one of the obtained process, library and configuration information associated with the application to start a second service failover unit associated with the application, the second service failover unit being a container packaged with an instance of the application and the at least one of the a process, a library and configuration information associated with the application.

### Claim 19 (depends on 15)

The method according to claim 15, wherein the third node is a slave node of the cluster, and the determining comprises:
determining whether a message indicating that the third node is to serve as a destination node for the migration has been received from the master node of the cluster, at least one of the master node and the third node being heterogeneous to the second node.

### Claim 20

A computerized device configured and operative as a first node of a cluster of heterogeneous nodes, comprising:
a central processing unit;
memory coupled to the central processing unit; and
I/O interface circuitry coupled to the memory and central processing unit to connect the computerized device, as the first node, to other nodes of the cluster,
the memory including computer program instructions executed by the central processing unit to cause the computerized device, as the first node, to:
determine whether an application at a second node in the cluster is failed; and
in response to determining that the application is failed, cause migration of data and services associated with the application from the second node to a third node in the cluster, the migration involving at least one node heterogeneous to the second node in the cluster,
wherein the first node is a slave node of the cluster, and the first and second nodes are the same node, and wherein causing the migration includes:
in response to determining that the application is failed, sending a failover request for the migration to a master node of the cluster, at least one of the master node and the third node being heterogeneous to the first node; and
initiating the migration in response to receiving from the third node a message indicating an initiation of a failover process.
