# US 10,120,764 B1 · Efficient disaster recovery 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 10,120,764 B1
- Document ID: US10120764B1
- Status: Granted
- Kind: B1
- Application number: 15/224,206
- Filed: 2016-07-29
- Granted: 2018-11-06
- Earliest claimed: 2016-07-29
- Assignees: Nutanix, Inc.
- Applicants: Nutanix, Inc.
- Inventors: Parthasarathy Ramachandran; Manosiz Bhattacharyya; Karthik Chandrasekaran
- Web page: https://patentgrep.com/patent/US10120764B1

## CPC

- G06F 11/1451: {by selection of backup contents}
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/1446: Point-in-time backing up or restoration of persistent data
- G06F 11/1464: {for networked environments}
- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/203: {using migration}
- G06F 12/1009: using page tables, e.g. page table structures
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- G06F 11/1438: {Restarting or rejuvenating}
- G06F 11/1484: {involving virtual machines}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45575: {Starting, stopping, suspending or resuming virtual machine instances}
- G06F 2201/815: Virtual
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2212/1032: Reliability improvement, data loss prevention, degraded operation etc
- 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:
identifying a source storage system and a target storage system that comprises a storage pool comprising a plurality of storage devices distributed across a cluster of nodes, wherein nodes distributed across the cluster of nodes utilize controller virtual machines to read and write to the storage pool comprising the plurality of storage devices;
installing a data mover agent on the source storage system;
capturing target disaster recovery data at the target storage system transmitted from the data mover agent for storage in the storage pool, wherein the target disaster recovery data corresponds to at least one user virtual machine operating on the source storage system;
receiving a failover event signal;
creating at least one replica user virtual machine on a node from the cluster of nodes in the target storage system, wherein the at least one replica user virtual machine is creatable on any node among the cluster of nodes in the target storage system, the at least one replica user virtual machine serving to replicate functions of the user virtual machine; and
converting, by a controller virtual machine on the node from the cluster of nodes in the target storage system, at least a portion of the target disaster recovery data in the storage pool from a first format to a second format to facilitate access to the portion of the target disaster recovery data by the node having the replica user virtual machine.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first format corresponds to a first hypervisor and the second format corresponds to a second hypervisor that is different than the first hypervisor.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
updating one or more sets of replica user virtual machine data at the target storage system, the replica user virtual machine data corresponding to the replica user virtual machine operating on the target storage system;
receiving, by the data mover agent, at least a portion of the replica user virtual machine data from the target storage system; and
generating, by the data mover agent, a virtual disk derived from operation of the replica user virtual machine.

### Claim 4 (depends on 3)

The method of claim 3, wherein generating the virtual disk is responsive to receiving a failback event signal.

### Claim 5 (depends on 3)

The method of claim 3, wherein operation of the replica user virtual machine generates difference data characterizing one or more data changes.

### Claim 6 (depends on 5)

The method of claim 5, further comprising identifying a snapshot taken from the source storage system.

### Claim 7 (depends on 6)

The method of claim 6, further comprising applying the difference data to the snapshot.

### Claim 8 (depends on 3)

The method of claim 3, wherein the portion of the target disaster recovery data is a clone of the user virtual machine.

### Claim 9 (depends on 3)

The method of claim 3, further comprising attaching the virtual disk to a service virtual machine comprising the data mover agent.

### Claim 10 (depends on 9)

The method of claim 9, further comprising starting the user virtual machine on the source storage system.

### Claim 11

A computer readable medium, embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by one or more processors causes the one or more processors to perform a set of acts the acts comprising:
identifying a source storage system and a target storage system that comprises a storage pool comprising a plurality of storage devices distributed across a cluster of nodes, wherein nodes distributed across the cluster of nodes utilize controller virtual machines to read and write to the storage pool comprising the plurality of storage devices;
installing a data mover agent on the source storage system;
capturing target disaster recovery data at the target storage system transmitted from the data mover agent for storage in the storage pool, wherein the target disaster recovery data corresponds to at least one user virtual machine operating on the source storage system;
receiving a failover event signal;
creating at least one replica user virtual machine on a node from the cluster of nodes in the target storage system, wherein the at least one replica user virtual machine is creatable on any node among the cluster of nodes in the target storage system, the at least one replica user virtual machine serving to replicate functions of the user virtual machine; and
converting, by a controller virtual machine on the node from the cluster of nodes in the target storage system, at least a portion of the target disaster recovery data in the storage pool from a first format to a second format to facilitate access to the portion of the target disaster recovery data by the node having the replica user virtual machine.

### Claim 12 (depends on 11)

The computer readable medium of claim 11, wherein the first format corresponds to a first hypervisor and the second format corresponds to a second hypervisor that is different than the first hypervisor.

### Claim 13 (depends on 11)

The computer readable medium of claim 11, further comprising instructions which, when stored in memory and executed by the one or more processors causes the one or more processors to perform acts of:
updating one or more sets of replica user virtual machine data at the target storage system, the replica user virtual machine data corresponding to the replica user virtual machine operating on the target storage system;
receiving, by the data mover agent, at least a portion of the replica user virtual machine data from the target storage system; and generating, by the data mover agent, a virtual disk derived from operation of the replica user virtual machine.

### Claim 14 (depends on 13)

The computer readable medium of claim 13, wherein generating the virtual disk is responsive to receiving a failback event signal.

### Claim 15 (depends on 13)

The computer readable medium of claim 13, wherein operation of the replica user virtual machine generates difference data characterizing one or more data changes.

### Claim 16 (depends on 15)

The computer readable medium of claim 15, further comprising instructions which, when stored in memory and executed by the one or more processors causes the one or more processors to perform acts of identifying a snapshot taken from the source storage system.

### Claim 17 (depends on 16)

The computer readable medium of claim 16, further comprising instructions which, when stored in memory and executed by the one or more processors causes the one or more processors to perform acts of applying the difference data to the snapshot.

### Claim 18 (depends on 13)

The computer readable medium of claim 13, wherein the portion of the target disaster recovery data is a clone of the user virtual machine.

### Claim 19

A system comprising:
a storage medium having stored thereon a sequence of instructions; and
one or more processors that execute the instructions to cause the one or more processors to perform a set of acts, the acts comprising,
identifying a source storage system and a target storage system that comprises a storage pool comprising a plurality of storage devices distributed across a cluster of nodes, wherein nodes distributed across the cluster of nodes utilize controller virtual machines to read and write to the storage pool comprising the plurality of storage devices;
installing a data mover agent on the source storage system;
capturing target disaster recovery data at the target storage system transmitted from the data mover agent for storage in the storage pool, wherein the target disaster recovery data corresponds to at least one user virtual machine operating on the source storage system;
receiving a failover event signal;
creating at least one replica user virtual machine on a node from the cluster of nodes in the target storage system, wherein the at least one replica user virtual machine is creatable on any node among the cluster of nodes in the target storage system, the at least one replica user virtual machine serving to replicate functions of the user virtual machine; and
converting, by a controller virtual machine on the node from the cluster of nodes in the target storage system, at least a portion of the target disaster recovery data in the storage pool from a first format to a second format to facilitate access to the portion of the target disaster recovery data by the node having the replica user virtual machine.

### Claim 20 (depends on 19)

The system of claim 19, wherein the first format corresponds to a first hypervisor type and the second format corresponds to a second hypervisor that is different than the first hypervisor.
