IP Library Granted Patent US 10,564,897
Granted Patent B1
US 10,564,897 · App. 16/049,556 · Granted Feb 18, 2020

Method and system for creating virtual snapshots using input/output (I/O) interception

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,564,897
App. No.
16/049,556
Granted
Feb 18, 2020
Kind
B1
Abstract

In general, embodiments of the invention relate to a method for processing input/output (I/O requests). The method includes receiving an I/O request from a virtual machine executing on a host computing device, where the host computing device comprises a filter driver. The method further includes making a first determination that the filter driver is in a backup mode and based on the first determination, making a second determination that the I/O request intersects with a prior filter driver tracking list (FDTL). Further, in response to the second determination, the method includes pausing, by the filter driver, the processing of the I/O request, obtaining, from a primary disk, data associated with the I/O request, after obtaining the data, resuming the processing of the I/O request, where processing the I/O request results in the data on the primary disk being overwritten with new data.

Claims (54)

1. A method for processing input/output (I/O) requests, the method comprising:

receiving an I/O request from a virtual machine executing on a host computing device, wherein the host computing device comprises a filter driver;

making a first determination that the filter driver is in a backup mode;

based on the first determination, making a second determination that the I/O request intersects with a prior filter driver tracking list (FDTL);

in response to the second determination:

pausing, by the filter driver, the processing of the I/O request;

obtaining, from a primary disk, data associated with the I/O request;

after obtaining the data, resuming the processing of the I/O request, wherein processing the I/O request results in the data on the primary disk being overwritten with new data.

2. The method of claim 1 , further comprising:

receiving a second I/O request from the virtual machine;

making a third determination that the second I/O request does not intersect with the prior FDTL;

based on the third determination, processing the second I/O request, wherein processing the second I/O request results in second new data being written to the primary disk.

3. The method of claim 2 , wherein processing the I/O request comprising updating a current FDTL.

4. The method of claim 2 , further comprising:

after transitioning to the backup mode, initiating, by the filter driver, an I/O daemon on the host computing device, wherein the I/O daemon obtains data from the primary disk based on the prior FDTL.

5. The method of claim 4 , wherein at least a portion of the obtained data is obtained by the I/O daemon while the second I/O request is being processed.

6. The method of claim 4 , wherein the I/O daemon provides the obtained data to a backup system.

7. The method of claim 4 , wherein after the I/O daemon obtains all data from the primary disk associated with the prior FDTL, the filter driver transitions to a non-back-up mode.

8. The method of claim 1 , further comprising:

after obtaining the data, providing the data to a backup system, wherein the backup system comprises a backup.

9. The method of claim 8 , wherein the prior FDTL specifies which portions of data on the primary disk are different relative to corresponding portions of data stored on the backup.

10. The method of claim 1 , wherein the filter driver provides the I/O request to a device driver in the host computing device and wherein the device driver initiates processing of the I/O request.

11. The method of claim 1 , wherein obtaining, from the primary disk, the data associated with the I/O request comprises requesting, by the filter driver, that an I/O daemon on the host computing device obtain data from the primary disk.

12. A system, comprising:

a host computing device executing a virtual machine and comprising a filter driver; and

a persistent storage operatively connected to the host computing device and comprising a primary disk;

wherein the host computing device is configured to:

after receiving an I/O request from the virtual machine, make a first determination that the filter driver is in a backup mode;

based on the first determination, make a second determination that the I/O request intersects with a prior filter driver tracking list (FDTL);

in response to the second determination:

pause, by the filter driver, the processing of the I/O request;

obtain, from the primary disk, data associated with the I/O request;

after obtaining the data, resume the processing of the I/O request, wherein processing the I/O request results in the data on the primary disk being overwritten with new data.

13. The system of claim 12 , wherein the host computing device is further configured to:

after receiving a second I/O request from the virtual machine, make a third determination that the second I/O request does not intersect with the prior FDTL;

based on the third determination, process the second I/O request, wherein processing the second I/O request results in second new data being written to the primary disk.

14. The system of 13 , wherein processing the I/O request comprising updating a current FDTL.

15. The system of claim 12 , wherein the host computing device is further configured to:

after transitioning to the backup mode, initiate, by the filter driver, an I/O daemon, wherein the I/O daemon obtains data from the primary disk based on the prior FDTL.

16. The system of claim 15 , wherein at least a portion of the obtained data is obtained by the I/O daemon while the second I/O request is being processed.

17. The system of claim 15 , wherein the I/O daemon provides the obtained data to a backup system.

18. The system of claim 15 , wherein after the I/O daemon obtains all data from the primary disk associated with the prior FDTL, the filter driver transitions to a non-back-up mode.

19. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method, the method comprising:

receiving an I/O request from a virtual machine executing on a host computing device, wherein the host computing device comprises a filter driver;

making a first determination that the filter driver is in a backup mode;

based on the first determination, making a second determination that the I/O request intersects with a prior filter driver tracking list (FDTL);

in response to the second determination:

pausing, by the filter driver, the processing of the I/O request;

obtaining, from a primary disk, data associated with the I/O request;

after obtaining the data, resuming the processing of the I/O request, wherein processing the I/O request results in the data on the primary disk being overwritten with new data.

20. The non-transitory computer readable medium of claim 19 , wherein the method further comprises:

receiving a second I/O request from the virtual machine;

making a third determination that the second I/O request does not intersect with the prior FDTL;

based on the third determination, processing the second I/O request, wherein processing the second I/O request results in second new data being written to the primary disk.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2018
From: PATWARDHAN, KEDAR S.; NAIR, RAJESH K.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046513/0313 →