IP Library Granted Patent US 11,281,544
Granted Patent B2
US 11,281,544 · App. 17/069,604 · Granted Mar 22, 2022

Backup and restore of linked clone VM

Inventor: Rupesh Bajaj (Dewas, IN)
Assignee: Cohesity, Inc.
G06F11/1464G06F9/45558G06F11/1451G06F11/1469G06F16/128G06F16/188G06F16/9027G06F2009/45562G06F2201/815G06F2201/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,281,544
App. No.
17/069,604
Granted
Mar 22, 2022
Kind
B2
Abstract

A request associated with restoring a previous version of a linked clone virtual machine is received. One or more changes between a base image of a parent virtual machine and the previous version of the linked clone virtual machine are determined. One or more data blocks corresponding to the base image and one or more data blocks corresponding to the determined changes are provided to a remote system.

Claims (42)

1. A method, comprising:

receiving from a primary system a base image of a parent virtual machine;

storing the base image of the parent virtual machine across one or more storage nodes;

generating a parent tree data structure;

receiving one or more images of a linked clone virtual machine, wherein the one or more images of the linked clone virtual machine correspond to a particular version of the linked clone virtual machine;

generating one or more corresponding tree data structures for the one or more images of the linked clone virtual machine, wherein at least one of the one or more corresponding tree data structures is generated in part by cloning a root node associated with the parent tree data structure;

receiving a request associated with restoring a previous version of the linked clone virtual machine, wherein the linked clone virtual machine is linked to the parent virtual machine;

determining one or more changes between the base image of the parent virtual machine and the previous version of the linked clone virtual machine based at least in part on the parent tree data structure associated with the base image of the parent virtual machine and a linked clone tree data structure associated with the previous version of the linked clone virtual machine, wherein at least one node of the linked clone tree data structure includes a reference to a node of the parent tree data structure; and

providing to a remote system one or more data blocks corresponding to the base image of the parent virtual machine and one or more data blocks corresponding to the determined changes.

2. The method of claim 1 , wherein the one or more determined changes are determined based in part on a view identifier associated with the parent tree data structure and a view identifier associated with the linked clone tree data structure.

3. The method of claim 1 , wherein the parent tree data structure is linked to the one or more corresponding tree data structures for the one or more images of the linked clone virtual machine.

4. The method of claim 1 , further comprising determining the one or more changes between the base image of the parent virtual machine and the previous version of the linked clone virtual machine at least in part by:

traversing the parent tree data structure;

traversing the linked clone tree data structure; and

determining one or more nodes that are not shared between the parent tree data structure and the linked clone tree data structure.

5. The method of claim 1 , wherein the remote system is configured to:

receive the one or more data blocks corresponding to the base image and the one or more data blocks corresponding to the one or more determined changes; and

apply the one or more data blocks corresponding to the one or more determined changes to the one or more data blocks corresponding to the base image.

6. The method of claim 5 , wherein the remote system is configured to store the one or more data blocks corresponding to the base image and the one or more data blocks corresponding to the one or more determined changes.

7. The method of claim 6 , wherein the remote system is configured to restore a linked clone virtual machine based on the one or more data blocks corresponding to the base image and the one or more data blocks corresponding to the one or more determined changes.

8. A non-transitory computer readable storage medium and comprising computer instructions, which when executed by a processor, causes the processor to perform the steps of:

receiving from a primary system a base image of a parent virtual machine;

storing the base image of the parent virtual machine across one or more storage nodes;

generating a parent tree data structure;

receiving one or more images of a linked clone virtual machine, wherein the one or more images of the linked clone virtual machine correspond to a particular version of the linked clone virtual machine;

generating one or more corresponding tree data structures for the one or more images of the linked clone virtual machine, wherein at least one of the one or more corresponding tree data structures is generated in part by cloning a root node associated with the parent tree data structure;

receiving a request associated with restoring a previous version of the linked clone virtual machine, wherein the linked clone virtual machine is linked to the parent virtual machine;

determining one or more changes between the base image of the parent virtual machine and the previous version of the linked clone virtual machine based at least in part on the parent tree data structure associated with the base image of the parent virtual machine and a linked clone tree data structure associated with the previous version of the linked clone virtual machine, wherein at least one node of the linked clone tree data structure includes a reference to a node of the parent tree data structure; and

providing to a remote system one or more data blocks corresponding to the base image of the parent virtual machine and one or more data blocks corresponding to the determined changes.

9. The non-transitory computer readable storage medium of claim 8 , wherein the one or more determined changes are determined based in part on a view identifier associated with the parent tree data structure and a view identifier associated with the linked clone tree data structure associated.

10. The non-transitory computer readable storage medium of claim 8 , wherein the parent tree data structure is linked to the one or more corresponding tree data structures for the one or more images of the linked clone virtual machine.

11. A system, comprising:

a processor configured to:

receive from a primary system a base image of a parent virtual machine;

store the base image of the parent virtual machine across one or more storage nodes;

generate a parent tree data structure;

receive one or more images of a linked clone virtual machine, wherein the one or more images of the linked clone virtual machine correspond to a particular version of the linked clone virtual machine;

generate one or more corresponding tree data structures for the one or more images of the linked clone virtual machine, wherein at least one of the one or more corresponding tree data structures is generated in part by cloning a root node associated with the parent tree data structure;

receive a request associated with restoring a previous version of the linked clone virtual machine, wherein the linked clone virtual machine is linked to the parent virtual machine;

determine one or more changes between the base image of the parent virtual machine and the previous version of the linked clone virtual machine based at least in part on the parent tree data structure associated with the base image of the parent virtual machine and a linked clone tree data structure associated with the previous version of the linked clone virtual machine, wherein at least one node of the linked clone tree data structure includes a reference to a node of the parent tree data structure; and

provide to a remote system one or more data blocks corresponding to the base image of the parent virtual machine and one or more data blocks corresponding to the determined changes; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2021
From: BAJAJ, RUPESH
To: COHESITY, INC.
Reel/Frame 054812/0418 →
Continuity (3)
Continuation 16355372 · Mar 15, 2019
Continuation 15991766 · May 29, 2018
Related Publication 20210109820A1 · Apr 15, 2021