IP Library Granted Patent US 9,507,531
Granted Patent B1
US 9,507,531 · App. 14/927,186 · Granted Nov 29, 2016

Method and system for hybrid direct input/output (I/O) with a storage device

Inventor: Michael W. Shapiro (San Francisco, CA)
Assignee: EMC Corporation
G06F3/0611G06F3/0643G06F3/0688G06F17/30106G06F17/30126
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 9,507,531
App. No.
14/927,186
Filed
Oct 29, 2015
Granted
Nov 29, 2016
Kind
B1
Art Unit
2184
USPC
710/5
Abstract

A method including intercepting a OFR for a file issued by an application to a FS, forwarding the OFR to the FS, receiving from the FS a FD for the file, issuing a SR for the file to the FS. The further method includes receiving from the FS status information for a target device on which the file is located, where the status information includes an OID for the file, storing a mapping of FD to the OID, intercepting a first FOR for the file, making a determination the that the first FOR is one of a read request and a write request, based on the determination, making another determination that the target device supports the direct I/O protocol, and issuing a DI request to the target device using the OID for the file, where the DI request is not processed by the FS.

Claims (57)

1. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising:

intercepting, by a direct IO library, a first file operation request (FOR) for a file, wherein the first FOR comprises a file descriptor (FD) for the file;

making, using the first FOR, a first determination that the first FOR is one selected from a group consisting of a read request and a write request;

based on the first determination, making a second determination that a target device on which the file is located supports a direct I/O protocol; and

based on the second determination, issuing a direct I/O request to the target device using an OID for the file, wherein the direct I/O request is not processed by a file system (FS).

2. The non-transitory computer readable medium of claim 1 , the method further comprising:

receiving a notification, in response to the direct I/O request, that the direct I/O request is completed, wherein the notification is sent directly from the target device to the host and wherein the FS does not receive the notification.

3. The non-transitory computer readable medium of claim 1 , the method further comprising:

after issuing the direct I/O request to the target device for the file:

receiving a second FOR for the file, wherein the second FOR comprises the FD;

making a third determination the that the second FOR is not one selected from a group consisting of the read request and the write request; and

based on the third determination, forwarding the second FOR to the FS via the kernel module in the kernel-level of the host.

4. The non-transitory computer readable medium of claim 1 , the method further comprising:

creating a unified address space comprising a memory location on the target device prior to the issuance of the direct I/O request,

wherein issuing the direct I/O request comprises storing the direct I/O request directly in the memory location on the target device.

5. The non-transitory computer readable medium of claim 1 , wherein issuing the direct I/O request to the target device comprises storing the direct I/O request in a memory location on the target storage device, wherein the memory location is part of a unified address space that is directly accessible by the host.

6. The non-transitory computer readable medium of claim 5 , wherein the memory location is associated with a submission queue.

7. The non-transitory computer readable medium of claim 1 , the method further comprising:

prior to intercepting the first FOR:

intercepting, in a user-level of a host, an open file request (OFR) for the file issued by an application to the FS;

forwarding the OFR to the FS, wherein the FS is located in the user-level and the OFR is forwarded to the FS via a kernel module in a kernel-level of the host;

receiving from the FS, in response to the OFR, information that is used to generate the FD for the file.

8. The non-transitory computer readable medium of claim 1 , wherein making the second determination comprises using status information for the target device.

9. The non-transitory computer readable medium of claim 8 , the method further comprising:

issuing, to the FS, a status request (SR);

receiving from the FS, in response to the SR, the status information for the target device, wherein the status information specifies that the target device supports the direct I/O protocol.

10. The non-transitory computer readable medium of claim 1 , the method further comprising:

obtaining an OID for the file prior to issuing the direct I/O request to the target device.

11. The non-transitory computer readable medium of claim 10 , wherein the direct I/O request comprises the OID.

12. The non-transitory computer readable medium of claim 10 , wherein obtaining the OID comprises using a mapping of the FD to the OID.

13. The non-transitory computer readable medium of claim 10 , wherein the OID is obtained in response to a status request issued to the target device.

14. A system, comprising:

a processor;

a user-level comprising an application, a direct I/O library, and a file system (FS); and

a kernel-level, executing on the processor, comprising a kernel module;

wherein the direct I/O library is configured to:

intercept a first file operation request (FOR) for the file, wherein the first FOR comprises a file descriptor (FD) for the file,

make, using the first FOR, a first determination that the first FOR is one selected from a group consisting of a read request and a write request,

based on the first determination, make a second determination that a target device on which the file is located supports the direct I/O protocol, and

based on the second determination, issue a direct I/O request to the target device using an OID for the file, wherein the direct I/O request is not processed by the FS;

wherein the target device is operatively connected to the system.

15. The system of claim 14 , further comprising:

a kernel-level direct I/O library configured to create a unified address space comprising a memory location on the target device prior to the issuance of the direct I/O request, wherein issuing the direct I/O request comprises storing the direct I/O request directly in the memory location on the target device.

16. The system of claim 14 , wherein the unified address is implemented using PCIe and a non-transparent bridge interposed between the system and the target device.

17. The system of claim 14 , wherein the direct I/O library is further configured to:

after issuing the direct I/O request to the target device for the file:

receive a second FOR for the file, wherein the second FOR comprises the FD;

make a third determination that the second FOR is not one selected from a group consisting of the read request and the write request;

based on the third determination, forward the second FOR to the FS via the kernel module.

18. The system of claim 17 , wherein the second FOR is one selected from a group consisting of a modify operation and a delete operation.

19. The system of claim 17 , wherein the FS is further configured to:

receive the second FOR;

service the second FOR using the direct I/O library to generate a response;

sending the response to the application via the kernel module and the direct I/O library.

20. The system of claim 14 , wherein the kernel module is a File system in USEr space (FUSE) module.

21. The system of claim 14 , wherein the target device comprises persistent storage.

22. The system of claim 21 , wherein the persistent storage comprises a solid state memory device.

Assignments (11)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
MERGER Recorded Sep 10, 2016
From: DSSD, INC.
To: EMC CORPORATION
Reel/Frame 039694/0912 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 5, 2015
From: SHAPIRO, MICHAEL W.
To: DSSD, INC.
Reel/Frame 036973/0009 →
Continuity (2)
Continuation 14663109 · Mar 19, 2015
Continuation 13827086 · Mar 14, 2013