IP Library Granted Patent US 11,221,796
Granted Patent B2
US 11,221,796 · App. 16/399,573 · Granted Jan 11, 2022

Redirection of I/O requests from local to remote storage locations to improve network performance and data redundancy

Inventors: Randall Richards Cook (Redmond, WA); Kevin John Goodman (Alpharetta, GA)
Assignee: MICROSOFT TECHNOLOGY LICENSING, LLC
G06F3/0659G06F3/061G06F3/067G06F3/0635G06F3/0664G06F16/182H04L67/1097
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,221,796
App. No.
16/399,573
Granted
Jan 11, 2022
Kind
B2
Abstract

Technologies are disclosed for redirecting input/output (“I/O”) requests to virtual hard disks (“VHDs”) to improve network performance and data redundancy. More particularly, files can be encapsulated in remote VHDs and accessed in such a way that the files appear to a local operating system and any local applications to be residing locally. Furthermore, I/O requests redirected to files encapsulated in VHDs may also be redirected to one or more additional VHDs for data redundancy. The redirected I/O requests may be transmitted simultaneously but separately to the additional VHDs in a split stream.

Claims (34)

1. A computing device, comprising:

a processor; and

a non-transitory computer-readable storage medium having executable instructions stored thereupon which, when executed by the processor, cause the computing device to:

modify a location on a file system local to the computing device such that input/output (I/O) requests directed to the location are redirected to a location on a network-accessible virtual hard disk (VHD);

intercept an I/O request directed to the location on the file system local to the computing device;

redirect the intercepted I/O request to the location on the network-accessible VHD; and

redirect the intercepted I/O request to locations on one or more additional network-accessible VHDs, the one or more additional network-accessible VHDs being associated with the location on the file system local to the computing device.

2. The computing device of claim 1 , wherein the non-transitory computer-readable storage medium has further executable instructions stored thereupon to change a path of the location on the file system local to the computing device such that the location is inaccessible prior to modifying the location.

3. The computing device of claim 1 , wherein the location on the file system local to the computing device is modified responsive to receiving a notification that a user has logged on to the computing device.

4. The computing device of claim 1 , wherein the non-transitory computer-readable storage medium has further executable instructions stored thereupon to modify the location on the file system local to the computing device such that I/O requests directed to the location are not redirected to the location on the network-accessible VHD in response to receiving a notification that a user has logged off of the computing device.

5. The computing device of claim 1 , wherein the location on the file system local to the computing device is modified by associating a junction point with the location, the junction point defining the location on the network-accessible VHD.

6. The computing device of claim 1 , wherein the non-transitory computer-readable storage medium has further executable instructions stored thereupon to store the I/O request in a local cache of the computing device.

7. The computing device of claim 6 , wherein the I/O request is stored in the local cache of the computing device responsive to determining the network-accessible VHD or the one or more additional network-accessible VHDs is inaccessible.

8. The computing device of claim 6 , wherein the non-transitory computer-readable storage medium has further executable instructions stored thereupon to transmit the I/O request stored in the local cache to the network-accessible VHD and the one or more additional network-accessible VHDs responsive to determining that the network-accessible VHD or the one or more additional network-accessible VHDs are accessible.

9. A non-transitory computer-readable storage medium having computer-executable instructions stored thereupon which, when executed by a computing device, cause the computing device to:

modify a location on a file system local to the computing device such that input/output (I/O) requests directed to the location are redirected to a location on a network-accessible virtual hard disk (VHD);

intercept an I/O request directed to the location on the file system local to the computing device;

redirect the intercepted I/O request to the location on the network-accessible VHD; and

redirect the intercepted I/O request to locations on one or more additional network-accessible VHDs, the one or more additional network-accessible VHDs being associated with the location on the file system local to the computing device.

10. The non-transitory computer-readable storage medium of claim 9 , having further computer-executable instructions stored thereupon to change a path of the location on the file system local to the computing device such that the location is inaccessible prior to modifying the location.

11. The non-transitory computer-readable storage medium of claim 9 , wherein the location on the file system local to the computing device is modified by associating a junction point with the location, the junction point defining the location on the network-accessible VHD.

12. The non-transitory computer-readable storage medium of claim 9 , wherein the non-transitory computer-readable storage medium has further executable instructions stored thereupon to store the I/O request in a local cache of the computing device.

13. The non-transitory computer-readable storage medium of claim 9 , wherein data identifying the locations on the one or more additional network-accessible VHDs is stored in a registry accessible to the filter driver.

14. A computer-implemented method, comprising:

modifying a location on a file system local to a computing device such that input/output (I/O) requests directed to the location are redirected to a location on a network-accessible virtual hard disk (VHD);

intercepting an I/O request directed to the location on the file system local to the computing device;

redirecting the intercepted I/O request to the location on the network-accessible VHD; and

redirecting the intercepted I/O request to locations on one or more additional network-accessible VHDs, the one or more additional network-accessible VHDs being associated with the location on the file system local to the computing device.

15. The computer-implemented method of claim 14 , further comprising changing a path of the location on the file system local to the computing device such that the location is inaccessible prior to modifying the location.

16. The computer-implemented method of claim 14 , wherein the location on the file system local to the computing device is modified responsive to receiving a notification that a user has logged on to the computing device.

17. The computer-implemented method of claim 14 , further comprising modifying the location on the file system local to the computing device such that I/O requests directed to the location are not redirected to the location on the network-accessible VHD in response to receiving a notification that a user has logged off of the computing device.

18. The computing device of claim 14 , wherein the location on the file system local to the computing device is modified by associating a junction point with the location, the junction point defining the location on the network-accessible VHD.

19. The computer-implemented method of claim 14 , further comprising storing the I/O request in a local cache of the computing device.

20. The computer-implemented method of claim 19 , wherein the I/O request is stored in the local cache of the computing device responsive to determining the network-accessible VHD or the one or more additional network-accessible VHDs is inaccessible.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2020
From: FSLOGIX, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 053437/0578 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2019
From: COOK, RANDALL RICHARDS; GOODMAN, KEVIN JOHN
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 049039/0578 →
Continuity (2)
Provisional Application 62665237 · May 1, 2018
Related Publication 20190339907A1 · Nov 7, 2019