IP Library › Granted Patent US 12,294,624
Granted Patent B2
US 12,294,624 · App. 16/857,042 · Granted May 6, 2025

Change-based restore from a cloud-based data protection service

Inventors: Lawrence Jaemyung Chang (San Jose, CA); Woon Ho Jung (Cupertino, CA); Poojan Kumar (San Jose, CA); Monoreet Mutsuddi (Dublin, CA); Amber Palekar (Cupertino, CA); Hung Hing Anthony Pang (San Jose, CA); Kaustubh Sambhaji Patil (Sunnyvale, CA); Rishabh Sharma (Santa Clara, CA)
Assignee: Commvault Systems, Inc.
H04L67/1097G06F9/45558G06F9/5083G06F11/1451G06F11/1453G06F11/1461G06F11/1464G06F11/1469G06F11/1484G06F16/144G06F16/156G06F16/182G06F21/6218H04L9/0618H04L9/083H04L67/1095G06F2009/45595G06F21/107G06F21/567G06F2221/033
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 12,294,624
App. No.
16/857,042
Filed
Apr 23, 2020
Granted
May 6, 2025
Kind
B2
Examiner
MA, WEI
Art Unit
2135
USPC
711/162
Abstract

A cloud-based data protection service is disclosed. In an embodiment, the data protection service may support backup of data sets from one or more sites associated with one or more organizations. In an embodiment, deduplication of backup data across multiple sites of an organization and/or multiple sites associated with different organizations may be supported. In an embodiment, backup data may be post-processed in the cloud to insert fingerprints corresponding to data blocks that did not change since a previous backup was performed, to scan the backup for security threats such as viruses, other malware, personally identifiable information, etc. In an embodiment, restore may be supported from the cloud, where restore blocks may be larger than backup data blocks. In another embodiment, restore may be based on blocks that have changed since the most recent backup (or a user-selected backup).

Claims (65)

1. A computer-implemented method comprising:

by a data protection service that executes on one or more cloud computing resources of a cloud, receiving a first request to restore a backup data set to one or more storage devices that comprise data generated by one or more computer systems,

wherein the one or more cloud computing resources are implemented on one or more hardware processors, and

wherein the one or more computer systems operate outside of the cloud;

by the data protection service, responsive to the first request:

submitting, to a backup agent, a change tracking query in reference to the data at the one or more storage devices, wherein the change tracking query comprises a time corresponding to the backup data set,

wherein the backup agent executes on the one or more computer systems that operate outside of the cloud,

receiving, from the backup agent, responsive to the change tracking query, results that indicate a set of changed data blocks that changed at the one or more storage devices after the time corresponding to the backup data set, and

causing a virtual machine instance to be instantiated in the cloud, wherein the virtual machine instance is associated with a block storage configured in the cloud, and

loading instructions into the virtual machine instance;

by the virtual machine instance in the cloud, based on the instructions:

identifying first data blocks, among a plurality of data objects of the backup data set, that correspond to the set of changed data blocks,

wherein the plurality of data objects of the backup data set are stored at an object storage in the cloud,

restoring the first data blocks, resulting in restored first data blocks, to the block storage configured in the cloud and associated with the virtual machine instance,

causing the restored first data blocks to be stored in the object storage in the cloud, and

providing to the backup agent an object identifier corresponding to each of the restored first data blocks stored in the object storage;

by the data protection service, after providing the backup agent with the object identifier corresponding to each of the restored first data blocks stored in the object storage, deleting the virtual machine instance and the block storage; and

by the backup agent, obtaining each of the restored first data blocks from the object storage using a corresponding object identifier, and storing each of the restored first data blocks in the one or more storage devices.

2. The computer-implemented method of claim 1 , wherein the restored first data blocks are stored in the object storage in the cloud with compression and encryption.

3. The computer-implemented method of claim 1 , wherein the backup agent is part of a local agent that executes the one or more computer systems, which operate in a data center that is distinct from the cloud, and wherein the local agent is registered with the data protection service.

4. The computer-implemented method of claim 1 , wherein the backup agent is part of a local agent that executes on the one or more computer systems that operate outside of the cloud, and wherein the local agent is configured to determine which blocks of data have changed at the one or more storage devices since a most recent backup.

5. The computer-implemented method of claim 1 , wherein the one or more computer systems operate at a data center that is distinct from the cloud.

6. The computer-implemented method of claim 1 , wherein the one or more computer systems operate at a data center that is part of a second cloud that is distinct from the cloud.

7. The computer-implemented method of claim 1 , wherein the data generated by one or more computer systems is generated by a first virtual machine that executes on one of the one or more computer systems,

wherein the data is stored in one or more virtual disks that are associated with the first virtual machine, and

wherein the one or more virtual disks are configured in the one or more storage devices; and

wherein, after the restored first data blocks have been stored in the one or more storage devices, accessing the restored first data blocks, by the first virtual machine, at the one or more virtual disks configured in the one or more storage devices.

8. The computer-implemented method of claim 1 , wherein the data generated by one or more computer systems is generated by a first database that executes on one of the one or more computer systems; and

wherein, after the restored first data blocks have been stored in the one or more storage devices, accessing the restored first data blocks, by the first database, at the one or more storage devices.

9. The computer-implemented method of claim 1 , wherein the data generated by one or more computer systems is generated by a first file system that executes on one of the one or more computer systems; and

wherein, after the restored first data blocks have been stored in the one or more storage devices, accessing the restored first data blocks, by the first file system, at the one or more storage devices.

10. The computer-implemented method of claim 1 , wherein the results responsive to the change tracking query further indicate which data blocks did not change at the one or more storage devices after the time corresponding to the backup data set.

11. A computer-implemented method comprising:

by a data protection service that executes on one or more cloud computing resources of a cloud, receiving a first request to restore a backup data set to one or more storage devices that comprise data generated by one or more computer systems,

wherein the one or more cloud computing resources are implemented on one or more hardware processors, and

wherein the one or more computer systems operate outside of the cloud;

by the data protection service, responsive to the first request:

submitting, to a backup agent, a change tracking query in reference to the data at the one or more storage devices, wherein the change tracking query comprises a time corresponding to the backup data set,

wherein the backup agent executes on the one or more computer systems that operate outside of the cloud,

receiving, from the backup agent, responsive to the change tracking query, results that indicate a set of changed data blocks that changed at the one or more storage devices after the time corresponding to the backup data set, and

causing a virtual machine instance to be instantiated in the cloud, wherein the virtual machine instance is associated with a block storage configured in the cloud, and

loading instructions into the virtual machine instance;

by the virtual machine instance in the cloud, based on the instructions:

identifying first data blocks, among a plurality of data objects of the backup data set, that correspond to the set of changed data blocks,

wherein the plurality of data objects of the backup data set are stored at an object storage in the cloud,

restoring the first data blocks, resulting in restored first data blocks, to the block storage configured in the cloud and associated with the virtual machine instance,

causing the restored first data blocks to be stored in the object storage in the cloud,

concatenating the restored first data blocks into a plurality of second data blocks, and

transmitting the plurality of second data blocks, which are compressed and encrypted, to the object storage;

by the data protection service, after providing the backup agent with object identifiers corresponding to the plurality of second data blocks stored in the object storage, deleting the virtual machine instance and the block storage;

by the backup agent, obtaining the plurality of second data blocks from the object storage using the corresponding object identifiers; and

by the backup agent, decrypting and decompressing the plurality of second data blocks, resulting in the restored first data blocks, which are stored in the one or more storage devices at respective offsets that are based on offset information received in the results responsive to the change tracking query.

12. The computer-implemented method of claim 11 , wherein the backup agent is part of a local agent that executes the one or more computer systems, which operate in a data center that is distinct from the cloud, and wherein the local agent is registered with the data protection service.

13. The computer-implemented method of claim 11 , wherein the backup agent is part of a local agent that executes on the one or more computer systems that operate outside of the cloud, and wherein the local agent is configured to determine which blocks of data have changed at the one or more storage devices since a most recent backup.

14. The computer-implemented method of claim 11 , wherein the one or more computer systems operate at a data center that is distinct from the cloud.

15. The computer-implemented method of claim 11 , wherein the one or more computer systems operate at a data center that is part of a second cloud that is distinct from the cloud.

16. The computer-implemented method of claim 11 , wherein the data generated by one or more computer systems is generated by a first virtual machine that executes on one of the one or more computer systems,

wherein the data is stored in one or more virtual disks that are associated with the first virtual machine, and

wherein the one or more virtual disks are configured in the one or more storage devices; and

wherein, after the restored first data blocks have been stored in the one or more storage devices, accessing the restored first data blocks, by the first virtual machine, at the one or more virtual disks configured in the one or more storage devices.

17. The computer-implemented method of claim 11 , wherein the data generated by one or more computer systems is generated by a first database that executes on one of the one or more computer systems; and

wherein, after the restored first data blocks have been stored in the one or more storage devices, accessing the restored first data blocks, by the first database, at the one or more storage devices.

18. The computer-implemented method of claim 11 , wherein the data generated by one or more computer systems is generated by a first file system that executes on one of the one or more computer systems; and

wherein, after the restored first data blocks have been stored in the one or more storage devices, accessing the restored first data blocks, by the first file system, at the one or more storage devices.

19. The computer-implemented method of claim 11 , wherein the results responsive to the change tracking query further indicate which data blocks did not change at the one or more storage devices after the time corresponding to the backup data set.

Assignments (3)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 7, 2024
From: CLUMIO, INC.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 068815/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 23, 2020
From: CHANG, LAWRENCE JAEMYUNG; JUNG, WOON HO; KUMAR, POOJAN; MUTSUDDI, MONOREET; PALEKAR, AMBER; PANG, HUNG HING ANTHONY; PATIL, KAUSTUBH SAMBHAJI; SHARMA, RISHABH
To: CLUMIO, INC.
Reel/Frame 052481/0902 →
Continuity (2)
Provisional Application 62840569 · Apr 30, 2019
Related Publication 20200349016A1 · Nov 5, 2020
References Cited (113)
US 7650533B1 · Saxena et al. · 2010 [cited by applicant]
US 7685171B1 · Beaverson et al. · 2010 [cited by applicant]
US 8396841B1 · Janakiraman · 2013 [cited by examiner]
US 8700634B2 · Apte et al. · 2014 [cited by applicant]
US 8825972B1 · Tsaur · 2014 [cited by examiner]
US 8904120B1 · Killamsetti et al. · 2014 [cited by applicant]
US 8996467B2 · Apte et al. · 2015 [cited by applicant]
US 9292520B1 · Madi Raju Varadaraju · 2016 [cited by applicant]
US 9298723B1 · Vincent · 2016 [cited by applicant]
US 9740577B1 · Chakraborty · 2017 [cited by applicant]
US 9747163B2 · Apte et al. · 2017 [cited by applicant]
US 9749300B1 · Cale · 2017 [cited by applicant]
US 9940203B1 · Ghatnekar et al. · 2018 [cited by applicant]
US 10133745B2 · Borate et al. · 2018 [cited by applicant]
US 10152487B1 · Patwardhan et al. · 2018 [cited by applicant]
US 10303555B1 · Lee · 2019 [cited by applicant]
US 10346252B1 · Gould et al. · 2019 [cited by applicant]
US 10437682B1 · Jonnala · 2019 [cited by applicant]
US 10606879B1 · Wikinson · 2020 [cited by applicant]
US 10628444B1 · Yadav · 2020 [cited by examiner]
US 10698941B2 · Maybee · 2020 [cited by applicant]
US 10713072B1 · Burgin et al. · 2020 [cited by applicant]
US 10747447B1 · Patwardhan et al. · 2020 [cited by applicant]
US 11099946B1 · Chopra · 2021 [cited by examiner]
US 11221920B2 · Mazumdar · 2022 [cited by applicant]
US 20040143713A1 · Niles et al. · 2004 [cited by applicant]
US 20100333116A1 · Prahlad et al. · 2010 [cited by applicant]
US 20110047340A1 · Olson et al. · 2011 [cited by applicant]
US 20110078303A1 · Li et al. · 2011 [cited by applicant]
US 20110196842A1 · Timashev · 2011 [cited by examiner]
US 20130117240A1 · Taylor et al. · 2013 [cited by applicant]
US 20140006354A1 · Parkison · 2014 [cited by applicant]
US 20140006357A1 · Davis et al. · 2014 [cited by applicant]
US 20140006375A1 · Forte et al. · 2014 [cited by applicant]
US 20140101111A1 · Sengupta et al. · 2014 [cited by applicant]
US 20140101113A1 · Zhang et al. · 2014 [cited by applicant]
US 20140137112A1 · Rigolet · 2014 [cited by applicant]
US 20140201155A1 · Vijayan et al. · 2014 [cited by applicant]
US 20140324778A1 · Bonnell · 2014 [cited by examiner]
US 20140372384A1 · Long et al. · 2014 [cited by applicant]
US 20150227602A1 · Ramu · 2015 [cited by applicant]
US 20160004717A1 · Singhal et al. · 2016 [cited by applicant]
US 20160142485A1 · Mitkar et al. · 2016 [cited by applicant]
US 20160182486A1 · Wu et al. · 2016 [cited by applicant]
US 20160342618A1 · Watkins et al. · 2016 [cited by applicant]
US 20160352827A1 · Procopio et al. · 2016 [cited by applicant]
US 20170091047A1 · Bangalore et al. · 2017 [cited by applicant]
US 20170147441A1 · Binford · 2017 [cited by examiner]
US 20170169038A1 · Borate et al. · 2017 [cited by applicant]
US 20170212915A1 · Borate et al. · 2017 [cited by applicant]
US 20170220423A1 · Binford · 2017 [cited by applicant]
US 20170262185A1 · Long et al. · 2017 [cited by applicant]
US 20170262350A1 · Dornemann · 2017 [cited by examiner]
US 20170371547A1 · Fruchtman et al. · 2017 [cited by applicant]
US 20180121453A1 · Jain et al. · 2018 [cited by applicant]
US 20180129569A1 · Jathar · 2018 [cited by applicant]
US 20180165161A1 · Slater · 2018 [cited by applicant]
US 20180189145A1 · Borate et al. · 2018 [cited by applicant]
US 20180293301A1 · Borate et al. · 2018 [cited by applicant]
US 20180307839A1 · Bhave et al. · 2018 [cited by applicant]
US 20190034289A1 · Natanzon · 2019 [cited by applicant]
US 20190243702A1 · Shilane · 2019 [cited by applicant]
US 20200159421A1 · Karumbunathan et al. · 2020 [cited by applicant]
US 20200310918A1 · Okayama · 2020 [cited by applicant]
US 20200349013A1 · Chang et al. · 2020 [cited by applicant]
US 20200349014A1 · Chang et al. · 2020 [cited by applicant]
US 20200349015A1 · Chang et al. · 2020 [cited by applicant]
US 20200349016A1 · Chang · 2020 [cited by applicant]
US 20200351347A1 · Chang et al. · 2020 [cited by applicant]
CN 101441583A · 2009 [cited by applicant]
CN 103279568A · 2013 [cited by applicant]
CN 103023970B · 2015 [cited by applicant]
CN 102598020A · 2016 [cited by applicant]
CN 107885619A · 2018 [cited by applicant]
CN 108021470A · 2018 [cited by applicant]
EP 3098714A1 · 2016 [cited by applicant]
TW I316667A · 2004 [cited by applicant]
TW 201301063A · 2013 [cited by applicant]
TW 201324156A · 2013 [cited by applicant]
TW 201416881A · 2014 [cited by applicant]
TW 201423424A · 2014 [cited by applicant]
TW 201602802A · 2016 [cited by applicant]
TW I518530 · 2016 [cited by applicant]
WO 2016191152A1 · 2016 [cited by applicant]
WO 2017087760A1 · 2017 [cited by applicant]
Druva, Inc. data sheet-phoenix, www.druva.com, Q119-CON-10882, 2 pages, created May 25, 2018. [cited by applicant]
Druva, Inc. Cloud Data Protection for VMware Environments, Solution Brief, Q318-CON-10795, 2 pages, created Mar. 5, 2018. [cited by applicant]
ROC (Taiwan) Pat. Appln. No. 109114693, Office Action, mailed Aug. 31, 2021, 11 pages. (English translation presented first followed by foreign language document). [cited by applicant]
SRWO, PCT/US2020/030026, mailed Jul. 17, 2020, 9 pages. [cited by applicant]
Examination Report No. 1 in Australian Appl. No. 2020267130 mailed Aug. 18, 2022, 4 pages. [cited by applicant]
Examination Report No. 1 in Australian Appl. No. 2020264946 mailed Aug. 19, 2022, 4 pages. [cited by applicant]
Examination Report No. 1 in Australian Appl. No. 2020267132 mailed Aug. 22, 2022, 4 pages. [cited by applicant]
Examination Report No. 1 in Australian Appl. No. 2020266496 mailed Sep. 5, 2022, 4 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/857,027 mailed Aug. 31, 2022, 36 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/857,031 mailed Aug. 1, 2022, 14 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/857,026 mailed Jan. 30, 2023, 40 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/857,031 mailed Nov. 18, 2022, 16 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/857,031 mailed May 1, 2023, 16 pages. [cited by applicant]
Office Action in U.S. Appl. No. 16/857,027 mailed Mar. 6, 2023, 44 pages. [cited by applicant]
Office Action mailed in U.S. Appl. No. 16/857,026 mailed Jun. 27, 2023, 38 pages. [cited by applicant]
Advisory Action in U.S. Appl. No. 16/857,026 mailed Nov. 7, 2022, 3 pages. [cited by applicant]
ISR and OA, ROC (Taiwan) Pat. Appln. No. 109114683, English translation preceeding, 17 pages, May 13, 2021. [cited by applicant]
ISR and OA, ROC (Taiwan) Pat. Appln. No. 109114684, preceded by English translation, 15 pages, May 13, 2021. [cited by applicant]
International Search Report and Written Opinion forPCT/US2020/029492, mailed Oct. 29, 2020, 14 pages. [cited by applicant]
International Search Report and Written Opinion for PCT/US2020/029511, mailed Aug. 18, 2020, 13 pages. [cited by applicant]
International Search Report and Written Opinion for PCT/US2020/029685, mailed Sep. 8, 2020, 14 pages. [cited by applicant]
International Search Report and Written Opinion for PCT/US2020/029687, mailed Sep. 17, 2020, 8 pages. [cited by applicant]
Office Action and Search Report, ROC (Taiwan) Pat. Appln. No. 109114694, Jul. 6, 2021, English translation followed by foreign language version, 11 pages. [cited by applicant]
Office Action, ROC (Taiwan) Pat. Appln. No. 109114692, 19 pages, mailed Dec. 15, 2021. [cited by applicant]
ROC (Taiwan) Pat. Appln. No. 109114694, Office Action, English translation followed by TV OA, mailed Apr. 12, 2022, 11 pages. [cited by applicant]
ROC (Taiwan) Patent Application No. 109114683, Office Action, mailed Apr. 22, 2022, English translation followed by Taiwanese OA, 6 pages. [cited by applicant]
ROC (Taiwan) Patent Application No. 109114692, Rejection Decision, Oct. 7, 2022, 22 pages, English translation followed by TW. [cited by applicant]
ROC (Taiwan) Patent Application No. 109114684, Decision to Grant, mailed Mar. 30, 2022, English translation followed by Taiwanese OA, 7 pages. [cited by applicant]