IP Library Granted Patent US 11,520,736
Granted Patent B2
US 11,520,736 · App. 17/105,347 · Granted Dec 6, 2022

Using utilities injected into cloud-based virtual machines for speeding up virtual machine backup operations

Inventors: Ajay Venkat Nagrale (Marlboro, NJ); Anita Joseph (Eatontown, NJ); Sasikala Raju (T.C. Marker. Tamil Nadu, IN); Henry Wallace Dornemann (Eatontown, NJ)
Assignee: Commvault Systems, Inc.
G06F16/128G06F9/45558G06F11/1451G06F11/1458G06F16/188G06F2201/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,520,736
App. No.
17/105,347
Granted
Dec 6, 2022
Kind
B2
Abstract

An executable utility is injected into cloud-based virtual machines (VMs) that are subject to backups by a data storage management system tasked with protecting the cloud-based VMs and their associated data. The utility is injected into a target VM which is “live” and operating. The utility analyzes the VM's live volume to discover data extents therein, and for each extent computes a respective checksum and determines whether the extent is a “hole.” Afterwards, checksums help identify changed data in successive snapshots of the live volume, so that only changed data will be read and backed up in incremental backups. Time is saved in performing the backup operation first by pre-warming the backup's source volume in parallel with the utility analyzing the live volume, and second by skipping read operations for extents unchanged since a preceding backup. The resulting incremental backup operation is sped up as compared to prior art approaches.

Claims (44)

1. A computer-implemented method comprising:

taking a first snapshot of a first data volume of a virtual machine, wherein the first data volume comprises a plurality of data groupings;

generating a first data structure that comprises, for each data grouping in the first data volume, both:

a respective checksum, and

a respective indication that: 1) the data grouping is null data, or 2) the data grouping is not null data;

pre-warming a second data volume from the first snapshot by copying data groupings from the first snapshot to the second data volume, wherein the generating of the first data structure and the pre-warming of the second data volume are performed while the virtual machine is in an active state;

determining a first set of data groupings among the plurality of data groupings in the second data volume that are changed relative to a preceding backup operation of the second data volume;

reading, from the second data volume, the changed first set of data groupings, and skipping reading any data groupings in the second data volume that (a) are null data or (b) are unchanged relative to the preceding backup operation of the second data volume; and

generating a secondary copy of the second data volume based on the changed first set of data groupings read from the second data volume, wherein the secondary copy represents an incremental backup copy of the first data volume at a point in time when the first snapshot was taken.

2. The method of claim 1 , further comprising:

injecting a utility into the virtual machine, wherein the injected utility performs the generating of the first data structure.

3. The method of claim 1 , further comprising:

injecting a utility into the virtual machine, wherein the injected utility performs the pre-warming of the second data volume.

4. The method of claim 1 , wherein the generating of the first data structure and the pre-warming of the second data volume are concurrently performed by a utility injected into the virtual machine.

5. The method of claim 1 , further comprising:

updating second data structure to reflect a respective checksum for each data grouping backed up in the secondary copy.

6. The method of claim 1 , wherein the determining that the first set of data groupings among the plurality of data groupings in the second data volume are changed relative to the preceding backup operation of the second data volume is further based on a second data structure, which comprises, for each data grouping in the first data volume, a respective checksum populated thereinto in an earlier backup operation, thereby enabling a comparison, for a given data grouping, of a checksum of the first data volume against an earlier and most recently populated checksum.

7. The method of claim 1 , wherein the pre-warming of the second data volume comprises, for a given data grouping in the second data volume, initializing the given data grouping in the second data volume from a corresponding data grouping in the first snapshot before the given data grouping can be read from the second data volume.

8. The method of claim 1 , wherein the generating of the secondary copy is part of a second backup operation that follows the preceding backup operation.

9. The method of claim 1 , wherein a computer-implemented storage manager initiates the generating of the secondary copy and also initiates one or more earlier backup operations, including the preceding backup operation.

10. The method of claim 1 , wherein the virtual machine operates in a cloud-based computing environment, and wherein the first data volume and the second data volume are configured in the cloud-based computing environment.

11. A system comprising:

one or more non-transitory, computer-readable media having computer-executable instructions stored thereon; and

one or more hardware processors that, having executed the computer-executable instructions, configure the system to perform a plurality of operations comprising:

taking a first snapshot of a first data volume of a virtual machine, wherein the first data volume comprises a plurality of data groupings;

generating a first data structure that comprises, for each data grouping in the first data volume, both:

a respective checksum, and

a respective indication that: 1) the data grouping is null data, or 2) the data grouping is not null data;

pre-warming a second data volume from the first snapshot by copying data groupings from the first snapshot to the second data volume, wherein the generating of the first data structure and the pre-warming of the second data volume are performed while the virtual machine is in an active state;

determining a first set of data groupings among the plurality of data groupings in the second data volume that are changed relative to a preceding backup operation of the second data volume;

reading, from the second data volume, the changed first set of data groupings, and skipping reading any data groupings in the second data volume that (a) are null data or (b) are unchanged relative to the preceding backup operation of the second data volume; and

generating a secondary copy of the second data volume based on the changed first set of data groupings read from the second data volume, wherein the secondary copy represents an incremental backup copy of the first data volume at a point in time when the first snapshot was taken.

12. The system of claim 11 , wherein the plurality of operations further comprises:

injecting a utility into the virtual machine, wherein the injected utility performs the generating of the first data structure.

13. The system of claim 11 , wherein the plurality of operations further comprises:

injecting a utility into the virtual machine, wherein the injected utility performs the pre-warming of the second data volume.

14. The system of claim 11 , wherein the generating of the first data structure and the pre-warming of the second data volume are concurrently performed by a utility injected into the virtual machine.

15. The system of claim 11 , wherein the plurality of operations further comprises:

updating a second data structure to reflect a respective checksum for each data grouping backed up in the secondary copy.

16. The system of claim 11 , wherein the determining that the first set of data groupings among the plurality of data groupings in the second data volume are changed relative to the preceding backup operation of the second data volume is further based on a second data structure, which comprises, for each data grouping in the first data volume, a respective checksum populated thereinto in an earlier backup operation, thereby enabling a comparison, for a given data grouping, of a checksum of the first data volume against an earlier and most recently populated checksum.

17. The system of claim 11 , wherein the pre-warming of the second data volume comprises, for a given data grouping in the second data volume, initializing the given data grouping in the second data volume from a corresponding data grouping in the first snapshot before the given data grouping can be read from the second data volume.

18. The system of claim 11 , wherein the generating of the secondary copy is part of a second backup operation that follows the preceding backup operation.

19. The system of claim 11 , wherein a computer-implemented storage manager initiates the generating of the secondary copy and also initiates one or more earlier backup operations, including the preceding backup operation.

20. The system of claim 11 , wherein the virtual machine operates in a cloud-based computing environment, and wherein the first data volume and the second data volume are configured in the cloud-based computing environment.

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 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2020
From: NAGRALE, AJAY VENKAT; JOSEPH, ANITA; RAJU, SASIKALA; DORNEMANN, HENRY WALLACE
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 054569/0142 →