# US 10,503,619 B2 · Implementing automatic switchover

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

- Number: US 10,503,619 B2
- Document ID: US10503619B2
- Status: Granted
- Kind: B2
- Application number: 15/820,851
- Filed: 2017-11-22
- Published: 2018-04-05
- Granted: 2019-12-10
- Earliest claimed: 2015-10-22
- Assignees: NetApp, Inc.
- Applicants: NetApp Inc.
- Inventors: Hrishikesh Keremane; Vijay Singh
- Web page: https://patentgrep.com/patent/US10503619B2

## CPC

- G06F 11/2069: {Management of state, configuration or failover}
- G06F 11/0727: {in a storage system, e.g. in a DASD or network based storage system (drivers for digital recording or reproducing units G06F3/06; circuits for error detection or correction within digital recording or reproducing units G11B20/18; for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/2092: {Techniques of failing over between control units}
- G06F 2201/805: Real-time
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

One or more techniques and/or computing devices are provided for automatic switchover implementation. For example, a first storage controller, of a first storage cluster, may have a disaster recovery relationship with a second storage controller of a second storage cluster. In the event the first storage controller fails, the second storage controller may automatically switchover operation from the first storage controller to the second storage controller for providing clients with failover access to data previously accessible to the clients through the first storage controller. The second storage controller may detect, cross-cluster, a failure of the first storage controller utilizing remote direct memory access (RDMA) read operations to access heartbeat information, heartbeat information stored within a disk mailbox, and/or service processor traps. In this way, the second storage controller may efficiently detect failure of the first storage controller to trigger automatic switchover for non-disruptive client access to data.

## Claims

### Claim 1

A method comprising:
determining that a memory section is designated for heartbeat information exchange from a first node to a second node;
performing a remote direct memory access read operation to access the memory section for obtaining a current heartbeat status of the first node;
determining a write caching synchronization state between the first node and the second node; and
initiating an automatic switchover operation from the first node to the second node based upon the current heartbeat status indicating a failure of the first node and the write caching synchronization state indicating a synchronous state.

### Claim 2 (depends on 1)

The method of claim 1, wherein the current heartbeat status specifies a storage controller reboot as the failure.

### Claim 3 (depends on 1)

The method of claim 1, wherein the current heartbeat status specifies a state transition of the first node.

### Claim 4 (depends on 1)

The method of claim 1, wherein the heartbeat information exchange corresponds to a series of sequence numbers used to indicate progress of the first node.

### Claim 5 (depends on 1)

The method of claim 1, wherein the initiating an automatic switchover operation comprises:
evaluating responsiveness to a communication signal sent from the second node to the first node to determine whether the failure is a false trigger.

### Claim 6 (depends on 1)

The method of claim 1, comprising:
initiating a manual switchover operation based upon a determination that storage and a main controller of a cluster comprising the first node are unavailable.

### Claim 7 (depends on 1)

The method of claim 1, comprising:
refraining from initiating the automatic switchover operation based upon the write caching synchronization state indicating a non-synchronous state.

### Claim 8 (depends on 1)

The method of claim 1, comprising:
reading the write caching synchronization state from a first disk mailbox of the first node.

### Claim 9 (depends on 1)

The method of claim 1, wherein the first node is configured according to a single controller cluster configuration and the second node is configured according to the single controller cluster configuration.

### Claim 10 (depends on 1)

The method of claim 1, wherein the initiating an automatic switchover operation comprises:
initiating the automatic switchover operation based upon both the current heartbeat status and a second current heartbeat status, read from a first disk mailbox, indicating the failure.

### Claim 11 (depends on 10)

The method of claim 10, comprising:
determining the failure as a power loss failure based upon both the current heartbeat status and the second current heartbeat status indicating the failure.

### Claim 12 (depends on 10)

The method of claim 10, comprising:
initiating the automatic switchover operation after a threshold timeout based upon both the current heartbeat status and the second current heartbeat status indicating the failure.

### Claim 13

A non-transitory machine readable medium comprising machine executable code which when executed by at least one machine, causes the machine to:
determine that a memory section is designated for heartbeat information exchange from a first node to a second node;
perform a remote direct memory access read operation to access the memory section for obtaining a current heartbeat status of the first node;
determine a write caching synchronization state between the first node and the second node; and
initiate an automatic switchover operation from the first node to the second node based upon the current heartbeat status indicating a failure of the first node and the write caching synchronization state indicating a synchronous state.

### Claim 14 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the machine executable code causes the machine to:
initiate the automatic switchover operation based upon both the current heartbeat status and a second current heartbeat status, read from a first disk mailbox, indicating the failure.

### Claim 15 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the machine executable code causes the machine to:
initiate the automatic switchover operation after a timeout.

### Claim 16 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the machine executable code causes the machine to:
evaluate responsiveness to a communication signal sent from the second node to the first node to determine whether the failure is a false trigger.

### Claim 17 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the machine executable code causes the machine to:
initiate the automatic switchover operation based upon storage and a main controller of a cluster comprising the first node being available.

### Claim 18 (depends on 13)

The non-transitory machine readable medium of claim 13, wherein the initiating an automatic switchover operation comprises:
refrain from initiating the automatic switchover operation based upon the write caching synchronization state indicating a non-synchronous state.

### Claim 19

A computing device comprising:
a memory comprising machine executable code; and
a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:
determine that a memory section is designated for heartbeat information exchange from a first node to a second node;
perform a remote direct memory access read operation to access the memory section for obtaining a current heartbeat status of the first node;
determine a write caching synchronization state between the first node and the second node; and
initiate an automatic switchover operation from the first node to the second node based upon the current heartbeat status indicating a failure of the first node and the write caching synchronization state indicating a synchronous state.

### Claim 20 (depends on 19)

The computing device of claim 19, wherein the machine executable code causes the processor to:
refrain from initiating the automatic switchover operation based upon the write caching synchronization state indicating a non-synchronous state.
