IP Library Granted Patent US 11,663,089
Granted Patent B2
US 11,663,089 · App. 16/398,499 · Granted May 30, 2023

Systems and methods for continuous data protection

Inventors: Benjamin Travis Meadowcroft (San Jose, CA); Li Ding (Cupertino, CA); Shaomin Chen (San Jose, CA); Hardik Vohra (Sunnyvale, CA); Arijit Banerjee (Palo Alto, CA); Abhay Mitra (Santa Clara, CA); Kushaagra Goyal (Mountain View, CA); Arnav Gautum Mishra (San Jose, CA); Samir Rishi Chaudhry (Saratoga, CA); Suman Swaroop (Palo Alto, CA); Kunal Sean Munshani (Fremont, CA); Mudit Malpani (Mountain View, CA)
Assignee: Rubrik, Inc.
G06F11/1464G06F9/45558G06F16/27G06F2009/45579G06F2009/45583G06F2201/82G06F2201/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,663,089
App. No.
16/398,499
Granted
May 30, 2023
Kind
B2
Abstract

Example embodiments relate generally to systems and methods for continuous data protection (CDP) and more specifically to an input and output (I/O) filtering framework and log management system to seek a near-zero recovery point objective (RPO).

Claims (59)

1. A method for continuous data protection for a virtual machine (VM) having a virtual disk, comprising:

obtaining a base snapshot of the virtual disk;

implementing an input/output (I/O) filter framework to intercept an I/O stream between the VM and a virtualization server, wherein the I/O filter framework provides one or more configurable interception points of the I/O stream during an I/O lifecycle, and wherein the I/O stream comprises records of completed I/O requests and records of uncompleted I/O requests;

filtering the I/O stream to intercept, at a configured interception point of the one or more configurable interception points, only the records of completed I/O requests;

replicating, from among the records of completed I/O requests and the records of uncompleted I/O requests, the records of completed I/O requests at a backup site based at least on the filtering;

storing replicated versions of the records of completed I/O requests at the backup site in I/O logs based at least in part on the replicating;

forming a recoverable snapshot-log chain by applying the replicated versions of the records of completed I/O requests stored in the I/O logs on top of the base snapshot;

receiving a request for recoverable data from a replication target; and

sending data to the replication target based at least on a portion of the recoverable snapshot-log chain.

2. The method of claim 1 , further comprising:

establishing a filter framework at the configured interception point, the filter framework including an I/O stack and an I/O filter.

3. The method of claim 2 , wherein the virtualization server is an ESX hypervisor server, and wherein the method further comprises:

including a filter driver for the filter framework within the ESX hypervisor server.

4. The method of claim 2 , further comprising:

configuring the filter framework to enable an I/O touch point in the I/O stream.

5. The method of claim 4 , wherein the I/O stream includes an I/O cancellation, and wherein the method further comprises:

configuring a filter driver to intercept only completed I/Os in the I/O stream using the I/O touch point.

6. The method of claim 5 , wherein the I/O cancellation is a distributed I/O cancellation, and wherein the method further comprises:

managing the distributed I/O cancellation at the I/O stack and not at the I/O filter of the filter framework.

7. A system for continuous data protection for a virtual machine (VM) having a virtual disk, the system comprising:

at least one processor; and

a memory storing machine-readable instructions executable by the at least one processor to cause the system to:

obtain a base snapshot of the virtual disk;

implement an input/output (I/O) filter framework to intercept an I/O stream between the VM and a virtualization server, wherein the I/O filter framework provides one or more configurable interception points of the I/O stream during an I/O lifecycle, and wherein the I/O stream comprises records of completed I/O requests and records of uncompleted I/O requests;

filter the I/O stream to intercept, at a configured interception point of the one or more configurable interception points, only the records of completed I/O requests;

replicate, from among the records of completed I/O requests and the records of uncompleted I/O requests, the records of completed I/O requests at a backup site based at least on the filtering;

store replicated versions of the records of completed I/O requests at the backup site in I/O logs based at least in part on the replicating;

form a recoverable snapshot-log chain by applying the replicated versions of the records of completed I/O requests stored in the I/O logs on top of the base snapshot;

receive a request for recoverable data from a replication target; and

send data to the replication target based at least on a portion of the recoverable snapshot-log chain.

8. The system of claim 7 , wherein the instructions are further configured to cause the at least one processor to cause the system to:

establish a filter framework at the configured interception point, the filter framework including an I/O stack and an I/O filter.

9. The system of claim 8 , wherein the virtualization server is an ESX hypervisor server, and wherein the instructions are further configured to cause the at least one processor to cause the system to:

include a filter driver for the filter framework within the ESX hypervisor server.

10. The system of claim 8 , wherein the instructions are further configured to cause the at least one processor to cause the system to:

configure the filter framework to enable an I/O touch point in the I/O stream.

11. The system of claim 10 , wherein the I/O stream includes an I/O cancellation, and wherein the instructions are further configured to cause the at least one processor to cause the system to:

configure a filter driver to intercept only completed Ms in the I/O stream using the I/O touch point.

12. The system of claim 11 , wherein the I/O cancellation is a distributed I/O cancellation, and wherein the instructions are further configured to cause the at least one processor to cause the system to:

manage the distributed I/O cancellation at the I/O stack and not at the I/O filter of the filter framework.

13. A non-transitory, machine-readable medium storing instructions for continuous data protection for a virtual machine (VM) having a virtual disk, wherein, when read by a machine, the instructions cause the machine to:

obtain a base snapshot of the virtual disk;

implement an input/output (I/O) filter framework to intercept an I/O stream between the VM and a virtualization server, wherein the I/O filter framework provides one or more configurable interception points of the I/O stream during an I/O lifecycle, and wherein the I/O stream comprises records of completed I/O requests and records of uncompleted I/O requests;

filter the I/O stream to intercept, at a configured interception point of the one or more configurable interception points, only the records of completed I/O requests;

replicate, from among the records of completed I/O requests and the records of uncompleted I/O requests, the records of completed I/O requests at a backup site based at least on the filtering;

store replicated versions of the records of completed I/O requests at the backup site in I/O logs based at least in part on the replicating;

form a recoverable snapshot-log chain by applying the replicated versions of the records of completed I/O requests stored in the I/O logs on top of the base snapshot;

receive a request for recoverable data from a replication target; and

send data to the replication target based at least on a portion of the recoverable snapshot-log chain.

14. The non-transitory, machine-readable medium of claim 13 , wherein, when read by the machine, the instructions cause the machine to:

establish a filter framework at the configured interception point, the filter framework including an I/O stack and an I/O filter.

15. The non-transitory, machine-readable medium of claim 14 , wherein the virtualization server is an ESX hypervisor server, and wherein, when read by the machine, the instructions cause the machine to:

include a filter driver for the filter framework within the ESX hypervisor server.

16. The non-transitory, machine-readable medium of claim 14 , wherein, when read by the machine, the instructions cause the machine to:

configure the filter framework to enable an I/O touch point in the I/O stream.

17. The non-transitory, machine-readable medium of claim 16 , wherein the I/O stream includes an I/O cancellation, and wherein, when read by the machine, the instructions cause the machine to:

configure a filter driver to intercept only completed I/Os in the I/O stream using the I/O touch point.

18. The non-transitory, machine-readable medium of claim 17 , wherein the I/O cancellation is a distributed I/O cancellation and wherein, when read by the machine, the instructions cause the machine to:

manage the distributed I/O cancellation at the I/O stack and not at the I/O filter of the filter framework.

Assignments (5)
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 11, 2020
From: MUNSHANI, KUNAL SEAN
To: RUBRIK, INC.
Reel/Frame 053456/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: MALPANI, MUDIT
To: RUBRIK, INC.
Reel/Frame 053456/0319 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2020
From: MEADOWCROFT, BENJAMIN TRAVIS; DING, LI; CHEN, SHAOMIN; VOHRA, HARDIK; BANERJEE, ARIJIT; MITRA, ABHAY; GOYAL, KUSHAAGRA; MISHRA, ARNAV GAUTUM; CHAUDHRY, SAMIR RISHI; SWAROOP, SUMAN
To: RUBRIK, INC.
Reel/Frame 052141/0175 →