# US 10,310,888 B2 · Virtual machine linking

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

- Number: US 10,310,888 B2
- Document ID: US10310888B2
- Status: Granted
- Kind: B2
- Application number: 15/800,020
- Filed: 2017-10-31
- Published: 2019-05-02
- Granted: 2019-06-04
- Earliest claimed: 2017-10-31
- Assignees: Rubrik, Inc.
- Applicants: Rubrik, Inc.
- Inventors: Abdullah Al Reza; Fabiano Botelho; Mudit Malpani; Prateek Pandey
- Web page: https://patentgrep.com/patent/US10310888B2

## CPC

- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/1464: {for networked environments}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- G06F 11/32: with visual {or acoustical} indication of the functioning of the machine
- G06F 2009/45562: {Creating, deleting, cloning virtual machine instances}
- G06F 2009/45583: {Memory management, e.g. access or allocation}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- G06F 2201/815: Virtual
- 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

The disclosed technology teaches keeping a linked snapshot history, stored in sequence and spanning multiple VMs, even when VMs are unregistered and reregistered and are moved from one data center to another data center, and to take incremental snapshots across multiple linked VMs. Upon receiving a request for a VM snapshot, detect that the ID is a new ID assigned by an external machine in a hosted service environment and determine whether the new ID corresponds to a newly-created VM or an existing previously-registered VM using a previous ID. Upon identifying that the new ID corresponds to a newly-created VM, the disclosed method includes creating a new VMG for the newly-created VM. If the new ID does not correspond to a newly created VM, then identify an existing VMG for the VM and using the VMG, determine snapshot histories for the ID and return a historical snapshot from the histories.

## Claims

### Claim 1

A method of identifying historical snapshots for a virtual machine (VM), including:
receiving a request for a historical snapshot of a VM, the request indicating an ID for the VM;
detecting that the ID for the VM in the request received is a new ID assigned to a VM by an external machine hosting VMs in a hosted service environment; and
determining whether the new ID corresponds to a newly created VM created by the external machine or an existing VM that has been previously registered with the external machine using a previous ID, wherein determining whether the new ID corresponds to a new VM includes looking at some property of the VM and wherein the property is a use case identifier that signals an instant recovery request for a specific VM;
upon identifying that the new ID corresponds to a newly created VM, creating a new VM Group (VMG) object for the newly created VM and corresponding to the new ID;
upon determining that the new ID corresponds to an existing VM that has been previously registered with the external machine using a previous ID;
identifying an existing VMG object for the existing VM;
adding the new ID to the existing VMG object; thereby holding identifiers for the newly created VM and the existing VM together in a single object;
using the existing VMG object, determining one or more snapshot histories of historical snapshots from snapshot histories stored in association with a previous ID and snapshot histories stored in association with the new ID; and
returning at least one historical snapshot from the snapshot histories determined;
searching in multiple snapshot histories of a VMG object, for an unexpired snapshot and when found, making an incremental copy of the VM based upon the unexpired snapshot, wherein the unexpired snapshot is chained to another in the snapshot history and anchored to the previous ID stored in the existing VMG object.

### Claim 2 (depends on 1)

The method of claim 1, further including consolidating two or more snapshot histories and reporting a consolidated snapshot history for the VM.

### Claim 3 (depends on 1)

The method of claim 1, further including omitting making a complete backup of a VM determined to be a re-registered VM.

### Claim 4 (depends on 1)

The method of claim 1, wherein the property is a universally unique identifier (UUID) of the VM.

### Claim 5 (depends on 1)

The method of claim 1, wherein the new ID comprises a managed object reference ID (MOID).

### Claim 6 (depends on 1)

The method of claim 1, wherein previously registered includes the VM having been moved to a different server in a hosted environment, whereby a VM ID changes.

### Claim 7 (depends on 1)

The method of claim 1, wherein previously registered includes the VM having been unregistered and re-registered with a same server in a hosted environment, whereby a VM ID changes.

### Claim 8 (depends on 1)

The method of claim 1, wherein the new ID is added as a child node to a VMG object.

### Claim 9

A system, including one or more processors and memory coupled to the processors, containing computer instructions that, when executed on the processors, cause the system to implement a process that implements a process of identifying historical snapshots for a virtual machine (abbreviated VM), comprising
receiving a request for a historical snapshot of a VM, the request indicating an ID for the VM;
detecting that the ID for the VM in the request received is a new ID assigned to a VM by an external machine hosting VMs in a hosted service environment; and
determining whether the new ID corresponds to a newly created VM created by the external machine or an existing VM that has been previously registered with the external machine using a previous ID, wherein determining whether the new ID corresponds to a new VM includes looking at some property of the VM and wherein the property is a use case identifier that signals an instant recovery request for a specific VM;
upon identifying that the new ID corresponds to a newly created VM, creating a new VM Group (abbreviated VMG) object for the newly created VM and corresponding to the new ID;
upon determining that the new ID corresponds to an existing VM that has been previously registered with the external machine using a previous ID;
identifying an existing VMG object for the existing VM;
adding the new ID to the existing VMG object; thereby holding identifiers for the newly created VM and the existing VM together in a single object;
using the existing VMG object, determining one or more snapshot histories of historical snapshots from snapshot histories stored in association with a previous ID and snapshot histories stored in association with the new ID; and
returning at least one historical snapshot from the snapshot histories determined;
searching in multiple snapshot histories of a VMG object, for an unexpired snapshot and when found, making an incremental copy of the VM based upon the unexpired snapshot, wherein the unexpired snapshot is chained to another in the snapshot history and anchored to the previous ID stored in the existing VMG object.

### Claim 10 (depends on 9)

The system of claim 9, further including consolidating two or more snapshot histories and reporting a consolidated snapshot history for the VM.

### Claim 11 (depends on 9)

The system of claim 9, further including omitting making a complete backup of a VM determined to be a re-registered VM.

### Claim 12 (depends on 9)

The system of claim 9, wherein the property is a universally unique identifier (UUTD) of the VM.

### Claim 13 (depends on 9)

The system of claim 9, wherein previously registered includes the VM having been moved to a different server in a hosted environment, whereby a VM ID changes.

### Claim 14

A non-transitory computer readable media storing instructions identifying historical snapshots for a virtual machine (VM), which instructions, when executed by one or more processors, perform:
receiving a request for a historical snapshot of a VM, the request indicating an ID for the VM;
detecting that the ID for the VM in the request received is a new ID assigned to a VM by an external machine hosting VMs in a hosted service environment; and
determining whether the new ID corresponds to a newly created VM created by the external machine or an existing VM that has been previously registered with the external machine using a previous ID, wherein determining whether the new ID corresponds to a new VM includes looking at some property of the VM and wherein the property is a use case identifier that signals an instant recovery request for a specific VM;
upon identifying that the new ID corresponds to a newly created VM, creating a new VM Group (VMG) object for the newly created VM and corresponding to the new ID;
upon determining that the new ID corresponds to an existing VM that has been previously registered with the external machine using a previous ID;
identifying an existing VMG object for the existing VM;
adding the new ID to the existing VMG object; thereby holding identifiers for the newly created VM and the existing VM together in a single object;
using the existing VMG object, determining one or more snapshot histories of historical snapshots from snapshot histories stored in association with a previous ID and snapshot histories stored in association with the new ID; and
returning at least one historical snapshot from the snapshot histories determined;
searching in multiple snapshot histories of a VMG object, for an unexpired snapshot and when found, making an incremental copy of the VM based upon the unexpired snapshot, wherein the unexpired snapshot is chained to another in the snapshot history and anchored to the previous ID stored in the existing VMG object.

### Claim 15 (depends on 14)

The non-transitory computer readable media of claim 14, wherein the property is a universally unique identifier (UUTD) of the VM.
