IP Library Granted Patent US 10,810,035
Granted Patent B2
US 10,810,035 · App. 16/287,214 · Granted Oct 20, 2020

Deploying a cloud instance of a user virtual machine

Inventors: Venkata Ranga Radhanikanth Guturi (San Jose, CA); Tushar Mahata (Cupertino, CA); Praveen Kumar Yarlagadda (Santa Clara, CA); Vipin Gupta (Cupertino, CA)
Assignee: Cohesity, Inc.
G06F9/45558H04L67/1097G06F2009/4557G06F2009/45562G06F2009/45583
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 10,810,035
App. No.
16/287,214
Granted
Oct 20, 2020
Kind
B2
Abstract

An instruction to generate a cloud instantiation of a secondary storage system is provided. One or more secondary storage clusters are virtually rebuilt in the cloud instantiation of the secondary storage system. A new cloud instance of a user virtual machine is deployed based on at least a portion of data stored in the one or more rebuilt secondary storage clusters of the cloud instantiation of the secondary storage system. A version of at least the portion of the data of the one or more rebuilt secondary storage clusters is provided to a cloud deployment server.

Claims (48)

1. A method, comprising:

determining that a user virtual machine hosted on a primary system is offline and a secondary storage system is offline, wherein the secondary storage system is configured to backup to the primary system;

providing an instruction to generate a cloud instantiation of the secondary storage system;

virtually rebuilding, in the cloud instantiation of the secondary storage system, one or more secondary storage clusters, wherein virtually rebuilding, in the cloud instantiation of the secondary storage system, one or more secondary storage clusters comprises generating a first tree data structure based on a first set of data that is deserialized from a serialized version of the first set of data, wherein the serialized version of the first set of data is obtained from a cloud archive;

deploying from the cloud instantiation of the secondary storage system to a cloud deployment server a new cloud instance of the user virtual machine based on at least a portion of the first set of data stored in the one or more rebuilt secondary storage clusters of the cloud instantiation of the secondary storage system including by providing a version of at least the portion of the first set of data of the one or more rebuilt secondary storage clusters to the cloud deployment server;

backing up the new cloud instance of the user virtual machine to the cloud instantiation of the secondary storage system, wherein the backed up data is organized using a second tree data structure, wherein one or more nodes of the second tree data structure are linked to one or more nodes of the first tree data structure;

receiving an indication that the secondary storage system is online;

in response to receiving the indication that the secondary storage system is online:

cloning the second tree data structure; and

converting virtual machine data included in the cloned second tree data structure from a first virtual machine format associated with a cloud environment in which the new cloud instance of the user virtual machine is deployed into a second virtual machine format associated with the primary system; and

providing the converted virtual machine data from the cloud instantiation of the secondary storage system to the secondary storage system.

2. The method of claim 1 , wherein the cloud archive is located in a cloud object storage.

3. The method of claim 1 , wherein the cloud archived received the serialized version of the first set of data from the secondary storage system.

4. The method of claim 1 , further comprising:

receiving a second set of data from the cloud archive; and

updating the first tree data structure based on the second set of data.

5. The method of claim 1 , further comprising maintaining the new cloud instance of the user virtual machine in a standby mode.

6. The method of claim 5 , further comprising determining that a production system hosting a version of the user virtual machine is unavailable, wherein the new cloud instance of the user virtual machine is deployed in response to determining that the production system hosting the version of the user virtual machine is unavailable.

7. The method of claim 6 , further comprising responsive to receiving from a user associated with the production system, an indication that the production system hosting the version of the user virtual machine is unavailable, deploying the new cloud instance of the user virtual machine.

8. The method of claim 6 , wherein the production system is configured to provide to the cloud instantiation of the secondary storage system a heartbeat signal, wherein in the event the heartbeat signal is not received within a threshold period of time, the production system hosting the version of the user virtual machine is determined to be unavailable.

9. The method of claim 5 , wherein deploying the new cloud instance of the user virtual machine includes changing a mode of the new cloud instance of the user virtual machine from the standby mode to an active mode.

10. The method of claim 1 , wherein the new cloud instance of the user virtual machine is generated according to a backup policy, wherein the backup policy indicates a frequency at which a corresponding cloud instance of the user virtual machine is to be generated.

11. The method of claim 1 , wherein the cloud instantiation of the secondary storage system is configured to receive from the secondary storage system an indication that the secondary storage system is up-to-date, wherein the new cloud instance of the user virtual machine is torn down in response to receiving the indication that the secondary storage system is up-to-date.

12. The method of claim 1 , wherein the serialized version of the first set of data includes a plurality of data blocks, wherein the plurality of data blocks at least includes a first data block that corresponds to a root node of the first tree data structure, a second data block that corresponds to an intermediate node of the first tree data structure, and a third data block that corresponds to a leaf node of the first tree data structure.

13. A system, comprising:

a processor configured to:

determine that a user virtual machine hosted on a primary system is offline and a secondary storage system is offline, wherein the secondary storage system is configured to backup to the primary system;

provide an instruction to generate a cloud instantiation of the secondary storage system;

virtually rebuild, in the cloud instantiation of the secondary storage system, one or more secondary storage clusters, wherein to virtually rebuilding, in the cloud instantiation of the secondary storage system, one or more secondary storage clusters, the processor is configured to generate a first tree data structure based on a first set of data that is deserialized from a serialized version of the first set of data, wherein the serialized version of the first set of data is obtained from a cloud archive; and

deploy from the cloud instantiation of the secondary storage system to a cloud deployment server a new cloud instance of the user virtual machine based on at least a portion of the first set of data stored in the one or more rebuilt secondary storage clusters of the cloud instantiation of the secondary storage system, wherein to deploy the new cloud instance of the user virtual machine, the processor is further configured to provide a version of at least the portion of the first set of data of the one or more rebuilt secondary storage clusters to the cloud deployment server;

back up the new cloud instance of the user virtual machine to the cloud instantiation of the secondary storage system, wherein the backed up data is organized using a second tree data structure, wherein one or more nodes of the second tree data structure are linked to one or more nodes of the first tree data structure;

receive an indication that the secondary storage system is online;

in response to receiving the indication that the secondary storage system is online:

clone the second tree data structure; and

convert virtual machine data included in the cloned second tree data structure from a first virtual machine format associated with a cloud environment in which the new cloud instance of the user virtual machine is deployed into a second virtual machine format associated with the primary system; and

provide the converted virtual machine data from the cloud instantiation of the secondary storage system to the secondary storage system; and

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

14. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

determining that a user virtual machine hosted on a primary system is offline and a secondary storage system is offline, wherein the secondary storage system is configured to backup to the primary system;

providing an instruction to generate a cloud instantiation of the secondary storage system;

virtually rebuilding, in the cloud instantiation of the secondary storage system, one or more secondary storage clusters, wherein virtually rebuilding, in the cloud instantiation of the secondary storage system, one or more secondary storage clusters comprises generating a first tree data structure based on a first set of data that is deserialized from a serialized version of the first set of data, wherein the serialized version of the first set of data is obtained from a cloud archive;

deploying from the cloud instantiation of the secondary storage system to a cloud deployment server a new cloud instance of the user virtual machine based on at least a portion of the first set of data stored in the one or more rebuilt secondary storage clusters of the cloud instantiation of the secondary storage system including by providing a version of at least the portion of the first set of data of the one or more rebuilt secondary storage clusters to the cloud deployment server;

backing up the new cloud instance of the user virtual machine to the cloud instantiation of the secondary storage system, wherein the backed up data is organized using a second tree data structure, wherein one or more nodes of the second tree data structure are linked to one or more nodes of the first tree data structure;

receiving an indication that the secondary storage system is online;

in response to receiving the indication that the secondary storage system is online:

cloning the second tree data structure; and

converting virtual machine data included in the cloned second tree data structure from a first virtual machine format associated with a cloud environment in which the new cloud instance of the user virtual machine is deployed into a second virtual machine format associated with the primary system; and

providing the converted virtual machine data from the cloud instantiation of the secondary storage system to the secondary storage system.

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 May 17, 2019
From: GUTURI, VENKATA RANGA RADHANIKANTH; MAHATA, TUSHAR; YARLAGADDA, PRAVEEN KUMAR; GUPTA, VIPIN
To: COHESITY, INC.
Reel/Frame 049214/0989 →
Continuity (1)
Related Publication 20200272492A1 · Aug 27, 2020
Cited By (4)
US 12,373,313 US 12,554,597 US 12,608,279 US 12,645,545