IP Library Granted Patent US 10,877,851
Granted Patent B2
US 10,877,851 · App. 15/923,960 · Granted Dec 29, 2020

Virtual machine recovery point selection

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,877,851
App. No.
15/923,960
Granted
Dec 29, 2020
Kind
B2
Abstract

Recovery points can be used for replicating a virtual machine and reverting the virtual machine to a different state. A filter driver can monitor and capture input/output commands between a virtual machine and a virtual machine disk. The captured input/output commands can be used to create a recovery point. The recovery point can be associated with a bitmap that may be used to identify data blocks that have been modified between two versions of the virtual machine. Using this bitmap, a virtual machine may be reverted or restored to a different state by replacing modified data blocks and without replacing the entire virtual machine disk.

Claims (45)

1. A computer-implemented method of selecting a recovery point of a virtual machine, the computer-implemented method comprising:

as implemented by a media agent within a computing system comprising one or more hardware processors and configured with specific computer-executable instructions, identifying a plurality of recovery points for a virtual machine;

accessing a plurality of bitmaps corresponding to the plurality of recovery points;

for at least some of the plurality of recovery points, determining a quantity of changed data blocks between a first recovery point and a second recovery point based at least in part on corresponding bitmaps from the plurality of bitmaps, wherein:

the second recovery point comprises an earlier recovery point than the first recovery point, and

at least one bitmap of the plurality of bitmaps identifies those changed data blocks between the first recovery point and the second recovery point;

generating a user interface to display metadata associated with the plurality of recovery points;

displaying on the user interface the quantity of changed data blocks for the at least some of the plurality of recovery points;

receiving a selection of a recovery point at the user interface; and

initiating a recovery point loading process based at least in part on the selection of the recovery point.

2. The computer-implemented method of claim 1 , wherein the first recovery point and the second recovery point comprise consecutive in time recovery points.

3. The computer-implemented method of claim 1 , wherein the user interface displays a graph illustrating the quantity of changed data blocks for the at least some of the plurality of recovery points.

4. The computer-implemented method of claim 3 , wherein receiving the selection of the recovery point comprises detecting interaction with a data point on the graph corresponding to the recovery point.

5. The computer-implemented method of claim 3 , wherein the graph further illustrates a quantity of changed data blocks between the first recovery point and a snapshot of the virtual machine.

6. The computer-implemented method of claim 1 , wherein determining the quantity of changed data blocks comprises determining a percentage of changed data blocks between the first recovery point and the second recovery point.

7. The computer-implemented method of claim 1 , further comprising:

determining a set of virtual machines that include backups at a secondary storage system;

causing display of identifiers for the set of virtual machines at the user interface; and

receiving an indication of a selection of the virtual machine from the set of virtual machines.

8. The computer-implemented method of claim 1 , further comprising receiving a selection of a target computing system, wherein initiating the recovery point loading process comprises initiating the recovery point loading process at the target computing system.

9. The computer-implemented method of claim 1 , further comprising calculating, for at least some of the plurality of recovery points, an estimated recovery time for loading the recovery point based at least in part on a corresponding bitmap from the plurality of bitmaps.

10. The computer-implemented method of claim 9 , wherein the estimated recovery time is further based at least in part on a number of changed data blocks between a current state of the virtual machine and the recovery point.

11. A system for selecting a recovery point of a virtual machine, the system comprising:

a media agent implemented in computer hardware, the media agent configured to:

identify a plurality of recovery points for a virtual machine;

access a plurality of bitmaps corresponding to the plurality of recovery points;

for at least some of the plurality of recovery points, determine a quantity of changed data blocks between a first recovery point and a second recovery point based at least in part on corresponding bitmaps from the plurality of bitmaps, wherein:

the second recovery point comprises an earlier recovery point than the first recovery point, and

at least one bitmap of the plurality of bitmaps indicates those changed data blocks between the first recovery point and the second recovery point;

generate a user interface to display metadata associated with the plurality of recovery points;

display on the user interface the quantity of changed data blocks for the at least some of the plurality of recovery points;

receive a selection of a recovery point at the user interface; and

initiate a recovery point loading process based at least in part on the selection of the recovery point.

12. The system of claim 11 , wherein the first recovery point and the second recovery point comprise consecutive in time recovery points.

13. The system of claim 11 , wherein the user interface displays a graph illustrating the quantity of changed data blocks for the at least some of the plurality of recovery points.

14. The system of claim 13 , wherein receiving the selection of the recovery point comprises detecting interaction with a data point on the graph corresponding to the recovery point.

15. The system of claim 13 , wherein the graph further illustrates a quantity of changed data blocks between the first recovery point and a snapshot of the virtual machine.

16. The system of claim 11 , wherein determining the quantity of changed data blocks comprises determining a percentage of changed data blocks between the first recovery point and the second recovery point.

17. The system of claim 11 , wherein the media agent is further configured to:

determine a set of virtual machines that include backups at a secondary storage system;

cause display of identifiers for the set of virtual machines at the user interface; and

receive an indication of a selection of the virtual machine from the set of virtual machines.

18. The system of claim 11 , wherein the media agent is further configured to receive a selection of a target computing system, wherein initiating the recovery point loading process comprises initiating the recovery point loading process at the target computing system.

19. The system of claim 11 , wherein the media agent is further configured to calculate, for at least some of the plurality of recovery points, an estimated recovery time for loading the recovery point based at least in part on a corresponding bitmap from the plurality of bitmaps.

20. The system of claim 19 , wherein the estimated recovery time is further based at least in part on a number of changed data blocks between a current state of the virtual machine and the recovery point.

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 Jun 8, 2018
From: MITKAR, AMIT; EROFEEV, ANDREI; AUSARKAR, AMIT BHASKAR; NAGRALE, AJAY VENKAT
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 046030/0354 →