IP Library Granted Patent US 11,836,052
Granted Patent B2
US 11,836,052 · App. 17/443,618 · Granted Dec 5, 2023

Data backup and recovery management using allocated data blocks

Inventor: Li Ding (Cupertino, CA)
Assignee: Rubrik, Inc.
G06F11/1469G06F9/45558G06F9/544G06F2009/45583G06F2201/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,836,052
App. No.
17/443,618
Granted
Dec 5, 2023
Kind
B2
Abstract

A data backup and recovery method and system using allocated data blocks include identifying a first snapshot associated with a virtual machine; accessing changed block tracking data associated with data changes occurred in the virtual machine, the data changes corresponding to a set of changed data blocks; accessing block allocation status data associated with the set of changed data blocks; identifying one or more allocated data blocks from the set of changed data blocks that are associated with allocated status based on the block allocation status data; and storing the one or more allocated data blocks to a storage device.

Claims (50)

1. A system comprising:

a memory storing instructions; and

one or more hardware processors communicatively coupled to the memory and configured by the instructions to perform operations comprising:

identifying a first snapshot associated with a virtual machine, the first snapshot corresponding to a first point in time;

accessing, in response to a first sent request, changed block tracking data indicating one or more data changes that have occurred in the virtual machine between the first point in time and a second point in time subsequent to the first point in time;

identifying, based on the changed block tracking data, a set of changed data blocks associated with the one or more data changes;

accessing, in response to a second sent request and subsequent to accessing the changed block tracking data, block allocation status data associated with the set of changed data blocks;

identifying, based on the block allocation status data, one or more allocated data blocks from the set of changed data blocks that are also associated with an allocated status; and

storing the one or more allocated data blocks to a storage device.

2. The system of claim 1 , wherein the set of changed data blocks include one or more unallocated data blocks that are deleted data blocks based on a user request.

3. The system of claim 1 , wherein the operations comprise:

generating a second snapshot based on the one or more allocated data blocks and associated metadata;

receiving a request to restore the virtual machine to a requested version corresponding to the second point in time; and

restoring the virtual machine to the requested version using the second snapshot.

4. The system of claim 3 , wherein the associated metadata include configuration properties of the virtual machine at the second point in time, including at least one of a number of virtual CPUs, memory, a number of virtual disks, or disk formats associated with the number of virtual disks.

5. The system of claim 1 , wherein the virtual machine is communicatively coupled to one or more virtual disks, the one or more virtual disks including a first virtual disk associated with a disk format that allows disk space allocation on demand.

6. The system of claim 5 , wherein the first virtual disk is associated with a thin provision virtual disk format.

7. The system of claim 5 , wherein the first virtual disk is associated with a thick provision lazy zeroed virtual disk format.

8. The system of claim 1 , wherein the virtual machine is communicatively coupled to at least one virtual disk that is associated with a thin provision virtual disk format or a thick provision lazy zeroed virtual disk format.

9. The system of claim 1 , wherein the operations comprise:

sending, via a first API, the first request comprising a request to access the changed block tracking data associated with data changes occurred in the virtual machine, and the second request comprising a request to access the block allocation status data associated with the set of changed data blocks.

10. The system of claim 9 , wherein the operations comprise:

upon identifying the one or more allocated data blocks from the set of changed data blocks, sending, via a second API, a request to read the one or more allocated data blocks before storing the one or more allocated data blocks to the storage device.

11. A method comprising:

identifying a first snapshot associated with a virtual machine, the first snapshot corresponding to a first point in time;

accessing, in response to a first sent request, changed block tracking data indicating one or more data changes that have occurred in the virtual machine between the first point in time and a second point in time subsequent to the first point in time;

identifying, based on the changed block tracking data, a set of changed data blocks associated with the one or more data changes;

accessing, in response to a second sent request and subsequent to accessing the changed block tracking data, block allocation status data associated with the set of changed data blocks;

identifying, based on the block allocation status data, one or more allocated data blocks from the set of changed data blocks that are also associated with an allocated status; and

storing the one or more allocated data blocks to a storage device.

12. The method of claim 11 , wherein the set of changed data blocks include one or more unallocated data blocks that are deleted data blocks based on a user request.

13. The method of claim 11 , comprising:

generating a second snapshot based on the one or more allocated data blocks and associated metadata;

receiving a request to restore the virtual machine to a requested version corresponding to the second point in time; and

restoring the virtual machine to the requested version using the second snapshot.

14. The method of claim 13 , wherein the associated metadata include configuration properties of the virtual machine, including at least one of a number of virtual CPUs, memory, a number of virtual disks, or disk formats associated with the number of virtual disks.

15. The method of claim 11 , wherein the virtual machine is communicatively coupled to one or more virtual disks, the one or more virtual disks including a first virtual disk associated with a disk format that allows disk space allocation on demand.

16. The method of claim 15 , wherein the first virtual disk is associated with a thin provision virtual disk format.

17. The method of claim 15 , wherein the first virtual disk is associated with a thick provision lazy zeroed virtual disk format.

18. The method of claim 11 , comprising:

sending, via a first API, the first request comprising a request to access the changed block tracking data associated with data changes occurred in the virtual machine, and the second request comprising a request to access the block allocation status data associated with the set of changed data blocks.

19. The method of claim 18 , comprising:

upon identifying the one or more allocated data blocks from the set of changed data blocks, sending, via a second API, a request to read the one or more allocated data blocks before storing the one or more allocated data blocks to the storage device.

20. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to perform operations comprising:

identifying a first snapshot associated with a virtual machine, the first snapshot corresponding to a first point in time;

accessing, in response to a first sent request, changed block tracking data indicating one or more data changes that have occurred in the virtual machine between the first point in time and a second point in time subsequent to the first point in time;

identifying, based on the changed block tracking data, a set of changed data blocks associated with the one or more data changes;

accessing, in response to a second sent request and subsequent to accessing the changed block tracking data, block allocation status data associated with the set of changed data blocks;

identifying, based on the block allocation status data, one or more allocated data blocks from the set of changed data blocks that are also associated with an allocated status; and

storing the one or more allocated data blocks to a storage device.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 60333/0323 Recorded Jun 13, 2025
From: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
To: RUBRIK, INC.
Reel/Frame 071565/0602 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 10, 2022
From: RUBRIK, INC.
To: GOLDMAN SACHS BDC, INC., AS COLLATERAL AGENT
Reel/Frame 060333/0323 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2021
From: DING, LI
To: RUBRIK, INC.
Reel/Frame 057063/0938 →