# US 11,030,053 B2 · Efficient disaster rollback across heterogeneous storage systems

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

- Number: US 11,030,053 B2
- Document ID: US11030053B2
- Status: Granted
- Kind: B2
- Application number: 16/214,920
- Filed: 2018-12-10
- Published: 2019-04-18
- Granted: 2021-06-08
- Earliest claimed: 2016-07-29
- Assignees: Nutanix, Inc.
- Applicants: Nutanix, Inc.
- Inventors: Parthasarathy Ramachandran; Manosiz Bhattacharyya; Karthik Chandrasekaran
- Web page: https://patentgrep.com/patent/US11030053B2

## CPC

- G06F 11/1451: {by selection of backup contents}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/065: {Replication mechanisms}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 11/1464: {for networked environments}
- G06F 11/203: {using migration}
- G06F 11/2046: {where the redundant components share persistent storage (G06F11/2043 takes precedence)}
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems for storage system rollover and rollback. A data mover agent is installed on a source storage system to capture disaster recovery data and send to a target system. Upon receiving a rollover event signal, a virtualized controller creates one or more replica user virtual machines running on the target system that serve to replicate functions of the user virtual machines from the source storage system. The virtualized controller on the target system converts the target disaster recovery data from a first format to a second format to facilitate use of the target disaster recovery data by the replica user virtual machines. Rollback is initiated when the target system receives a rollback event signal. Differences in the data that have occurred between the rollover event and the rollback signal are calculated and sent to the rollback system. The calculated differences are applied to a registered snapshot on the rollback system.

## Claims

### Claim 1

A method, comprising:
determining target disaster recovery (DR) data for a target system from snapshot data captured from a source system at an earlier timepoint, wherein the source system has a first hypervisor type that is different from a second hypervisor type of the target system;
performing a user virtual machine activity at the target system to generate updated target DR data at a later timepoint after the earlier timepoint; and
in response to a failback event signal for a failback operation on the source system:
calculating a difference between the updated target DR data and the target DR data; and
sending at least the difference to the source system, wherein the failback operation is performed by converting the difference of the second hypervisor type into a converted difference of the first hypervisor type and by combining the difference with the snapshot data.

### Claim 2 (depends on 1)

The method of claim 1, wherein a data mover agent on the source system runs in a virtual machine above a source system hypervisor of the first hypervisor type or an executable container to send the snapshot data in a failover operation to the target system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the snapshot data was captured on the source system to include a hypervisor-based data snapshot that is incompatible with a target system hypervisor of the second hypervisor type.

### Claim 4 (depends on 1)

The method of claim 1, wherein the failback event signal is sent by a user virtual machine on the source system, and a replica user virtual machine performing the user virtual machine activity on the target system is a replica of the user virtual machine on the source system.

### Claim 5 (depends on 1)

The method of claim 1, wherein the difference calculated between the updated target DR data and the snapshot data is calculated using a hypervisor-provided conversion service provided by a target hypervisor of the second hypervisor type.

### Claim 6 (depends on 1)

The method of claim 1, wherein the difference comprises a snapshot obtained from the source system and a change block corresponding to the user virtual machine activity.

### Claim 7 (depends on 1)

The method of claim 1, further comprising capturing the target DR data that was transmitted from a data mover agent, wherein the data mover agent generates a virtual disk on the source system for storing the converted difference of the first hypervisor type combined with the snapshot data captured on the source system for a failover operation to the target system.

### Claim 8 (depends on 7)

The method of claim 7, wherein the target DR data is updated by a replica user virtual machine on the source system, and the replica user virtual machine corresponds to a user virtual machine that operated on the source system prior to the failback event signal is received at the target system.

### Claim 9

A non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by a processor, causes the processor to perform a set of acts, the set of acts comprising:
determining target disaster recovery (DR) data for a target system from snapshot data captured from a source system at an earlier timepoint, wherein
the source system has a first hypervisor type that is different from a second hypervisor type of the target system;
performing a user virtual machine activity at the target system to generate updated target DR data at a later timepoint after the earlier timepoint; and
in response to a failback event signal for a failback operation on the source system:
calculating a difference between the updated target DR data and the the target DR data; and
sending at least the difference to the source system, wherein the failback operation is performed by converting the difference of the second hypervisor type into a converted difference of the first hypervisor type and by combining the difference with the snapshot data.

### Claim 10 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein a data mover agent on the source system runs in a virtual machine above a source system hypervisor of the first hypervisor type or an executable container to send the snapshot data in a failover operation to the target system.

### Claim 11 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the snapshot data was captured on the source system to include a hypervisor-based data snapshot that is incompatible with a target system hypervisor of the second hypervisor type.

### Claim 12 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the failback event signal is sent by a user virtual machine on the source system, and a replica user virtual machine performing the user virtual machine activity on the target system is a replica of the user virtual machine on the source system.

### Claim 13 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the difference calculated between the updated target DR data and the snapshot data is calculated using a hypervisor-provided conversion service provided by a target hypervisor of the second hypervisor type.

### Claim 14 (depends on 9)

The non-transitory computer readable medium of claim 9, wherein the difference comprises a snapshot obtained from the source system and a change block corresponding to the user virtual machine activity.

### Claim 15 (depends on 9)

The non-transitory computer readable medium of claim 9, further comprising instructions which, when stored in memory and executed by the processor, causes the processor to perform acts of capturing the target DR data that was transmitted from a data mover agent, wherein the data mover agent generates a virtual disk on the source system for storing the converted difference of the first hypervisor type combined with the snapshot data captured on the source system for a failover operation to the target system.

### Claim 16 (depends on 15)

The non-transitory computer readable medium of claim 15, wherein the target DR data is updated by a replica user virtual machine on the source system, and the replica user virtual machine corresponds to a user virtual machine that operated on the source system prior to the failback event signal is received at the target system.

### Claim 17

A system comprising:
a non-transitory storage medium having stored thereon a sequence of instructions; and
a processor that executes the sequence of instructions, wherein execution of the sequence of instructions causes the processor to perform a set of acts, the set of acts comprising,
determining target disaster recovery (DR) data for a target system from snapshot data captured from a source system at an earlier timepoint the target system to form a snapshot, wherein
the source system has a first hypervisor type that is different from a second hypervisor type of the target system;
performing a user virtual machine activity at the target system to generate updated target DR data at a later timepoint after the earlier timepoint; and
in response to a failback event signal for a failback operation on the source system:
calculating a difference between the updated target DR data and the target DR data; and
sending at least the difference to the source system, wherein the failback operation is performed by converting the difference of the second hypervisor type into a converted difference of the first hypervisor type and by combining the difference with the snapshot data.

### Claim 18 (depends on 17)

The system of claim 17, wherein a data mover agent on the source system runs in a virtual machine above a source system hypervisor of the first hypervisor type or an executable container to send the snapshot data in a failover operation to the target system.

### Claim 19 (depends on 17)

The system of claim 17, wherein the snapshot data was captured on the source system to include a hypervisor-based data snapshot that is incompatible with a target system hypervisor of the second hypervisor type.

### Claim 20 (depends on 17)

The system of claim 17, wherein the failback event signal is sent by a user virtual machine on the source system, and a replica user virtual machine performing the user virtual machine activity on the target system is a replica of the user virtual machine on the source system.
